/* * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the * Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that * it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If * not, see <http://www.gnu.org/licenses/>. */ package silentium.gameserver.skills; import java.util.NoSuchElementException; /** * Enum of basic stats. * * @author mkizub */ public enum Stats { // HP & MP 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"), HEAL_PROFICIENCY("giveHp"), // Atk & Def POWER_DEFENCE("pDef"), MAGIC_DEFENCE("mDef"), POWER_ATTACK("pAtk"), MAGIC_ATTACK("mAtk"), POWER_ATTACK_SPEED("pAtkSpd"), MAGIC_ATTACK_SPEED("mAtkSpd"), MAGIC_REUSE_RATE("mReuse"), ATK_REUSE("atkReuse"), P_REUSE("pReuse"), SHIELD_DEFENCE("sDef"), CRITICAL_DAMAGE("cAtk"), CRITICAL_DAMAGE_ADD("cAtkAdd"), PVP_PHYSICAL_DMG("pvpPhysDmg"), PVP_MAGICAL_DMG("pvpMagicalDmg"), PVP_PHYS_SKILL_DMG("pvpPhysSkillsDmg"), PVP_PHYS_SKILL_DEF("pvpPhysSkillsDef"), // Atk & Def rates EVASION_RATE("rEvas"), P_SKILL_EVASION("pSkillEvas"), SHIELD_RATE("rShld"), CRITICAL_RATE("rCrit"), BLOW_RATE("blowRate"), LETHAL_RATE("lethalRate"), MCRITICAL_RATE("mCritRate"), EXPSP_RATE("rExp"), ATTACK_CANCEL("cancel"), // Accuracy and range ACCURACY_COMBAT("accCombat"), POWER_ATTACK_RANGE("pAtkRange"), MAGIC_ATTACK_RANGE("mAtkRange"), POWER_ATTACK_ANGLE("pAtkAngle"), ATTACK_COUNT_MAX("atkCountMax"), // Run & walk speed RUN_SPEED("runSpd"), WALK_SPEED("walkSpd"), // Player-only stats STAT_STR("STR"), STAT_CON("CON"), STAT_DEX("DEX"), STAT_INT("INT"), STAT_WIT("WIT"), STAT_MEN("MEN"), // stats of various abilities BREATH("breath"), FALL("fall"), // Abnormal effects AGGRESSION("aggression"), BLEED("bleed"), POISON("poison"), STUN("stun"), ROOT("root"), MOVEMENT("movement"), CONFUSION("confusion"), SLEEP("sleep"), VALAKAS("valakas"), VALAKAS_RES("valakasRes"), // Elements FIRE("fire"), WIND("wind"), WATER("water"), EARTH("earth"), HOLY("holy"), DARK("dark"), // Elemental resistances/vulnerabilities FIRE_RES("fireRes"), WIND_RES("windRes"), WATER_RES("waterRes"), EARTH_RES("earthRes"), HOLY_RES("holyRes"), DARK_RES("darkRes"), // Elemental power (used for skills such as Holy blade) FIRE_POWER("firePower"), WATER_POWER("waterPower"), WIND_POWER("windPower"), EARTH_POWER("earthPower"), HOLY_POWER("holyPower"), DARK_POWER("darkPower"), // Vulnerabilities BLEED_VULN("bleedVuln"), POISON_VULN("poisonVuln"), STUN_VULN("stunVuln"), PARALYZE_VULN("paralyzeVuln"), ROOT_VULN("rootVuln"), SLEEP_VULN("sleepVuln"), DAMAGE_ZONE_VULN("damageZoneVuln"), CRIT_VULN("critVuln"), // Resistance // to // Crit // DMG. CANCEL_VULN("cancelVuln"), DERANGEMENT_VULN("derangementVuln"), DEBUFF_VULN("debuffVuln"), // Weapons vuln NONE_WPN_VULN("noneWpnVuln"), // Shields SWORD_WPN_VULN("swordWpnVuln"), BLUNT_WPN_VULN("bluntWpnVuln"), DAGGER_WPN_VULN("daggerWpnVuln"), BOW_WPN_VULN("bowWpnVuln"), POLE_WPN_VULN("poleWpnVuln"), ETC_WPN_VULN("etcWpnVuln"), FIST_WPN_VULN("fistWpnVuln"), DUAL_WPN_VULN("dualWpnVuln"), DUALFIST_WPN_VULN("dualFistWpnVuln"), BIGSWORD_WPN_VULN("bigSwordWpnVuln"), BIGBLUNT_WPN_VULN("bigBluntWpnVuln"), REFLECT_DAMAGE_PERCENT("reflectDam"), REFLECT_SKILL_MAGIC("reflectSkillMagic"), REFLECT_SKILL_PHYSIC("reflectSkillPhysic"), VENGEANCE_SKILL_MAGIC_DAMAGE("vengeanceMdam"), VENGEANCE_SKILL_PHYSICAL_DAMAGE("vengeancePdam"), ABSORB_DAMAGE_PERCENT("absorbDam"), TRANSFER_DAMAGE_PERCENT("transDam"), PATK_PLANTS("pAtk-plants"), PATK_INSECTS("pAtk-insects"), PATK_ANIMALS("pAtk-animals"), PATK_MONSTERS("pAtk-monsters"), PATK_DRAGONS("pAtk-dragons"), PATK_GIANTS("pAtk-giants"), PATK_MCREATURES("pAtk-magicCreature"), PDEF_PLANTS("pDef-plants"), PDEF_INSECTS("pDef-insects"), PDEF_ANIMALS("pDef-animals"), PDEF_MONSTERS("pDef-monsters"), PDEF_DRAGONS("pDef-dragons"), PDEF_GIANTS("pDef-giants"), PDEF_MCREATURES("pDef-magicCreature"), // ExSkill :) MAX_LOAD("maxLoad"), 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 PHYSICAL_MP_CONSUME_RATE("PhysicalMpConsumeRate"), MAGICAL_MP_CONSUME_RATE("MagicalMpConsumeRate"), DANCE_MP_CONSUME_RATE("DanceMpConsumeRate"), BOW_MP_CONSUME_RATE("BowMpConsumeRate"), HP_CONSUME_RATE("HpConsumeRate"), MP_CONSUME("MpConsume"), SOULSHOT_COUNT("soulShotCount"), // Shield Stats SHIELD_DEFENCE_ANGLE("shieldDefAngle"), // Skill mastery SKILL_MASTERY("skillMastery"); 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(); for (Stats s : values()) { if (s.getValue().equals(name)) return s; } throw new NoSuchElementException("Unknown name '" + name + "' for enum BaseStats"); } }