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"> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 MobiusDev
					MobiusDev