From d3a9e5647476765b2c1c6262438a2d35bf575ae1 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Fri, 4 Jun 2021 11:44:12 +0000 Subject: [PATCH] Support for RealDamage percent mode. Thanks to nasseka. --- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- .../handlers/effecthandlers/RealDamage.java | 26 ++++++++++++++++--- 19 files changed, 418 insertions(+), 76 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index c91e99e2d4..c05c565056 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index c91e99e2d4..c05c565056 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index c91e99e2d4..c05c565056 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index c91e99e2d4..c05c565056 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index c91e99e2d4..c05c565056 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index c91e99e2d4..c05c565056 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index c91e99e2d4..c05c565056 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index c91e99e2d4..c05c565056 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index c91e99e2d4..c05c565056 100644 --- a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index c91e99e2d4..c05c565056 100644 --- a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index c91e99e2d4..c05c565056 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index c91e99e2d4..c05c565056 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index c91e99e2d4..c05c565056 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index 6d9b2cfc09..16a57b0645 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index 6d9b2cfc09..16a57b0645 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index 6d9b2cfc09..16a57b0645 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index c91e99e2d4..c05c565056 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index 6d9b2cfc09..16a57b0645 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); } diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java index 6d9b2cfc09..16a57b0645 100644 --- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/effecthandlers/RealDamage.java @@ -17,6 +17,7 @@ package handlers.effecthandlers; import org.l2jmobius.Config; +import org.l2jmobius.gameserver.enums.StatModifierType; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.effects.AbstractEffect; @@ -30,10 +31,12 @@ import org.l2jmobius.gameserver.model.stats.Stat; public class RealDamage extends AbstractEffect { private final double _power; + private final StatModifierType _mode; public RealDamage(StatSet params) { _power = params.getDouble("power", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); } @Override @@ -45,8 +48,7 @@ public class RealDamage extends AbstractEffect @Override public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item) { - // Check if effected is dead. - if (effected.isDead()) + if (effected.isDead() || effected.isDoor() || effected.isRaid()) { return; } @@ -64,13 +66,29 @@ public class RealDamage extends AbstractEffect } // Calculate resistance. - final double damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + final double damage; + if (_mode == StatModifierType.DIFF) + { + damage = _power - (_power * (Math.min(effected.getStat().getMul(Stat.REAL_DAMAGE_RESIST, 1), 1.8) - 1)); + } + else // PER + { + // Percent does not ignore HP block. + if (effected.isHpBlocked()) + { + return; + } + + damage = (effected.getCurrentHp() * _power) / 100; + } // Do damage. if (damage > 0) { effected.setCurrentHp(Math.max(effected.getCurrentHp() - damage, effected.isUndying() ? 1 : 0)); - if ((effected.getCurrentHp() < 0.5)) // Die. + + // Die. + if (effected.getCurrentHp() < 0.5) { effected.doDie(effector); }