Use configurations for attackables calcMagicSuccess method.

This commit is contained in:
MobiusDevelopment
2019-04-01 15:21:44 +00:00
parent c905853551
commit c578bd43c1
44 changed files with 484 additions and 726 deletions

View File

@@ -18,8 +18,6 @@ package handlers.effecthandlers;
import java.util.Collection;
import com.l2jmobius.Config;
import com.l2jmobius.commons.util.Rnd;
import com.l2jmobius.gameserver.ai.CtrlEvent;
import com.l2jmobius.gameserver.model.Party;
import com.l2jmobius.gameserver.model.StatsSet;
@@ -30,6 +28,7 @@ import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.holders.ItemHolder;
import com.l2jmobius.gameserver.model.items.instance.ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.model.stats.Formulas;
import com.l2jmobius.gameserver.network.SystemMessageId;
/**
@@ -44,22 +43,7 @@ public final class Plunder extends AbstractEffect
@Override
public boolean calcSuccess(Creature effector, Creature effected, Skill skill)
{
final int lvlDifference = (effected.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : effector.getLevel()));
final double lvlModifier = Math.pow(1.3, lvlDifference);
float targetModifier = 1;
if (effected.isAttackable() && !effected.isRaid() && !effected.isRaidMinion() && (effected.getLevel() >= Config.MIN_NPC_LVL_MAGIC_PENALTY) && (effector.getActingPlayer() != null) && ((effected.getLevel() - effector.getActingPlayer().getLevel()) >= 3))
{
final int lvlDiff = effected.getLevel() - effector.getActingPlayer().getLevel() - 2;
if (lvlDiff >= Config.NPC_SKILL_CHANCE_PENALTY.size())
{
targetModifier = Config.NPC_SKILL_CHANCE_PENALTY.get(Config.NPC_SKILL_CHANCE_PENALTY.size() - 1);
}
else
{
targetModifier = Config.NPC_SKILL_CHANCE_PENALTY.get(lvlDiff);
}
}
return Rnd.get(100) < (100 - Math.round((float) (lvlModifier * targetModifier)));
return Formulas.calcMagicSuccess(effector, effected, skill);
}
@Override

View File

@@ -16,8 +16,6 @@
*/
package handlers.effecthandlers;
import com.l2jmobius.Config;
import com.l2jmobius.commons.util.Rnd;
import com.l2jmobius.gameserver.ai.CtrlEvent;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.Creature;
@@ -25,6 +23,7 @@ import com.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.items.instance.ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.model.stats.Formulas;
import com.l2jmobius.gameserver.network.SystemMessageId;
/**
@@ -40,22 +39,7 @@ public final class Spoil extends AbstractEffect
@Override
public boolean calcSuccess(Creature effector, Creature effected, Skill skill)
{
final int lvlDifference = (effected.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : effector.getLevel()));
final double lvlModifier = Math.pow(1.3, lvlDifference);
float targetModifier = 1;
if (effected.isAttackable() && !effected.isRaid() && !effected.isRaidMinion() && (effected.getLevel() >= Config.MIN_NPC_LVL_MAGIC_PENALTY) && (effector.getActingPlayer() != null) && ((effected.getLevel() - effector.getActingPlayer().getLevel()) >= 3))
{
final int lvlDiff = effected.getLevel() - effector.getActingPlayer().getLevel() - 2;
if (lvlDiff >= Config.NPC_SKILL_CHANCE_PENALTY.size())
{
targetModifier = Config.NPC_SKILL_CHANCE_PENALTY.get(Config.NPC_SKILL_CHANCE_PENALTY.size() - 1);
}
else
{
targetModifier = Config.NPC_SKILL_CHANCE_PENALTY.get(lvlDiff);
}
}
return Rnd.get(100) < (100 - Math.round((float) (lvlModifier * targetModifier)));
return Formulas.calcMagicSuccess(effector, effected, skill);
}
@Override