ConsumeBody effect related changes.

This commit is contained in:
MobiusDev
2018-11-27 18:03:49 +00:00
parent 47b70675c4
commit 3e0b281e89
30 changed files with 150 additions and 50 deletions

View File

@@ -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;
}
if (effected.isNpc())
{
((L2Npc) effected).endDecayTask();
}
else
{
((L2Summon) effected).deleteMe();
}
}
}

View File

@@ -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())
{

View File

@@ -314,6 +314,7 @@
<value level="6">364</value>
</power>
</effect>
<effect name="ConsumeBody" />
</pveEffects>
<pvpEffects>
<effect name="MagicalAttack">

View File

@@ -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;
}
if (effected.isNpc())
{
((L2Npc) effected).endDecayTask();
}
else
{
((L2Summon) effected).deleteMe();
}
}
}

View File

@@ -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())
{

View File

@@ -314,6 +314,7 @@
<value level="6">364</value>
</power>
</effect>
<effect name="ConsumeBody" />
</pveEffects>
<pvpEffects>
<effect name="MagicalAttack">

View File

@@ -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;
}
if (effected.isNpc())
{
((L2Npc) effected).endDecayTask();
}
else
{
((L2Summon) effected).deleteMe();
}
}
}

View File

@@ -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())
{

View File

@@ -314,6 +314,7 @@
<value level="6">364</value>
</power>
</effect>
<effect name="ConsumeBody" />
</pveEffects>
<pvpEffects>
<effect name="MagicalAttack">

View File

@@ -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;
}
if (effected.isNpc())
{
((L2Npc) effected).endDecayTask();
}
else
{
((L2Summon) effected).deleteMe();
}
}
}

View File

@@ -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())
{

View File

@@ -314,6 +314,7 @@
<value level="6">364</value>
</power>
</effect>
<effect name="ConsumeBody" />
</pveEffects>
<pvpEffects>
<effect name="MagicalAttack">

View File

@@ -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;
}
if (effected.isNpc())
{
((L2Npc) effected).endDecayTask();
}
else
{
((L2Summon) effected).deleteMe();
}
}
}

View File

@@ -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())
{

View File

@@ -314,6 +314,7 @@
<value level="6">364</value>
</power>
</effect>
<effect name="ConsumeBody" />
</pveEffects>
<pvpEffects>
<effect name="MagicalAttack">

View File

@@ -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;
}
if (effected.isNpc())
{
((L2Npc) effected).endDecayTask();
}
else
{
((L2Summon) effected).deleteMe();
}
}
}

View File

@@ -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())
{

View File

@@ -314,6 +314,7 @@
<value level="6">364</value>
</power>
</effect>
<effect name="ConsumeBody" />
</pveEffects>
<pvpEffects>
<effect name="MagicalAttack">

View File

@@ -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;
}
if (effected.isNpc())
{
((L2Npc) effected).endDecayTask();
}
else
{
((L2Summon) effected).deleteMe();
}
}
}

View File

@@ -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())
{

View File

@@ -314,6 +314,7 @@
<value level="6">364</value>
</power>
</effect>
<effect name="ConsumeBody" />
</pveEffects>
<pvpEffects>
<effect name="MagicalAttack">

View File

@@ -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;
}
if (effected.isNpc())
{
((L2Npc) effected).endDecayTask();
}
else
{
((L2Summon) effected).deleteMe();
}
}
}

View File

@@ -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())
{

View File

@@ -314,6 +314,7 @@
<value level="6">364</value>
</power>
</effect>
<effect name="ConsumeBody" />
</pveEffects>
<pvpEffects>
<effect name="MagicalAttack">

View File

@@ -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;
}
if (effected.isNpc())
{
((L2Npc) effected).endDecayTask();
}
else
{
((L2Summon) effected).deleteMe();
}
}
}

View File

@@ -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())
{

View File

@@ -314,6 +314,7 @@
<value level="6">364</value>
</power>
</effect>
<effect name="ConsumeBody" />
</pveEffects>
<pvpEffects>
<effect name="MagicalAttack">

View File

@@ -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;
}
if (effected.isNpc())
{
((L2Npc) effected).endDecayTask();
}
else
{
((L2Summon) effected).deleteMe();
}
}
}

View File

@@ -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())
{

View File

@@ -314,6 +314,7 @@
<value level="6">364</value>
</power>
</effect>
<effect name="ConsumeBody" />
</pveEffects>
<pvpEffects>
<effect name="MagicalAttack">