Various bug fixes

- Added config option for torrent multi hits damage
- Added config option for the amount of times torrent can hit
- Removed chiblocking's sprint fall damage removal
- Fixed AirScooter stopping when switching binds
This commit is contained in:
Benford 2016-04-14 19:08:37 -04:00
parent 6f58fe5c4b
commit c479129ad1
4 changed files with 22 additions and 12 deletions

View file

@ -770,15 +770,10 @@ public class PKListener implements Listener {
} }
if (!event.isCancelled() && bPlayer.hasElement(Element.CHI) && event.getCause() == DamageCause.FALL && bPlayer.canBendPassive(Element.CHI)) { if (!event.isCancelled() && bPlayer.hasElement(Element.CHI) && event.getCause() == DamageCause.FALL && bPlayer.canBendPassive(Element.CHI)) {
if (player.isSprinting()) { double initdamage = event.getDamage();
event.setDamage(0); double newdamage = event.getDamage() * ChiPassive.getFallReductionFactor();
event.setCancelled(true); double finaldamage = initdamage - newdamage;
} else { event.setDamage(finaldamage);
double initdamage = event.getDamage();
double newdamage = event.getDamage() * ChiPassive.getFallReductionFactor();
double finaldamage = initdamage - newdamage;
event.setDamage(finaldamage);
}
} }
if (!event.isCancelled() && event.getCause() == DamageCause.FALL) { if (!event.isCancelled() && event.getCause() == DamageCause.FALL) {

View file

@ -91,7 +91,7 @@ public class AirScooter extends AirAbility {
@Override @Override
public void progress() { public void progress() {
if (!bPlayer.canBendIgnoreCooldowns(this)) { if (!bPlayer.canBendIgnoreBindsCooldowns(this)) {
remove(); remove();
return; return;
} }

View file

@ -672,9 +672,11 @@ public class ConfigManager {
config.addDefault("Abilities.Water.Torrent.Enabled", true); config.addDefault("Abilities.Water.Torrent.Enabled", true);
config.addDefault("Abilities.Water.Torrent.Range", 25); config.addDefault("Abilities.Water.Torrent.Range", 25);
config.addDefault("Abilities.Water.Torrent.SelectRange", 10); config.addDefault("Abilities.Water.Torrent.SelectRange", 10);
config.addDefault("Abilities.Water.Torrent.Damage", 3); config.addDefault("Abilities.Water.Torrent.InitialDamage", 3);
config.addDefault("Abilities.Water.Torrent.DeflectDamage", 1); config.addDefault("Abilities.Water.Torrent.DeflectDamage", 1);
config.addDefault("Abilities.Water.Torrent.SuccessiveDamage", 1);
config.addDefault("Abilities.Water.Torrent.MaxLayer", 3); config.addDefault("Abilities.Water.Torrent.MaxLayer", 3);
config.addDefault("Abilities.Water.Torrent.MaxHits", 2);
config.addDefault("Abilities.Water.Torrent.Push", 1); config.addDefault("Abilities.Water.Torrent.Push", 1);
config.addDefault("Abilities.Water.Torrent.Angle", 20); config.addDefault("Abilities.Water.Torrent.Angle", 20);
config.addDefault("Abilities.Water.Torrent.Radius", 3); config.addDefault("Abilities.Water.Torrent.Radius", 3);

View file

@ -38,6 +38,8 @@ public class Torrent extends WaterAbility {
private boolean freeze; private boolean freeze;
private int layer; private int layer;
private int maxLayer; private int maxLayer;
private int maxHits;
private int hits = 1;
private long time; private long time;
private long interval; private long interval;
private long cooldown; private long cooldown;
@ -47,6 +49,7 @@ public class Torrent extends WaterAbility {
private double push; private double push;
private double maxUpwardForce; private double maxUpwardForce;
private double damage; private double damage;
private double successiveDamage;
private double deflectDamage; private double deflectDamage;
private double range; private double range;
private double selectRange; private double selectRange;
@ -68,7 +71,9 @@ public class Torrent extends WaterAbility {
this.radius = getConfig().getDouble("Abilities.Water.Torrent.Radius"); this.radius = getConfig().getDouble("Abilities.Water.Torrent.Radius");
this.maxUpwardForce = getConfig().getDouble("Abilities.Water.Torrent.MaxUpwardForce"); this.maxUpwardForce = getConfig().getDouble("Abilities.Water.Torrent.MaxUpwardForce");
this.interval = getConfig().getLong("Abilities.Water.Torrent.Interval"); this.interval = getConfig().getLong("Abilities.Water.Torrent.Interval");
this.damage = getConfig().getDouble("Abilities.Water.Torrent.Damage"); this.damage = getConfig().getDouble("Abilities.Water.Torrent.InitialDamage");
this.successiveDamage = getConfig().getDouble("Abilities.Water.Torrent.SuccessiveDamage");
this.maxHits = getConfig().getInt("Abilities.Water.Torrent.MaxHits");
this.deflectDamage = getConfig().getDouble("Abilities.Water.Torrent.DeflectDamage"); this.deflectDamage = getConfig().getDouble("Abilities.Water.Torrent.DeflectDamage");
this.range = getConfig().getDouble("Abilities.Water.Torrent.Range"); this.range = getConfig().getDouble("Abilities.Water.Torrent.Range");
this.selectRange = getConfig().getDouble("Abilities.Water.Torrent.SelectRange"); this.selectRange = getConfig().getDouble("Abilities.Water.Torrent.SelectRange");
@ -535,6 +540,14 @@ public class Torrent extends WaterAbility {
} }
if (entity instanceof LivingEntity && !hurtEntities.contains(entity)) { if (entity instanceof LivingEntity && !hurtEntities.contains(entity)) {
double damageDealt = getNightFactor(damage); double damageDealt = getNightFactor(damage);
if (hits > 1 && hits <= maxHits) {
damageDealt = getNightFactor(successiveDamage);
}
if (hits == maxHits) {
hits = maxHits + 1;
} else {
hits += 1;
}
DamageHandler.damageEntity(entity, damageDealt, this); DamageHandler.damageEntity(entity, damageDealt, this);
AirAbility.breakBreathbendingHold(entity); AirAbility.breakBreathbendingHold(entity);
hurtEntities.add(entity); hurtEntities.add(entity);