DivineRogue.java 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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 DivineRogue extends L2Transformation
  6. {
  7. private static final int[] SKILLS = {686,687,688,689,690,691,797,5491,619};
  8. public DivineRogue()
  9. {
  10. // id, colRadius, colHeight
  11. super(254, 10, 28);
  12. }
  13. @Override
  14. public void onTransform()
  15. {
  16. if (getPlayer().getTransformationId() != 254 || getPlayer().isCursedWeaponEquipped())
  17. return;
  18. transformedSkills();
  19. }
  20. public void transformedSkills()
  21. {
  22. // Divine Rogue Stun Shot
  23. getPlayer().addSkill(SkillTable.getInstance().getInfo(686, 1), false);
  24. // Divine Rogue Double Shot
  25. getPlayer().addSkill(SkillTable.getInstance().getInfo(687, 1), false);
  26. // Divine Rogue Bleed Attack
  27. getPlayer().addSkill(SkillTable.getInstance().getInfo(688, 1), false);
  28. // Divine Rogue Deadly Blow
  29. getPlayer().addSkill(SkillTable.getInstance().getInfo(689, 1), false);
  30. // Divine Rogue Agility
  31. getPlayer().addSkill(SkillTable.getInstance().getInfo(690, 1), false);
  32. // Sacrifice Rogue
  33. getPlayer().addSkill(SkillTable.getInstance().getInfo(691, 1), false);
  34. // Divine Rogue Piercing Attack
  35. getPlayer().addSkill(SkillTable.getInstance().getInfo(797, 1), false);
  36. // Decrease Bow/Crossbow Attack Speed
  37. getPlayer().addSkill(SkillTable.getInstance().getInfo(5491, 1), false);
  38. // Transform Dispel
  39. getPlayer().addSkill(SkillTable.getInstance().getInfo(619, 1), false);
  40. getPlayer().setTransformAllowedSkills(SKILLS);
  41. }
  42. @Override
  43. public void onUntransform()
  44. {
  45. removeSkills();
  46. }
  47. public void removeSkills()
  48. {
  49. // Divine Rogue Stun Shot
  50. getPlayer().removeSkill(SkillTable.getInstance().getInfo(686, 1), false);
  51. // Divine Rogue Double Shot
  52. getPlayer().removeSkill(SkillTable.getInstance().getInfo(687, 1), false);
  53. // Divine Rogue Bleed Attack
  54. getPlayer().removeSkill(SkillTable.getInstance().getInfo(688, 1), false);
  55. // Divine Rogue Deadly Blow
  56. getPlayer().removeSkill(SkillTable.getInstance().getInfo(689, 1), false);
  57. // Divine Rogue Agility
  58. getPlayer().removeSkill(SkillTable.getInstance().getInfo(690, 1), false, false);
  59. // Sacrifice Rogue
  60. getPlayer().removeSkill(SkillTable.getInstance().getInfo(691, 1), false, false);
  61. // Divine Rogue Piercing Attack
  62. getPlayer().removeSkill(SkillTable.getInstance().getInfo(797, 1), false);
  63. // Decrease Bow/Crossbow Attack Speed
  64. getPlayer().removeSkill(SkillTable.getInstance().getInfo(5491, 1), false);
  65. // Transform Dispel
  66. getPlayer().removeSkill(SkillTable.getInstance().getInfo(619, 1), false);
  67. getPlayer().setTransformAllowedSkills(EMPTY_ARRAY);
  68. }
  69. public static void main(String[] args)
  70. {
  71. TransformationManager.getInstance().registerTransformation(new DivineRogue());
  72. }
  73. }