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.items.instance.ItemInstance;
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.stats.Formulas;
import org.l2jmobius.gameserver.model.stats.Stats;
@ -74,6 +75,10 @@ public class Heal extends AbstractEffect
if ((item != null) && (item.isPotion() || item.isElixir()))
{
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;

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.items.instance.ItemInstance;
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.stats.Stats;
import org.l2jmobius.gameserver.network.serverpackets.ExRegenMax;
@ -59,6 +60,10 @@ public class HealOverTime extends AbstractEffect
if ((item != null) && (item.isPotion() || item.isElixir()))
{
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();

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.EffectType;
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.stats.Stats;
import org.l2jmobius.gameserver.network.SystemMessageId;
@ -67,6 +68,10 @@ public class HealPercent extends AbstractEffect
if ((item != null) && (item.isPotion() || item.isElixir()))
{
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

View File

@ -21,6 +21,7 @@ import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
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.stats.Stats;
import org.l2jmobius.gameserver.network.SystemMessageId;
@ -59,6 +60,10 @@ public class Hp extends AbstractEffect
if ((item != null) && (item.isPotion() || item.isElixir()))
{
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;

View File

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