ConsumeBody effect related changes.
This commit is contained in:
@@ -19,13 +19,14 @@ package handlers.effecthandlers;
|
||||
import com.l2jmobius.gameserver.model.StatsSet;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Summon;
|
||||
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
/**
|
||||
* Consume Body effect implementation.
|
||||
* @author Zoey76
|
||||
* @author Mobius
|
||||
*/
|
||||
public final class ConsumeBody extends AbstractEffect
|
||||
{
|
||||
@@ -42,11 +43,18 @@ public final class ConsumeBody extends AbstractEffect
|
||||
@Override
|
||||
public void instant(L2Character effector, L2Character effected, Skill skill, L2ItemInstance item)
|
||||
{
|
||||
if (!effected.isNpc() || !effected.isDead())
|
||||
if (!effected.isDead() || (!effected.isNpc() && !effected.isSummon()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
((L2Npc) effected).endDecayTask();
|
||||
if (effected.isNpc())
|
||||
{
|
||||
((L2Npc) effected).endDecayTask();
|
||||
}
|
||||
else
|
||||
{
|
||||
((L2Summon) effected).deleteMe();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -46,6 +46,7 @@ public class Range implements IAffectScopeHandler
|
||||
final int affectLimit = skill.getAffectLimit();
|
||||
|
||||
// Target checks.
|
||||
final TargetType targetType = skill.getTargetType();
|
||||
final AtomicInteger affected = new AtomicInteger(0);
|
||||
final Predicate<L2Character> filter = c ->
|
||||
{
|
||||
@@ -53,7 +54,7 @@ public class Range implements IAffectScopeHandler
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (c.isDead())
|
||||
if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -75,7 +76,7 @@ public class Range implements IAffectScopeHandler
|
||||
};
|
||||
|
||||
// Check and add targets.
|
||||
if (skill.getTargetType() == TargetType.GROUND)
|
||||
if (targetType == TargetType.GROUND)
|
||||
{
|
||||
if (activeChar.isPlayable())
|
||||
{
|
||||
|
@@ -314,6 +314,7 @@
|
||||
<value level="6">364</value>
|
||||
</power>
|
||||
</effect>
|
||||
<effect name="ConsumeBody" />
|
||||
</pveEffects>
|
||||
<pvpEffects>
|
||||
<effect name="MagicalAttack">
|
||||
|
@@ -19,13 +19,14 @@ package handlers.effecthandlers;
|
||||
import com.l2jmobius.gameserver.model.StatsSet;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Summon;
|
||||
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
/**
|
||||
* Consume Body effect implementation.
|
||||
* @author Zoey76
|
||||
* @author Mobius
|
||||
*/
|
||||
public final class ConsumeBody extends AbstractEffect
|
||||
{
|
||||
@@ -42,11 +43,18 @@ public final class ConsumeBody extends AbstractEffect
|
||||
@Override
|
||||
public void instant(L2Character effector, L2Character effected, Skill skill, L2ItemInstance item)
|
||||
{
|
||||
if (!effected.isNpc() || !effected.isDead())
|
||||
if (!effected.isDead() || (!effected.isNpc() && !effected.isSummon()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
((L2Npc) effected).endDecayTask();
|
||||
if (effected.isNpc())
|
||||
{
|
||||
((L2Npc) effected).endDecayTask();
|
||||
}
|
||||
else
|
||||
{
|
||||
((L2Summon) effected).deleteMe();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -46,6 +46,7 @@ public class Range implements IAffectScopeHandler
|
||||
final int affectLimit = skill.getAffectLimit();
|
||||
|
||||
// Target checks.
|
||||
final TargetType targetType = skill.getTargetType();
|
||||
final AtomicInteger affected = new AtomicInteger(0);
|
||||
final Predicate<L2Character> filter = c ->
|
||||
{
|
||||
@@ -53,7 +54,7 @@ public class Range implements IAffectScopeHandler
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (c.isDead())
|
||||
if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -75,7 +76,7 @@ public class Range implements IAffectScopeHandler
|
||||
};
|
||||
|
||||
// Check and add targets.
|
||||
if (skill.getTargetType() == TargetType.GROUND)
|
||||
if (targetType == TargetType.GROUND)
|
||||
{
|
||||
if (activeChar.isPlayable())
|
||||
{
|
||||
|
@@ -314,6 +314,7 @@
|
||||
<value level="6">364</value>
|
||||
</power>
|
||||
</effect>
|
||||
<effect name="ConsumeBody" />
|
||||
</pveEffects>
|
||||
<pvpEffects>
|
||||
<effect name="MagicalAttack">
|
||||
|
@@ -19,13 +19,14 @@ package handlers.effecthandlers;
|
||||
import com.l2jmobius.gameserver.model.StatsSet;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Summon;
|
||||
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
/**
|
||||
* Consume Body effect implementation.
|
||||
* @author Zoey76
|
||||
* @author Mobius
|
||||
*/
|
||||
public final class ConsumeBody extends AbstractEffect
|
||||
{
|
||||
@@ -42,11 +43,18 @@ public final class ConsumeBody extends AbstractEffect
|
||||
@Override
|
||||
public void instant(L2Character effector, L2Character effected, Skill skill, L2ItemInstance item)
|
||||
{
|
||||
if (!effected.isNpc() || !effected.isDead())
|
||||
if (!effected.isDead() || (!effected.isNpc() && !effected.isSummon()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
((L2Npc) effected).endDecayTask();
|
||||
if (effected.isNpc())
|
||||
{
|
||||
((L2Npc) effected).endDecayTask();
|
||||
}
|
||||
else
|
||||
{
|
||||
((L2Summon) effected).deleteMe();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -46,6 +46,7 @@ public class Range implements IAffectScopeHandler
|
||||
final int affectLimit = skill.getAffectLimit();
|
||||
|
||||
// Target checks.
|
||||
final TargetType targetType = skill.getTargetType();
|
||||
final AtomicInteger affected = new AtomicInteger(0);
|
||||
final Predicate<L2Character> filter = c ->
|
||||
{
|
||||
@@ -53,7 +54,7 @@ public class Range implements IAffectScopeHandler
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (c.isDead())
|
||||
if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -75,7 +76,7 @@ public class Range implements IAffectScopeHandler
|
||||
};
|
||||
|
||||
// Check and add targets.
|
||||
if (skill.getTargetType() == TargetType.GROUND)
|
||||
if (targetType == TargetType.GROUND)
|
||||
{
|
||||
if (activeChar.isPlayable())
|
||||
{
|
||||
|
@@ -314,6 +314,7 @@
|
||||
<value level="6">364</value>
|
||||
</power>
|
||||
</effect>
|
||||
<effect name="ConsumeBody" />
|
||||
</pveEffects>
|
||||
<pvpEffects>
|
||||
<effect name="MagicalAttack">
|
||||
|
@@ -19,13 +19,14 @@ package handlers.effecthandlers;
|
||||
import com.l2jmobius.gameserver.model.StatsSet;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Summon;
|
||||
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
/**
|
||||
* Consume Body effect implementation.
|
||||
* @author Zoey76
|
||||
* @author Mobius
|
||||
*/
|
||||
public final class ConsumeBody extends AbstractEffect
|
||||
{
|
||||
@@ -42,11 +43,18 @@ public final class ConsumeBody extends AbstractEffect
|
||||
@Override
|
||||
public void instant(L2Character effector, L2Character effected, Skill skill, L2ItemInstance item)
|
||||
{
|
||||
if (!effected.isNpc() || !effected.isDead())
|
||||
if (!effected.isDead() || (!effected.isNpc() && !effected.isSummon()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
((L2Npc) effected).endDecayTask();
|
||||
if (effected.isNpc())
|
||||
{
|
||||
((L2Npc) effected).endDecayTask();
|
||||
}
|
||||
else
|
||||
{
|
||||
((L2Summon) effected).deleteMe();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -46,6 +46,7 @@ public class Range implements IAffectScopeHandler
|
||||
final int affectLimit = skill.getAffectLimit();
|
||||
|
||||
// Target checks.
|
||||
final TargetType targetType = skill.getTargetType();
|
||||
final AtomicInteger affected = new AtomicInteger(0);
|
||||
final Predicate<L2Character> filter = c ->
|
||||
{
|
||||
@@ -53,7 +54,7 @@ public class Range implements IAffectScopeHandler
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (c.isDead())
|
||||
if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -75,7 +76,7 @@ public class Range implements IAffectScopeHandler
|
||||
};
|
||||
|
||||
// Check and add targets.
|
||||
if (skill.getTargetType() == TargetType.GROUND)
|
||||
if (targetType == TargetType.GROUND)
|
||||
{
|
||||
if (activeChar.isPlayable())
|
||||
{
|
||||
|
@@ -314,6 +314,7 @@
|
||||
<value level="6">364</value>
|
||||
</power>
|
||||
</effect>
|
||||
<effect name="ConsumeBody" />
|
||||
</pveEffects>
|
||||
<pvpEffects>
|
||||
<effect name="MagicalAttack">
|
||||
|
@@ -19,13 +19,14 @@ package handlers.effecthandlers;
|
||||
import com.l2jmobius.gameserver.model.StatsSet;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Summon;
|
||||
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
/**
|
||||
* Consume Body effect implementation.
|
||||
* @author Zoey76
|
||||
* @author Mobius
|
||||
*/
|
||||
public final class ConsumeBody extends AbstractEffect
|
||||
{
|
||||
@@ -42,11 +43,18 @@ public final class ConsumeBody extends AbstractEffect
|
||||
@Override
|
||||
public void instant(L2Character effector, L2Character effected, Skill skill, L2ItemInstance item)
|
||||
{
|
||||
if (!effected.isNpc() || !effected.isDead())
|
||||
if (!effected.isDead() || (!effected.isNpc() && !effected.isSummon()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
((L2Npc) effected).endDecayTask();
|
||||
if (effected.isNpc())
|
||||
{
|
||||
((L2Npc) effected).endDecayTask();
|
||||
}
|
||||
else
|
||||
{
|
||||
((L2Summon) effected).deleteMe();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -46,6 +46,7 @@ public class Range implements IAffectScopeHandler
|
||||
final int affectLimit = skill.getAffectLimit();
|
||||
|
||||
// Target checks.
|
||||
final TargetType targetType = skill.getTargetType();
|
||||
final AtomicInteger affected = new AtomicInteger(0);
|
||||
final Predicate<L2Character> filter = c ->
|
||||
{
|
||||
@@ -53,7 +54,7 @@ public class Range implements IAffectScopeHandler
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (c.isDead())
|
||||
if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -75,7 +76,7 @@ public class Range implements IAffectScopeHandler
|
||||
};
|
||||
|
||||
// Check and add targets.
|
||||
if (skill.getTargetType() == TargetType.GROUND)
|
||||
if (targetType == TargetType.GROUND)
|
||||
{
|
||||
if (activeChar.isPlayable())
|
||||
{
|
||||
|
@@ -314,6 +314,7 @@
|
||||
<value level="6">364</value>
|
||||
</power>
|
||||
</effect>
|
||||
<effect name="ConsumeBody" />
|
||||
</pveEffects>
|
||||
<pvpEffects>
|
||||
<effect name="MagicalAttack">
|
||||
|
@@ -19,13 +19,14 @@ package handlers.effecthandlers;
|
||||
import com.l2jmobius.gameserver.model.StatsSet;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Summon;
|
||||
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
/**
|
||||
* Consume Body effect implementation.
|
||||
* @author Zoey76
|
||||
* @author Mobius
|
||||
*/
|
||||
public final class ConsumeBody extends AbstractEffect
|
||||
{
|
||||
@@ -42,11 +43,18 @@ public final class ConsumeBody extends AbstractEffect
|
||||
@Override
|
||||
public void instant(L2Character effector, L2Character effected, Skill skill, L2ItemInstance item)
|
||||
{
|
||||
if (!effected.isNpc() || !effected.isDead())
|
||||
if (!effected.isDead() || (!effected.isNpc() && !effected.isSummon()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
((L2Npc) effected).endDecayTask();
|
||||
if (effected.isNpc())
|
||||
{
|
||||
((L2Npc) effected).endDecayTask();
|
||||
}
|
||||
else
|
||||
{
|
||||
((L2Summon) effected).deleteMe();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -46,6 +46,7 @@ public class Range implements IAffectScopeHandler
|
||||
final int affectLimit = skill.getAffectLimit();
|
||||
|
||||
// Target checks.
|
||||
final TargetType targetType = skill.getTargetType();
|
||||
final AtomicInteger affected = new AtomicInteger(0);
|
||||
final Predicate<L2Character> filter = c ->
|
||||
{
|
||||
@@ -53,7 +54,7 @@ public class Range implements IAffectScopeHandler
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (c.isDead())
|
||||
if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -75,7 +76,7 @@ public class Range implements IAffectScopeHandler
|
||||
};
|
||||
|
||||
// Check and add targets.
|
||||
if (skill.getTargetType() == TargetType.GROUND)
|
||||
if (targetType == TargetType.GROUND)
|
||||
{
|
||||
if (activeChar.isPlayable())
|
||||
{
|
||||
|
@@ -314,6 +314,7 @@
|
||||
<value level="6">364</value>
|
||||
</power>
|
||||
</effect>
|
||||
<effect name="ConsumeBody" />
|
||||
</pveEffects>
|
||||
<pvpEffects>
|
||||
<effect name="MagicalAttack">
|
||||
|
@@ -19,13 +19,14 @@ package handlers.effecthandlers;
|
||||
import com.l2jmobius.gameserver.model.StatsSet;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Summon;
|
||||
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
/**
|
||||
* Consume Body effect implementation.
|
||||
* @author Zoey76
|
||||
* @author Mobius
|
||||
*/
|
||||
public final class ConsumeBody extends AbstractEffect
|
||||
{
|
||||
@@ -42,11 +43,18 @@ public final class ConsumeBody extends AbstractEffect
|
||||
@Override
|
||||
public void instant(L2Character effector, L2Character effected, Skill skill, L2ItemInstance item)
|
||||
{
|
||||
if (!effected.isNpc() || !effected.isDead())
|
||||
if (!effected.isDead() || (!effected.isNpc() && !effected.isSummon()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
((L2Npc) effected).endDecayTask();
|
||||
if (effected.isNpc())
|
||||
{
|
||||
((L2Npc) effected).endDecayTask();
|
||||
}
|
||||
else
|
||||
{
|
||||
((L2Summon) effected).deleteMe();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -46,6 +46,7 @@ public class Range implements IAffectScopeHandler
|
||||
final int affectLimit = skill.getAffectLimit();
|
||||
|
||||
// Target checks.
|
||||
final TargetType targetType = skill.getTargetType();
|
||||
final AtomicInteger affected = new AtomicInteger(0);
|
||||
final Predicate<L2Character> filter = c ->
|
||||
{
|
||||
@@ -53,7 +54,7 @@ public class Range implements IAffectScopeHandler
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (c.isDead())
|
||||
if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -75,7 +76,7 @@ public class Range implements IAffectScopeHandler
|
||||
};
|
||||
|
||||
// Check and add targets.
|
||||
if (skill.getTargetType() == TargetType.GROUND)
|
||||
if (targetType == TargetType.GROUND)
|
||||
{
|
||||
if (activeChar.isPlayable())
|
||||
{
|
||||
|
@@ -314,6 +314,7 @@
|
||||
<value level="6">364</value>
|
||||
</power>
|
||||
</effect>
|
||||
<effect name="ConsumeBody" />
|
||||
</pveEffects>
|
||||
<pvpEffects>
|
||||
<effect name="MagicalAttack">
|
||||
|
@@ -19,13 +19,14 @@ package handlers.effecthandlers;
|
||||
import com.l2jmobius.gameserver.model.StatsSet;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Summon;
|
||||
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
/**
|
||||
* Consume Body effect implementation.
|
||||
* @author Zoey76
|
||||
* @author Mobius
|
||||
*/
|
||||
public final class ConsumeBody extends AbstractEffect
|
||||
{
|
||||
@@ -42,11 +43,18 @@ public final class ConsumeBody extends AbstractEffect
|
||||
@Override
|
||||
public void instant(L2Character effector, L2Character effected, Skill skill, L2ItemInstance item)
|
||||
{
|
||||
if (!effected.isNpc() || !effected.isDead())
|
||||
if (!effected.isDead() || (!effected.isNpc() && !effected.isSummon()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
((L2Npc) effected).endDecayTask();
|
||||
if (effected.isNpc())
|
||||
{
|
||||
((L2Npc) effected).endDecayTask();
|
||||
}
|
||||
else
|
||||
{
|
||||
((L2Summon) effected).deleteMe();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -46,6 +46,7 @@ public class Range implements IAffectScopeHandler
|
||||
final int affectLimit = skill.getAffectLimit();
|
||||
|
||||
// Target checks.
|
||||
final TargetType targetType = skill.getTargetType();
|
||||
final AtomicInteger affected = new AtomicInteger(0);
|
||||
final Predicate<L2Character> filter = c ->
|
||||
{
|
||||
@@ -53,7 +54,7 @@ public class Range implements IAffectScopeHandler
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (c.isDead())
|
||||
if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -75,7 +76,7 @@ public class Range implements IAffectScopeHandler
|
||||
};
|
||||
|
||||
// Check and add targets.
|
||||
if (skill.getTargetType() == TargetType.GROUND)
|
||||
if (targetType == TargetType.GROUND)
|
||||
{
|
||||
if (activeChar.isPlayable())
|
||||
{
|
||||
|
@@ -314,6 +314,7 @@
|
||||
<value level="6">364</value>
|
||||
</power>
|
||||
</effect>
|
||||
<effect name="ConsumeBody" />
|
||||
</pveEffects>
|
||||
<pvpEffects>
|
||||
<effect name="MagicalAttack">
|
||||
|
@@ -19,13 +19,14 @@ package handlers.effecthandlers;
|
||||
import com.l2jmobius.gameserver.model.StatsSet;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Summon;
|
||||
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
/**
|
||||
* Consume Body effect implementation.
|
||||
* @author Zoey76
|
||||
* @author Mobius
|
||||
*/
|
||||
public final class ConsumeBody extends AbstractEffect
|
||||
{
|
||||
@@ -42,11 +43,18 @@ public final class ConsumeBody extends AbstractEffect
|
||||
@Override
|
||||
public void instant(L2Character effector, L2Character effected, Skill skill, L2ItemInstance item)
|
||||
{
|
||||
if (!effected.isNpc() || !effected.isDead())
|
||||
if (!effected.isDead() || (!effected.isNpc() && !effected.isSummon()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
((L2Npc) effected).endDecayTask();
|
||||
if (effected.isNpc())
|
||||
{
|
||||
((L2Npc) effected).endDecayTask();
|
||||
}
|
||||
else
|
||||
{
|
||||
((L2Summon) effected).deleteMe();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -46,6 +46,7 @@ public class Range implements IAffectScopeHandler
|
||||
final int affectLimit = skill.getAffectLimit();
|
||||
|
||||
// Target checks.
|
||||
final TargetType targetType = skill.getTargetType();
|
||||
final AtomicInteger affected = new AtomicInteger(0);
|
||||
final Predicate<L2Character> filter = c ->
|
||||
{
|
||||
@@ -53,7 +54,7 @@ public class Range implements IAffectScopeHandler
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (c.isDead())
|
||||
if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -75,7 +76,7 @@ public class Range implements IAffectScopeHandler
|
||||
};
|
||||
|
||||
// Check and add targets.
|
||||
if (skill.getTargetType() == TargetType.GROUND)
|
||||
if (targetType == TargetType.GROUND)
|
||||
{
|
||||
if (activeChar.isPlayable())
|
||||
{
|
||||
|
@@ -314,6 +314,7 @@
|
||||
<value level="6">364</value>
|
||||
</power>
|
||||
</effect>
|
||||
<effect name="ConsumeBody" />
|
||||
</pveEffects>
|
||||
<pvpEffects>
|
||||
<effect name="MagicalAttack">
|
||||
|
@@ -19,13 +19,14 @@ package handlers.effecthandlers;
|
||||
import com.l2jmobius.gameserver.model.StatsSet;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Summon;
|
||||
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
||||
|
||||
/**
|
||||
* Consume Body effect implementation.
|
||||
* @author Zoey76
|
||||
* @author Mobius
|
||||
*/
|
||||
public final class ConsumeBody extends AbstractEffect
|
||||
{
|
||||
@@ -42,11 +43,18 @@ public final class ConsumeBody extends AbstractEffect
|
||||
@Override
|
||||
public void instant(L2Character effector, L2Character effected, Skill skill, L2ItemInstance item)
|
||||
{
|
||||
if (!effected.isNpc() || !effected.isDead())
|
||||
if (!effected.isDead() || (!effected.isNpc() && !effected.isSummon()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
((L2Npc) effected).endDecayTask();
|
||||
if (effected.isNpc())
|
||||
{
|
||||
((L2Npc) effected).endDecayTask();
|
||||
}
|
||||
else
|
||||
{
|
||||
((L2Summon) effected).deleteMe();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -46,6 +46,7 @@ public class Range implements IAffectScopeHandler
|
||||
final int affectLimit = skill.getAffectLimit();
|
||||
|
||||
// Target checks.
|
||||
final TargetType targetType = skill.getTargetType();
|
||||
final AtomicInteger affected = new AtomicInteger(0);
|
||||
final Predicate<L2Character> filter = c ->
|
||||
{
|
||||
@@ -53,7 +54,7 @@ public class Range implements IAffectScopeHandler
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (c.isDead())
|
||||
if (c.isDead() && (targetType != TargetType.NPC_BODY) && (targetType != TargetType.PC_BODY))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -75,7 +76,7 @@ public class Range implements IAffectScopeHandler
|
||||
};
|
||||
|
||||
// Check and add targets.
|
||||
if (skill.getTargetType() == TargetType.GROUND)
|
||||
if (targetType == TargetType.GROUND)
|
||||
{
|
||||
if (activeChar.isPlayable())
|
||||
{
|
||||
|
@@ -314,6 +314,7 @@
|
||||
<value level="6">364</value>
|
||||
</power>
|
||||
</effect>
|
||||
<effect name="ConsumeBody" />
|
||||
</pveEffects>
|
||||
<pvpEffects>
|
||||
<effect name="MagicalAttack">
|
||||
|
Reference in New Issue
Block a user