DollBlader.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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 DollBlader extends L2Transformation
  6. {
  7. private static final int[] SKILLS = {752,753,754,5491,619};
  8. public DollBlader()
  9. {
  10. // id, colRadius, colHeight
  11. super(7, 6, 12);
  12. }
  13. @Override
  14. public void onTransform()
  15. {
  16. if (getPlayer().getTransformationId() != 7 || getPlayer().isCursedWeaponEquipped())
  17. return;
  18. transformedSkills();
  19. }
  20. public void transformedSkills()
  21. {
  22. // Doll Blader Clairvoyance
  23. getPlayer().addSkill(SkillTable.getInstance().getInfo(754, 1), false);
  24. if (getPlayer().getLevel() >= 76)
  25. {
  26. // Doll Blader Sting (up to 3 levels)
  27. getPlayer().addSkill(SkillTable.getInstance().getInfo(752, 3), false);
  28. // Doll Blader Throwing Knife (up to 3 levels)
  29. getPlayer().addSkill(SkillTable.getInstance().getInfo(753, 3), false);
  30. }
  31. else if (getPlayer().getLevel() >= 73)
  32. {
  33. // Doll Blader Sting (up to 3 levels)
  34. getPlayer().addSkill(SkillTable.getInstance().getInfo(752, 2), false);
  35. // Doll Blader Throwing Knife (up to 3 levels)
  36. getPlayer().addSkill(SkillTable.getInstance().getInfo(753, 2), false);
  37. }
  38. else if (getPlayer().getLevel() >= 70)
  39. {
  40. // Doll Blader Sting (up to 3 levels)
  41. getPlayer().addSkill(SkillTable.getInstance().getInfo(752, 1), false);
  42. // Doll Blader Throwing Knife (up to 3 levels)
  43. getPlayer().addSkill(SkillTable.getInstance().getInfo(753, 1), false);
  44. }
  45. // Decrease Bow/Crossbow Attack Speed
  46. getPlayer().addSkill(SkillTable.getInstance().getInfo(5491, 1), false);
  47. // Transform Dispel
  48. getPlayer().addSkill(SkillTable.getInstance().getInfo(619, 1), false);
  49. getPlayer().setTransformAllowedSkills(SKILLS);
  50. }
  51. @Override
  52. public void onUntransform()
  53. {
  54. removeSkills();
  55. }
  56. public void removeSkills()
  57. {
  58. // Doll Blader Clairvoyance
  59. getPlayer().removeSkill(SkillTable.getInstance().getInfo(754, 1), false, false);
  60. if (getPlayer().getLevel() >= 76)
  61. {
  62. // Doll Blader Sting (up to 3 levels)
  63. getPlayer().removeSkill(SkillTable.getInstance().getInfo(752, 3), false);
  64. // Doll Blader Throwing Knife (up to 3 levels)
  65. getPlayer().removeSkill(SkillTable.getInstance().getInfo(753, 3), false);
  66. }
  67. else if (getPlayer().getLevel() >= 73)
  68. {
  69. // Doll Blader Sting (up to 3 levels)
  70. getPlayer().removeSkill(SkillTable.getInstance().getInfo(752, 2), false);
  71. // Doll Blader Throwing Knife (up to 3 levels)
  72. getPlayer().removeSkill(SkillTable.getInstance().getInfo(753, 2), false);
  73. }
  74. else
  75. {
  76. // Doll Blader Sting (up to 3 levels)
  77. getPlayer().removeSkill(SkillTable.getInstance().getInfo(752, 1), false);
  78. // Doll Blader Throwing Knife (up to 3 levels)
  79. getPlayer().removeSkill(SkillTable.getInstance().getInfo(753, 1), false);
  80. }
  81. // Decrease Bow/Crossbow Attack Speed
  82. getPlayer().removeSkill(SkillTable.getInstance().getInfo(5491, 1), false);
  83. // Transform Dispel
  84. getPlayer().removeSkill(SkillTable.getInstance().getInfo(619, 1), false);
  85. getPlayer().setTransformAllowedSkills(EMPTY_ARRAY);
  86. }
  87. public static void main(String[] args)
  88. {
  89. TransformationManager.getInstance().registerTransformation(new DollBlader());
  90. }
  91. }