From cae818ef8cb0128cc422b909162b0349f70d6160 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Fri, 18 Feb 2022 09:48:22 +0000 Subject: [PATCH] Addition of StatAddForStat effect handler. --- .../scripts/handlers/EffectMasterHandler.java | 1 + .../effecthandlers/StatAddForStat.java | 52 +++++++++++++++++++ .../game/data/stats/skills/documentation.txt | 1 + .../scripts/handlers/EffectMasterHandler.java | 1 + .../effecthandlers/StatAddForStat.java | 52 +++++++++++++++++++ .../game/data/stats/skills/documentation.txt | 1 + 6 files changed, 108 insertions(+) create mode 100644 L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/StatAddForStat.java create mode 100644 L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/StatAddForStat.java 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 39f5d08fc4..ee2c30252c 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..728d8cfa53 --- /dev/null +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/StatAddForStat.java @@ -0,0 +1,52 @@ +/* + * 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.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 _stat; + private final int _min; + private final int _max; + private final double _amount; + + public StatAddForStat(StatSet params) + { + _stat = params.getEnum("stat", Stat.class); + _min = params.getInt("min", 0); + _max = params.getInt("max", 0); + _amount = params.getDouble("amount", 0); + } + + @Override + public void pump(Creature effected, Skill skill) + { + final int currentValue = (int) effected.getStat().getValue(_stat); + 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 9a5e678f0f..0547c81f93 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 range. (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 862b378888..f56cfd35fe 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..728d8cfa53 --- /dev/null +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/StatAddForStat.java @@ -0,0 +1,52 @@ +/* + * 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.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 _stat; + private final int _min; + private final int _max; + private final double _amount; + + public StatAddForStat(StatSet params) + { + _stat = params.getEnum("stat", Stat.class); + _min = params.getInt("min", 0); + _max = params.getInt("max", 0); + _amount = params.getDouble("amount", 0); + } + + @Override + public void pump(Creature effected, Skill skill) + { + final int currentValue = (int) effected.getStat().getValue(_stat); + 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 557fd7b894..35ca244f0e 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 range. (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).