Files
CypherCore/Framework/Constants/ItemConst.cs
T
2017-06-19 17:30:18 -04:00

1077 lines
33 KiB
C#

/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* 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/>.
*/
namespace Framework.Constants
{
public struct ItemConst
{
public const int MaxDamages = 2; // changed in 3.1.0
public const int MaxGemSockets = 3;
public const int MaxSpells = 5;
public const int MaxStats = 10;
public const int MaxBagSize = 36;
public const byte NullBag = 0;
public const byte NullSlot = 255;
public const int MaxOutfitItems = 24;
public const int MaxItemExtCostItems = 5;
public const int MaxItemExtCostCurrencies = 5;
public const int MaxItemRandomProperties = 5;
public const int MaxItemEnchantmentEffects = 3;
public const int MaxProtoSpells = 5;
public const int MaxEquipmentSetIndex = 20;
public const int MaxItemSubclassTotal = 21;
public const int MaxItemSetItems = 10;
public const int MaxItemSetSpells = 8;
public static uint[] ItemQualityColors =
{
0xff9d9d9d, // GREY
0xffffffff, // WHITE
0xff1eff00, // GREEN
0xff0070dd, // BLUE
0xffa335ee, // PURPLE
0xffff8000, // ORANGE
0xffe6cc80, // LIGHT YELLOW
0xffe6cc80 // LIGHT YELLOW
};
public static SocketColor[] SocketColorToGemTypeMask =
{
0,
SocketColor.Meta,
SocketColor.Red,
SocketColor.Yellow,
SocketColor.Blue,
SocketColor.Hydraulic,
SocketColor.Cogwheel,
SocketColor.Prismatic,
SocketColor.RelicIron,
SocketColor.RelicBlood,
SocketColor.RelicShadow,
SocketColor.RelicFel,
SocketColor.RelicArcane,
SocketColor.RelicFrost,
SocketColor.RelicFire,
SocketColor.RelicWater,
SocketColor.RelicLife,
SocketColor.RelicWind,
SocketColor.RelicHoly
};
public static ItemModifier[] AppearanceModifierSlotBySpec =
{
ItemModifier.TransmogAppearanceSpec1,
ItemModifier.TransmogAppearanceSpec2,
ItemModifier.TransmogAppearanceSpec3,
ItemModifier.TransmogAppearanceSpec4
};
public const uint AppearanceModifierMaskSpecSpecific =
(1 << (int)ItemModifier.TransmogAppearanceSpec1) |
(1 << (int)ItemModifier.TransmogAppearanceSpec2) |
(1 << (int)ItemModifier.TransmogAppearanceSpec3) |
(1 << (int)ItemModifier.TransmogAppearanceSpec4);
public static ItemModifier[] IllusionModifierSlotBySpec =
{
ItemModifier.EnchantIllusionSpec1,
ItemModifier.EnchantIllusionSpec2,
ItemModifier.EnchantIllusionSpec3,
ItemModifier.EnchantIllusionSpec4
};
public const uint IllusionModifierMaskSpecSpecific =
(1 << (int)ItemModifier.EnchantIllusionSpec1) |
(1 << (int)ItemModifier.EnchantIllusionSpec2) |
(1 << (int)ItemModifier.EnchantIllusionSpec3) |
(1 << (int)ItemModifier.EnchantIllusionSpec4);
}
public struct InventorySlots
{
public const byte BagStart = 19;
public const byte BagEnd = 23;
public const byte ItemStart = 23;
public const byte ItemEnd = 39;
public const byte BankItemStart = 39;
public const byte BankItemEnd = 67;
public const byte BankBagStart = 67;
public const byte BankBagEnd = 74;
public const byte BuyBackStart = 74;
public const byte BuyBackEnd = 86;
public const byte ReagentStart = 87;
public const byte ReagentEnd = 184;
public const byte ChildEquipmentStart = 184;
public const byte ChildEquipmentEnd = 187;
public const byte Bag0 = 255;
}
public struct EquipmentSlot
{
public const byte Start = 0;
public const byte Head = 0;
public const byte Neck = 1;
public const byte Shoulders = 2;
public const byte Shirt = 3;
public const byte Chest = 4;
public const byte Waist = 5;
public const byte Legs = 6;
public const byte Feet = 7;
public const byte Wrist = 8;
public const byte Hands = 9;
public const byte Finger1 = 10;
public const byte Finger2 = 11;
public const byte Trinket1 = 12;
public const byte Trinket2 = 13;
public const byte Cloak = 14;
public const byte MainHand = 15;
public const byte OffHand = 16;
public const byte Ranged = 17;
public const byte Tabard = 18;
public const byte End = 19;
}
public enum SocketColor
{
Meta = 0x00001,
Red = 0x00002,
Yellow = 0x00004,
Blue = 0x00008,
Hydraulic = 0x00010, // Not Used
Cogwheel = 0x00020,
Prismatic = 0x0000e,
RelicIron = 0x00040,
RelicBlood = 0x00080,
RelicShadow = 0x00100,
RelicFel = 0x00200,
RelicArcane = 0x00400,
RelicFrost = 0x00800,
RelicFire = 0x01000,
RelicWater = 0x02000,
RelicLife = 0x04000,
RelicWind = 0x08000,
RelicHoly = 0x10000,
Standard = (Red | Yellow | Blue)
}
public enum ItemExtendedCostFlags
{
RequireGuild = 0x01,
RequireSeasonEarned1 = 0x02,
RequireSeasonEarned2 = 0x04,
RequireSeasonEarned3 = 0x08,
RequireSeasonEarned4 = 0x10,
RequireSeasonEarned5 = 0x20,
}
public enum ItemModType
{
Mana = 0,
Health = 1,
Agility = 3,
Strength = 4,
Intellect = 5,
Spirit = 6,
Stamina = 7,
DefenseSkillRating = 12,
DodgeRating = 13,
ParryRating = 14,
BlockRating = 15,
HitMeleeRating = 16,
HitRangedRating = 17,
HitSpellRating = 18,
CritMeleeRating = 19,
CritRangedRating = 20,
CritSpellRating = 21,
HitTakenMeleeRating = 22,
HitTakenRangedRating = 23,
HitTakenSpellRating = 24,
CritTakenMeleeRating = 25,
CritTakenRangedRating = 26,
CritTakenSpellRating = 27,
HasteMeleeRating = 28,
HasteRangedRating = 29,
HasteSpellRating = 30,
HitRating = 31,
CritRating = 32,
HitTakenRating = 33,
CritTakenRating = 34,
ResilienceRating = 35,
HasteRating = 36,
ExpertiseRating = 37,
AttackPower = 38,
RangedAttackPower = 39,
Versatility = 40,
SpellHealingDone = 41,
SpellDamageDone = 42,
ManaRegeneration = 43,
ArmorPenetrationRating = 44,
SpellPower = 45,
HealthRegen = 46,
SpellPenetration = 47,
BlockValue = 48,
MasteryRating = 49,
ExtraArmor = 50,
FireResistance = 51,
FrostResistance = 52,
HolyResistance = 53,
ShadowResistance = 54,
NatureResistance = 55,
ArcaneResistance = 56,
PvpPower = 57,
CrAmplify = 58,
CrMultistrike = 59,
CrReadiness = 60,
CrSpeed = 61,
CrLifesteal = 62,
CrAvoidance = 63,
CrSturdiness = 64,
CrUnused7 = 65,
CrCleave = 66,
CrUnused9 = 67,
CrUnused10 = 68,
CrUnused11 = 69,
CrUnused12 = 70,
AgiStrInt = 71,
AgiStr = 72,
AgiInt = 73,
StrInt = 74
}
public enum ItemSpelltriggerType : byte
{
OnUse = 0, // use after equip cooldown
OnEquip = 1,
ChanceOnHit = 2,
Soulstone = 4,
/*
* ItemSpelltriggerType 5 might have changed on 2.4.3/3.0.3: Such auras
* will be applied on item pickup and removed on item loss - maybe on the
* other hand the item is destroyed if the aura is removed ("removed on
* death" of spell 57348 makes me think so)
*/
OnObtain = 5,
LearnSpellId = 6, // used in itemtemplate.spell2 with spellid with SPELLGENERICLEARN in spell1
Max = 7
}
public enum BuyBankSlotResult
{
FailedTooMany = 0,
InsufficientFunds = 1,
NotBanker = 2,
OK = 3
}
public enum EnchantmentSlotMask : ushort
{
CanSouldBound = 0x01,
Unk1 = 0x02,
Unk2 = 0x04,
Unk3 = 0x08,
Collectable = 0x100,
HideIfNotCollected = 0x200,
}
public enum ItemModifier
{
TransmogAppearanceAllSpecs = 0,
TransmogAppearanceSpec1 = 1,
UpgradeId = 2,
BattlePetSpeciesId = 3,
BattlePetBreedData = 4, // (Breedid) | (Breedquality << 24)
BattlePetLevel = 5,
BattlePetDisplayId = 6,
EnchantIllusionAllSpecs = 7,
ArtifactAppearanceId = 8,
ScalingStatDistributionFixedLevel = 9,
EnchantIllusionSpec1 = 10,
TransmogAppearanceSpec2 = 11,
EnchantIllusionSpec2 = 12,
TransmogAppearanceSpec3 = 13,
EnchantIllusionSpec3 = 14,
TransmogAppearanceSpec4 = 15,
EnchantIllusionSpec4 = 16,
ChallengeMapChallengeModeId = 17,
ChallengeKeystoneLevel = 18,
ChallengeKeystoneAffixId1 = 19,
ChallengeKeystoneAffixId2 = 20,
ChallengeKeystoneAffixId3 = 21,
ChallengeKeystoneIsCharged = 22,
ArtifactKnowledgeLevel = 23,
ArtifactTier = 24,
Max
}
public enum ItemBonusType : byte
{
ItemLevel = 1,
Stat = 2,
Quality = 3,
Description = 4,
Suffix = 5,
Socket = 6,
Appearance = 7,
RequiredLevel = 8,
DisplayToastMethod = 9,
RepairCostMuliplier = 10,
ScalingStatDistribution = 11,
DisenchantLootId = 12,
ScalingStatDistribution2 = 13,
ItemLevelOverride = 14,
RandomEnchantment = 15, // Responsible for showing "<Random additional stats>" or "+%d Rank Random Minor Trait" in the tooltip before item is obtained
Bounding = 16,
RelicType = 17
}
public enum ItemEnchantmentType : byte
{
None = 0,
CombatSpell = 1,
Damage = 2,
EquipSpell = 3,
Resistance = 4,
Stat = 5,
Totem = 6,
UseSpell = 7,
PrismaticSocket = 8,
ArtifactPowerBonusRankByType = 9,
ArtifactPowerBonusRankByID = 10,
BonusListID = 11,
BonusListCurve = 12,
ArtifactPowerBonusRankPicker = 13
}
public enum BagFamilyMask
{
None = 0x00,
Arrows = 0x01,
Bullets = 0x02,
SoulShards = 0x04,
LeatherworkingSupp = 0x08,
InscriptionSupp = 0x10,
Herbs = 0x20,
EnchantingSupp = 0x40,
EngineeringSupp = 0x80,
Keys = 0x100,
Gems = 0x200,
MiningSupp = 0x400,
SoulboundEquipment = 0x800,
VanityPets = 0x1000,
CurrencyTokens = 0x2000,
QuestItems = 0x4000,
FishingSupp = 0x8000,
CookingSupp = 0x10000
}
public enum InventoryType : byte
{
NonEquip = 0,
Head = 1,
Neck = 2,
Shoulders = 3,
Body = 4,
Chest = 5,
Waist = 6,
Legs = 7,
Feet = 8,
Wrists = 9,
Hands = 10,
Finger = 11,
Trinket = 12,
Weapon = 13,
Shield = 14,
Ranged = 15,
Cloak = 16,
Weapon2Hand = 17,
Bag = 18,
Tabard = 19,
Robe = 20,
WeaponMainhand = 21,
WeaponOffhand = 22,
Holdable = 23,
Ammo = 24,
Thrown = 25,
RangedRight = 26,
Quiver = 27,
Relic = 28,
Max = 29
}
public enum VisibleEquipmentSlot
{
Head = 0,
Shoulder = 2,
Shirt = 3,
Chest = 4,
Belt = 5,
Pants = 6,
Boots = 7,
Wrist = 8,
Gloves = 9,
Back = 14,
Tabard = 18
}
public enum ItemBondingType
{
None = 0,
OnAcquire = 1,
OnEquip = 2,
OnUse = 3,
Quest = 4,
}
public enum ItemClass : sbyte
{
None = -1,
Consumable = 0,
Container = 1,
Weapon = 2,
Gem = 3,
Armor = 4,
Reagent = 5,
Projectile = 6,
TradeGoods = 7,
ItemEnhancement = 8,
Recipe = 9,
Money = 10, // Obsolete
Quiver = 11,
Quest = 12,
Key = 13,
Permanent = 14, // Obsolete
Miscellaneous = 15,
Glyph = 16,
BattlePets = 17,
WowToken = 18,
Max = 19
}
public enum ItemSubClassConsumable
{
Consumable = 0,
Potion = 1,
Elixir = 2,
Flask = 3,
Scroll = 4,
FoodDrink = 5,
ItemEnhancement = 6,
Bandage = 7,
ConsumableOther = 8,
VantusRune = 9,
Max = 10
}
public enum ItemSubClassContainer
{
Container = 0,
SoulContainer = 1,
HerbContainer = 2,
EnchantingContainer = 3,
EngineeringContainer = 4,
GemContainer = 5,
MiningContainer = 6,
LeatherworkingContainer = 7,
InscriptionContainer = 8,
TackleContainer = 9,
CookingContainer = 10,
Max = 11
}
public enum ItemSubClassWeapon
{
Axe = 0, // One-Handed Axes
Axe2 = 1, // Two-Handed Axes
Bow = 2,
Gun = 3,
Mace = 4, // One-Handed Maces
Mace2 = 5, // Two-Handed Maces
Polearm = 6,
Sword = 7, // One-Handed Swords
Sword2 = 8, // Two-Handed Swords
Warglaives = 9,
Staff = 10,
Exotic = 11, // One-Handed Exotics
Exotic2 = 12, // Two-Handed Exotics
Fist = 13,
Miscellaneous = 14,
Dagger = 15,
Thrown = 16,
Spear = 17,
Crossbow = 18,
Wand = 19,
FishingPole = 20,
MaskRanged = (1 << Bow) | (1 << Gun) | (1 << Crossbow),
Max = 12
}
public enum ItemSubClassGem
{
Intellect = 0,
Agility = 1,
Strength = 2,
Stamina = 3,
Spirit = 4,
CriticalStrike = 5,
Mastery = 6,
Haste = 7,
Versatility = 8,
Other = 9,
MultipleStats = 10,
ArtifactRelic = 11,
Max = 12
}
public enum ItemSubClassArmor
{
Miscellaneous = 0,
Cloth = 1,
Leather = 2,
Mail = 3,
Plate = 4,
Cosmetic = 5,
Shield = 6,
Libram = 7,
Idol = 8,
Totem = 9,
Sigil = 10,
Relic = 11,
Max = 12
}
public enum ItemSubClassReagent
{
Reagent = 0,
Keystone = 1,
Max = 2
}
public enum ItemSubClassProjectile
{
Wand = 0, // Obsolete
Bolt = 1, // Obsolete
Arrow = 2,
Bullet = 3,
Thrown = 4, // Obsolete
Max = 5
}
public enum ItemSubClassTradeGoods
{
TradeGoods = 0,
Parts = 1,
Explosives = 2,
Devices = 3,
Jewelcrafting = 4,
Cloth = 5,
Leather = 6,
MetalStone = 7,
Meat = 8,
Herb = 9,
Elemental = 10,
TradeGoodsOther = 11,
Enchanting = 12,
Material = 13,
Enchantment = 14,
WeaponEnchantment = 15,
Inscription = 16,
ExplosivesDevices = 17,
Max = 18
}
public enum ItemSubclassItemEnhancement
{
Head = 0,
Neck = 1,
Shoulder = 2,
Cloak = 3,
Chest = 4,
Wrist = 5,
Hands = 6,
Waist = 7,
Legs = 8,
Feet = 9,
Finger = 10,
Weapon = 11,
TwoHandedWeapon = 12,
ShieldOffHand = 13,
Max = 14
}
public enum ItemSubClassRecipe
{
Book = 0,
LeatherworkingPattern = 1,
TailoringPattern = 2,
EngineeringSchematic = 3,
Blacksmithing = 4,
CookingRecipe = 5,
AlchemyRecipe = 6,
FirstAidManual = 7,
EnchantingFormula = 8,
FishingManual = 9,
JewelcraftingRecipe = 10,
InscriptionTechnique = 11,
Max = 12
}
public enum ItemSubClassMoney
{
Money = 0, // Obsolete
Max = 1
}
public enum ItemSubClassQuiver
{
Quiver0 = 0, // Obsolete
Quiver1 = 1, // Obsolete
Quiver = 2,
AmmoPouch = 3,
Max = 4,
}
public enum ItemSubClassQuest
{
Quest = 0,
Unk3 = 3, // 1 Item (33604)
Unk8 = 8, // 2 Items (37445, 49700)
Max = 9
}
public enum ItemSubClassKey
{
Key = 0,
Lockpick = 1,
Max = 2
}
public enum ItemSubClassPermanent
{
Permanent = 0,
Max = 1
}
public enum ItemSubClassJunk
{
Junk = 0,
Reagent = 1,
CompanionPet = 2,
Holiday = 3,
Other = 4,
Mount = 5,
Max = 6
}
public enum ItemSubClassGlyph
{
Warrior = 1,
Paladin = 2,
Hunter = 3,
Rogue = 4,
Priest = 5,
DeathKnight = 6,
Shaman = 7,
Mage = 8,
Warlock = 9,
Monk = 10,
Druid = 11,
DemonHunter = 12,
Max = 13
}
public enum ItemSubclassBattlePet
{
BattlePet = 0,
Max = 1
}
public enum ItemSubclassWowToken
{
WowToken = 0,
Max = 1
}
public enum ItemQuality
{
Poor = 0, //Grey
Normal = 1, //White
Uncommon = 2, //Green
Rare = 3, //Blue
Epic = 4, //Purple
Legendary = 5, //Orange
Artifact = 6, //Light Yellow
Heirloom = 7,
Max = 8
}
public enum ItemFieldFlags : uint
{
Soulbound = 0x01, // Item Is Soulbound And Cannot Be Traded <<--
Translated = 0x02, // Item text will not read as garbage when player does not know the language
Unlocked = 0x04, // Item Had Lock But Can Be Opened Now
Wrapped = 0x08, // Item Is Wrapped And Contains Another Item
Unk2 = 0x10, // ?
Unk3 = 0x20, // ?
Unk4 = 0x40, // ?
Unk5 = 0x80, // ?
BopTradeable = 0x100, // Allows Trading Soulbound Items
Readable = 0x200, // Opens Text Page When Right Clicked
Unk6 = 0x400, // ?
Unk7 = 0x800, // ?
Refundable = 0x1000, // Item Can Be Returned To Vendor For Its Original Cost (Extended Cost)
Unk8 = 0x2000, // ?
Unk9 = 0x4000, // ?
Unk10 = 0x8000, // ?
Unk11 = 0x00010000, // ?
Unk12 = 0x00020000, // ?
Unk13 = 0x00040000, // ?
Child = 0x00080000,
Unk15 = 0x00100000, // ?
Unk16 = 0x00200000, // ?
Unk17 = 0x00400000, // ?
Unk18 = 0x00800000, // ?
Unk19 = 0x01000000, // ?
Unk20 = 0x02000000, // ?
Unk21 = 0x04000000, // ?
Unk22 = 0x08000000, // ?
Unk23 = 0x10000000, // ?
Unk24 = 0x20000000, // ?
Unk25 = 0x40000000, // ?
Unk26 = 0x80000000 // ?
}
public enum ItemFlags : long
{
NoPickup = 0x01,
Conjured = 0x02, // Conjured Item
HasLoot = 0x04, // Item Can Be Right Clicked To Open For Loot
HeroicTooltip = 0x08, // Makes Green "Heroic" Text Appear On Item
Deprecated = 0x10, // Cannot Equip Or Use
NoUserDestroy = 0x20, // Item Can Not Be Destroyed, Except By Using Spell (Item Can Be Reagent For Spell)
Playercast = 0x40,
NoEquipCooldown = 0x80, // No Default 30 Seconds Cooldown When Equipped
MultiLootQuest = 0x100,
IsWrapper = 0x200, // Item Can Wrap Other Items
UsesResources = 0x400,
MultiDrop = 0x800, // Looting This Item Does Not Remove It From Available Loot
ItemPurchaseRecord = 0x1000, // Item Can Be Returned To Vendor For Its Original Cost (Extended Cost)
Petition = 0x2000, // Item Is Guild Or Arena Charter
HasText = 0x4000,
NoDisenchant = 0x8000,
RealDuration = 0x10000,
NoCreator = 0x20000,
IsProspectable = 0x40000, // Item Can Be Prospected
UniqueEquippable = 0x80000, // You Can Only Equip One Of These
IgnoreForAuras = 0x100000,
IgnoreDefaultArenaRestrictions = 0x200000, // Item Can Be Used During Arena Match
NoDurabilityLoss = 0x400000,
UseWhenShapeshifted = 0x800000, // Item Can Be Used In Shapeshift Forms
HasQuestGlow = 0x1000000,
HideUnusableRecipe = 0x2000000, // Profession Recipes: Can Only Be Looted If You Meet Requirements And Don'T Already Know It
NotUseableInArena = 0x4000000, // Item Cannot Be Used In Arena
IsBoundToAccount = 0x8000000, // Item Binds To Account And Can Be Sent Only To Your Own Characters
NoReagentCost = 0x10000000, // Spell Is Cast Ignoring Reagents
IsMillable = 0x20000000, // Item Can Be Milled
ReportToGuildChat = 0x40000000,
NoProgressiveLoot = 0x80000000
}
public enum ItemFlags2 : uint
{
FactionHorde = 0x01,
FactionAlliance = 0x02,
DontIgnoreBuyPrice = 0x04, // When Item Uses Extended Cost, Gold Is Also Required
ClassifyAsCaster = 0x08,
ClassifyAsPhysical = 0x10,
EveryoneCanRollNeed = 0x20,
NoTradeBindOnAcquire = 0x40,
CanTradeBindOnAcquire = 0x80,
CanOnlyRollGreed = 0x100,
CasterWeapon = 0x200,
DeleteOnLogin = 0x400,
InternalItem = 0x800,
NoVendorValue = 0x1000,
ShowBeforeDiscovered = 0x2000,
OverrideGoldCost = 0x4000,
IgnoreDefaultRatedBgRestrictions = 0x8000,
NotUsableInRatedBg = 0x10000,
BnetAccountTradeOk = 0x20000,
ConfirmBeforeUse = 0x40000,
ReevaluateBondingOnTransform = 0x80000,
NoTransformOnChargeDepletion = 0x100000,
NoAlterItemVisual = 0x200000,
NoSourceForItemVisual = 0x400000,
IgnoreQualityForItemVisualSource = 0x800000,
NoDurability = 0x1000000,
RoleTank = 0x2000000,
RoleHealer = 0x4000000,
RoleDamage = 0x8000000,
CanDropInChallengeMode = 0x10000000,
NeverStackInLootUi = 0x20000000,
DisenchantToLootTable = 0x40000000,
UsedInATradeskill = 0x80000000
}
public enum ItemFlags3
{
DontDestroyOnQuestAccept = 0x01,
ItemCanBeUpgraded = 0x02,
UpgradeFromItemOverridesDropUpgrade = 0x04,
AlwaysFfaInLoot = 0x08,
HideUpgradeLevelsIfNotUpgraded = 0x10,
UpdateInteractions = 0x20,
UpdateDoesntLeaveProgressiveWinHistory = 0x40,
IgnoreItemHistoryTracker = 0x80,
IgnoreItemLevelCapInPvp = 0x100,
DisplayAsHeirloom = 0x200, // Item Appears As Having Heirloom Quality Ingame Regardless Of Its Real Quality (Does Not Affect Stat Calculation)
SkipUseCheckOnPickup = 0x400,
Obsolete = 0x800,
DontDisplayInGuildNews = 0x1000, // Item Is Not Included In The Guild News Panel
PvpTournamentGear = 0x2000,
RequiresStackChangeLog = 0x4000,
UnusedFlag = 0x8000,
HideNameSuffix = 0x10000,
PushLoot = 0x20000,
DontReportLootLogToParty = 0x40000,
AlwaysAllowDualWield = 0x80000,
Obliteratable = 0x100000,
ActsAsTransmogHiddenVisualOption = 0x200000,
ExpireOnWeeklyReset = 0x400000,
DoesntShowUpInTransmogUntilCollected = 0x800000,
CanStoreEnchants = 0x1000000
}
public enum ItemFlagsCustom
{
Unused = 0x0001,
IgnoreQuestStatus = 0x0002, // No quest status will be checked when this item drops
FollowLootRules = 0x0004 // Item will always follow group/master/need before greed looting rules
}
public enum InventoryResult
{
Ok = 0,
CantEquipLevelI = 1, // You Must Reach Level %D To Use That Item.
CantEquipSkill = 2, // You Aren'T Skilled Enough To Use That Item.
WrongSlot = 3, // That Item Does Not Go In That Slot.
BagFull = 4, // That Bag Is Full.
BagInBag = 5, // Can'T Put Non-Empty Bags In Other Bags.
TradeEquippedBag = 6, // You Can'T Trade Equipped Bags.
AmmoOnly = 7, // Only Ammo Can Go There.
ProficiencyNeeded = 8, // You Do Not Have The Required Proficiency For That Item.
NoSlotAvailable = 9, // No Equipment Slot Is Available For That Item.
CantEquipEver = 10, // You Can Never Use That Item.
CantEquipEver2 = 11, // You Can Never Use That Item.
NoSlotAvailable2 = 12, // No Equipment Slot Is Available For That Item.
Equipped2handed = 13, // Cannot Equip That With A Two-Handed Weapon.
TwoHandSkillNotFound = 14, // You Cannot Dual-Wield
WrongBagType = 15, // That Item Doesn'T Go In That Container.
WrongBagType2 = 16, // That Item Doesn'T Go In That Container.
ItemMaxCount = 17, // You Can'T Carry Any More Of Those Items.
NoSlotAvailable3 = 18, // No Equipment Slot Is Available For That Item.
CantStack = 19, // This Item Cannot Stack.
NotEquippable = 20, // This Item Cannot Be Equipped.
CantSwap = 21, // These Items Can'T Be Swapped.
SlotEmpty = 22, // That Slot Is Empty.
ItemNotFound = 23, // The Item Was Not Found.
DropBoundItem = 24, // You Can'T Drop A Soulbound Item.
OutOfRange = 25, // Out Of Range.
TooFewToSplit = 26, // Tried To Split More Than Number In Stack.
SplitFailed = 27, // Couldn'T Split Those Items.
SpellFailedReagentsGeneric = 28, // Missing Reagent
NotEnoughMoney = 29, // You Don'T Have Enough Money.
NotABag = 30, // Not A Bag.
DestroyNonemptyBag = 31, // You Can Only Do That With Empty Bags.
NotOwner = 32, // You Don'T Own That Item.
OnlyOneQuiver = 33, // You Can Only Equip One Quiver.
NoBankSlot = 34, // You Must Purchase That Bag Slot First
NoBankHere = 35, // You Are Too Far Away From A Bank.
ItemLocked = 36, // Item Is Locked.
GenericStunned = 37, // You Are Stunned
PlayerDead = 38, // You Can'T Do That When You'Re Dead.
ClientLockedOut = 39, // You Can'T Do That Right Now.
InternalBagError = 40, // Internal Bag Error
OnlyOneBolt = 41, // You Can Only Equip One Quiver.
OnlyOneAmmo = 42, // You Can Only Equip One Ammo Pouch.
CantWrapStackable = 43, // Stackable Items Can'T Be Wrapped.
CantWrapEquipped = 44, // Equipped Items Can'T Be Wrapped.
CantWrapWrapped = 45, // Wrapped Items Can'T Be Wrapped.
CantWrapBound = 46, // Bound Items Can'T Be Wrapped.
CantWrapUnique = 47, // Unique Items Can'T Be Wrapped.
CantWrapBags = 48, // Bags Can'T Be Wrapped.
LootGone = 49, // Already Looted
InvFull = 50, // Inventory Is Full.
BankFull = 51, // Your Bank Is Full
VendorSoldOut = 52, // That Item Is Currently Sold Out.
BagFull2 = 53, // That Bag Is Full.
ItemNotFound2 = 54, // The Item Was Not Found.
CantStack2 = 55, // This Item Cannot Stack.
BagFull3 = 56, // That Bag Is Full.
VendorSoldOut2 = 57, // That Item Is Currently Sold Out.
ObjectIsBusy = 58, // That Object Is Busy.
CantBeDisenchanted = 59,
NotInCombat = 60, // You Can'T Do That While In Combat
NotWhileDisarmed = 61, // You Can'T Do That While Disarmed
BagFull4 = 62, // That Bag Is Full.
CantEquipRank = 63, // You Don'T Have The Required Rank For That Item
CantEquipReputation = 64, // You Don'T Have The Required Reputation For That Item
TooManySpecialBags = 65, // You Cannot Equip Another Bag Of That Type
LootCantLootThatNow = 66, // You Can'T Loot That Item Now.
ItemUniqueEquippable = 67, // You Cannot Equip More Than One Of Those.
VendorMissingTurnins = 68, // You Do Not Have The Required Items For That Purchase
NotEnoughHonorPoints = 69, // You Don'T Have Enough Honor Points
NotEnoughArenaPoints = 70, // You Don'T Have Enough Arena Points
ItemMaxCountSocketed = 71, // You Have The Maximum Number Of Those Gems In Your Inventory Or Socketed Into Items.
MailBoundItem = 72, // You Can'T Mail Soulbound Items.
InternalBagError2 = 73, // Internal Bag Error
BagFull5 = 74, // That Bag Is Full.
ItemMaxCountEquippedSocketed = 75, // You Have The Maximum Number Of Those Gems Socketed Into Equipped Items.
ItemUniqueEquippableSocketed = 76, // You Cannot Socket More Than One Of Those Gems Into A Single Item.
TooMuchGold = 77, // At Gold Limit
NotDuringArenaMatch = 78, // You Can'T Do That While In An Arena Match
TradeBoundItem = 79, // You Can'T Trade A Soulbound Item.
CantEquipRating = 80, // You Don'T Have The Personal, Team, Or Battleground Rating Required To Buy That Item
EventAutoequipBindConfirm = 81,
NotSameAccount = 82, // Account-Bound Items Can Only Be Given To Your Own Characters.
NoOutput = 83,
ItemMaxLimitCategoryCountExceededIs = 84, // You Can Only Carry %D %S
ItemMaxLimitCategorySocketedExceededIs = 85, // You Can Only Equip %D |4item:Items In The %S Category
ScalingStatItemLevelExceeded = 86, // Your Level Is Too High To Use That Item
PurchaseLevelTooLow = 87, // You Must Reach Level %D To Purchase That Item.
CantEquipNeedTalent = 88, // You Do Not Have The Required Talent To Equip That.
ItemMaxLimitCategoryEquippedExceededIs = 89, // You Can Only Equip %D |4item:Items In The %S Category
ShapeshiftFormCannotEquip = 90, // Cannot Equip Item In This Form
ItemInventoryFullSatchel = 91, // Your Inventory Is Full. Your Satchel Has Been Delivered To Your Mailbox.
ScalingStatItemLevelTooLow = 92, // Your Level Is Too Low To Use That Item
CantBuyQuantity = 93, // You Can'T Buy The Specified Quantity Of That Item.
ItemIsBattlePayLocked = 94, // Your purchased item is still waiting to be unlocked
ReagentBankFull = 95, // Your reagent bank is full
ReagentBankLocked = 96,
WrongBagType3 = 97,
CantUseItem = 98, // You can't use that item.
CantBeObliterated = 99, // You can't obliterate that item
GuildBankConjuredItem = 100,// You cannot store conjured items in the guild bank
}
public enum BuyResult
{
CantFindItem = 0,
ItemAlreadySold = 1,
NotEnoughtMoney = 2,
SellerDontLikeYou = 4,
DistanceTooFar = 5,
ItemSoldOut = 7,
CantCarryMore = 8,
RankRequire = 11,
ReputationRequire = 12
}
public enum SellResult
{
CantFindItem = 1,
CantSellItem = 2, // Merchant Doesn'T Like That Item
CantFindVendor = 3, // Merchant Doesn'T Like You
YouDontOwnThatItem = 4, // You Don'T Own That Item
Unk = 5, // Nothing Appears...
OnlyEmptyBag = 6 // Can Only Do With Empty Bags
}
public enum EnchantmentSlot
{
Perm = 0,
Temp = 1,
Sock1 = 2,
Sock2 = 3,
Sock3 = 4,
Bonus = 5,
Prismatic = 6, // added at apply special permanent enchantment
Use = 7,
MaxInspected = 8,
Prop0 = 8, // used with RandomSuffix
Prop1 = 9, // used with RandomSuffix
Prop2 = 10, // used with RandomSuffix and RandomProperty
Prop3 = 11, // used with RandomProperty
Prop4 = 12, // used with RandomProperty
Max = 13
}
public enum ItemUpdateState
{
Unchanged = 0,
Changed = 1,
New = 2,
Removed = 3
}
public enum ItemVendorType
{
None = 0,
Item = 1,
Currency = 2,
}
public enum CurrencyFlags
{
Tradeable = 0x01,
// ...
HighPrecision = 0x08,
// ...
}
public enum CurrencyTypes
{
JusticePoints = 395,
ValorPoints = 396,
ApexisCrystals = 823,
ArtifactKnowledge = 1171,
}
public enum PlayerCurrencyState
{
Unchanged = 0,
Changed = 1,
New = 2,
Removed = 3 //not removed just set count == 0
}
public enum ItemTransmogrificationWeaponCategory
{
// Two-handed
Melee2H,
Ranged,
// One-handed
AxeMaceSword1H,
Dagger,
Fist,
Invalid
}
}