From a4a77df3059da4e8f61bb90f56dccfa5c8b76bf6 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Fri, 7 Sep 2018 03:38:04 +0000 Subject: [PATCH] FatalBlowRate effect should apply to effector. --- .../effecthandlers/FatalBlowRate.java | 50 +++++++++++++++++-- .../effecthandlers/FatalBlowRate.java | 50 +++++++++++++++++-- .../effecthandlers/FatalBlowRate.java | 50 +++++++++++++++++-- .../effecthandlers/FatalBlowRate.java | 50 +++++++++++++++++-- .../effecthandlers/FatalBlowRate.java | 50 +++++++++++++++++-- .../effecthandlers/FatalBlowRate.java | 50 +++++++++++++++++-- .../effecthandlers/FatalBlowRate.java | 50 +++++++++++++++++-- 7 files changed, 329 insertions(+), 21 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java index 3411e0d01b..2f32279761 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java @@ -16,16 +16,60 @@ */ package handlers.effecthandlers; +import com.l2jmobius.gameserver.enums.StatModifierType; import com.l2jmobius.gameserver.model.StatsSet; +import com.l2jmobius.gameserver.model.actor.L2Character; +import com.l2jmobius.gameserver.model.effects.AbstractEffect; +import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.model.stats.Stats; /** - * @author Sdw + * @author Mobius */ -public class FatalBlowRate extends AbstractStatEffect +public class FatalBlowRate extends AbstractEffect { + private final double _amount; + private final StatModifierType _mode; + public FatalBlowRate(StatsSet params) { - super(params, Stats.BLOW_RATE); + _amount = params.getDouble("amount", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); + } + + @Override + public void onStart(L2Character effector, L2Character effected, Skill skill) + { + switch (_mode) + { + case DIFF: + { + effector.getStat().mergeAdd(Stats.BLOW_RATE, _amount); + break; + } + case PER: + { + effector.getStat().mergeMul(Stats.BLOW_RATE, (_amount / 100) + 1); + break; + } + } + } + + @Override + public void onExit(L2Character effector, L2Character effected, Skill skill) + { + switch (_mode) + { + case DIFF: + { + effector.getStat().mergeAdd(Stats.BLOW_RATE, _amount * -1); + break; + } + case PER: + { + effector.getStat().mergeMul(Stats.BLOW_RATE, ((_amount / 100) + 1) * -1); + break; + } + } } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java index 3411e0d01b..2f32279761 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java @@ -16,16 +16,60 @@ */ package handlers.effecthandlers; +import com.l2jmobius.gameserver.enums.StatModifierType; import com.l2jmobius.gameserver.model.StatsSet; +import com.l2jmobius.gameserver.model.actor.L2Character; +import com.l2jmobius.gameserver.model.effects.AbstractEffect; +import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.model.stats.Stats; /** - * @author Sdw + * @author Mobius */ -public class FatalBlowRate extends AbstractStatEffect +public class FatalBlowRate extends AbstractEffect { + private final double _amount; + private final StatModifierType _mode; + public FatalBlowRate(StatsSet params) { - super(params, Stats.BLOW_RATE); + _amount = params.getDouble("amount", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); + } + + @Override + public void onStart(L2Character effector, L2Character effected, Skill skill) + { + switch (_mode) + { + case DIFF: + { + effector.getStat().mergeAdd(Stats.BLOW_RATE, _amount); + break; + } + case PER: + { + effector.getStat().mergeMul(Stats.BLOW_RATE, (_amount / 100) + 1); + break; + } + } + } + + @Override + public void onExit(L2Character effector, L2Character effected, Skill skill) + { + switch (_mode) + { + case DIFF: + { + effector.getStat().mergeAdd(Stats.BLOW_RATE, _amount * -1); + break; + } + case PER: + { + effector.getStat().mergeMul(Stats.BLOW_RATE, ((_amount / 100) + 1) * -1); + break; + } + } } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java index 3411e0d01b..2f32279761 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java @@ -16,16 +16,60 @@ */ package handlers.effecthandlers; +import com.l2jmobius.gameserver.enums.StatModifierType; import com.l2jmobius.gameserver.model.StatsSet; +import com.l2jmobius.gameserver.model.actor.L2Character; +import com.l2jmobius.gameserver.model.effects.AbstractEffect; +import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.model.stats.Stats; /** - * @author Sdw + * @author Mobius */ -public class FatalBlowRate extends AbstractStatEffect +public class FatalBlowRate extends AbstractEffect { + private final double _amount; + private final StatModifierType _mode; + public FatalBlowRate(StatsSet params) { - super(params, Stats.BLOW_RATE); + _amount = params.getDouble("amount", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); + } + + @Override + public void onStart(L2Character effector, L2Character effected, Skill skill) + { + switch (_mode) + { + case DIFF: + { + effector.getStat().mergeAdd(Stats.BLOW_RATE, _amount); + break; + } + case PER: + { + effector.getStat().mergeMul(Stats.BLOW_RATE, (_amount / 100) + 1); + break; + } + } + } + + @Override + public void onExit(L2Character effector, L2Character effected, Skill skill) + { + switch (_mode) + { + case DIFF: + { + effector.getStat().mergeAdd(Stats.BLOW_RATE, _amount * -1); + break; + } + case PER: + { + effector.getStat().mergeMul(Stats.BLOW_RATE, ((_amount / 100) + 1) * -1); + break; + } + } } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java index 3411e0d01b..2f32279761 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java @@ -16,16 +16,60 @@ */ package handlers.effecthandlers; +import com.l2jmobius.gameserver.enums.StatModifierType; import com.l2jmobius.gameserver.model.StatsSet; +import com.l2jmobius.gameserver.model.actor.L2Character; +import com.l2jmobius.gameserver.model.effects.AbstractEffect; +import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.model.stats.Stats; /** - * @author Sdw + * @author Mobius */ -public class FatalBlowRate extends AbstractStatEffect +public class FatalBlowRate extends AbstractEffect { + private final double _amount; + private final StatModifierType _mode; + public FatalBlowRate(StatsSet params) { - super(params, Stats.BLOW_RATE); + _amount = params.getDouble("amount", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); + } + + @Override + public void onStart(L2Character effector, L2Character effected, Skill skill) + { + switch (_mode) + { + case DIFF: + { + effector.getStat().mergeAdd(Stats.BLOW_RATE, _amount); + break; + } + case PER: + { + effector.getStat().mergeMul(Stats.BLOW_RATE, (_amount / 100) + 1); + break; + } + } + } + + @Override + public void onExit(L2Character effector, L2Character effected, Skill skill) + { + switch (_mode) + { + case DIFF: + { + effector.getStat().mergeAdd(Stats.BLOW_RATE, _amount * -1); + break; + } + case PER: + { + effector.getStat().mergeMul(Stats.BLOW_RATE, ((_amount / 100) + 1) * -1); + break; + } + } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java index 3411e0d01b..2f32279761 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java @@ -16,16 +16,60 @@ */ package handlers.effecthandlers; +import com.l2jmobius.gameserver.enums.StatModifierType; import com.l2jmobius.gameserver.model.StatsSet; +import com.l2jmobius.gameserver.model.actor.L2Character; +import com.l2jmobius.gameserver.model.effects.AbstractEffect; +import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.model.stats.Stats; /** - * @author Sdw + * @author Mobius */ -public class FatalBlowRate extends AbstractStatEffect +public class FatalBlowRate extends AbstractEffect { + private final double _amount; + private final StatModifierType _mode; + public FatalBlowRate(StatsSet params) { - super(params, Stats.BLOW_RATE); + _amount = params.getDouble("amount", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); + } + + @Override + public void onStart(L2Character effector, L2Character effected, Skill skill) + { + switch (_mode) + { + case DIFF: + { + effector.getStat().mergeAdd(Stats.BLOW_RATE, _amount); + break; + } + case PER: + { + effector.getStat().mergeMul(Stats.BLOW_RATE, (_amount / 100) + 1); + break; + } + } + } + + @Override + public void onExit(L2Character effector, L2Character effected, Skill skill) + { + switch (_mode) + { + case DIFF: + { + effector.getStat().mergeAdd(Stats.BLOW_RATE, _amount * -1); + break; + } + case PER: + { + effector.getStat().mergeMul(Stats.BLOW_RATE, ((_amount / 100) + 1) * -1); + break; + } + } } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java index 3411e0d01b..2f32279761 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java @@ -16,16 +16,60 @@ */ package handlers.effecthandlers; +import com.l2jmobius.gameserver.enums.StatModifierType; import com.l2jmobius.gameserver.model.StatsSet; +import com.l2jmobius.gameserver.model.actor.L2Character; +import com.l2jmobius.gameserver.model.effects.AbstractEffect; +import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.model.stats.Stats; /** - * @author Sdw + * @author Mobius */ -public class FatalBlowRate extends AbstractStatEffect +public class FatalBlowRate extends AbstractEffect { + private final double _amount; + private final StatModifierType _mode; + public FatalBlowRate(StatsSet params) { - super(params, Stats.BLOW_RATE); + _amount = params.getDouble("amount", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); + } + + @Override + public void onStart(L2Character effector, L2Character effected, Skill skill) + { + switch (_mode) + { + case DIFF: + { + effector.getStat().mergeAdd(Stats.BLOW_RATE, _amount); + break; + } + case PER: + { + effector.getStat().mergeMul(Stats.BLOW_RATE, (_amount / 100) + 1); + break; + } + } + } + + @Override + public void onExit(L2Character effector, L2Character effected, Skill skill) + { + switch (_mode) + { + case DIFF: + { + effector.getStat().mergeAdd(Stats.BLOW_RATE, _amount * -1); + break; + } + case PER: + { + effector.getStat().mergeMul(Stats.BLOW_RATE, ((_amount / 100) + 1) * -1); + break; + } + } } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java index 3411e0d01b..2f32279761 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/FatalBlowRate.java @@ -16,16 +16,60 @@ */ package handlers.effecthandlers; +import com.l2jmobius.gameserver.enums.StatModifierType; import com.l2jmobius.gameserver.model.StatsSet; +import com.l2jmobius.gameserver.model.actor.L2Character; +import com.l2jmobius.gameserver.model.effects.AbstractEffect; +import com.l2jmobius.gameserver.model.skills.Skill; import com.l2jmobius.gameserver.model.stats.Stats; /** - * @author Sdw + * @author Mobius */ -public class FatalBlowRate extends AbstractStatEffect +public class FatalBlowRate extends AbstractEffect { + private final double _amount; + private final StatModifierType _mode; + public FatalBlowRate(StatsSet params) { - super(params, Stats.BLOW_RATE); + _amount = params.getDouble("amount", 0); + _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF); + } + + @Override + public void onStart(L2Character effector, L2Character effected, Skill skill) + { + switch (_mode) + { + case DIFF: + { + effector.getStat().mergeAdd(Stats.BLOW_RATE, _amount); + break; + } + case PER: + { + effector.getStat().mergeMul(Stats.BLOW_RATE, (_amount / 100) + 1); + break; + } + } + } + + @Override + public void onExit(L2Character effector, L2Character effected, Skill skill) + { + switch (_mode) + { + case DIFF: + { + effector.getStat().mergeAdd(Stats.BLOW_RATE, _amount * -1); + break; + } + case PER: + { + effector.getStat().mergeMul(Stats.BLOW_RATE, ((_amount / 100) + 1) * -1); + break; + } + } } }