This commit is contained in:
227
trunk/java/com/l2jserver/gameserver/model/stats/Stats.java
Normal file
227
trunk/java/com/l2jserver/gameserver/model/stats/Stats.java
Normal file
@@ -0,0 +1,227 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J Server
|
||||
*
|
||||
* This file is part of L2J Server.
|
||||
*
|
||||
* L2J Server 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.
|
||||
*
|
||||
* L2J Server 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.model.stats;
|
||||
|
||||
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 & CP
|
||||
MAX_HP("maxHp"),
|
||||
MAX_MP("maxMp"),
|
||||
MAX_CP("maxCp"),
|
||||
MAX_RECOVERABLE_HP("maxRecoverableHp"), // The maximum HP that is able to be recovered trough heals
|
||||
MAX_RECOVERABLE_MP("maxRecoverableMp"),
|
||||
MAX_RECOVERABLE_CP("maxRecoverableCp"),
|
||||
REGENERATE_HP_RATE("regHp"),
|
||||
REGENERATE_CP_RATE("regCp"),
|
||||
REGENERATE_MP_RATE("regMp"),
|
||||
MANA_CHARGE("manaCharge"),
|
||||
HEAL_EFFECT("healEffect"),
|
||||
|
||||
// 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"), // Magic Skill Casting Time Rate
|
||||
ATK_REUSE("atkReuse"), // Bows Hits Reuse Rate
|
||||
P_REUSE("pReuse"), // Physical Skill Reuse Rate
|
||||
MAGIC_REUSE_RATE("mReuse"), // Magic Skill Reuse Rate
|
||||
DANCE_REUSE("dReuse"), // Dance Skill Reuse Rate
|
||||
SHIELD_DEFENCE("sDef"),
|
||||
CRITICAL_DAMAGE("cAtk"),
|
||||
CRITICAL_DAMAGE_ADD("cAtkAdd"), // this is another type for special critical damage mods - vicious stance, critical power and critical damage SA
|
||||
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"),
|
||||
MAGIC_EVASION_RATE("mEvas"),
|
||||
P_SKILL_EVASION("pSkillEvas"),
|
||||
DEFENCE_CRITICAL_RATE("defCritRate"),
|
||||
DEFENCE_CRITICAL_RATE_ADD("defCritRateAdd"),
|
||||
DEFENCE_CRITICAL_DAMAGE("defCritDamage"),
|
||||
DEFENCE_CRITICAL_DAMAGE_ADD("defCritDamageAdd"), // Resistance to critical damage in value (Example: +100 will be 100 more critical damage, NOT 100% more).
|
||||
SHIELD_RATE("rShld"),
|
||||
CRITICAL_RATE("rCrit"),
|
||||
BLOW_RATE("blowRate"),
|
||||
MCRITICAL_RATE("mCritRate"),
|
||||
EXPSP_RATE("rExp"),
|
||||
BONUS_EXP("bonusExp"),
|
||||
BONUS_SP("bonusSp"),
|
||||
ATTACK_CANCEL("cancel"),
|
||||
|
||||
// ACCURACY & RANGE
|
||||
ACCURACY_COMBAT("accCombat"),
|
||||
ACCURACY_MAGIC("accMagic"),
|
||||
POWER_ATTACK_RANGE("pAtkRange"),
|
||||
MAGIC_ATTACK_RANGE("mAtkRange"),
|
||||
ATTACK_COUNT_MAX("atkCountMax"),
|
||||
// Run speed, walk & escape speed are calculated proportionally, magic speed is a buff
|
||||
MOVE_SPEED("runSpd"),
|
||||
|
||||
// BASIC STATS
|
||||
STAT_STR("STR"),
|
||||
STAT_CON("CON"),
|
||||
STAT_DEX("DEX"),
|
||||
STAT_INT("INT"),
|
||||
STAT_WIT("WIT"),
|
||||
STAT_MEN("MEN"),
|
||||
STAT_LUC("LUC"),
|
||||
STAT_CHA("CHA"),
|
||||
|
||||
// Special stats, share one slot in Calculator
|
||||
|
||||
// VARIOUS
|
||||
BREATH("breath"),
|
||||
FALL("fall"),
|
||||
|
||||
// VULNERABILITIES
|
||||
DAMAGE_ZONE_VULN("damageZoneVuln"),
|
||||
MOVEMENT_VULN("movementVuln"),
|
||||
CANCEL_VULN("cancelVuln"), // Resistance for cancel type skills
|
||||
DEBUFF_VULN("debuffVuln"),
|
||||
BUFF_VULN("buffVuln"),
|
||||
|
||||
// RESISTANCES
|
||||
FIRE_RES("fireRes"),
|
||||
WIND_RES("windRes"),
|
||||
WATER_RES("waterRes"),
|
||||
EARTH_RES("earthRes"),
|
||||
HOLY_RES("holyRes"),
|
||||
DARK_RES("darkRes"),
|
||||
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
|
||||
CANCEL_PROF("cancelProf"),
|
||||
|
||||
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"),
|
||||
MANA_SHIELD_PERCENT("manaShield"),
|
||||
TRANSFER_DAMAGE_TO_PLAYER("transDamToPlayer"),
|
||||
ABSORB_MANA_DAMAGE_PERCENT("absorbDamMana"),
|
||||
|
||||
WEIGHT_LIMIT("weightLimit"),
|
||||
WEIGHT_PENALTY("weightPenalty"),
|
||||
|
||||
// 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"),
|
||||
MP_CONSUME("MpConsume"),
|
||||
|
||||
// Shield Stats
|
||||
SHIELD_DEFENCE_ANGLE("shieldDefAngle"),
|
||||
|
||||
// Skill mastery
|
||||
SKILL_MASTERY("skillMastery"),
|
||||
|
||||
// Vitality
|
||||
VITALITY_CONSUME_RATE("vitalityConsumeRate"),
|
||||
|
||||
// Souls
|
||||
MAX_SOULS("maxSouls"),
|
||||
|
||||
REDUCE_EXP_LOST_BY_PVP("reduceExpLostByPvp"),
|
||||
REDUCE_EXP_LOST_BY_MOB("reduceExpLostByMob"),
|
||||
REDUCE_EXP_LOST_BY_RAID("reduceExpLostByRaid"),
|
||||
|
||||
REDUCE_DEATH_PENALTY_BY_PVP("reduceDeathPenaltyByPvp"),
|
||||
REDUCE_DEATH_PENALTY_BY_MOB("reduceDeathPenaltyByMob"),
|
||||
REDUCE_DEATH_PENALTY_BY_RAID("reduceDeathPenaltyByRaid"),
|
||||
|
||||
// Fishing
|
||||
FISHING_EXPERTISE("fishingExpertise");
|
||||
|
||||
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 " + Stats.class.getSimpleName());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user