DivineSummoner.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package transformations;
  2. import com.l2jserver.gameserver.datatables.SkillTable;
  3. import com.l2jserver.gameserver.instancemanager.TransformationManager;
  4. import com.l2jserver.gameserver.model.L2Transformation;
  5. public class DivineSummoner extends L2Transformation
  6. {
  7. private static final int[] SKILLS = {710,711,712,713,714,5779,619};
  8. public DivineSummoner()
  9. {
  10. // id, colRadius, colHeight
  11. super(258, 10, 25);
  12. }
  13. @Override
  14. public void onTransform()
  15. {
  16. if (getPlayer().getTransformationId() != 258 || getPlayer().isCursedWeaponEquipped())
  17. return;
  18. if (getPlayer().getPet() != null)
  19. getPlayer().getPet().unSummon(getPlayer());
  20. transformedSkills();
  21. }
  22. public void transformedSkills()
  23. {
  24. // Divine Summoner Summon Divine Beast
  25. getPlayer().addSkill(SkillTable.getInstance().getInfo(710, 1), false);
  26. // Divine Summoner Transfer Pain
  27. getPlayer().addSkill(SkillTable.getInstance().getInfo(711, 1), false);
  28. // Divine Summoner Final Servitor
  29. getPlayer().addSkill(SkillTable.getInstance().getInfo(712, 1), false);
  30. // Divine Summoner Servitor Hill
  31. getPlayer().addSkill(SkillTable.getInstance().getInfo(713, 1), false);
  32. // Sacrifice Summoner
  33. getPlayer().addSkill(SkillTable.getInstance().getInfo(714, 1), false);
  34. // Decrease Bow/Crossbow Attack Speed
  35. getPlayer().addSkill(SkillTable.getInstance().getInfo(5491, 1), false);
  36. // Transform Dispel
  37. getPlayer().addSkill(SkillTable.getInstance().getInfo(619, 1), false);
  38. getPlayer().setTransformAllowedSkills(SKILLS);
  39. }
  40. @Override
  41. public void onUntransform()
  42. {
  43. if (getPlayer().getPet() != null)
  44. getPlayer().getPet().unSummon(getPlayer());
  45. removeSkills();
  46. }
  47. public void removeSkills()
  48. {
  49. // Divine Summoner Summon Divine Beast
  50. getPlayer().removeSkill(SkillTable.getInstance().getInfo(710, 1), false);
  51. // Divine Summoner Transfer Pain
  52. getPlayer().removeSkill(SkillTable.getInstance().getInfo(711, 1), false);
  53. // Divine Summoner Final Servitor
  54. getPlayer().removeSkill(SkillTable.getInstance().getInfo(712, 1), false);
  55. // Divine Summoner Servitor Hill
  56. getPlayer().removeSkill(SkillTable.getInstance().getInfo(713, 1), false);
  57. // Sacrifice Summoner
  58. getPlayer().removeSkill(SkillTable.getInstance().getInfo(714, 1), false, false);
  59. // Decrease Bow/Crossbow Attack Speed
  60. getPlayer().removeSkill(SkillTable.getInstance().getInfo(5491, 1), false);
  61. // Transform Dispel
  62. getPlayer().removeSkill(SkillTable.getInstance().getInfo(619, 1), false);
  63. getPlayer().setTransformAllowedSkills(EMPTY_ARRAY);
  64. }
  65. public static void main(String[] args)
  66. {
  67. TransformationManager.getInstance().registerTransformation(new DivineSummoner());
  68. }
  69. }