Files
d2go/pkg/data/stat/stats.go

754 lines
13 KiB
Go

package stat
type ID int16
type Data struct {
ID ID
Value int
Layer int
}
type Stats []Data
func (i Stats) FindStat(id ID, layer int) (Data, bool) {
for _, s := range i {
if s.ID == id && s.Layer == layer {
return s, true
}
}
return Data{}, false
}
const (
Strength ID = iota
Energy
Dexterity
Vitality
StatPoints
SkillPoints
Life
MaxLife
Mana
MaxMana
Stamina
MaxStamina
Level
Experience
Gold
StashGold
EnhancedDefense
EnhancedDamageMax
EnhancedDamage
AttackRating
ChanceToBlock
MinDamage
MaxDamage
TwoHandedMinDamage
TwoHandedMaxDamage
DamagePercent
ManaRecovery
ManaRecoveryBonus
StaminaRecoveryBonus
LastExp
NextExp
Defense
DefenseVsMissiles
DefenseVsHth
NormalDamageReduction
MagicDamageReduction
DamageReduced
MagicResist
MaxMagicResist
FireResist
MaxFireResist
LightningResist
MaxLightningResist
ColdResist
MaxColdResist
PoisonResist
MaxPoisonResist
DamageAura
FireMinDamage
FireMaxDamage
LightningMinDamage
LightningMaxDamage
MagicMinDamage
MagicMaxDamage
ColdMinDamage
ColdMaxDamage
ColdLength
PoisonMinDamage
PoisonMaxDamage
PoisonLength
LifeSteal
LifeStealMax
ManaSteal
ManaStealMax
StaminaDrainMinDamage
StaminaDrainMaxDamage
StunLength
VelocityPercent
AttackRate
OtherAnimRate
Quantity
Value
Durability
MaxDurability
ReplenishLife
MaxDurabilityPercent
MaxLifePercent
MaxManaPercent
AttackerTakesDamage
GoldFind
MagicFind
Knockback
TimeDuration
AddClassSkills
Unused84
AddExperience
LifeAfterEachKill
ReducePrices
DoubleHerbDuration
LightRadius
LightColor
Requirements
LevelRequire
IncreasedAttackSpeed
LevelRequirePercent
LastBlockFrame
FasterRunWalk
NonClassSkill
State
FasterHitRecovery
PlayerCount
PoisonOverrideLength
FasterBlockRate
BypassUndead
BypassDemons
FasterCastRate
BypassBeasts
SingleSkill
SlainMonstersRestInPeace
CurseResistance
PoisonLengthReduced
NormalDamage
HitCausesMonsterToFlee
HitBlindsTarget
DamageTakenGoesToMana
IgnoreTargetsDefense
TargetDefense
PreventMonsterHeal
HalfFreezeDuration
AttackRatingPercent
MonsterDefensePerHit
DemonDamagePercent
UndeadDamagePercent
DemonAttackRating
UndeadAttackRating
Throwable
FireSkills
AllSkills
AttackerTakesLightDamage
IronMaidenLevel
LifeTapLevel
ThornsPercent
BoneArmor
BoneArmorMax
FreezesTarget
OpenWounds
CrushingBlow
KickDamage
ManaAfterKill
HealAfterDemonKill
ExtraBlood
DeadlyStrike
AbsorbFirePercent
AbsorbFire
AbsorbLightningPercent
AbsorbLightning
AbsorbMagicPercent
AbsorbMagic
AbsorbColdPercent
AbsorbCold
SlowsTarget
Aura
Indestructible
CannotBeFrozen
SlowerStaminaDrain
Reanimate
Pierce
MagicArrow
ExplosiveArrow
ThrowMinDamage
ThrowMaxDamage
SkillHandofAthena
SkillStaminaPercent
SkillPassiveStaminaPercent
SkillConcentration
SkillEnchant
SkillPierce
SkillConviction
SkillChillingArmor
SkillFrenzy
SkillDecrepify
SkillArmorPercent
Alignment
Target0
Target1
GoldLost
ConverisonLevel
ConverisonMaxHP
UnitDooverlay
AttackVsMonType
DamageVsMonType
Fade
ArmorOverridePercent
Unused183
Unused184
Unused185
Unused186
Unused187
AddSkillTab
Unused189
Unused190
Unused191
Unused192
Unused193
NumSockets
SkillOnAttack
SkillOnKill
SkillOnDeath
SkillOnHit
SkillOnLevelUp
Unused200
SkillOnGetHit
Unused202
Unused203
ItemChargedSkill
Unused205
Unused206
Unused207
Unused208
Unused209
Unused210
Unused211
Unused212
Unused213
DefensePerLevel
ArmorPercentPerLevel
LifePerLevel
ManaPerLevel
MaxDamagePerLevel
MaxDamagePercentPerLevel
StrengthPerLevel
DexterityPerLevel
EnergyPerLevel
VitalityPerLevel
AttackRatingPerLevel
AttackRatingPercentPerLevel
ColdDamageMaxPerLevel
FireDamageMaxPerLevel
LightningDamageMaxPerLevel
PoisonDamageMaxPerLevel
ResistColdPerLevel
ResistFirePerLevel
ResistLightningPerLevel
ResistPoisonPerLevel
AbsorbColdPerLevel
AbsorbFirePerLevel
AbsorbLightningPerLevel
AbsorbPoisonPerLevel
ThornsPerLevel
ExtraGoldPerLevel
MagicFindPerLevel
RegenStaminaPerLevel
StaminaPerLevel
DamageDemonPerLevel
DamageUndeadPerLevel
AttackRatingDemonPerLevel
AttackRatingUndeadPerLevel
CrushingBlowPerLevel
OpenWoundsPerLevel
KickDamagePerLevel
DeadlyStrikePerLevel
FindGemsPerLevel
ReplenishDurability
ReplenishQuantity
ExtraStack
FindItem
SlashDamage
SlashDamagePercent
CrushDamage
CrushDamagePercent
ThrustDamage
ThrustDamagePercent
AbsorbSlash
AbsorbCrush
AbsorbThrust
AbsorbSlashPercent
AbsorbCrushPercent
AbsorbThrustPercent
ArmorByTime
ArmorPercentByTime
LifeByTime
ManaByTime
MaxDamageByTime
MaxDamagePercentByTime
StrengthByTime
DexterityByTime
EnergyByTime
VitalityByTime
AttackRatingByTime
AttackRatingPercentByTime
ColdDamageMaxByTime
FireDamageMaxByTime
LightningDamageMaxByTime
PoisonDamageMaxByTime
ResistColdByTime
ResistFireByTime
ResistLightningByTime
ResistPoisonByTime
AbsorbColdByTime
AbsorbFireByTime
AbsorbLightningByTime
AbsorbPoisonByTime
FindGoldByTime
MagicFindByTime
RegenStaminaByTime
StaminaByTime
DamageDemonByTime
DamageUndeadByTime
AttackRatingDemonByTime
AttackRatingUndeadByTime
CrushingBlowByTime
OpenWoundsByTime
KickDamageByTime
DeadlyStrikeByTime
FindGemsByTime
PierceCold
PierceFire
PierceLightning
PiercePoison
DamageVsMonster
DamagePercentVsMonster
AttackRatingVsMonster
AttackRatingPercentVsMonster
AcVsMonster
AcPercentVsMonster
FireLength
BurningMin
BurningMax
ProgressiveDamage
ProgressiveSteal
ProgressiveOther
ProgressiveFire
ProgressiveCold
ProgressiveLightning
ExtraCharges
ProgressiveAttackRating
PoisonCount
DamageFrameRate
PierceIdx
FireSkillDamage
LightningSkillDamage
ColdSkillDamage
PoisonSkillDamage
EnemyFireResist
EnemyLightningResist
EnemyColdResist
EnemyPoisonResist
PassiveCriticalStrike
PassiveDodge
PassiveAvoid
PassiveEvade
PassiveWarmth
PassiveMasteryMeleeAttackRating
PassiveMasteryMeleeDamage
PassiveMasteryMeleeCritical
PassiveMasteryThrowAttackRating
PassiveMasteryThrowDamage
PassiveMasteryThrowCritical
PassiveWeaponBlock
SummonResist
ModifierListSkill
ModifierListLevel
LastSentHPPercent
SourceUnitType
SourceUnitID
ShortParam1
QuestItemDifficulty
PassiveMagicMastery
PassiveMagicPierce
SkillCooldown
SkillMissileDamageScale
)
var StringStats = []string{
"strength",
"energy",
"dexterity",
"vitality",
"statpoints",
"skillpoints",
"life",
"maxlife",
"mana",
"maxmana",
"stamina",
"maxstamina",
"level",
"experience",
"gold",
"stashgold",
"enhanceddefense",
"enhanceddamagemax",
"enhanceddamage",
"attackrating",
"chancetoblock",
"mindamage",
"maxdamage",
"twohandedmindamage",
"twohandedmaxdamage",
"damagepercent",
"manarecovery",
"manarecoverybonus",
"staminarecoverybonus",
"lastexp",
"nextexp",
"defense",
"defensevsmissiles",
"defensevshth",
"normaldamagereduction",
"magicdamagereduction",
"damagereduced",
"magicresist",
"maxmagicresist",
"fireresist",
"maxfireresist",
"lightningresist",
"maxlightningresist",
"coldresist",
"maxcoldresist",
"poisonresist",
"maxpoisonresist",
"damageaura",
"firemindamage",
"firemaxdamage",
"lightningmindamage",
"lightningmaxdamage",
"magicmindamage",
"magicmaxdamage",
"coldmindamage",
"coldmaxdamage",
"coldlength",
"poisonmindamage",
"poisonmaxdamage",
"poisonlength",
"lifesteal",
"lifestealmax",
"manasteal",
"manastealmax",
"staminadrainmindamage",
"staminadrainmaxdamage",
"stunlength",
"velocitypercent",
"attackrate",
"otheranimrate",
"quantity",
"value",
"durability",
"maxdurability",
"replenishlife",
"maxdurabilitypercent",
"maxlifepercent",
"maxmanapercent",
"attackertakesdamage",
"goldfind",
"magicfind",
"knockback",
"timeduration",
"addclassskills",
"unused84",
"addexperience",
"lifeaftereachkill",
"reduceprices",
"doubleherbduration",
"lightradius",
"lightcolor",
"requirements",
"levelrequire",
"increasedattackspeed",
"levelrequirepercent",
"lastblockframe",
"fasterrunwalk",
"nonclassskill",
"state",
"fasterhitrecovery",
"playercount",
"poisonoverridelength",
"fasterblockrate",
"bypassundead",
"bypassdemons",
"fastercastrate",
"bypassbeasts",
"singleskill",
"slainmonstersrestinpeace",
"curseresistance",
"poisonlengthreduced",
"normaldamage",
"hitcausesmonstertoflee",
"hitblindstarget",
"damagetakengoestomana",
"ignoretargetsdefense",
"targetdefense",
"preventmonsterheal",
"halffreezeduration",
"attackratingpercent",
"monsterdefenseperhit",
"demondamagepercent",
"undeaddamagepercent",
"demonattackrating",
"undeadattackrating",
"throwable",
"fireskills",
"allskills",
"attackertakeslightdamage",
"ironmaidenlevel",
"lifetaplevel",
"thornspercent",
"bonearmor",
"bonearmormax",
"freezestarget",
"openwounds",
"crushingblow",
"kickdamage",
"manaafterkill",
"healafterdemonkill",
"extrablood",
"deadlystrike",
"absorbfirepercent",
"absorbfire",
"absorblightningpercent",
"absorblightning",
"absorbmagicpercent",
"absorbmagic",
"absorbcoldpercent",
"absorbcold",
"slowstarget",
"aura",
"indestructible",
"cannotbefrozen",
"slowerstaminadrain",
"reanimate",
"pierce",
"magicarrow",
"explosivearrow",
"throwmindamage",
"throwmaxdamage",
"skillhandofathena",
"skillstaminapercent",
"skillpassivestaminapercent",
"skillconcentration",
"skillenchant",
"skillpierce",
"skillconviction",
"skillchillingarmor",
"skillfrenzy",
"skilldecrepify",
"skillarmorpercent",
"alignment",
"target0",
"target1",
"goldlost",
"converisonlevel",
"converisonmaxhp",
"unitdooverlay",
"attackvsmontype",
"damagevsmontype",
"fade",
"armoroverridepercent",
"unused183",
"unused184",
"unused185",
"unused186",
"unused187",
"addskilltab",
"unused189",
"unused190",
"unused191",
"unused192",
"unused193",
"numsockets",
"skillonattack",
"skillonkill",
"skillondeath",
"skillonhit",
"skillonlevelup",
"unused200",
"skillongethit",
"unused202",
"unused203",
"itemchargedskill",
"unused205",
"unused206",
"unused207",
"unused208",
"unused209",
"unused210",
"unused211",
"unused212",
"unused213",
"defenseperlevel",
"armorpercentperlevel",
"lifeperlevel",
"manaperlevel",
"maxdamageperlevel",
"maxdamagepercentperlevel",
"strengthperlevel",
"dexterityperlevel",
"energyperlevel",
"vitalityperlevel",
"attackratingperlevel",
"attackratingpercentperlevel",
"colddamagemaxperlevel",
"firedamagemaxperlevel",
"lightningdamagemaxperlevel",
"poisondamagemaxperlevel",
"resistcoldperlevel",
"resistfireperlevel",
"resistlightningperlevel",
"resistpoisonperlevel",
"absorbcoldperlevel",
"absorbfireperlevel",
"absorblightningperlevel",
"absorbpoisonperlevel",
"thornsperlevel",
"extragoldperlevel",
"magicfindperlevel",
"regenstaminaperlevel",
"staminaperlevel",
"damagedemonperlevel",
"damageundeadperlevel",
"attackratingdemonperlevel",
"attackratingundeadperlevel",
"crushingblowperlevel",
"openwoundsperlevel",
"kickdamageperlevel",
"deadlystrikeperlevel",
"findgemsperlevel",
"replenishdurability",
"replenishquantity",
"extrastack",
"finditem",
"slashdamage",
"slashdamagepercent",
"crushdamage",
"crushdamagepercent",
"thrustdamage",
"thrustdamagepercent",
"absorbslash",
"absorbcrush",
"absorbthrust",
"absorbslashpercent",
"absorbcrushpercent",
"absorbthrustpercent",
"armorbytime",
"armorpercentbytime",
"lifebytime",
"manabytime",
"maxdamagebytime",
"maxdamagepercentbytime",
"strengthbytime",
"dexteritybytime",
"energybytime",
"vitalitybytime",
"attackratingbytime",
"attackratingpercentbytime",
"colddamagemaxbytime",
"firedamagemaxbytime",
"lightningdamagemaxbytime",
"poisondamagemaxbytime",
"resistcoldbytime",
"resistfirebytime",
"resistlightningbytime",
"resistpoisonbytime",
"absorbcoldbytime",
"absorbfirebytime",
"absorblightningbytime",
"absorbpoisonbytime",
"findgoldbytime",
"magicfindbytime",
"regenstaminabytime",
"staminabytime",
"damagedemonbytime",
"damageundeadbytime",
"attackratingdemonbytime",
"attackratingundeadbytime",
"crushingblowbytime",
"openwoundsbytime",
"kickdamagebytime",
"deadlystrikebytime",
"findgemsbytime",
"piercecold",
"piercefire",
"piercelightning",
"piercepoison",
"damagevsmonster",
"damagepercentvsmonster",
"attackratingvsmonster",
"attackratingpercentvsmonster",
"acvsmonster",
"acpercentvsmonster",
"firelength",
"burningmin",
"burningmax",
"progressivedamage",
"progressivesteal",
"progressiveother",
"progressivefire",
"progressivecold",
"progressivelightning",
"extracharges",
"progressiveattackrating",
"poisoncount",
"damageframerate",
"pierceidx",
"fireskilldamage",
"lightningskilldamage",
"coldskilldamage",
"poisonskilldamage",
"enemyfireresist",
"enemylightningresist",
"enemycoldresist",
"enemypoisonresist",
"passivecriticalstrike",
"passivedodge",
"passiveavoid",
"passiveevade",
"passivewarmth",
"passivemasterymeleeattackrating",
"passivemasterymeleedamage",
"passivemasterymeleecritical",
"passivemasterythrowattackrating",
"passivemasterythrowdamage",
"passivemasterythrowcritical",
"passiveweaponblock",
"summonresist",
"modifierlistskill",
"modifierlistlevel",
"lastsenthppercent",
"sourceunittype",
"sourceunitid",
"shortparam1",
"questitemdifficulty",
"passivemagicmastery",
"passivemagicpierce",
"skillcooldown",
"skillmissiledamagescale",
}
func (s ID) String() string {
return StringStats[s]
}