Added support for Potion Mastery.

This commit is contained in:
MobiusDevelopment 2020-01-21 00:29:50 +00:00
parent 113abc8a87
commit 4c63686213
5 changed files with 22 additions and 1 deletions

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.items.type.CrystalType; import org.l2jmobius.gameserver.model.items.type.CrystalType;
import org.l2jmobius.gameserver.model.skills.CommonSkill;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas; import org.l2jmobius.gameserver.model.stats.Formulas;
import org.l2jmobius.gameserver.model.stats.Stats; import org.l2jmobius.gameserver.model.stats.Stats;
@ -74,6 +75,10 @@ public class Heal extends AbstractEffect
if ((item != null) && (item.isPotion() || item.isElixir())) if ((item != null) && (item.isPotion() || item.isElixir()))
{ {
amount += effected.getStat().getValue(Stats.ADDITIONAL_POTION_HP, 0); amount += effected.getStat().getValue(Stats.ADDITIONAL_POTION_HP, 0);
// Classic Potion Mastery
// TODO: Create an effect if more mastery skills are added.
amount *= 1 + (effected.getAffectedSkillLevel(CommonSkill.POTION_MASTERY.getId()) / 100);
} }
double staticShotBonus = 0; double staticShotBonus = 0;

View File

@ -21,6 +21,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.AbnormalType; import org.l2jmobius.gameserver.model.skills.AbnormalType;
import org.l2jmobius.gameserver.model.skills.CommonSkill;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Stats; import org.l2jmobius.gameserver.model.stats.Stats;
import org.l2jmobius.gameserver.network.serverpackets.ExRegenMax; import org.l2jmobius.gameserver.network.serverpackets.ExRegenMax;
@ -59,6 +60,10 @@ public class HealOverTime extends AbstractEffect
if ((item != null) && (item.isPotion() || item.isElixir())) if ((item != null) && (item.isPotion() || item.isElixir()))
{ {
power += effected.getStat().getValue(Stats.ADDITIONAL_POTION_HP, 0) / getTicks(); power += effected.getStat().getValue(Stats.ADDITIONAL_POTION_HP, 0) / getTicks();
// Classic Potion Mastery
// TODO: Create an effect if more mastery skills are added.
power *= 1 + (effected.getAffectedSkillLevel(CommonSkill.POTION_MASTERY.getId()) / 100);
} }
hp += power * getTicksMultiplier(); hp += power * getTicksMultiplier();

View File

@ -21,6 +21,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectType; import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.CommonSkill;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Stats; import org.l2jmobius.gameserver.model.stats.Stats;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
@ -67,6 +68,10 @@ public class HealPercent extends AbstractEffect
if ((item != null) && (item.isPotion() || item.isElixir())) if ((item != null) && (item.isPotion() || item.isElixir()))
{ {
amount += effected.getStat().getValue(Stats.ADDITIONAL_POTION_HP, 0); amount += effected.getStat().getValue(Stats.ADDITIONAL_POTION_HP, 0);
// Classic Potion Mastery
// TODO: Create an effect if more mastery skills are added.
amount *= 1 + (effected.getAffectedSkillLevel(CommonSkill.POTION_MASTERY.getId()) / 100);
} }
// Prevents overheal // Prevents overheal

View File

@ -21,6 +21,7 @@ import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.CommonSkill;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Stats; import org.l2jmobius.gameserver.model.stats.Stats;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
@ -59,6 +60,10 @@ public class Hp extends AbstractEffect
if ((item != null) && (item.isPotion() || item.isElixir())) if ((item != null) && (item.isPotion() || item.isElixir()))
{ {
basicAmount += effected.getStat().getValue(Stats.ADDITIONAL_POTION_HP, 0); basicAmount += effected.getStat().getValue(Stats.ADDITIONAL_POTION_HP, 0);
// Classic Potion Mastery
// TODO: Create an effect if more mastery skills are added.
basicAmount *= 1 + (effected.getAffectedSkillLevel(CommonSkill.POTION_MASTERY.getId()) / 100);
} }
double amount = 0; double amount = 0;

View File

@ -57,7 +57,8 @@ public enum CommonSkill
ALCHEMY_CUBE(17943, 1), ALCHEMY_CUBE(17943, 1),
ALCHEMY_CUBE_RANDOM_SUCCESS(17966, 1), ALCHEMY_CUBE_RANDOM_SUCCESS(17966, 1),
PET_SWITCH_STANCE(6054, 1), PET_SWITCH_STANCE(6054, 1),
WEIGHT_PENALTY(4270, 1); WEIGHT_PENALTY(4270, 1),
POTION_MASTERY(45184, 1);
private final SkillHolder _holder; private final SkillHolder _holder;