diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/EffectMasterHandler.java index 123293314c..9510b99b90 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -348,6 +348,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); EffectHandler.getInstance().registerHandler("StatAddForMp", StatAddForMp::new); + EffectHandler.getInstance().registerHandler("StatAddForStat", StatAddForStat::new); EffectHandler.getInstance().registerHandler("StatBonusSkillCritical", StatBonusSkillCritical::new); EffectHandler.getInstance().registerHandler("StatBonusSpeed", StatBonusSpeed::new); EffectHandler.getInstance().registerHandler("StatByMoveType", StatByMoveType::new); diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/StatAddForStat.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/StatAddForStat.java new file mode 100644 index 0000000000..9ed35b6fd8 --- /dev/null +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/StatAddForStat.java @@ -0,0 +1,59 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +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; +import org.l2jmobius.gameserver.model.skill.Skill; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author Mobius + */ +public class StatAddForStat extends AbstractEffect +{ + private final Stat _statCheck; + private final int _min; + private final int _max; + private final Stat _stat; + private final double _amount; + + public StatAddForStat(StatSet params) + { + _statCheck = params.getEnum("stat", Stat.class); + _min = params.getInt("min", 0); + _max = params.getInt("max", 2147483647); + _stat = params.getEnum("addStat", Stat.class); + _amount = params.getDouble("amount", 0); + if (params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF) != StatModifierType.DIFF) + { + LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode."); + } + } + + @Override + public void pump(Creature effected, Skill skill) + { + final int currentValue = (int) effected.getStat().getValue(_statCheck); + if ((currentValue >= _min) && (currentValue <= _max)) + { + effected.getStat().mergeAdd(_stat, _amount); + } + } +} diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/documentation.txt index 7a7c6247d8..7b668809d3 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/documentation.txt @@ -315,6 +315,7 @@ SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) StatAddForMp: Adds a fixed amount of a Stat for when player max MP is over a value. (l2jmobius) +StatAddForStat: Adds a fixed amount of a Stat based on player current value. (l2jmobius) StatBonusSkillCritical: Changes skill critical rate to depend on the specified base stat. StatBonusSpeed: Changes Speed stat to depend on the specified base stat. StatByMoveType: Adds stat based on your movement type (standing, running, walking). diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/EffectMasterHandler.java index 7789be69de..f75fac7e68 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -347,6 +347,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("Spoil", Spoil::new); EffectHandler.getInstance().registerHandler("StatAddForLevel", StatAddForLevel::new); EffectHandler.getInstance().registerHandler("StatAddForMp", StatAddForMp::new); + EffectHandler.getInstance().registerHandler("StatAddForStat", StatAddForStat::new); EffectHandler.getInstance().registerHandler("StatBonusSkillCritical", StatBonusSkillCritical::new); EffectHandler.getInstance().registerHandler("StatBonusSpeed", StatBonusSpeed::new); EffectHandler.getInstance().registerHandler("StatByMoveType", StatByMoveType::new); diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/StatAddForStat.java b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/StatAddForStat.java new file mode 100644 index 0000000000..9ed35b6fd8 --- /dev/null +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/StatAddForStat.java @@ -0,0 +1,59 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +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; +import org.l2jmobius.gameserver.model.skill.Skill; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author Mobius + */ +public class StatAddForStat extends AbstractEffect +{ + private final Stat _statCheck; + private final int _min; + private final int _max; + private final Stat _stat; + private final double _amount; + + public StatAddForStat(StatSet params) + { + _statCheck = params.getEnum("stat", Stat.class); + _min = params.getInt("min", 0); + _max = params.getInt("max", 2147483647); + _stat = params.getEnum("addStat", Stat.class); + _amount = params.getDouble("amount", 0); + if (params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF) != StatModifierType.DIFF) + { + LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode."); + } + } + + @Override + public void pump(Creature effected, Skill skill) + { + final int currentValue = (int) effected.getStat().getValue(_statCheck); + if ((currentValue >= _min) && (currentValue <= _max)) + { + effected.getStat().mergeAdd(_stat, _amount); + } + } +} diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/documentation.txt index b3822886b1..db31e70d71 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/documentation.txt @@ -314,6 +314,7 @@ SpModify: Bonus SP stat. Spoil: Spoils a mob activating its extra sweep drop. StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2jmobius) StatAddForMp: Adds a fixed amount of a Stat for when player max MP is over a value. (l2jmobius) +StatAddForStat: Adds a fixed amount of a Stat based on player current value. (l2jmobius) StatBonusSkillCritical: Changes skill critical rate to depend on the specified base stat. StatBonusSpeed: Changes Speed stat to depend on the specified base stat. StatByMoveType: Adds stat based on your movement type (standing, running, walking).