/** * */ package handlers.targethandlers; import java.util.List; import javolution.util.FastList; import com.l2jserver.gameserver.handler.ISkillTargetTypeHandler; import com.l2jserver.gameserver.model.L2Object; import com.l2jserver.gameserver.model.L2Skill; import com.l2jserver.gameserver.model.L2Skill.SkillTargetType; import com.l2jserver.gameserver.model.actor.L2Character; import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2SummonInstance; import com.l2jserver.gameserver.network.SystemMessageId; import com.l2jserver.gameserver.network.serverpackets.SystemMessage; /** * @author UnAfraid * */ public class TargetUndead implements ISkillTargetTypeHandler { @Override public L2Object[] getTargetList(L2Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target) { List targetList = new FastList(); if (target instanceof L2Npc || target instanceof L2SummonInstance) { if (!target.isUndead() || target.isDead()) { activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.TARGET_IS_INCORRECT)); return _emptyTargetList; } if (!onlyFirst) targetList.add(target); else return new L2Character[] { target }; return targetList.toArray(new L2Object[targetList.size()]); } else { activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.TARGET_IS_INCORRECT)); return _emptyTargetList; } } @Override public Enum getTargetType() { return SkillTargetType.TARGET_UNDEAD; } }