SkillHandler.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. /*
  2. * This program is free software: you can redistribute it and/or modify it under
  3. * the terms of the GNU General Public License as published by the Free Software
  4. * Foundation, either version 3 of the License, or (at your option) any later
  5. * version.
  6. *
  7. * This program is distributed in the hope that it will be useful, but WITHOUT
  8. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  9. * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  10. * details.
  11. *
  12. * You should have received a copy of the GNU General Public License along with
  13. * this program. If not, see <http://www.gnu.org/licenses/>.
  14. */
  15. package net.sf.l2j.gameserver.handler;
  16. import java.util.Map;
  17. import java.util.TreeMap;
  18. import java.util.logging.Logger;
  19. import net.sf.l2j.gameserver.handler.skillhandlers.*;
  20. import net.sf.l2j.gameserver.templates.skills.L2SkillType;
  21. /**
  22. * This class ...
  23. *
  24. * @version $Revision: 1.1.4.4 $ $Date: 2005/04/03 15:55:06 $
  25. */
  26. public class SkillHandler
  27. {
  28. private static Logger _log = Logger.getLogger(SkillHandler.class.getName());
  29. private static SkillHandler _instance;
  30. private Map<L2SkillType, ISkillHandler> _datatable;
  31. public static SkillHandler getInstance()
  32. {
  33. if (_instance == null)
  34. {
  35. _instance = new SkillHandler();
  36. }
  37. return _instance;
  38. }
  39. private SkillHandler()
  40. {
  41. _datatable = new TreeMap<L2SkillType, ISkillHandler>();
  42. registerSkillHandler(new Blow());
  43. registerSkillHandler(new Pdam());
  44. registerSkillHandler(new Mdam());
  45. registerSkillHandler(new CpDam());
  46. registerSkillHandler(new Manadam());
  47. registerSkillHandler(new Heal());
  48. registerSkillHandler(new CombatPointHeal());
  49. registerSkillHandler(new ManaHeal());
  50. registerSkillHandler(new BalanceLife());
  51. registerSkillHandler(new Charge());
  52. registerSkillHandler(new Continuous());
  53. registerSkillHandler(new Resurrect());
  54. registerSkillHandler(new ShiftTarget());
  55. registerSkillHandler(new Spoil());
  56. registerSkillHandler(new Sweep());
  57. registerSkillHandler(new StrSiegeAssault());
  58. registerSkillHandler(new SummonFriend());
  59. registerSkillHandler(new SummonTreasureKey());
  60. registerSkillHandler(new Disablers());
  61. registerSkillHandler(new Recall());
  62. registerSkillHandler(new BallistaBomb());
  63. registerSkillHandler(new TakeCastle());
  64. registerSkillHandler(new TakeFort());
  65. registerSkillHandler(new Unlock());
  66. registerSkillHandler(new DrainSoul());
  67. registerSkillHandler(new Craft());
  68. registerSkillHandler(new Fishing());
  69. registerSkillHandler(new FishingSkill());
  70. registerSkillHandler(new BeastFeed());
  71. registerSkillHandler(new DeluxeKey());
  72. registerSkillHandler(new Sow());
  73. registerSkillHandler(new Soul());
  74. registerSkillHandler(new Harvest());
  75. registerSkillHandler(new GetPlayer());
  76. registerSkillHandler(new TransformDispel());
  77. registerSkillHandler(new Trap());
  78. registerSkillHandler(new GiveSp());
  79. registerSkillHandler(new InstantJump());
  80. _log.config("SkillHandler: Loaded " + _datatable.size() + " handlers.");
  81. }
  82. public void registerSkillHandler(ISkillHandler handler)
  83. {
  84. L2SkillType[] types = handler.getSkillIds();
  85. for (L2SkillType t : types)
  86. {
  87. _datatable.put(t, handler);
  88. }
  89. }
  90. public ISkillHandler getSkillHandler(L2SkillType skillType)
  91. {
  92. return _datatable.get(skillType);
  93. }
  94. /**
  95. * @return
  96. */
  97. public int size()
  98. {
  99. return _datatable.size();
  100. }
  101. }