687 lines
20 KiB
Go
687 lines
20 KiB
Go
package items
|
|
|
|
// Equipment slot constants
|
|
const (
|
|
BaseEquipment = 0
|
|
AppearanceEquipment = 1
|
|
MaxEquipment = 2 // max iterations for equipment (base is 0, appearance is 1)
|
|
)
|
|
|
|
// EQ2 slot positions (array indices)
|
|
const (
|
|
EQ2PrimarySlot = 0
|
|
EQ2SecondarySlot = 1
|
|
EQ2HeadSlot = 2
|
|
EQ2ChestSlot = 3
|
|
EQ2ShouldersSlot = 4
|
|
EQ2ForearmsSlot = 5
|
|
EQ2HandsSlot = 6
|
|
EQ2LegsSlot = 7
|
|
EQ2FeetSlot = 8
|
|
EQ2LRingSlot = 9
|
|
EQ2RRingSlot = 10
|
|
EQ2EarsSlot1 = 11
|
|
EQ2EarsSlot2 = 12
|
|
EQ2NeckSlot = 13
|
|
EQ2LWristSlot = 14
|
|
EQ2RWristSlot = 15
|
|
EQ2RangeSlot = 16
|
|
EQ2AmmoSlot = 17
|
|
EQ2WaistSlot = 18
|
|
EQ2CloakSlot = 19
|
|
EQ2CharmSlot1 = 20
|
|
EQ2CharmSlot2 = 21
|
|
EQ2FoodSlot = 22
|
|
EQ2DrinkSlot = 23
|
|
EQ2TexturesSlot = 24
|
|
EQ2HairSlot = 25
|
|
EQ2BeardSlot = 26
|
|
EQ2WingsSlot = 27
|
|
EQ2NakedChestSlot = 28
|
|
EQ2NakedLegsSlot = 29
|
|
EQ2BackSlot = 30
|
|
)
|
|
|
|
// Original slot positions (for older clients)
|
|
const (
|
|
EQ2OrigFoodSlot = 18
|
|
EQ2OrigDrinkSlot = 19
|
|
EQ2DoFCharmSlot1 = 18
|
|
EQ2DoFCharmSlot2 = 19
|
|
EQ2DoFFoodSlot = 20
|
|
EQ2DoFDrinkSlot = 21
|
|
)
|
|
|
|
// Slot bitmasks for equipment validation
|
|
const (
|
|
PrimarySlot = 1
|
|
SecondarySlot = 2
|
|
HeadSlot = 4
|
|
ChestSlot = 8
|
|
ShouldersSlot = 16
|
|
ForearmsSlot = 32
|
|
HandsSlot = 64
|
|
LegsSlot = 128
|
|
FeetSlot = 256
|
|
LRingSlot = 512
|
|
RRingSlot = 1024
|
|
EarsSlot1 = 2048
|
|
EarsSlot2 = 4096
|
|
NeckSlot = 8192
|
|
LWristSlot = 16384
|
|
RWristSlot = 32768
|
|
RangeSlot = 65536
|
|
AmmoSlot = 131072
|
|
WaistSlot = 262144
|
|
CloakSlot = 524288
|
|
CharmSlot1 = 1048576
|
|
CharmSlot2 = 2097152
|
|
FoodSlot = 4194304
|
|
DrinkSlot = 8388608
|
|
TexturesSlot = 16777216
|
|
HairSlot = 33554432
|
|
BeardSlot = 67108864
|
|
WingsSlot = 134217728
|
|
NakedChestSlot = 268435456
|
|
NakedLegsSlot = 536870912
|
|
BackSlot = 1073741824
|
|
OrigFoodSlot = 524288
|
|
OrigDrinkSlot = 1048576
|
|
DoFFoodSlot = 1048576
|
|
DoFDrinkSlot = 2097152
|
|
)
|
|
|
|
// Inventory slot limits and constants
|
|
const (
|
|
ClassicEQMaxBagSlots = 20
|
|
DoFEQMaxBagSlots = 36
|
|
NumBankSlots = 12
|
|
NumSharedBankSlots = 8
|
|
ClassicNumSlots = 22
|
|
NumSlots = 25
|
|
NumInvSlots = 6
|
|
InvSlot1 = 0
|
|
InvSlot2 = 50
|
|
InvSlot3 = 100
|
|
InvSlot4 = 150
|
|
InvSlot5 = 200
|
|
InvSlot6 = 250
|
|
BankSlot1 = 1000
|
|
BankSlot2 = 1100
|
|
BankSlot3 = 1200
|
|
BankSlot4 = 1300
|
|
BankSlot5 = 1400
|
|
BankSlot6 = 1500
|
|
BankSlot7 = 1600
|
|
BankSlot8 = 1700
|
|
)
|
|
|
|
// Item flags (bitmask values)
|
|
const (
|
|
Attuned = 1
|
|
Attuneable = 2
|
|
Artifact = 4
|
|
Lore = 8
|
|
Temporary = 16
|
|
NoTrade = 32
|
|
NoValue = 64
|
|
NoZone = 128
|
|
NoDestroy = 256
|
|
Crafted = 512
|
|
GoodOnly = 1024
|
|
EvilOnly = 2048
|
|
StackLore = 4096
|
|
LoreEquip = 8192
|
|
NoTransmute = 16384
|
|
Cursed = 32768
|
|
)
|
|
|
|
// Item flags2 (bitmask values)
|
|
const (
|
|
Ornate = 1
|
|
Heirloom = 2
|
|
AppearanceOnly = 4
|
|
Unlocked = 8
|
|
Reforged = 16
|
|
NoRepair = 32
|
|
Ethereal = 64
|
|
Refined = 128
|
|
NoSalvage = 256
|
|
Indestructible = 512
|
|
NoExperiment = 1024
|
|
HouseLore = 2048
|
|
Flags24096 = 4096 // AoM: not used at this time
|
|
BuildingBlock = 8192
|
|
FreeReforge = 16384
|
|
Flags232768 = 32768 // AoM: not used at this time
|
|
)
|
|
|
|
// Item wield types
|
|
const (
|
|
ItemWieldTypeDual = 1
|
|
ItemWieldTypeSingle = 2
|
|
ItemWieldTypeTwoHand = 4
|
|
)
|
|
|
|
// Item types
|
|
const (
|
|
ItemTypeNormal = 0
|
|
ItemTypeWeapon = 1
|
|
ItemTypeRanged = 2
|
|
ItemTypeArmor = 3
|
|
ItemTypeShield = 4
|
|
ItemTypeBag = 5
|
|
ItemTypeSkill = 6
|
|
ItemTypeRecipe = 7
|
|
ItemTypeFood = 8
|
|
ItemTypeBauble = 9
|
|
ItemTypeHouse = 10
|
|
ItemTypeThrown = 11
|
|
ItemTypeHouseContainer = 12
|
|
ItemTypeAdornment = 13
|
|
ItemTypeGenericAdornment = 14
|
|
ItemTypeProfile = 16
|
|
ItemTypePattern = 17
|
|
ItemTypeArmorset = 18
|
|
ItemTypeItemcrate = 18
|
|
ItemTypeBook = 19
|
|
ItemTypeDecoration = 20
|
|
ItemTypeDungeonMaker = 21
|
|
ItemTypeMarketplace = 22
|
|
)
|
|
|
|
// Item menu types (bitmask values)
|
|
const (
|
|
ItemMenuTypeGeneric = 1
|
|
ItemMenuTypeEquip = 2
|
|
ItemMenuTypeBag = 4
|
|
ItemMenuTypeHouse = 8
|
|
ItemMenuTypeEmptyBag = 16
|
|
ItemMenuTypeScribe = 32
|
|
ItemMenuTypeBankBag = 64
|
|
ItemMenuTypeInsufficientKnowledge = 128
|
|
ItemMenuTypeActivate = 256
|
|
ItemMenuTypeBroken = 512
|
|
ItemMenuTypeTwoHanded = 1024
|
|
ItemMenuTypeAttuned = 2048
|
|
ItemMenuTypeAttuneable = 4096
|
|
ItemMenuTypeBook = 8192
|
|
ItemMenuTypeDisplayCharges = 16384
|
|
ItemMenuTypeTest1 = 32768
|
|
ItemMenuTypeNamepet = 65536
|
|
ItemMenuTypeMentored = 131072
|
|
ItemMenuTypeConsume = 262144
|
|
ItemMenuTypeUse = 524288
|
|
ItemMenuTypeConsumeOff = 1048576
|
|
ItemMenuTypeTest3 = 1310720
|
|
ItemMenuTypeTest4 = 2097152
|
|
ItemMenuTypeTest5 = 4194304
|
|
ItemMenuTypeTest6 = 8388608
|
|
ItemMenuTypeTest7 = 16777216
|
|
ItemMenuTypeTest8 = 33554432
|
|
ItemMenuTypeTest9 = 67108864
|
|
ItemMenuTypeDamaged = 134217728
|
|
ItemMenuTypeBroken2 = 268435456
|
|
ItemMenuTypeRedeem = 536870912
|
|
ItemMenuTypeTest10 = 1073741824
|
|
ItemMenuTypeUnpack = 2147483648
|
|
)
|
|
|
|
// Original item menu types
|
|
const (
|
|
OrigItemMenuTypeFood = 2048
|
|
OrigItemMenuTypeDrink = 4096
|
|
OrigItemMenuTypeAttuned = 8192
|
|
OrigItemMenuTypeAttuneable = 16384
|
|
OrigItemMenuTypeBook = 32768
|
|
OrigItemMenuTypeStackable = 65536
|
|
OrigItemMenuTypeNamepet = 262144
|
|
)
|
|
|
|
// Item menu type2 flags
|
|
const (
|
|
ItemMenuType2Test1 = 1
|
|
ItemMenuType2Test2 = 2
|
|
ItemMenuType2Unpack = 4
|
|
ItemMenuType2Test4 = 8
|
|
ItemMenuType2Test5 = 16
|
|
ItemMenuType2Test6 = 32
|
|
ItemMenuType2Test7 = 64
|
|
ItemMenuType2Test8 = 128
|
|
ItemMenuType2Test9 = 256
|
|
ItemMenuType2Test10 = 512
|
|
ItemMenuType2Test11 = 1024
|
|
ItemMenuType2Test12 = 2048
|
|
ItemMenuType2Test13 = 4096
|
|
ItemMenuType2Test14 = 8192
|
|
ItemMenuType2Test15 = 16384
|
|
ItemMenuType2Test16 = 32768
|
|
)
|
|
|
|
// Item tier tags
|
|
const (
|
|
ItemTagCommon = 2
|
|
ItemTagUncommon = 3
|
|
ItemTagTreasured = 4
|
|
ItemTagLegendary = 7
|
|
ItemTagFabled = 9
|
|
ItemTagMythical = 12
|
|
)
|
|
|
|
// Broker type flags
|
|
const (
|
|
ItemBrokerTypeAny = 0xFFFFFFFF
|
|
ItemBrokerTypeAny64Bit = 0xFFFFFFFFFFFFFFFF
|
|
ItemBrokerTypeAdornment = 134217728
|
|
ItemBrokerTypeAmmo = 1024
|
|
ItemBrokerTypeAttuneable = 16384
|
|
ItemBrokerTypeBag = 2048
|
|
ItemBrokerTypeBauble = 16777216
|
|
ItemBrokerTypeBook = 128
|
|
ItemBrokerTypeChainarmor = 2097152
|
|
ItemBrokerTypeCloak = 1073741824
|
|
ItemBrokerTypeClotharmor = 524288
|
|
ItemBrokerTypeCollectable = 67108864
|
|
ItemBrokerTypeCrushweapon = 4
|
|
ItemBrokerTypeDrink = 131072
|
|
ItemBrokerTypeFood = 4096
|
|
ItemBrokerTypeHouseitem = 512
|
|
ItemBrokerTypeJewelry = 262144
|
|
ItemBrokerTypeLeatherarmor = 1048576
|
|
ItemBrokerTypeLore = 8192
|
|
ItemBrokerTypeMisc = 1
|
|
ItemBrokerTypePierceweapon = 8
|
|
ItemBrokerTypePlatearmor = 4194304
|
|
ItemBrokerTypePoison = 65536
|
|
ItemBrokerTypePotion = 32768
|
|
ItemBrokerTypeRecipebook = 8388608
|
|
ItemBrokerTypeSalesdisplay = 33554432
|
|
ItemBrokerTypeShield = 32
|
|
ItemBrokerTypeSlashweapon = 2
|
|
ItemBrokerTypeSpellscroll = 64
|
|
ItemBrokerTypeTinkered = 268435456
|
|
ItemBrokerTypeTradeskill = 256
|
|
)
|
|
|
|
// 2-handed weapon broker types
|
|
const (
|
|
ItemBrokerType2HCrush = 17179869184
|
|
ItemBrokerType2HPierce = 34359738368
|
|
ItemBrokerType2HSlash = 8589934592
|
|
)
|
|
|
|
// Broker slot flags
|
|
const (
|
|
ItemBrokerSlotAny = 0xFFFFFFFF
|
|
ItemBrokerSlotAmmo = 65536
|
|
ItemBrokerSlotCharm = 524288
|
|
ItemBrokerSlotChest = 32
|
|
ItemBrokerSlotCloak = 262144
|
|
ItemBrokerSlotDrink = 2097152
|
|
ItemBrokerSlotEars = 4096
|
|
ItemBrokerSlotFeet = 1024
|
|
ItemBrokerSlotFood = 1048576
|
|
ItemBrokerSlotForearms = 128
|
|
ItemBrokerSlotHands = 256
|
|
ItemBrokerSlotHead = 16
|
|
ItemBrokerSlotLegs = 512
|
|
ItemBrokerSlotNeck = 8192
|
|
ItemBrokerSlotPrimary = 1
|
|
ItemBrokerSlotPrimary2H = 2
|
|
ItemBrokerSlotRangeWeapon = 32768
|
|
ItemBrokerSlotRing = 2048
|
|
ItemBrokerSlotSecondary = 8
|
|
ItemBrokerSlotShoulders = 64
|
|
ItemBrokerSlotWaist = 131072
|
|
ItemBrokerSlotWrist = 16384
|
|
)
|
|
|
|
// Broker stat type flags
|
|
const (
|
|
ItemBrokerStatTypeNone = 0
|
|
ItemBrokerStatTypeDef = 2
|
|
ItemBrokerStatTypeStr = 4
|
|
ItemBrokerStatTypeSta = 8
|
|
ItemBrokerStatTypeAgi = 16
|
|
ItemBrokerStatTypeWis = 32
|
|
ItemBrokerStatTypeInt = 64
|
|
ItemBrokerStatTypeHealth = 128
|
|
ItemBrokerStatTypePower = 256
|
|
ItemBrokerStatTypeHeat = 512
|
|
ItemBrokerStatTypeCold = 1024
|
|
ItemBrokerStatTypeMagic = 2048
|
|
ItemBrokerStatTypeMental = 4096
|
|
ItemBrokerStatTypeDivine = 8192
|
|
ItemBrokerStatTypePoison = 16384
|
|
ItemBrokerStatTypeDisease = 32768
|
|
ItemBrokerStatTypeCrush = 65536
|
|
ItemBrokerStatTypeSlash = 131072
|
|
ItemBrokerStatTypePierce = 262144
|
|
ItemBrokerStatTypeCritical = 524288
|
|
ItemBrokerStatTypeDblAttack = 1048576
|
|
ItemBrokerStatTypeAbilityMod = 2097152
|
|
ItemBrokerStatTypePotency = 4194304
|
|
ItemBrokerStatTypeAEAutoattack = 8388608
|
|
ItemBrokerStatTypeAttackspeed = 16777216
|
|
ItemBrokerStatTypeBlockchance = 33554432
|
|
ItemBrokerStatTypeCastingspeed = 67108864
|
|
ItemBrokerStatTypeCritbonus = 134217728
|
|
ItemBrokerStatTypeCritchance = 268435456
|
|
ItemBrokerStatTypeDPS = 536870912
|
|
ItemBrokerStatTypeFlurrychance = 1073741824
|
|
ItemBrokerStatTypeHategain = 2147483648
|
|
ItemBrokerStatTypeMitigation = 4294967296
|
|
ItemBrokerStatTypeMultiAttack = 8589934592
|
|
ItemBrokerStatTypeRecovery = 17179869184
|
|
ItemBrokerStatTypeReuseSpeed = 34359738368
|
|
ItemBrokerStatTypeSpellWpndmg = 68719476736
|
|
ItemBrokerStatTypeStrikethrough = 137438953472
|
|
ItemBrokerStatTypeToughness = 274877906944
|
|
ItemBrokerStatTypeWeapondmg = 549755813888
|
|
)
|
|
|
|
// Special slot values
|
|
const (
|
|
OverflowSlot = 0xFFFFFFFE
|
|
SlotInvalid = 0xFFFF
|
|
)
|
|
|
|
// Basic item stats (0-4)
|
|
const (
|
|
ItemStatStr = 0
|
|
ItemStatSta = 1
|
|
ItemStatAgi = 2
|
|
ItemStatWis = 3
|
|
ItemStatInt = 4
|
|
)
|
|
|
|
// Skill-based stats (100+)
|
|
const (
|
|
ItemStatAdorning = 100
|
|
ItemStatAggression = 101
|
|
ItemStatArtificing = 102
|
|
ItemStatArtistry = 103
|
|
ItemStatChemistry = 104
|
|
ItemStatCrushing = 105
|
|
ItemStatDefense = 106
|
|
ItemStatDeflection = 107
|
|
ItemStatDisruption = 108
|
|
ItemStatFishing = 109
|
|
ItemStatFletching = 110
|
|
ItemStatFocus = 111
|
|
ItemStatForesting = 112
|
|
ItemStatGathering = 113
|
|
ItemStatMetalShaping = 114
|
|
ItemStatMetalworking = 115
|
|
ItemStatMining = 116
|
|
ItemStatMinistration = 117
|
|
ItemStatOrdination = 118
|
|
ItemStatParry = 119
|
|
ItemStatPiercing = 120
|
|
ItemStatRanged = 121
|
|
ItemStatSafeFall = 122
|
|
ItemStatScribing = 123
|
|
ItemStatSculpting = 124
|
|
ItemStatSlashing = 125
|
|
ItemStatSubjugation = 126
|
|
ItemStatSwimming = 127
|
|
ItemStatTailoring = 128
|
|
ItemStatTinkering = 129
|
|
ItemStatTransmuting = 130
|
|
ItemStatTrapping = 131
|
|
ItemStatWeaponSkills = 132
|
|
ItemStatPowerCostReduction = 133
|
|
ItemStatSpellAvoidance = 134
|
|
)
|
|
|
|
// Resistance stats (200+)
|
|
const (
|
|
ItemStatVsPhysical = 200
|
|
ItemStatVsHeat = 201 // elemental
|
|
ItemStatVsPoison = 202 // noxious
|
|
ItemStatVsMagic = 203 // arcane
|
|
ItemStatVsSlash = 204
|
|
ItemStatVsCrush = 205
|
|
ItemStatVsPierce = 206
|
|
ItemStatVsCold = 207
|
|
ItemStatVsMental = 208
|
|
ItemStatVsDivine = 209
|
|
ItemStatVsDrowning = 210
|
|
ItemStatVsFalling = 211
|
|
ItemStatVsPain = 212
|
|
ItemStatVsMelee = 213
|
|
ItemStatVsDisease = 214
|
|
)
|
|
|
|
// Damage type stats (300+)
|
|
const (
|
|
ItemStatDmgSlash = 300
|
|
ItemStatDmgCrush = 301
|
|
ItemStatDmgPierce = 302
|
|
ItemStatDmgHeat = 303
|
|
ItemStatDmgCold = 304
|
|
ItemStatDmgMagic = 305
|
|
ItemStatDmgMental = 306
|
|
ItemStatDmgDivine = 307
|
|
ItemStatDmgDisease = 308
|
|
ItemStatDmgPoison = 309
|
|
ItemStatDmgDrowning = 310
|
|
ItemStatDmgFalling = 311
|
|
ItemStatDmgPain = 312
|
|
ItemStatDmgMelee = 313
|
|
)
|
|
|
|
// Pool stats (500+)
|
|
const (
|
|
ItemStatHealth = 500
|
|
ItemStatPower = 501
|
|
ItemStatConcentration = 502
|
|
ItemStatSavagery = 503
|
|
)
|
|
|
|
// Advanced stats (600+)
|
|
const (
|
|
ItemStatHPRegen = 600
|
|
ItemStatManaRegen = 601
|
|
ItemStatHPRegenPPT = 602
|
|
ItemStatMPRegenPPT = 603
|
|
ItemStatCombatHPRegenPPT = 604
|
|
ItemStatCombatMPRegenPPT = 605
|
|
ItemStatMaxHP = 606
|
|
ItemStatMaxHPPerc = 607
|
|
ItemStatMaxHPPercFinal = 608
|
|
ItemStatSpeed = 609
|
|
ItemStatSlow = 610
|
|
ItemStatMountSpeed = 611
|
|
ItemStatMountAirSpeed = 612
|
|
ItemStatLeapSpeed = 613
|
|
ItemStatLeapTime = 614
|
|
ItemStatGlideEfficiency = 615
|
|
ItemStatOffensiveSpeed = 616
|
|
ItemStatAttackSpeed = 617
|
|
ItemStatSpellWeaponAttackSpeed = 618
|
|
ItemStatMaxMana = 619
|
|
ItemStatMaxManaPerc = 620
|
|
ItemStatMaxAttPerc = 621
|
|
ItemStatBlurVision = 622
|
|
ItemStatMagicLevelImmunity = 623
|
|
ItemStatHateGainMod = 624
|
|
ItemStatCombatExpMod = 625
|
|
ItemStatTradeskillExpMod = 626
|
|
ItemStatAchievementExpMod = 627
|
|
ItemStatSizeMod = 628
|
|
ItemStatDPS = 629
|
|
ItemStatSpellWeaponDPS = 630
|
|
ItemStatStealth = 631
|
|
ItemStatInvis = 632
|
|
ItemStatSeeStealth = 633
|
|
ItemStatSeeInvis = 634
|
|
ItemStatEffectiveLevelMod = 635
|
|
ItemStatRiposteChance = 636
|
|
ItemStatParryChance = 637
|
|
ItemStatDodgeChance = 638
|
|
ItemStatAEAutoattackChance = 639
|
|
ItemStatSpellWeaponAEAutoattackChance = 640
|
|
ItemStatMultiattackChance = 641
|
|
ItemStatPvPDoubleAttackChance = 642
|
|
ItemStatSpellWeaponDoubleAttackChance = 643
|
|
ItemStatPvPSpellWeaponDoubleAttackChance = 644
|
|
ItemStatSpellMultiAttackChance = 645
|
|
ItemStatPvPSpellDoubleAttackChance = 646
|
|
ItemStatFlurry = 647
|
|
ItemStatSpellWeaponFlurry = 648
|
|
ItemStatMeleeDamageMultiplier = 649
|
|
ItemStatExtraHarvestChance = 650
|
|
ItemStatExtraShieldBlockChance = 651
|
|
ItemStatItemHPRegenPPT = 652
|
|
ItemStatItemPPRegenPPT = 653
|
|
ItemStatMeleeCritChance = 654
|
|
ItemStatCritAvoidance = 655
|
|
ItemStatBeneficialCritChance = 656
|
|
ItemStatCritBonus = 657
|
|
ItemStatPvPCritBonus = 658
|
|
ItemStatPotency = 659
|
|
ItemStatPvPPotency = 660
|
|
ItemStatUnconsciousHPMod = 661
|
|
ItemStatAbilityReuseSpeed = 662
|
|
ItemStatAbilityRecoverySpeed = 663
|
|
ItemStatAbilityCastingSpeed = 664
|
|
ItemStatSpellReuseSpeed = 665
|
|
ItemStatMeleeWeaponRange = 666
|
|
ItemStatRangedWeaponRange = 667
|
|
ItemStatFallingDamageReduction = 668
|
|
ItemStatRiposteDamage = 669
|
|
ItemStatMinimumDeflectionChance = 670
|
|
ItemStatMovementWeave = 671
|
|
ItemStatCombatHPRegen = 672
|
|
ItemStatCombatManaRegen = 673
|
|
ItemStatContestSpeedBoost = 674
|
|
ItemStatTrackingAvoidance = 675
|
|
ItemStatStealthInvisSpeedMod = 676
|
|
ItemStatLootCoin = 677
|
|
ItemStatArmorMitigationIncrease = 678
|
|
ItemStatAmmoConservation = 679
|
|
ItemStatStrikethrough = 680
|
|
ItemStatStatusBonus = 681
|
|
ItemStatAccuracy = 682
|
|
ItemStatCounterstrike = 683
|
|
ItemStatShieldBash = 684
|
|
ItemStatWeaponDamageBonus = 685
|
|
ItemStatWeaponDamageBonusMeleeOnly = 686
|
|
ItemStatAdditionalRiposteChance = 687
|
|
ItemStatCriticalMitigation = 688
|
|
ItemStatPvPToughness = 689
|
|
ItemStatPvPLethality = 690
|
|
ItemStatStaminaBonus = 691
|
|
ItemStatWisdomMitBonus = 692
|
|
ItemStatHealReceive = 693
|
|
ItemStatHealReceivePerc = 694
|
|
ItemStatPvPCriticalMitigation = 695
|
|
ItemStatBaseAvoidanceBonus = 696
|
|
ItemStatInCombatSavageryRegen = 697
|
|
ItemStatOutOfCombatSavageryRegen = 698
|
|
ItemStatSavageryRegen = 699
|
|
ItemStatSavageryGainMod = 6100
|
|
ItemStatMaxSavageryLevel = 6101
|
|
ItemStatSpellWeaponDamageBonus = 6102
|
|
ItemStatInCombatDissonanceRegen = 6103
|
|
ItemStatOutOfCombatDissonanceRegen = 6104
|
|
ItemStatDissonanceRegen = 6105
|
|
ItemStatDissonanceGainMod = 6106
|
|
ItemStatAEAutoattackAvoid = 6107
|
|
ItemStatAgnosticDamageBonus = 6108
|
|
ItemStatAgnosticHealBonus = 6109
|
|
ItemStatTitheGain = 6110
|
|
ItemStatFerver = 6111
|
|
ItemStatResolve = 6112
|
|
ItemStatCombatMitigation = 6113
|
|
ItemStatAbilityMitigation = 6114
|
|
ItemStatMultiAttackAvoidance = 6115
|
|
ItemStatDoubleCastAvoidance = 6116
|
|
ItemStatAbilityDoubleCastAvoidance = 6117
|
|
ItemStatDamagePerSecondMitigation = 6118
|
|
ItemStatFerverMitigation = 6119
|
|
ItemStatFlurryAvoidance = 6120
|
|
ItemStatWeaponDamageBonusMitigation = 6121
|
|
ItemStatAbilityDoubleCastChance = 6122
|
|
ItemStatAbilityModifierMitigation = 6123
|
|
ItemStatStatusEarned = 6124
|
|
)
|
|
|
|
// Spell/ability modifier stats (700+)
|
|
const (
|
|
ItemStatSpellDamage = 700
|
|
ItemStatHealAmount = 701
|
|
ItemStatSpellAndHeal = 702
|
|
ItemStatCombatArtDamage = 703
|
|
ItemStatSpellAndCombatArtDamage = 704
|
|
ItemStatTauntAmount = 705
|
|
ItemStatTauntAndCombatArtDamage = 706
|
|
ItemStatAbilityModifier = 707
|
|
)
|
|
|
|
// Server-only stats (800+) - never sent to client
|
|
const (
|
|
ItemStatDurabilityMod = 800
|
|
ItemStatDurabilityAdd = 801
|
|
ItemStatProgressAdd = 802
|
|
ItemStatProgressMod = 803
|
|
ItemStatSuccessMod = 804
|
|
ItemStatCritSuccessMod = 805
|
|
ItemStatExDurabilityMod = 806
|
|
ItemStatExDurabilityAdd = 807
|
|
ItemStatExProgressMod = 808
|
|
ItemStatExProgressAdd = 809
|
|
ItemStatExSuccessMod = 810
|
|
ItemStatExCritSuccessMod = 811
|
|
ItemStatExCritFailureMod = 812
|
|
ItemStatRareHarvestChance = 813
|
|
ItemStatMaxCrafting = 814
|
|
ItemStatComponentRefund = 815
|
|
ItemStatBountifulHarvest = 816
|
|
)
|
|
|
|
// Uncontested stats (850+)
|
|
const (
|
|
ItemStatUncontestedParry = 850
|
|
ItemStatUncontestedBlock = 851
|
|
ItemStatUncontestedDodge = 852
|
|
ItemStatUncontestedRiposte = 853
|
|
)
|
|
|
|
// Display flags
|
|
const (
|
|
DisplayFlagRedText = 1
|
|
DisplayFlagNoGuildStatus = 8
|
|
DisplayFlagNoBuyback = 16
|
|
DisplayFlagNotForSale = 64
|
|
DisplayFlagNoBuy = 128
|
|
)
|
|
|
|
// House store item flags
|
|
const (
|
|
HouseStoreItemTextRed = 1
|
|
HouseStoreUnknownBit2 = 2
|
|
HouseStoreUnknownBit4 = 4
|
|
HouseStoreForSale = 8
|
|
HouseStoreUnknownBit16 = 16
|
|
HouseStoreVaultTab = 32
|
|
)
|
|
|
|
// Log category
|
|
const (
|
|
LogCategoryItems = "Items"
|
|
)
|
|
|
|
// Item validation constants
|
|
const (
|
|
MaxItemNameLength = 255 // Maximum length for item names
|
|
MaxItemDescLength = 1000 // Maximum length for item descriptions
|
|
)
|
|
|
|
// Default item values
|
|
const (
|
|
DefaultItemCondition = 100 // 100% condition for new items
|
|
DefaultItemDurability = 100 // 100% durability for new items
|
|
)
|