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
	EQ2UnknownSlot    = 25 // From CoE header - appears to be unused
	EQ2HairSlot       = 25 // From DoV header
	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
	ItemTypeBook             = 13 // From header files
	ItemTypeAdornment        = 14 // From header files
	ItemTypePattern          = 15 // From header files  
	ItemTypeArmorset         = 16 // From header files
	ItemTypeGenericAdornment = 14 // Alternate name
	ItemTypeProfile          = 16 // From DoV header
	ItemTypePatternSet       = 17 // From DoV header (alternate name)
	ItemTypeItemSet          = 18 // From DoV header (alternate name)
	ItemTypeItemcrate        = 18 // Alternate name
	ItemTypeBookOld          = 19 // Moved in newer versions
	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
	ItemMenuTypeDrink                 = 8388608 // From CoE header
	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
	ItemStatDeflectionChance   = 400 // From DoV header
	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
	ItemStatDissonance    = 504 // From ToV header
)

// 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
)
