TargetOne.java 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /**
  2. *
  3. */
  4. package handlers.targethandlers;
  5. import com.l2jserver.gameserver.handler.ISkillTargetTypeHandler;
  6. import com.l2jserver.gameserver.model.L2Object;
  7. import com.l2jserver.gameserver.model.L2Skill;
  8. import com.l2jserver.gameserver.model.L2Skill.SkillTargetType;
  9. import com.l2jserver.gameserver.model.actor.L2Character;
  10. import com.l2jserver.gameserver.network.SystemMessageId;
  11. import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
  12. /**
  13. * @author UnAfraid
  14. *
  15. */
  16. public class TargetOne implements ISkillTargetTypeHandler
  17. {
  18. @Override
  19. public L2Object[] getTargetList(L2Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target)
  20. {
  21. boolean canTargetSelf = false;
  22. switch (skill.getSkillType())
  23. {
  24. case BUFF:
  25. case HEAL:
  26. case HOT:
  27. case HEAL_PERCENT:
  28. case MANARECHARGE:
  29. case MANA_BY_LEVEL:
  30. case MANAHEAL:
  31. case NEGATE:
  32. case CANCEL_DEBUFF:
  33. case COMBATPOINTHEAL:
  34. case BALANCE_LIFE:
  35. case HPMPCPHEAL_PERCENT:
  36. case HPMPHEAL_PERCENT:
  37. case HPCPHEAL_PERCENT:
  38. canTargetSelf = true;
  39. break;
  40. }
  41. // Check for null target or any other invalid target
  42. if (target == null || target.isDead() || (target == activeChar && !canTargetSelf))
  43. {
  44. activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.TARGET_IS_INCORRECT));
  45. return _emptyTargetList;
  46. }
  47. // If a target is found, return it in a table else send a system message TARGET_IS_INCORRECT
  48. return new L2Character[] { target };
  49. }
  50. @Override
  51. public Enum<SkillTargetType> getTargetType()
  52. {
  53. return SkillTargetType.TARGET_ONE;
  54. }
  55. }