TargetUndead.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /**
  2. *
  3. */
  4. package handlers.targethandlers;
  5. import java.util.List;
  6. import javolution.util.FastList;
  7. import com.l2jserver.gameserver.handler.ISkillTargetTypeHandler;
  8. import com.l2jserver.gameserver.model.L2Object;
  9. import com.l2jserver.gameserver.model.L2Skill;
  10. import com.l2jserver.gameserver.model.L2Skill.SkillTargetType;
  11. import com.l2jserver.gameserver.model.actor.L2Character;
  12. import com.l2jserver.gameserver.model.actor.L2Npc;
  13. import com.l2jserver.gameserver.model.actor.instance.L2SummonInstance;
  14. import com.l2jserver.gameserver.network.SystemMessageId;
  15. import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
  16. /**
  17. * @author UnAfraid
  18. *
  19. */
  20. public class TargetUndead implements ISkillTargetTypeHandler
  21. {
  22. @Override
  23. public L2Object[] getTargetList(L2Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target)
  24. {
  25. List<L2Character> targetList = new FastList<L2Character>();
  26. if (target instanceof L2Npc || target instanceof L2SummonInstance)
  27. {
  28. if (!target.isUndead() || target.isDead())
  29. {
  30. activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.TARGET_IS_INCORRECT));
  31. return _emptyTargetList;
  32. }
  33. if (!onlyFirst)
  34. targetList.add(target);
  35. else
  36. return new L2Character[] { target };
  37. return targetList.toArray(new L2Object[targetList.size()]);
  38. }
  39. else
  40. {
  41. activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.TARGET_IS_INCORRECT));
  42. return _emptyTargetList;
  43. }
  44. }
  45. @Override
  46. public Enum<SkillTargetType> getTargetType()
  47. {
  48. return SkillTargetType.TARGET_UNDEAD;
  49. }
  50. }