Skip to content
Snippets Groups Projects
Commit 3b154355 authored by Nos's avatar Nos
Browse files

BETA: Renamed ''`NpcKill`'' effect to ''`Unsummon`''.

    * Implemented retail like chance checks for ''`Unsummon`'' effect.
    * Reviewed By: Zoey76, !UnAfraid
parent ff713f92
No related branches found
No related tags found
No related merge requests found
......@@ -123,7 +123,7 @@ public final class EffectMasterHandler
MpConsumePerLevel.class,
Mute.class,
NoblesseBless.class,
NpcKill.class,
Unsummon.class,
OpenCommonRecipeBook.class,
OpenDwarfRecipeBook.class,
Paralyze.class,
......
......@@ -20,22 +20,26 @@ package handlers.effecthandlers;
import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.instance.L2SiegeSummonInstance;
import com.l2jserver.gameserver.model.effects.EffectTemplate;
import com.l2jserver.gameserver.model.effects.L2Effect;
import com.l2jserver.gameserver.model.effects.L2EffectType;
import com.l2jserver.gameserver.model.stats.Env;
import com.l2jserver.gameserver.model.stats.Formulas;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.util.Rnd;
/**
* Npc Kill effect implementation.
* Unsummon effect implementation.
* @author Adry_85
*/
public class NpcKill extends L2Effect
public class Unsummon extends L2Effect
{
public NpcKill(Env env, EffectTemplate template)
private final int _chance;
public Unsummon(Env env, EffectTemplate template)
{
super(env, template);
_chance = template.hasParameters() ? template.getParameters().getInt("chance", 100) : 100;
}
@Override
......@@ -50,10 +54,26 @@ public class NpcKill extends L2Effect
return true;
}
@Override
public boolean calcSuccess()
{
int magicLevel = getSkill().getMagicLevel();
if ((magicLevel <= 0) || ((getEffected().getLevel() - 9) <= magicLevel))
{
double chance = _chance * Formulas.calcAttributeBonus(getEffector(), getEffected(), getSkill()) * Formulas.calcGeneralTraitBonus(getEffector(), getEffected(), getSkill().getTraitType(), false);
if (chance > (Rnd.nextDouble() * 100))
{
return true;
}
}
return false;
}
@Override
public boolean onStart()
{
if ((getEffected() instanceof L2SiegeSummonInstance))
if (!getEffected().isSummon())
{
return false;
}
......
......@@ -3175,7 +3175,9 @@
<enchant1 name="mpConsume" val="#ench1MpConsume" />
<enchant1 name="mpInitialConsume" val="#ench1mpInitialConsume" />
<for>
<effect name="NpcKill" val="0" />
<effect name="Unsummon" val="0">
<param chance="80" />
</effect>
</for>
</skill>
<skill id="1396" levels="10" name="Magical Backfire" enchantGroup1="1" enchantGroup2="1" enchantGroup3="1">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment