actual freya branch
This commit is contained in:
@@ -0,0 +1,276 @@
|
||||
/*
|
||||
* 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 com.l2jserver.gameserver.skills;
|
||||
|
||||
import java.util.NoSuchElementException;
|
||||
|
||||
/**
|
||||
* Enum of basic stats.
|
||||
* @author mkizub
|
||||
*/
|
||||
public enum Stats
|
||||
{
|
||||
// Base stats, for each in Calculator a slot is allocated
|
||||
|
||||
// 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"),
|
||||
HEAL_STATIC_BONUS("bonusHp"),
|
||||
LIMIT_HP("limitHp"), // non-displayed hp limit
|
||||
|
||||
// ATTACK & DEFENCE
|
||||
POWER_DEFENCE("pDef"),
|
||||
MAGIC_DEFENCE("mDef"),
|
||||
POWER_ATTACK("pAtk"),
|
||||
MAGIC_ATTACK("mAtk"),
|
||||
PHYSICAL_SKILL_POWER("physicalSkillPower"),
|
||||
POWER_ATTACK_SPEED("pAtkSpd"),
|
||||
MAGIC_ATTACK_SPEED("mAtkSpd"), // how fast a magic spell is casted (including animation)
|
||||
ATK_REUSE("atkReuse"), // make bows hit simple hits way slower and will not affect skills
|
||||
P_REUSE("pReuse"),
|
||||
MAGIC_REUSE_RATE("mReuse"), // how fast a magic spell becomes ready to reuse
|
||||
SHIELD_DEFENCE("sDef"),
|
||||
CRITICAL_DAMAGE("cAtk"),
|
||||
CRITICAL_DAMAGE_ADD("cAtkAdd"), // this is another type for special critical damage mods - vicious stance, crit power and crit damage SA
|
||||
// it was totally bad since now...
|
||||
MAGIC_CRIT_DMG("mCritPower"),
|
||||
|
||||
// PVP BONUS
|
||||
PVP_PHYSICAL_DMG("pvpPhysDmg"),
|
||||
PVP_MAGICAL_DMG("pvpMagicalDmg"),
|
||||
PVP_PHYS_SKILL_DMG("pvpPhysSkillsDmg"),
|
||||
PVP_PHYSICAL_DEF("pvpPhysDef"),
|
||||
PVP_MAGICAL_DEF("pvpMagicalDef"),
|
||||
PVP_PHYS_SKILL_DEF("pvpPhysSkillsDef"),
|
||||
|
||||
// PVE BONUS
|
||||
PVE_PHYSICAL_DMG("pvePhysDmg"),
|
||||
PVE_PHYS_SKILL_DMG("pvePhysSkillsDmg"),
|
||||
PVE_BOW_DMG("pveBowDmg"),
|
||||
PVE_BOW_SKILL_DMG("pveBowSkillsDmg"),
|
||||
PVE_MAGICAL_DMG("pveMagicalDmg"),
|
||||
|
||||
// ATTACK & DEFENCE RATES
|
||||
EVASION_RATE("rEvas"),
|
||||
P_SKILL_EVASION("pSkillEvas"),
|
||||
CRIT_DAMAGE_EVASION("critDamEvas"),
|
||||
SHIELD_RATE("rShld"),
|
||||
CRITICAL_RATE("rCrit"),
|
||||
BLOW_RATE("blowRate"),
|
||||
LETHAL_RATE("lethalRate"),
|
||||
MCRITICAL_RATE("mCritRate"),
|
||||
EXPSP_RATE("rExp"),
|
||||
ATTACK_CANCEL("cancel"),
|
||||
MAGIC_FAILURE_RATE("magicFailureRate"),
|
||||
|
||||
// ACCURACY & RANGE
|
||||
ACCURACY_COMBAT("accCombat"),
|
||||
POWER_ATTACK_RANGE("pAtkRange"),
|
||||
MAGIC_ATTACK_RANGE("mAtkRange"),
|
||||
POWER_ATTACK_ANGLE("pAtkAngle"),
|
||||
ATTACK_COUNT_MAX("atkCountMax"),
|
||||
// Run speed, walk & escape speed are calculated proportionally, magic speed is a buff
|
||||
RUN_SPEED("runSpd"),
|
||||
WALK_SPEED("walkSpd"),
|
||||
|
||||
// BASIC STATS
|
||||
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
|
||||
|
||||
// VARIOUS
|
||||
BREATH("breath"),
|
||||
FALL("fall"),
|
||||
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
|
||||
VALAKAS("valakas"),
|
||||
|
||||
// VULNERABILITIES
|
||||
AGGRESSION_VULN("aggressionVuln"),
|
||||
BLEED_VULN("bleedVuln"),
|
||||
POISON_VULN("poisonVuln"),
|
||||
STUN_VULN("stunVuln"),
|
||||
PARALYZE_VULN("paralyzeVuln"),
|
||||
ROOT_VULN("rootVuln"),
|
||||
SLEEP_VULN("sleepVuln"),
|
||||
DAMAGE_ZONE_VULN("damageZoneVuln"),
|
||||
MOVEMENT_VULN("movementVuln"),
|
||||
CANCEL_VULN("cancelVuln"), // Resistance for cancel type skills
|
||||
DERANGEMENT_VULN("derangementVuln"),
|
||||
DEBUFF_VULN("debuffVuln"),
|
||||
BUFF_VULN("buffVuln"),
|
||||
CRIT_VULN("critVuln"), // Resistence to Crit DMG in percent.
|
||||
CRIT_ADD_VULN("critAddVuln"), // Resistence to Crit DMG in value (ex: +100 will be 100 more crit dmg, NOT 100% more).
|
||||
MAGIC_DAMAGE_VULN("magicDamVul"),
|
||||
|
||||
// RESISTANCES
|
||||
FIRE_RES("fireRes"),
|
||||
WIND_RES("windRes"),
|
||||
WATER_RES("waterRes"),
|
||||
EARTH_RES("earthRes"),
|
||||
HOLY_RES("holyRes"),
|
||||
DARK_RES("darkRes"),
|
||||
VALAKAS_RES("valakasRes"),
|
||||
MAGIC_SUCCESS_RES("magicSuccRes"),
|
||||
// BUFF_IMMUNITY("buffImmunity"), //TODO: Implement me
|
||||
DEBUFF_IMMUNITY("debuffImmunity"),
|
||||
|
||||
// ELEMENT POWER
|
||||
FIRE_POWER("firePower"),
|
||||
WATER_POWER("waterPower"),
|
||||
WIND_POWER("windPower"),
|
||||
EARTH_POWER("earthPower"),
|
||||
HOLY_POWER("holyPower"),
|
||||
DARK_POWER("darkPower"),
|
||||
|
||||
// PROFICIENCY
|
||||
AGGRESSION_PROF("aggressionProf"),
|
||||
BLEED_PROF("bleedProf"),
|
||||
POISON_PROF("poisonProf"),
|
||||
STUN_PROF("stunProf"),
|
||||
PARALYZE_PROF("paralyzeProf"),
|
||||
ROOT_PROF("rootProf"),
|
||||
SLEEP_PROF("sleepProf"),
|
||||
PROF("movementProf"),
|
||||
CANCEL_PROF("cancelProf"),
|
||||
DERANGEMENT_PROF("derangementProf"),
|
||||
DEBUFF_PROF("debuffProf"),
|
||||
CRIT_PROF("critProf"),
|
||||
|
||||
// WEAPONS VULNERABILITIES
|
||||
NONE_WPN_VULN("noneWpnVuln"), // Shields!!!
|
||||
SWORD_WPN_VULN("swordWpnVuln"),
|
||||
BLUNT_WPN_VULN("bluntWpnVuln"),
|
||||
DAGGER_WPN_VULN("daggerWpnVuln"),
|
||||
BOW_WPN_VULN("bowWpnVuln"),
|
||||
CROSSBOW_WPN_VULN("crossbowWpnVuln"),
|
||||
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"),
|
||||
DUALDAGGER_WPN_VULN("dualDaggerWpnVuln"),
|
||||
RAPIER_WPN_VULN("rapierWpnVuln"),
|
||||
ANCIENT_WPN_VULN("ancientWpnVuln"),
|
||||
PET_WPN_VULN("petWpnVuln"),
|
||||
|
||||
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"),
|
||||
ABSORB_MANA_DAMAGE_PERCENT("absorbDamMana"),
|
||||
|
||||
MAX_LOAD("maxLoad"),
|
||||
WEIGHT_LIMIT("weightLimit"),
|
||||
|
||||
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
|
||||
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"),
|
||||
|
||||
// T1 stats
|
||||
transformId("transformId"),
|
||||
TALISMAN_SLOTS("talisman"),
|
||||
CLOAK_SLOT("cloak"),
|
||||
|
||||
// Shield Stats
|
||||
SHIELD_DEFENCE_ANGLE("shieldDefAngle"),
|
||||
|
||||
// Skill mastery
|
||||
SKILL_MASTERY("skillMastery"),
|
||||
|
||||
// Vitality
|
||||
VITALITY_CONSUME_RATE("vitalityConsumeRate");
|
||||
|
||||
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");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user