Stats.java 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  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.skills;
  16. import java.util.NoSuchElementException;
  17. /**
  18. * Enum of basic stats.
  19. *
  20. * @author mkizub
  21. */
  22. public enum Stats
  23. {
  24. //
  25. // Base stats, for each in Calculator a slot is allocated
  26. //
  27. // HP & MP
  28. MAX_HP ("maxHp"),
  29. MAX_MP ("maxMp"),
  30. MAX_CP ("maxCp"),
  31. REGENERATE_HP_RATE ("regHp"),
  32. REGENERATE_CP_RATE ("regCp"),
  33. REGENERATE_MP_RATE ("regMp"),
  34. RECHARGE_MP_RATE ("gainMp"),
  35. HEAL_EFFECTIVNESS ("gainHp"),
  36. // Atk & Def
  37. POWER_DEFENCE ("pDef"),
  38. MAGIC_DEFENCE ("mDef"),
  39. POWER_ATTACK ("pAtk"),
  40. MAGIC_ATTACK ("mAtk"),
  41. POWER_ATTACK_SPEED ("pAtkSpd"),
  42. MAGIC_ATTACK_SPEED ("mAtkSpd"), // how fast a spell is casted (including animation)
  43. MAGIC_REUSE_RATE ("mReuse"), // how fast spells becomes ready to reuse
  44. SHIELD_DEFENCE ("sDef"),
  45. CRITICAL_DAMAGE ("cAtk"),
  46. PVP_PHYSICAL_DMG ("pvpPhysDmg"),
  47. PVP_MAGICAL_DMG ("pvpMagicalDmg"),
  48. PVP_PHYS_SKILL_DMG ("pvpPhysSkillsDmg"),
  49. // Atk & Def rates
  50. EVASION_RATE ("rEvas"),
  51. SHIELD_RATE ("rShld"),
  52. CRITICAL_RATE ("rCrit" ),
  53. BLOW_RATE ("blowRate" ),
  54. LETHAL_RATE ("lethalRate" ),
  55. MCRITICAL_RATE ("mCritRate"),
  56. EXPSP_RATE ("rExp"),
  57. ATTACK_CANCEL ("cancel"),
  58. // Accuracy and range
  59. ACCURACY_COMBAT ("accCombat"),
  60. POWER_ATTACK_RANGE ("pAtkRange"),
  61. MAGIC_ATTACK_RANGE ("mAtkRange"),
  62. POWER_ATTACK_ANGLE ("pAtkAngle"),
  63. ATTACK_COUNT_MAX ("atkCountMax"),
  64. // Run speed,
  65. // walk & escape speed are calculated proportionally,
  66. // magic speed is a buff
  67. RUN_SPEED ("runSpd"),
  68. WALK_SPEED ("walkSpd"),
  69. //
  70. // Player-only stats
  71. //
  72. STAT_STR ("STR"),
  73. STAT_CON ("CON"),
  74. STAT_DEX ("DEX"),
  75. STAT_INT ("INT"),
  76. STAT_WIT ("WIT"),
  77. STAT_MEN ("MEN"),
  78. //
  79. // Special stats, share one slot in Calculator
  80. //
  81. // stats of various abilities
  82. BREATH ("breath"),
  83. //
  84. AGGRESSION ("aggression"), // locks a mob on tank caster
  85. BLEED ("bleed"), // by daggers, like poison
  86. POISON ("poison"), // by magic, hp dmg over time
  87. STUN ("stun"), // disable move/ATTACK for a period of time
  88. ROOT ("root"), // disable movement, but not ATTACK
  89. MOVEMENT ("movement"), // slowdown movement, debuff
  90. CONFUSION ("confusion"), // mob changes target, opposite to aggression/hate
  91. SLEEP ("sleep"), // sleep (don't move/ATTACK) until attacked
  92. FIRE ("fire"),
  93. WIND ("wind"),
  94. WATER ("water"),
  95. EARTH ("earth"),
  96. HOLY ("holy"),
  97. DARK ("dark"),
  98. //
  99. AGGRESSION_VULN ("aggressionVuln"),
  100. BLEED_VULN ("bleedVuln"),
  101. POISON_VULN ("poisonVuln"),
  102. STUN_VULN ("stunVuln"),
  103. PARALYZE_VULN ("paralyzeVuln"),
  104. ROOT_VULN ("rootVuln"),
  105. SLEEP_VULN ("sleepVuln"),
  106. CONFUSION_VULN ("confusionVuln"),
  107. MOVEMENT_VULN ("movementVuln"),
  108. FIRE_VULN ("fireVuln"),
  109. WIND_VULN ("windVuln"),
  110. WATER_VULN ("waterVuln"),
  111. EARTH_VULN ("earthVuln"),
  112. HOLY_VULN ("holyVuln"),
  113. DARK_VULN ("darkVuln"),
  114. CANCEL_VULN ("cancelVuln"), // Resistance for cancel type skills
  115. DERANGEMENT_VULN("derangementVuln"),
  116. DEBUFF_VULN ("debuffVuln"),
  117. CRIT_VULN ("critVuln"), // Resistence to Crit DMG.
  118. NONE_WPN_VULN ("noneWpnVuln"), // Shields!!!
  119. SWORD_WPN_VULN ("swordWpnVuln"),
  120. BLUNT_WPN_VULN ("bluntWpnVuln"),
  121. DAGGER_WPN_VULN ("daggerWpnVuln"),
  122. BOW_WPN_VULN ("bowWpnVuln"),
  123. CROSSBOW_WPN_VULN ("crossbowWpnVuln"),
  124. POLE_WPN_VULN ("poleWpnVuln"),
  125. ETC_WPN_VULN ("etcWpnVuln"),
  126. FIST_WPN_VULN ("fistWpnVuln"),
  127. DUAL_WPN_VULN ("dualWpnVuln"),
  128. DUALFIST_WPN_VULN("dualFistWpnVuln"),
  129. REFLECT_DAMAGE_PERCENT ("reflectDam"),
  130. REFLECT_SKILL_MAGIC ("reflectSkillMagic"),
  131. REFLECT_SKILL_PHYSIC ("reflectSkillPhysic"),
  132. ABSORB_DAMAGE_PERCENT ("absorbDam"),
  133. TRANSFER_DAMAGE_PERCENT ("transDam"),
  134. MAX_LOAD ("maxLoad"),
  135. PATK_PLANTS ("pAtk-plants"),
  136. PATK_INSECTS ("pAtk-insects"),
  137. PATK_ANIMALS ("pAtk-animals"),
  138. PATK_MONSTERS ("pAtk-monsters"),
  139. PATK_DRAGONS ("pAtk-dragons"),
  140. PATK_UNDEAD ("pAtk-undead"),
  141. PATK_GIANTS ("pAtk-giants"),
  142. PDEF_PLANTS ("pDef-plants"),
  143. PDEF_INSECTS ("pDef-insects"),
  144. PDEF_ANIMALS ("pDef-animals"),
  145. PDEF_MONSTERS ("pDef-monsters"),
  146. PDEF_DRAGONS ("pDef-dragons"),
  147. PDEF_UNDEAD ("pDef-undead"),
  148. PDEF_GIANTS ("pDef-giants"),
  149. ATK_REUSE ("atkReuse"),
  150. P_REUSE ("pReuse"),
  151. //ExSkill :)
  152. INV_LIM ("inventoryLimit"),
  153. WH_LIM ("whLimit"),
  154. FREIGHT_LIM ("FreightLimit"),
  155. P_SELL_LIM ("PrivateSellLimit"),
  156. P_BUY_LIM ("PrivateBuyLimit"),
  157. REC_D_LIM ("DwarfRecipeLimit"),
  158. REC_C_LIM ("CommonRecipeLimit"),
  159. //C4 Stats
  160. MP_CONSUME_RATE ("MpConsumeRate"),
  161. HP_CONSUME_RATE ("HpConsumeRate"),
  162. MP_CONSUME ("MpConsume"),
  163. SOULSHOT_COUNT ("soulShotCount"),
  164. //T1 stats
  165. transformId ("transformId"),
  166. //Shield Stats
  167. SHIELD_DEFENCE_ANGLE ("shieldDefAngle");
  168. ;
  169. public static final int NUM_STATS = values().length;
  170. private String _value;
  171. public String getValue()
  172. {
  173. return _value;
  174. }
  175. private Stats(String s)
  176. {
  177. _value = s;
  178. }
  179. public static Stats valueOfXml(String name)
  180. {
  181. name = name.intern();
  182. for(Stats s: values())
  183. {
  184. if(s.getValue().equals(name))
  185. return s;
  186. }
  187. throw new NoSuchElementException("Unknown name '"+name+"' for enum BaseStats");
  188. }
  189. }