rendered paste bodyIndex: C:/l2j_dev/workspace/L2_GameServer_C5/java/net/sf/l2j/gameserver/skills/Stats.java
===================================================================
--- C:/l2j_dev/workspace/L2_GameServer_C5/java/net/sf/l2j/gameserver/skills/Stats.java (revision 524)
+++ C:/l2j_dev/workspace/L2_GameServer_C5/java/net/sf/l2j/gameserver/skills/Stats.java (working copy)
@@ -25,253 +25,163 @@
*
* @author mkizub
*/
-public enum Stats {
+public enum Stats
+{
//
// Base stats, for each in Calculator a slot is allocated
//
// HP & MP
- MAX_HP,
- MAX_MP,
- MAX_CP,
- REGENERATE_HP_RATE,
- REGENERATE_CP_RATE,
- REGENERATE_MP_RATE,
- RECHARGE_MP_RATE,
- HEAL_EFFECTIVNESS,
+ MAX_HP ("maxHp"),
+ MAX_MP ("maxMp"),
+ MAX_CP ("maxCp"),
+ REGENERATE_HP_RATE ("regHp"),
+ REGENERATE_CP_RATE ("regCp"),
+ REGENERATE_MP_RATE ("regMp"),
+ RECHARGE_MP_RATE ("gainMp"),
+ HEAL_EFFECTIVNESS ("gainHp"),
// Atk & Def
- POWER_DEFENCE,
- MAGIC_DEFENCE,
- POWER_ATTACK,
- MAGIC_ATTACK,
- POWER_ATTACK_SPEED,
- MAGIC_ATTACK_SPEED, // how fast a spell is casted (including animation)
- MAGIC_REUSE_RATE, // how fast spells becomes ready to reuse
- SHIELD_DEFENCE,
- CRITICAL_DAMAGE,
+ POWER_DEFENCE ("pDef"),
+ MAGIC_DEFENCE ("mDef"),
+ POWER_ATTACK ("pAtk"),
+ MAGIC_ATTACK ("mAtk"),
+ POWER_ATTACK_SPEED ("pAtkSpd"),
+ MAGIC_ATTACK_SPEED ("mAtkSpd"), // how fast a spell is casted (including animation)
+ MAGIC_REUSE_RATE ("mReuse"), // how fast spells becomes ready to reuse
+ SHIELD_DEFENCE ("sDef"),
+ CRITICAL_DAMAGE ("cAtk"),
// Atk & Def rates
- EVASION_RATE,
- SHIELD_RATE,
- CRITICAL_RATE,
- MCRITICAL_RATE,
- EXPSP_RATE,
- ATTACK_CANCEL,
+ EVASION_RATE ("rEvas"),
+ SHIELD_RATE ("rShld"),
+ CRITICAL_RATE ("rCrit" ),
+ MCRITICAL_RATE ("mCritRate"),
+ EXPSP_RATE ("rExp"),
+ ATTACK_CANCEL ("cancel"),
// Accuracy and range
- ACCURACY_COMBAT,
- POWER_ATTACK_RANGE,
- MAGIC_ATTACK_RANGE,
- POWER_ATTACK_ANGLE,
+ ACCURACY_COMBAT ("accCombat"),
+ POWER_ATTACK_RANGE ("pAtkRange"),
+ MAGIC_ATTACK_RANGE ("mAtkRange"),
+ POWER_ATTACK_ANGLE ("pAtkAngle"),
// Run speed,
// walk & escape speed are calculated proportionally,
// magic speed is a buff
- RUN_SPEED,
+ RUN_SPEED ("runSpd"),
//
// Player-only stats
//
- STAT_STR,
- STAT_CON,
- STAT_DEX,
- STAT_INT,
- STAT_WIT,
- STAT_MEN,
+ STAT_STR ("STR"),
+ STAT_CON ("CON"),
+ STAT_DEX ("DEX"),
+ STAT_INT ("INT"),
+ STAT_WIT ("WIT"),
+ STAT_MEN ("MEN"),
//
// Special stats, share one slot in Calculator
//
// stats of various abilities
- BREATH,
+ BREATH ("breath"),
//
- AGGRESSION, // locks a mob on tank caster
- BLEED, // by daggers, like poison
- POISON, // by magic, hp dmg over time
- STUN, // disable move/ATTACK for a period of time
- ROOT, // disable movement, but not ATTACK
- MOVEMENT, // slowdown movement, debuff
- CONFUSION, // mob changes target, opposite to aggression/hate
- SLEEP, // sleep (don't move/ATTACK) until attacked
- FIRE,
- WIND,
- WATER,
- EARTH,
- HOLY,
- DARK,
+ AGGRESSION ("aggression"), // locks a mob on tank caster
+ BLEED ("bleed"), // by daggers, like poison
+ POISON ("poison"), // by magic, hp dmg over time
+ STUN ("stun"), // disable move/ATTACK for a period of time
+ ROOT ("root"), // disable movement, but not ATTACK
+ MOVEMENT ("movement"), // slowdown movement, debuff
+ CONFUSION ("confusion"), // mob changes target, opposite to aggression/hate
+ SLEEP ("sleep"), // sleep (don't move/ATTACK) until attacked
+ FIRE ("fire"),
+ WIND ("wind"),
+ WATER ("water"),
+ EARTH ("earth"),
+ HOLY ("holy"),
+ DARK ("dark"),
//
- AGGRESSION_RES,
- BLEED_RES,
- POISON_RES,
- STUN_RES,
- PARALYZE_RES,
- ROOT_RES,
- SLEEP_RES,
- CONFUSION_RES,
- MUTE_RES,
- MOVEMENT_RES,
- FIRE_RES,
- WIND_RES,
- WATER_RES,
- EARTH_RES,
- HOLY_RES,
- DARK_RES,
+ AGGRESSION_RES ("aggressionRes"),
+ BLEED_RES ("bleedRes"),
+ POISON_RES ("poisonRes"),
+ STUN_RES ("stunRes"),
+ PARALYZE_RES ("paralyzeRes"),
+ ROOT_RES ("rootRes"),
+ SLEEP_RES ("sleepRes"),
+ CONFUSION_RES ("confusionRes"),
+ MUTE_RES ("muteRes"),
+ MOVEMENT_RES ("movementRes"),
+ FIRE_RES ("fireRes"),
+ WIND_RES ("windRes"),
+ WATER_RES ("waterRes"),
+ EARTH_RES ("earthRes"),
+ HOLY_RES ("holyRes"),
+ DARK_RES ("darkRes"),
- NONE_WPN_RES, // Shields!!!
- SWORD_WPN_RES,
- BLUNT_WPN_RES,
- DAGGER_WPN_RES,
- BOW_WPN_RES,
- POLE_WPN_RES,
- ETC_WPN_RES,
- FIST_WPN_RES,
- DUAL_WPN_RES,
- DUALFIST_WPN_RES,
+ NONE_WPN_RES ("noneWpnRes"), // Shields!!!
+ SWORD_WPN_RES ("swordWpnRes"),
+ BLUNT_WPN_RES ("bluntWpnRes"),
+ DAGGER_WPN_RES ("daggerWpnRes"),
+ BOW_WPN_RES ("bowWpnRes"),
+ POLE_WPN_RES ("poleWpnRes"),
+ ETC_WPN_RES ("etcWpnRes"),
+ FIST_WPN_RES ("fistWpnRes"),
+ DUAL_WPN_RES ("dualWpnRes"),
+ DUALFIST_WPN_RES("dualFistWpnRes"),
- REFLECT_DAMAGE_PERCENT,
- ABSORB_DAMAGE_PERCENT,
- TRANSFER_DAMAGE_PERCENT,
+ REFLECT_DAMAGE_PERCENT ("reflectDam"),
+ ABSORB_DAMAGE_PERCENT ("absorbDam"),
+ TRANSFER_DAMAGE_PERCENT ("transDam"),
- MAX_LOAD,
+ MAX_LOAD ("maxLoad"),
- PATK_PLANTS,
- PATK_INSECTS,
- PATK_ANIMALS,
- PATK_MONSTERS,
- PATK_DRAGONS,
- PATK_UNDEAD,
+ PATK_PLANTS ("pAtk-plants"),
+ PATK_INSECTS ("pAtk-insects"),
+ PATK_ANIMALS ("pAtk-animals"),
+ PATK_MONSTERS ("pAtk-monsters"),
+ PATK_DRAGONS ("pAtk-dragons"),
+ PATK_UNDEAD ("pAtk-undead"),
- PDEF_UNDEAD,
+ PDEF_UNDEAD ("pDef-undead"),
- ATK_REUSE,
+ ATK_REUSE ("atkReuse"),
//ExSkill :)
- INV_LIM,
- WH_LIM,
- FREIGHT_LIM,
- P_SELL_LIM,
- P_BUY_LIM,
- REC_D_LIM,
- REC_C_LIM,
+ INV_LIM ("inventoryLimit"),
+ WH_LIM ("whLimit"),
+ FREIGHT_LIM ("FreightLimit"),
+ P_SELL_LIM ("PrivateSellLimit"),
+ P_BUY_LIM ("PrivateBuyLimit"),
+ REC_D_LIM ("DwarfRecipeLimit"),
+ REC_C_LIM ("CommonRecipeLimit"),
//C4 Stats
- MP_CONSUME_RATE,
- HP_CONSUME_RATE,
- MP_CONSUME,
- SOULSHOT_COUNT
+ MP_CONSUME_RATE ("MpConsumeRate"),
+ HP_CONSUME_RATE ("HpConsumeRate"),
+ MP_CONSUME ("MpConsume"),
+ SOULSHOT_COUNT ("soulShotCount")
;
public static final int NUM_STATS = values().length;
-
+
+ private String _value;
+
+ public String getValue()
+ {
+ return _value;
+ }
+ private Stats(String s)
+ {
+ _value = s;
+ }
public static Stats valueOfXml(String name)
{
name = name.intern();
- if (name == "maxHp" ) return MAX_HP;
- if (name == "maxCp" ) return MAX_CP;
- if (name == "maxMp" ) return MAX_MP;
- if (name == "regHp" ) return REGENERATE_HP_RATE;
- if (name == "regCp" ) return REGENERATE_CP_RATE;
- if (name == "regMp" ) return REGENERATE_MP_RATE;
- if (name == "gainMp" ) return RECHARGE_MP_RATE;
- if (name == "gainHp" ) return HEAL_EFFECTIVNESS;
- if (name == "pDef" ) return POWER_DEFENCE;
- if (name == "mDef" ) return MAGIC_DEFENCE;
- if (name == "pAtk" ) return POWER_ATTACK;
- if (name == "mAtk" ) return MAGIC_ATTACK;
- if (name == "pAtkSpd" ) return POWER_ATTACK_SPEED;
- if (name == "mAtkSpd" ) return MAGIC_ATTACK_SPEED;
- if (name == "mReuse" ) return MAGIC_REUSE_RATE;
- if (name == "sDef" ) return SHIELD_DEFENCE;
- if (name == "cAtk" ) return CRITICAL_DAMAGE;
- if (name == "rEvas" ) return EVASION_RATE;
- if (name == "rShld" ) return SHIELD_RATE;
- if (name == "rCrit" ) return CRITICAL_RATE;
- if (name == "rExp" ) return EXPSP_RATE;
- if (name == "cancel" ) return ATTACK_CANCEL;
- if (name == "accCombat") return ACCURACY_COMBAT;
- if (name == "pAtkRange" ) return POWER_ATTACK_RANGE;
- if (name == "mAtkRange" ) return MAGIC_ATTACK_RANGE;
- if (name == "pAtkAngle" ) return POWER_ATTACK_ANGLE;
- if (name == "runSpd" ) return RUN_SPEED;
- if (name == "breath" ) return BREATH;
- if (name == "aggression" ) return AGGRESSION;
- if (name == "bleed" ) return BLEED;
- if (name == "poison" ) return POISON;
- if (name == "stun" ) return STUN;
- if (name == "root" ) return ROOT;
- if (name == "movement" ) return MOVEMENT;
- if (name == "confusion" ) return CONFUSION;
- if (name == "sleep" ) return SLEEP;
- if (name == "fire" ) return FIRE;
- if (name == "wind" ) return WIND;
- if (name == "water" ) return WATER;
- if (name == "earth" ) return EARTH;
- if (name == "holy" ) return HOLY;
- if (name == "dark" ) return DARK;
- if (name == "aggressionRes") return AGGRESSION_RES;
- if (name == "bleedRes" ) return BLEED_RES;
- if (name == "poisonRes" ) return POISON_RES;
- if (name == "stunRes" ) return STUN_RES;
- if (name == "paralyzeRes" ) return PARALYZE_RES;
- if (name == "rootRes" ) return ROOT_RES;
- if (name == "sleepRes" ) return SLEEP_RES;
- if (name == "confusionRes" ) return CONFUSION_RES;
- if (name == "muteRes" ) return MUTE_RES;
- if (name == "movementRes" ) return MOVEMENT_RES;
- if (name == "fireRes" ) return FIRE_RES;
- if (name == "windRes" ) return WIND_RES;
- if (name == "waterRes" ) return WATER_RES;
- if (name == "earthRes" ) return EARTH_RES;
- if (name == "holyRes" ) return HOLY_RES;
- if (name == "darkRes" ) return DARK_RES;
-
- if (name == "noneWpnRes" ) return NONE_WPN_RES;
- if (name == "swordWpnRes" ) return SWORD_WPN_RES;
- if (name == "bluntWpnRes" ) return BLUNT_WPN_RES;
- if (name == "daggerWpnRes" ) return DAGGER_WPN_RES;
- if (name == "bowWpnRes" ) return BOW_WPN_RES;
- if (name == "poleWpnRes" ) return POLE_WPN_RES;
- if (name == "etcWpnRes" ) return ETC_WPN_RES;
- if (name == "fistWpnRes" ) return FIST_WPN_RES;
- if (name == "dualWpnRes" ) return DUAL_WPN_RES;
- if (name == "dualFistWpnRes")return DUALFIST_WPN_RES;
+ for(Stats s: values())
+ {
+ if(s.getValue().equals(name))
+ return s;
+ }
- if (name == "STR" ) return STAT_STR;
- if (name == "CON" ) return STAT_CON;
- if (name == "DEX" ) return STAT_DEX;
- if (name == "INT" ) return STAT_INT;
- if (name == "WIT" ) return STAT_WIT;
- if (name == "MEN" ) return STAT_MEN;
-
- if (name == "reflectDam" ) return REFLECT_DAMAGE_PERCENT;
- if (name == "absorbDam" ) return ABSORB_DAMAGE_PERCENT;
- if (name == "transDam" ) return TRANSFER_DAMAGE_PERCENT;
- if (name == "mCritRate" ) return MCRITICAL_RATE;
-
- if (name == "maxLoad" ) return MAX_LOAD;
-
- if (name == "pAtk-undead" ) return PATK_UNDEAD;
- if (name == "pDef-undead" ) return PDEF_UNDEAD;
- if (name == "pAtk-plants" ) return PATK_PLANTS;
- if (name == "pAtk-insects" ) return PATK_INSECTS;
- if (name == "pAtk-animals" ) return PATK_ANIMALS;
- if (name == "pAtk-monsters" ) return PATK_MONSTERS;
- if (name == "pAtk-dragons" ) return PATK_DRAGONS;
-
- if (name == "atkReuse" ) return ATK_REUSE;
- //Nowe xD
- if (name == "inventoryLimit" ) return INV_LIM;
- if (name == "whLimit" ) return WH_LIM;
- if (name == "FreightLimit" ) return FREIGHT_LIM;
- if (name == "PrivateSellLimit" ) return P_SELL_LIM;
- if (name == "PrivateBuyLimit" ) return P_BUY_LIM;
- if (name == "DwarfRecipeLimit" ) return REC_D_LIM;
- if (name == "CommonRecipeLimit" ) return REC_C_LIM;
-
- //C4 Stats
- if (name == "MpConsumeRate" ) return MP_CONSUME_RATE;
- if (name == "HpConsumeRate" ) return HP_CONSUME_RATE;
- if (name == "MpConsume" ) return MP_CONSUME;
- if (name == "soulShotCount" ) return SOULSHOT_COUNT;
throw new NoSuchElementException("Unknown name '"+name+"' for enum BaseStats");
}
}