/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* 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 2 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 .
*/
#ifndef DBCENUMS_H
#define DBCENUMS_H
#include "Define.h"
#include "EnumFlag.h"
#include
#pragma pack(push, 1)
struct DBCPosition2D
{
float X;
float Y;
};
struct DBCPosition3D
{
float X;
float Y;
float Z;
};
#pragma pack(pop)
enum LevelLimit
{
// Client expected level limitation, like as used in DBC item max levels for "until max player level"
// use as default max player level, must be fit max level for used client
// also see MAX_LEVEL and STRONG_MAX_LEVEL define
DEFAULT_MAX_LEVEL = 80,
// client supported max level for player/pets/etc. Avoid overflow or client stability affected.
// also see GT_MAX_LEVEL define
MAX_LEVEL = 123,
// Server side limitation. Base at used code requirements.
// also see MAX_LEVEL and GT_MAX_LEVEL define
STRONG_MAX_LEVEL = 255,
};
enum BattlegroundBracketId // bracketId for level ranges
{
BG_BRACKET_ID_FIRST = 0,
BG_BRACKET_ID_LAST = 12,
// must be max value in PvPDificulty slot + 1
MAX_BATTLEGROUND_BRACKETS
};
enum AreaTeams
{
AREATEAM_NONE = 0,
AREATEAM_ALLY = 2,
AREATEAM_HORDE = 4,
AREATEAM_ANY = AREATEAM_ALLY+AREATEAM_HORDE
};
enum AchievementFaction
{
ACHIEVEMENT_FACTION_HORDE = 0,
ACHIEVEMENT_FACTION_ALLIANCE = 1,
ACHIEVEMENT_FACTION_ANY = -1
};
enum AchievementFlags
{
ACHIEVEMENT_FLAG_COUNTER = 0x00000001, // Just count statistic (never stop and complete)
ACHIEVEMENT_FLAG_HIDDEN = 0x00000002, // Not sent to client - internal use only
ACHIEVEMENT_FLAG_PLAY_NO_VISUAL = 0x00000004, // Client does not play achievement earned visual
ACHIEVEMENT_FLAG_SUMM = 0x00000008, // Use summ criteria value from all requirements (and calculate max value)
ACHIEVEMENT_FLAG_MAX_USED = 0x00000010, // Show max criteria (and calculate max value ??)
ACHIEVEMENT_FLAG_REQ_COUNT = 0x00000020, // Use not zero req count (and calculate max value)
ACHIEVEMENT_FLAG_AVERAGE = 0x00000040, // Show as average value (value / time_in_days) depend from other flag (by def use last criteria value)
ACHIEVEMENT_FLAG_BAR = 0x00000080, // Show as progress bar (value / max vale) depend from other flag (by def use last criteria value)
ACHIEVEMENT_FLAG_REALM_FIRST_REACH = 0x00000100, //
ACHIEVEMENT_FLAG_REALM_FIRST_KILL = 0x00000200, //
ACHIEVEMENT_FLAG_UNK3 = 0x00000400, // ACHIEVEMENT_FLAG_HIDE_NAME_IN_TIE
ACHIEVEMENT_FLAG_HIDE_INCOMPLETE = 0x00000800, // hide from UI if not completed
ACHIEVEMENT_FLAG_SHOW_IN_GUILD_NEWS = 0x00001000, // Shows in guild news
ACHIEVEMENT_FLAG_SHOW_IN_GUILD_HEADER = 0x00002000, // Shows in guild news header
ACHIEVEMENT_FLAG_GUILD = 0x00004000, //
ACHIEVEMENT_FLAG_SHOW_GUILD_MEMBERS = 0x00008000, //
ACHIEVEMENT_FLAG_SHOW_CRITERIA_MEMBERS = 0x00010000, //
ACHIEVEMENT_FLAG_ACCOUNT = 0x00020000,
ACHIEVEMENT_FLAG_UNK5 = 0x00040000,
ACHIEVEMENT_FLAG_HIDE_ZERO_COUNTER = 0x00080000, // statistic is hidden from UI if no criteria value exists
ACHIEVEMENT_FLAG_TRACKING_FLAG = 0x00100000, // hidden tracking flag, sent to client in all cases except completion announcements
};
uint32 constexpr ACHIVEMENT_CATEGORY_PET_BATTLES = 15117;
enum class AreaFlags : uint32
{
EmitBreathParticles = 0x00000001,
BreathParticlesOverrideParent = 0x00000002,
OnMapDungeon = 0x00000004,
AllowTradeChannel = 0x00000008,
EnemiesPvPFlagged = 0x00000010,
AllowResting = 0x00000020,
AllowDueling = 0x00000040,
FreeForAllPvP = 0x00000080,
LinkedChat = 0x00000100, // Set in cities
LinkedChatSpecialArea = 0x00000200,
ForceThisAreaWhenOnDynamicTransport = 0x00000400,
NoPvP = 0x00000800,
NoGhostOnRelease = 0x00001000,
SubZoneAmbientMultiplier = 0x00002000,
EnableFlightBoundsOnMap = 0x00004000,
PVPPOI = 0x00008000,
NoChatChannels = 0x00010000,
AreaNotInUse = 0x00020000,
Contested = 0x00040000,
NoPlayerSummoning = 0x00080000,
NoDuelingIfTournamentRealm = 0x00100000,
PlayersCallGuards = 0x00200000,
HordeResting = 0x00400000,
AllianceResting = 0x00800000,
CombatZone = 0x01000000,
ForceIndoors = 0x02000000,
ForceOutdoors = 0x04000000,
AllowHearthAndRessurectFromArea = 0x08000000,
NoLocalDefenseChannel = 0x10000000,
OnlyEvaluateGhostBindOnce = 0x20000000,
IsSubzone = 0x40000000,
DontEvaluateGraveyardFromClient = 0x80000000
};
DEFINE_ENUM_FLAG(AreaFlags);
enum class AreaFlags2 : uint32
{
ForceMicroDungeonArtMap = 0x00000001, // Ask Programmer
UseSubzonePlayerLoot = 0x00000002,
AllowPetBattleDuelingEvenIfNoDuelingAllowed = 0x00000004,
UseMapTransferLocsForCemeteries = 0x00000008,
IsGarrison = 0x00000010,
UseSubzoneForChatChannel = 0x00000020,
DontRealmCoalesceChatChannel = 0x00000040,
NotExplorable = 0x00000080, // Don't assign area bit
DontUseParentMapForCemeteries = 0x00000100,
DontShowSanctuaryText = 0x00000200,
CrossFactionZoneChat = 0x00000400,
ForceNoResting = 0x00000800,
AllowWarModeToggle = 0x00001000
};
DEFINE_ENUM_FLAG(AreaFlags2);
inline constexpr size_t PLAYER_EXPLORED_ZONES_SIZE = 240;
enum class AreaMountFlags : uint8
{
None = 0x0,
AllowGroundMounts = 0x1,
AllowFlyingMounts = 0x2,
AllowSurfaceSwimmingMounts = 0x4,
AllowUnderwaterSwimmingMounts = 0x8,
ClientEnforcesMount = 0x10
};
DEFINE_ENUM_FLAG(AreaMountFlags);
enum class AreaTriggerActionSetFlag : uint32
{
None = 0x0000,
OnlyTriggeredByCaster = 0x0001,
ResurrectIfConditionFails = 0x0002, /*NYI*/
Obsolete = 0x0004,
AllowWhileGhost = 0x0008,
AllowWhileDead = 0x0010,
UnifyAllInstances = 0x0020, /*NYI*/
SuppressConditionError = 0x0040, // NYI
NotTriggeredbyCaster = 0x0080,
CreatorsPartyOnly = 0x0100,
DontRunOnLeaveWhenExpiring = 0x0200,
CanAffectUninteractible = 0x0400,
DontDespawnWithCreator = 0x0800,
CanAffectBeastmaster = 0x1000, // Can affect GMs
RequiresLineOfSight = 0x2000 /*NYI*/
};
DEFINE_ENUM_FLAG(AreaTriggerActionSetFlag);
enum class AreaTriggerShapeType : int8
{
Sphere = 0,
Box = 1,
Unk = 2,
Polygon = 3,
Cylinder = 4,
Disk = 5,
BoundedPlane = 6,
Max
};
enum ArtifactCategory : uint32
{
ARTIFACT_CATEGORY_PRIMARY = 1,
ARTIFACT_CATEGORY_FISHING = 2
};
enum ArtifactPowerFlag : uint8
{
ARTIFACT_POWER_FLAG_GOLD = 0x01,
ARTIFACT_POWER_FLAG_NO_LINK_REQUIRED = 0x02,
ARTIFACT_POWER_FLAG_FINAL = 0x04,
ARTIFACT_POWER_FLAG_SCALES_WITH_NUM_POWERS = 0x08,
ARTIFACT_POWER_FLAG_DONT_COUNT_FIRST_BONUS_RANK = 0x10,
ARTIFACT_POWER_FLAG_MAX_RANK_WITH_TIER = 0x20,
ARTIFACT_POWER_FLAG_FIRST = ARTIFACT_POWER_FLAG_NO_LINK_REQUIRED | ARTIFACT_POWER_FLAG_DONT_COUNT_FIRST_BONUS_RANK,
};
#define MAX_ARTIFACT_TIER 1
#define MAX_AZERITE_EMPOWERED_TIER 5
#define MAX_AZERITE_ESSENCE_SLOT 4
#define MAX_AZERITE_ESSENCE_RANK 4
enum class AzeriteItemMilestoneType : int32
{
MajorEssence = 0,
MinorEssence = 1,
BonusStamina = 2
};
enum AzeriteTierUnlockSetFlags
{
AZERITE_TIER_UNLOCK_SET_FLAG_DEFAULT = 0x1
};
enum class BattlePetSpeciesFlags : int32
{
NoRename = 0x00001,
WellKnown = 0x00002,
NotAccountWide = 0x00004,
Capturable = 0x00008,
NotTradable = 0x00010,
HideFromJournal = 0x00020,
LegacyAccountUnique = 0x00040,
CantBattle = 0x00080,
HordeOnly = 0x00100,
AllianceOnly = 0x00200,
Boss = 0x00400,
RandomDisplay = 0x00800,
NoLicenseRequired = 0x01000,
AddsAllowedWithBoss = 0x02000,
HideUntilLearned = 0x04000,
MatchPlayerHighPetLevel = 0x08000,
NoWildPetAddsAllowed = 0x10000,
};
DEFINE_ENUM_FLAG(BattlePetSpeciesFlags);
enum class BattlemasterType : int32
{
Battleground = 0,
Arena = 1,
};
enum class BattlemasterListFlags : uint32
{
InternalOnly = 0x01,
RatedOnly = 0x02, // Only set for rated battlegrounds
ObsoleteDoNotList = 0x04,
ShowInWarGames = 0x08,
ShowInPvpBattlegroundList = 0x10,
IsBrawl = 0x20,
IsFactional = 0x40,
IsEpic = 0x80
};
DEFINE_ENUM_FLAG(BattlemasterListFlags);
enum class CfgCategoriesCharsets : uint8
{
Any = 0x00,
Latin1 = 0x01,
English = 0x02,
Russian = 0x04,
Korean = 0x08,
Chinese = 0x10
};
DEFINE_ENUM_FLAG(CfgCategoriesCharsets);
enum class CfgCategoriesFlags : uint8
{
None = 0x0,
Tournament = 0x1
};
DEFINE_ENUM_FLAG(CfgCategoriesFlags);
enum class ChatChannelFlags : int32
{
None = 0x00000000,
AutoJoin = 0x00000001,
ZoneBased = 0x00000002,
ReadOnly = 0x00000004,
AllowItemLinks = 0x00000008,
OnlyInCities = 0x00000010,
LinkedChannel = 0x00000020,
ZoneAttackAlerts = 0x00010000,
GuildRecruitment = 0x00020000,
LookingForGroup = 0x00040000,
GlobalForTournament = 0x00080000,
DisableRaidIcons = 0x00100000,
Regional = 0x00200000
};
DEFINE_ENUM_FLAG(ChatChannelFlags);
enum class ChatChannelRuleset : int32
{
None = 0,
Mentor = 1,
Disabled = 2,
ChromieTimeCataclysm = 3,
ChromieTimeBuringCrusade = 4,
ChromieTimeWrath = 5,
ChromieTimeMists = 6,
ChromieTimeWoD = 7,
ChromieTimeLegion = 8,
};
enum class ChrRacesFlag : int32
{
NPCOnly = 0x000001,
DoNotComponentFeet = 0x000002,
CanMount = 0x000004,
HasBald = 0x000008,
BindToStartingArea = 0x000010,
AlternateForm = 0x000020,
CanMountSelf = 0x000040,
ForceToHDModelIfAvailable = 0x000080,
ExaltedWithAllVendors = 0x000100,
NotSelectable = 0x000200,
ReputationBonus = 0x000400,
UseLoincloth = 0x000800,
RestBonus = 0x001000,
NoStartKits = 0x002000,
NoStartingWeapon = 0x004000,
DontRedeemAccountLicenses = 0x008000,
SkinVariationIsHairColor = 0x010000,
UsePandarenRingForComponentingTexture = 0x020000,
IgnoreForAssetManifestComponentInfoParsing = 0x040000,
IsAlliedRace = 0x080000,
VoidVendorDiscount = 0x100000,
DAMMComponentNoMaleGeneration = 0x200000,
DAMMComponentNoFemaleGeneration = 0x400000,
NoAssociatedFactionReputationInRaceChange = 0x800000,
InternalOnly = 0x100000,
};
DEFINE_ENUM_FLAG(ChrRacesFlag);
enum class ChrSpecializationFlag : uint32
{
Caster = 0x01,
Ranged = 0x02,
Melee = 0x04,
DualWieldTwoHanded = 0x10, // used for CUnitDisplay::SetSheatheInvertedForDualWield
PetOverrideSpec = 0x20,
Recommended = 0x40,
};
DEFINE_ENUM_FLAG(ChrSpecializationFlag);
enum class ChrSpecializationRole : int8
{
Tank = 0,
Healer = 1,
Dps = 2
};
enum class ChrSpecialization : uint32
{
None = 0,
MageArcane = 62,
MageFire = 63,
MageFrost = 64,
PaladinHoly = 65,
PaladinProtection = 66,
PaladinRetribution = 70,
WarriorArms = 71,
WarriorFury = 72,
WarriorProtection = 73,
DruidBalance = 102,
DruidFeral = 103,
DruidGuardian = 104,
DruidRestoration = 105,
DeathKnightBlood = 250,
DeathKnightFrost = 251,
DeathKnightUnholy = 252,
HunterBeastMastery = 253,
HunterMarksmanship = 254,
HunterSurvival = 255,
PriestDiscipline = 256,
PriestHoly = 257,
PriestShadow = 258,
RogueAssassination = 259,
RogueOutlaw = 260,
RogueSubtely = 261,
ShamanElemental = 262,
ShamanEnhancement = 263,
ShamanRestoration = 264,
WarlockAffliction = 265,
WarlockDemonology = 266,
WarlockDestruction = 267,
MonkBrewmaster = 268,
MonkWindwalker = 269,
MonkMistweaver = 270,
DemonHunterHavoc = 577,
DemonHunterVengeance = 581,
EvokerDevastation = 1467,
EvokerPreservation = 1468,
EvokerAugmentation = 1473
};
enum class ContentTuningCalcType : int32
{
None = 0,
MinLevel = 1,
MaxLevel = 2,
PrevExpansionMaxLevel = 3,
};
enum class ContentTuningFlag : int32
{
DisabledForItem = 0x04,
Horde = 0x08,
Alliance = 0x10
};
DEFINE_ENUM_FLAG(ContentTuningFlag);
enum class CorruptionEffectsFlag
{
None = 0,
Disabled = 0x1
};
DEFINE_ENUM_FLAG(CorruptionEffectsFlag);
enum class CreatureModelDataFlags : uint32
{
NoFootprintParticles = 0x00001,
NoBreathParticles = 0x00002,
IsPlayerModel = 0x00004,
NoAttachedWeapons = 0x00010,
NoFootprintTrailTextures = 0x00020,
DisableHighlight = 0x00040,
CanMountWhileTransformedAsThis = 0x00080,
DisableScaleInterpolation = 0x00100,
ForceProjectedTex = 0x00200,
CanJumpInPlaceAsMount = 0x00400,
AICannotUseWalkBackwardsAnim = 0x00800,
IgnoreSpineLowForSplitBody = 0x01000,
IgnoreHeadForSplitBody = 0x02000,
IgnoreSpineLowForSplitBodyWhenFlying = 0x04000,
IgnoreHeadForSplitBodyWhenFlying = 0x08000,
UseWheelAnimationOnUnitWheelBones = 0x10000,
IsHDModel = 0x20000,
SuppressEmittersOnLowSettings = 0x40000
};
DEFINE_ENUM_FLAG(CreatureModelDataFlags);
enum class CriteriaFailEvent : uint8
{
None = 0,
Death = 1, // Death
Hours24WithoutCompletingDailyQuest = 2, // 24 hours without completing a daily quest
LeaveBattleground = 3, // Leave a battleground
LoseRankedArenaMatchWithTeamSize = 4, // Lose a ranked arena match with team size {#Team Size}
LoseAura = 5, // Lose aura "{Spell}"
GainAura = 6, // Gain aura "{Spell}"
GainAuraEffect = 7, // Gain aura effect "{SpellAuraNames.EnumID}"
CastSpell = 8, // Cast spell "{Spell}"
BeSpellTarget = 9, // Have spell "{Spell}" cast on you
ModifyPartyStatus = 10, // Modify your party status
LosePetBattle = 11, // Lose a pet battle
BattlePetDies = 12, // Battle pet dies
DailyQuestsCleared = 13, // Daily quests cleared
SendEvent = 14, // Send event "{GameEvents}" (player-sent/instance only)
Count
};
enum class CriteriaStartEvent : uint8
{
None = 0, // - NONE -
ReachLevel = 1, // Reach level {#Level}
CompleteDailyQuest = 2, // Complete daily quest "{QuestV2}"
StartBattleground = 3, // Start battleground "{Map}"
WinRankedArenaMatchWithTeamSize = 4, // Win a ranked arena match with team size {#Team Size}
GainAura = 5, // Gain aura "{Spell}"
GainAuraEffect = 6, // Gain aura effect "{SpellAuraNames.EnumID}"
CastSpell = 7, // Cast spell "{Spell}"
BeSpellTarget = 8, // Have spell "{Spell}" cast on you
AcceptQuest = 9, // Accept quest "{QuestV2}"
KillNPC = 10, // Kill NPC "{Creature}"
KillPlayer = 11, // Kill player
UseItem = 12, // Use item "{Item}"
SendEvent = 13, // Send event "{GameEvents}" (player-sent/instance only)
BeginScenarioStep = 14, // Begin scenario step "{#Step}" (for use with "Player on Scenario" modifier only)
Count
};
enum class CriteriaFlags : uint8
{
FailAchievement = 0x01, // Fail Achievement
ResetOnStart = 0x02, // Reset on Start
ServerOnly = 0x04, // Server Only
AlwaysSaveToDB = 0x08, // Always Save to DB (Use with Caution)
AllowCriteriaDecrement = 0x10, // Allow criteria to be decremented
IsForQuest = 0x20 // Is For Quest
};
DEFINE_ENUM_FLAG(CriteriaFlags);
enum class CriteriaType : int16
{
KillCreature = 0, // Kill NPC "{Creature}"
WinBattleground = 1, // Win battleground "{Map}"
CompleteResearchProject = 2, /*NYI*/ // Complete research project "{ResearchProject}"
CompleteAnyResearchProject = 3, /*NYI*/ // Complete any research project
FindResearchObject = 4, /*NYI*/ // Find research object "{GameObjects}"
ReachLevel = 5, // Reach level
ExhaustAnyResearchSite = 6, /*NYI*/ // Exhaust any research site
SkillRaised = 7, // Skill "{SkillLine}" raised
EarnAchievement = 8, // Earn achievement "{Achievement}"
CompleteQuestsCount = 9, // Count of complete quests (quest count)
CompleteAnyDailyQuestPerDay = 10, // Complete any daily quest (per day)
CompleteQuestsInZone = 11, // Complete quests in "{AreaTable}"
CurrencyGained = 12, // Currency "{CurrencyTypes}" gained
DamageDealt = 13, // Damage dealt
CompleteDailyQuest = 14, // Complete daily quest
ParticipateInBattleground = 15, // Participate in battleground "{Map}"
DieOnMap = 16, // Die on map "{Map}"
DieAnywhere = 17, // Die anywhere
DieInInstance = 18, // Die in an instance which handles at most {#Max Players} players
RunInstance = 19, /*NYI*/ // Run an instance which handles at most {#Max Players} players
KilledByCreature = 20, // Get killed by "{Creature}"
CompleteInternalCriteria = 21, /*NYI*/ // Designer Value{`Uses Record ID}
CompleteAnyChallengeMode = 22, /*NYI*/ // Complete any challenge mode
KilledByPlayer = 23, // Die to a player
MaxDistFallenWithoutDying = 24, // Maximum distance fallen without dying
EarnChallengeModeMedal = 25, /*NYI*/ // Earn a challenge mode medal of "{#Challenge Mode Medal (OBSOLETE)}" (OBSOLETE)
DieFromEnviromentalDamage = 26, // Die to "{$Env Damage}" environmental damage
CompleteQuest = 27, // Complete quest "{QuestV2}"
BeSpellTarget = 28, // Have the spell "{Spell}" cast on you
CastSpell = 29, // Cast the spell "{Spell}"
TrackedWorldStateUIModified = 30, // Tracked WorldStateUI value "{WorldStateUI}" is modified
PVPKillInArea = 31, // Kill someone in PVP in "{AreaTable}"
WinArena = 32, // Win arena "{Map}"
ParticipateInArena = 33, // Participate in arena "{Map}"
LearnOrKnowSpell = 34, // Learn or Know spell "{Spell}"
EarnHonorableKill = 35, // Earn an honorable kill
AcquireItem = 36, // Acquire item "{Item}"
WinAnyRankedArena = 37, // Win a ranked arena match (any arena)
EarnTeamArenaRating = 38, /*NYI*/ // Earn a team arena rating of {#Arena Rating}
EarnPersonalArenaRating = 39, // Earn a personal arena rating of {#Arena Rating}
AchieveSkillStep = 40, // Achieve a skill step in "{SkillLine}"
UseItem = 41, // Use item "{Item}"
LootItem = 42, // Loot "{Item}" via corpse, pickpocket, fishing, disenchanting, etc.
RevealWorldMapOverlay = 43, // Reveal world map overlay "{WorldMapOverlay}"
EarnTitle = 44, /*NYI*/ // Deprecated PVP Titles
BankSlotsPurchased = 45, // Bank slots purchased
ReputationGained = 46, // Reputation gained with faction "{Faction}"
TotalExaltedFactions = 47, // Total exalted factions
GotHaircut = 48, // Got a haircut
EquipItemInSlot = 49, // Equip item in slot "{$Equip Slot}"
RollNeed = 50, // Roll need and get {#Need Roll}
RollGreed = 51, // Roll greed and get {#Greed Roll}
DeliverKillingBlowToClass = 52, // Deliver a killing blow to a {ChrClasses}
DeliverKillingBlowToRace = 53, // Deliver a killing blow to a {ChrRaces}
DoEmote = 54, // Do a "{EmotesText}" emote
HealingDone = 55, // Healing done
DeliveredKillingBlow = 56, // Delivered a killing blow
EquipItem = 57, // Equip item "{Item}"
CompleteQuestsInSort = 58, /*NYI*/ // Complete quests in "{QuestSort}"
MoneyEarnedFromSales = 59, // Sell items to vendors
MoneySpentOnRespecs = 60, // Money spent on respecs
TotalRespecs = 61, // Total respecs
MoneyEarnedFromQuesting = 62, // Money earned from questing
MoneySpentOnTaxis = 63, // Money spent on taxis
KilledAllUnitsInSpawnRegion = 64, /*NYI*/ // Killed all units in spawn region "{SpawnRegion}"
MoneySpentAtBarberShop = 65, // Money spent at the barber shop
MoneySpentOnPostage = 66, // Money spent on postage
MoneyLootedFromCreatures = 67, // Money looted from creatures
UseGameobject = 68, // Use Game Object "{GameObjects}"
GainAura = 69, // Gain aura "{Spell}"
KillPlayer = 70, // Kill a player (no honor check)
CompleteChallengeMode = 71, /*NYI*/ // Complete a challenge mode on map "{Map}"
CatchFishInFishingHole = 72, // Catch fish in the "{GameObjects}" fishing hole
PlayerTriggerGameEvent = 73, // Player will Trigger game event "{GameEvents}"
Login = 74, // Login (USE SPARINGLY!)
LearnSpellFromSkillLine = 75, // Learn spell from the "{SkillLine}" skill line
WinDuel = 76, // Win a duel
LoseDuel = 77, // Lose a duel
KillAnyCreature = 78, // Kill any NPC
CreatedItemsByCastingSpellWithLimit = 79, /*NYI*/ // Created items by casting a spell (limit 1 per create...)
MoneyEarnedFromAuctions = 80, // Money earned from auctions
BattlePetAchievementPointsEarned = 81, /*NYI*/ // Battle pet achievement points earned
ItemsPostedAtAuction = 82, // Number of items posted at auction
HighestAuctionBid = 83, // Highest auction bid
AuctionsWon = 84, // Auctions won
HighestAuctionSale = 85, // Highest coin value of item sold
MostMoneyOwned = 86, // Most money owned
TotalReveredFactions = 87, // Total revered factions
TotalHonoredFactions = 88, // Total honored factions
TotalFactionsEncountered = 89, // Total factions encountered
LootAnyItem = 90, // Loot any item
ObtainAnyItem = 91, // Obtain any item
AnyoneTriggerGameEventScenario = 92, // Anyone will Trigger game event "{GameEvents}" (Scenario Only)
RollAnyNeed = 93, // Roll any number on need
RollAnyGreed = 94, // Roll any number on greed
ReleasedSpirit = 95, /*NYI*/ // Released Spirit
AccountKnownPet = 96, /*NYI*/ // Account knows pet "{Creature}" (Backtracked)
DefeatDungeonEncounterWhileElegibleForLoot = 97, // Defeat Encounter "{DungeonEncounter}" While Eligible For Loot
// UNUSED 18{} = 98, // Unused
// UNUSED 19{} = 99, // Unused
// UNUSED 20{} = 100, // Unused
HighestDamageDone = 101, // Highest damage done in 1 single ability
HighestDamageTaken = 102, // Most damage taken in 1 single hit
TotalDamageTaken = 103, // Total damage taken
HighestHealCast = 104, // Largest heal cast
TotalHealReceived = 105, // Total healing received
HighestHealReceived = 106, // Largest heal received
AbandonAnyQuest = 107, // Abandon any quest
BuyTaxi = 108, // Buy a taxi
GetLootByType = 109, // Get loot via "{$Loot Acquisition}"
LandTargetedSpellOnTarget = 110, // Land targeted spell "{Spell}" on a target
// UNUSED 21{} = 111, // Unused
LearnTradeskillSkillLine = 112, // Learn tradeskill skill line "{SkillLine}"
HonorableKills = 113, // Honorable kills (number in interface, won't update except for login)
AcceptSummon = 114, // Accept a summon
EarnAchievementPoints = 115, // Earn achievement points
RollDisenchant = 116, /*NYI*/ // Roll disenchant and get {#Disenchant Roll}
RollAnyDisenchant = 117, /*NYI*/ // Roll any number on disenchant
CompletedLFGDungeon = 118, // Completed an LFG dungeon
CompletedLFGDungeonWithStrangers = 119, // Completed an LFG dungeon with strangers
KickInitiatorInLFGDungeon = 120, /*NYI*/ // Kicked in an LFG dungeon (initiator)
KickVoterInLFGDungeon = 121, /*NYI*/ // Kicked in an LFG dungeon (voter)
KickTargetInLFGDungeon = 122, /*NYI*/ // Kicked in an LFG dungeon (target)
AbandonedLFGDungeon = 123, /*NYI*/ // Abandoned an LFG dungeon
MoneySpentOnGuildRepair = 124, /*NYI*/ // Guild repair amount spent
GuildAttainedLevel = 125, /*NYI*/ // Guild attained level
CreatedItemsByCastingSpell = 126, /*NYI*/ // Created items by casting a spell
FishInAnyPool = 127, /*NYI*/ // Fish in any pool
GuildBankTabsPurchased = 128, /*NYI*/ // Guild bank tabs purchased
EarnGuildAchievementPoints = 129, /*NYI*/ // Earn guild achievement points
WinAnyBattleground = 130, /*NYI*/ // Win any battleground
ParticipateInAnyBattleground = 131, /*NYI*/ // Participate in any battleground
EarnBattlegroundRating = 132, /*NYI*/ // Earn a battleground rating
GuildTabardCreated = 133, /*NYI*/ // Guild tabard created
CompleteQuestsCountForGuild = 134, /*NYI*/ // Count of complete quests for guild (Quest count)
HonorableKillsForGuild = 135, /*NYI*/ // Honorable kills for Guild
KillAnyCreatureForGuild = 136, /*NYI*/ // Kill any NPC for Guild
GroupedTankLeftEarlyInLFGDungeon = 137, /*NYI*/ // Grouped tank left early in an LFG dungeon
CompleteGuildChallenge = 138, /*NYI*/ // Complete a "{$Guild Challenge}" guild challenge
CompleteAnyGuildChallenge = 139, /*NYI*/ // Complete any guild challenge
MarkedAFKInBattleground = 140, /*NYI*/ // Marked AFK in a battleground
RemovedAFKInBattleground = 141, /*NYI*/ // Removed for being AFK in a battleground
StartAnyBattleground = 142, /*NYI*/ // Start any battleground (AFK tracking)
CompleteAnyBattleground = 143, /*NYI*/ // Complete any battleground (AFK tracking)
MarkedSomeoneAFKInBattleground = 144, /*NYI*/ // Marked someone for being AFK in a battleground
CompletedLFRDungeon = 145, /*NYI*/ // Completed an LFR dungeon
AbandonedLFRDungeon = 146, /*NYI*/ // Abandoned an LFR dungeon
KickInitiatorInLFRDungeon = 147, /*NYI*/ // Kicked in an LFR dungeon (initiator)
KickVoterInLFRDungeon = 148, /*NYI*/ // Kicked in an LFR dungeon (voter)
KickTargetInLFRDungeon = 149, /*NYI*/ // Kicked in an LFR dungeon (target)
GroupedTankLeftEarlyInLFRDungeon = 150, /*NYI*/ // Grouped tank left early in an LFR dungeon
CompleteAnyScenario = 151, // Complete a Scenario
CompleteScenario = 152, // Complete scenario "{Scenario}"
EnterAreaTriggerWithActionSet = 153, // Enter area trigger "{AreaTriggerActionSet}"
LeaveAreaTriggerWithActionSet = 154, // Leave area trigger "{AreaTriggerActionSet}"
LearnedNewPet = 155, // (Account Only) Learned a new pet
UniquePetsOwned = 156, // (Account Only) Unique pets owned
AccountObtainPetThroughBattle = 157, /*NYI*/ // (Account Only) Obtain a pet through battle
WinPetBattle = 158, /*NYI*/ // Win a pet battle
LosePetBattle = 159, /*NYI*/ // Lose a pet battle
BattlePetReachLevel = 160, // (Account Only) Battle pet has reached level {#Level}
PlayerObtainPetThroughBattle = 161, /*NYI*/ // (Player) Obtain a pet through battle
ActivelyEarnPetLevel = 162, // (Player) Actively earn level {#Level} with a pet by a player
EnterArea = 163, // Enter Map Area "{AreaTable}"
LeaveArea = 164, // Leave Map Area "{AreaTable}"
DefeatDungeonEncounter = 165, // Defeat Encounter "{DungeonEncounter}"
PlaceAnyGarrisonBuilding = 166, /*NYI*/ // Garrison Building: Place any
PlaceGarrisonBuilding = 167, // Garrison Building: Place "{GarrBuilding}"
ActivateAnyGarrisonBuilding = 168, // Garrison Building: Activate any
ActivateGarrisonBuilding = 169, /*NYI*/ // Garrison Building: Activate "{GarrBuilding}"
UpgradeGarrison = 170, /*NYI*/ // Garrison: Upgrade Garrison to Tier "{#Tier:2,3}"
StartAnyGarrisonMissionWithFollowerType = 171, /*NYI*/ // Garrison Mission: Start any with FollowerType "{GarrFollowerType}"
StartGarrisonMission = 172, /*NYI*/ // Garrison Mission: Start "{GarrMission}"
SucceedAnyGarrisonMissionWithFollowerType = 173, /*NYI*/ // Garrison Mission: Succeed any with FollowerType "{GarrFollowerType}"
SucceedGarrisonMission = 174, /*NYI*/ // Garrison Mission: Succeed "{GarrMission}"
RecruitAnyGarrisonFollower = 175, /*NYI*/ // Garrison Follower: Recruit any
RecruitGarrisonFollower = 176, // Garrison Follower: Recruit "{GarrFollower}"
AcquireGarrison = 177, /*NYI*/ // Garrison: Acquire a Garrison
LearnAnyGarrisonBlueprint = 178, /*NYI*/ // Garrison Blueprint: Learn any
LearnGarrisonBlueprint = 179, /*NYI*/ // Garrison Blueprint: Learn "{GarrBuilding}"
LearnAnyGarrisonSpecialization = 180, /*NYI*/ // Garrison Specialization: Learn any
LearnGarrisonSpecialization = 181, /*NYI*/ // Garrison Specialization: Learn "{GarrSpecialization}"
CollectGarrisonShipment = 182, /*NYI*/ // Garrison Shipment of type "{CharShipmentContainer}" collected
ItemLevelChangedForGarrisonFollower = 183, /*NYI*/ // Garrison Follower: Item Level Changed
LevelChangedForGarrisonFollower = 184, /*NYI*/ // Garrison Follower: Level Changed
LearnToy = 185, /*NYI*/ // Learn Toy "{Item}"
LearnAnyToy = 186, /*NYI*/ // Learn Any Toy
QualityUpgradedForGarrisonFollower = 187, /*NYI*/ // Garrison Follower: Quality Upgraded
LearnHeirloom = 188, // Learn Heirloom "{Item}"
LearnAnyHeirloom = 189, // Learn Any Heirloom
EarnArtifactXP = 190, // Earn Artifact XP
AnyArtifactPowerRankPurchased = 191, // Artifact Power Ranks Purchased
LearnTransmog = 192, /*NYI*/ // Learn Transmog "{ItemModifiedAppearance}"
LearnAnyTransmog = 193, // Learn Any Transmog
HonorLevelIncrease = 194, // (Player) honor level increase
PrestigeLevelIncrease = 195, /*NYI*/ // (Player) prestige level increase
ActivelyReachLevel = 196, // Actively level to level {#Level}
CompleteResearchAnyGarrisonTalent = 197, /*NYI*/ // Garrison Talent: Complete Research Any
CompleteResearchGarrisonTalent = 198, /*NYI*/ // Garrison Talent: Complete Research "{GarrTalent}"
LearnAnyTransmogInSlot = 199, // Learn Any Transmog in Slot "{$Equip Slot}"
RecruitAnyGarrisonTroop = 200, /*NYI*/ // Recruit any Garrison Troop
StartResearchAnyGarrisonTalent = 201, /*NYI*/ // Garrison Talent: Start Research Any
StartResearchGarrisonTalent = 202, /*NYI*/ // Garrison Talent: Start Research "{GarrTalent}"
CompleteAnyWorldQuest = 203, /*NYI*/ // Complete Any Quest
EarnLicense = 204, /*NYI*/ // Earn License "{BattlePayDeliverable}" (does NOT work for box level)
CollectTransmogSetFromGroup = 205, // (Account Only) Collect a Transmog Set from Group "{TransmogSetGroup}"
ParagonLevelIncreaseWithFaction = 206, /*NYI*/ // (Player) paragon level increase with faction "{Faction}"
PlayerHasEarnedHonor = 207, /*NYI*/ // Player has earned honor
KillCreatureScenario = 208, /*NYI*/ // Kill NPC "{Creature}" (scenario criteria only, do not use for player)
ArtifactPowerRankPurchased = 209, /*NYI*/ // Artifact Power Rank of "{ArtifactPower}" Purchased
ChooseAnyRelicTalent = 210, /*NYI*/ // Choose any Relic Talent
ChooseRelicTalent = 211, /*NYI*/ // Choose Relic Talent "{ArtifactPower}"
EarnExpansionLevel = 212, /*NYI*/ // Earn Expansion Level "{$Expansion Level}"
AccountHonorLevelReached = 213, /*NYI*/ // (Account Only) honor level {#Level} reached
EarnArtifactXPForAzeriteItem = 214, // Earn Artifact experience for Azerite Item
AzeriteLevelReached = 215, // Azerite Level {#Azerite Level} reached
MythicPlusCompleted = 216, /*NYI*/ // Mythic Plus Completed
ScenarioGroupCompleted = 217, /*NYI*/ // Scenario Group Completed
CompleteAnyReplayQuest = 218, // Complete Any Replay Quest
BuyItemsFromVendors = 219, // Buy items from vendors
SellItemsToVendors = 220, // Sell items to vendors
ReachMaxLevel = 221, // Reach Max Level
MemorizeSpell = 222, /*NYI*/ // Memorize Spell "{Spell}"
LearnTransmogIllusion = 223, /*NYI*/ // Learn Transmog Illusion
LearnAnyTransmogIllusion = 224, /*NYI*/ // Learn Any Transmog Illusion
EnterTopLevelArea = 225, // Enter Top Level Map Area "{AreaTable}"
LeaveTopLevelArea = 226, // Leave Top Level Map Area "{AreaTable}"
SocketGarrisonTalent = 227, /*NYI*/ // Socket Garrison Talent {GarrTalent}
SocketAnySoulbindConduit = 228, /*NYI*/ // Socket Any Soulbind Conduit
ObtainAnyItemWithCurrencyValue = 229, /*NYI*/ // Obtain Any Item With Currency Value "{CurrencyTypes}"
MythicPlusRatingAttained = 230, /*NYI*/ // (Player) Mythic+ Rating "{#DungeonScore}" attained
SpentTalentPoint = 231, /*NYI*/ // (Player) spent talent point
MythicPlusDisplaySeasonEnded = 234, /*NYI*/ // {DisplaySeason}
WinRatedSoloShuffleRound = 239, /*NYI*/
ParticipateInRatedSoloShuffleRound = 240, /*NYI*/
ReputationAmountGained = 243, /*NYI*/ // Gain reputation amount with {FactionID}; accumulate, not highest
FulfillAnyCraftingOrder = 245, /*NYI*/
FulfillCraftingOrderType = 246, /*NYI*/ // {CraftingOrderType}
PerksProgramMonthComplete = 249, /*NYI*/
CompleteTrackingQuest = 250, /*NYI*/
GainLevels = 253, // Gain levels
CompleteQuestsCountOnAccount = 257, /*NYI*/
BankTabPurchased = 260, // Bank Tab Purchased in {#BankType}
ReachRenownLevel = 261,
LearnTaxiNode = 262,
Count = 270
};
enum class CriteriaTreeFlags : uint16
{
ProgressBar = 0x0001, // Progress Bar
DoNotDisplay = 0x0002, // Do Not Display
IsDate = 0x0004, // Is a Date
IsMoney = 0x0008, // Is Money
ToastOnComplete = 0x0010, // Toast on Complete
UseObjectsDescription = 0x0020, // Use Object's Description
ShowFactionSpecificChild = 0x0040, // Show faction specific child
DisplayAllChildren = 0x0080, // Display all children
AwardBonusRep = 0x0100, // Award Bonus Rep (Hack!!)
AllianceOnly = 0x0200, // Treat this criteria or block as Alliance
HordeOnly = 0x0400, // Treat this criteria or block as Horde
DisplayAsFraction = 0x0800, // Display as Fraction
IsForQuest = 0x1000 // Is For Quest
};
DEFINE_ENUM_FLAG(CriteriaTreeFlags);
enum class CriteriaTreeOperator : uint8
{
Complete = 0, // Complete
NotComplete = 1, // Not Complete
CompleteAll = 4, // Complete All
Sum = 5, // Sum Of Criteria Is
Highest = 6, // Highest Criteria Is
StartedAtLeast = 7, // Started At Least
CompleteAtLeast = 8, // Complete At Least
ProgressBar = 9 // Progress Bar
};
enum class ChrCustomizationOptionFlag : int32
{
Disabled = 0x4,
};
DEFINE_ENUM_FLAG(ChrCustomizationOptionFlag);
enum class ChrCustomizationReqFlag : int32
{
HasRequirements = 0x1
};
DEFINE_ENUM_FLAG(ChrCustomizationReqFlag);
enum CurrencyConsts
{
CURRENCY_TYPE_ANCIENT_MANA = 1155,
CURRENCY_TYPE_AZERITE = 1553,
CURRENCY_MAX_CAP_ANCIENT_MANA = 2000
};
enum class CurrencyTypesFlags : uint32
{
Tradable = 0x00000001, // NYI
AppearsInLootWindow = 0x00000002, // NYI
ComputedWeeklyMaximum = 0x00000004, // NYI
_100_Scaler = 0x00000008,
NoLowLevelDrop = 0x00000010, // NYI
IgnoreMaxQtyOnLoad = 0x00000020,
LogOnWorldChange = 0x00000040, // NYI
TrackQuantity = 0x00000080,
ResetTrackedQuantity = 0x00000100, // NYI
UpdateVersionIgnoreMax = 0x00000200,
SuppressChatMessageOnVersionChange = 0x00000400,
SingleDropInLoot = 0x00000800, // NYI
HasWeeklyCatchup = 0x00001000, // NYI
DoNotCompressChat = 0x00002000, // NYI
DoNotLogAcquisitionToBi = 0x00004000, // NYI
NoRaidDrop = 0x00008000, // NYI
NotPersistent = 0x00010000, // NYI
Deprecated = 0x00020000, // NYI
DynamicMaximum = 0x00040000,
SuppressChatMessages = 0x00080000,
DoNotToast = 0x00100000, // NYI
DestroyExtraOnLoot = 0x00200000, // NYI
DontShowTotalInTooltip = 0x00400000, // NYI
DontCoalesceInLootWindow = 0x00800000, // NYI
AccountWide = 0x01000000, // NYI
AllowOverflowMailer = 0x02000000, // NYI
HideAsReward = 0x04000000, // NYI
HasWarmodeBonus = 0x08000000, // NYI
IsAllianceOnly = 0x10000000,
IsHordeOnly = 0x20000000,
LimitWarmodeBonusOncePerTooltip = 0x40000000, // NYI
DeprecatedCurrencyFlag = 0x80000000 // this flag itself is deprecated, not currency that has it
};
DEFINE_ENUM_FLAG(CurrencyTypesFlags);
enum class CurrencyTypesFlagsB : uint32
{
UseTotalEarnedForEarned = 0x0001,
ShowQuestXPGainInTooltip = 0x0002, // NYI
NoNotificationMailOnOfflineProgress = 0x0004, // NYI
BattlenetVirtualCurrency = 0x0008, // NYI
FutureCurrencyFlag = 0x0010, // NYI
DontDisplayIfZero = 0x0020, // NYI
ScaleMaxQuantityBySeasonWeeks = 0x0040, // NYI
ScaleMaxQuantityByWeeksSinceStart = 0x0080, // NYI
ForceMaxQuantityOnConversion = 0x0100, // NYI
};
DEFINE_ENUM_FLAG(CurrencyTypesFlagsB);
enum Curves
{
CURVE_ID_ARTIFACT_RELIC_ITEM_LEVEL_BONUS = 1718,
CURVE_ID_AZERITE_EMPOWERED_ITEM_RESPEC_COST = 6785
};
enum class CurveInterpolationMode : uint8
{
Linear = 0,
Cosine = 1,
CatmullRom = 2,
Bezier3 = 3,
Bezier4 = 4,
Bezier = 5,
Constant = 6,
};
enum Difficulty : uint8
{
DIFFICULTY_NONE = 0,
DIFFICULTY_NORMAL = 1,
DIFFICULTY_HEROIC = 2,
DIFFICULTY_10_N = 3,
DIFFICULTY_25_N = 4,
DIFFICULTY_10_HC = 5,
DIFFICULTY_25_HC = 6,
DIFFICULTY_LFR = 7,
DIFFICULTY_MYTHIC_KEYSTONE = 8,
DIFFICULTY_40 = 9,
DIFFICULTY_3_MAN_SCENARIO_HC = 11,
DIFFICULTY_3_MAN_SCENARIO_N = 12,
DIFFICULTY_NORMAL_RAID = 14,
DIFFICULTY_HEROIC_RAID = 15,
DIFFICULTY_MYTHIC_RAID = 16,
DIFFICULTY_LFR_NEW = 17,
DIFFICULTY_EVENT_RAID = 18,
DIFFICULTY_EVENT_DUNGEON = 19,
DIFFICULTY_EVENT_SCENARIO = 20,
DIFFICULTY_MYTHIC = 23,
DIFFICULTY_TIMEWALKING = 24,
DIFFICULTY_WORLD_PVP_SCENARIO = 25,
DIFFICULTY_5_MAN_SCENARIO_N = 26,
DIFFICULTY_20_MAN_SCENARIO_N = 27,
DIFFICULTY_PVEVP_SCENARIO = 29,
DIFFICULTY_EVENT_SCENARIO_6 = 30,
DIFFICULTY_WORLD_PVP_SCENARIO_2 = 32,
DIFFICULTY_TIMEWALKING_RAID = 33,
DIFFICULTY_PVP = 34,
DIFFICULTY_NORMAL_ISLAND = 38,
DIFFICULTY_HEROIC_ISLAND = 39,
DIFFICULTY_MYTHIC_ISLAND = 40,
DIFFICULTY_PVP_ISLAND = 45,
DIFFICULTY_NORMAL_WARFRONT = 147,
DIFFICULTY_HEROIC_WARFRONT = 149,
DIFFICULTY_LFR_15TH_ANNIVERSARY = 151,
DIFFICULTY_VISIONS_OF_NZOTH = 152,
DIFFICULTY_TEEMING_ISLAND = 153
};
enum DifficultyFlags
{
DIFFICULTY_FLAG_HEROIC_STYLE_LOCKOUTS = 0x01,
DIFFICULTY_FLAG_DEFAULT = 0x02,
DIFFICULTY_FLAG_CAN_SELECT = 0x04, // Player can select this difficulty in dropdown menu
//DIFFICULTY_FLAG_CHALLENGE_MODE = 0x08, // deprecated since Legion expansion
DIFFICULTY_FLAG_LFG_ONLY = 0x10,
DIFFICULTY_FLAG_LEGACY = 0x20,
DIFFICULTY_FLAG_DISPLAY_HEROIC = 0x40, // Controls icon displayed on minimap when inside the instance
DIFFICULTY_FLAG_DISPLAY_MYTHIC = 0x80 // Controls icon displayed on minimap when inside the instance
};
enum class ExpectedStatType : uint8
{
CreatureHealth = 0,
PlayerHealth = 1,
CreatureAutoAttackDps = 2,
CreatureArmor = 3,
PlayerMana = 4,
PlayerPrimaryStat = 5,
PlayerSecondaryStat = 6,
ArmorConstant = 7,
None = 8,
CreatureSpellDamage = 9
};
enum FactionTemplateFlags
{
FACTION_TEMPLATE_FLAG_PVP = 0x00000800, // flagged for PvP
FACTION_TEMPLATE_FLAG_CONTESTED_GUARD = 0x00001000, // faction will attack players that were involved in PvP combats
FACTION_TEMPLATE_FLAG_HOSTILE_BY_DEFAULT= 0x00002000
};
enum FactionMasks
{
FACTION_MASK_PLAYER = 1, // any player
FACTION_MASK_ALLIANCE = 2, // player or creature from alliance team
FACTION_MASK_HORDE = 4, // player or creature from horde team
FACTION_MASK_MONSTER = 8 // aggressive creature from monster team
// if none flags set then non-aggressive creature
};
enum class FriendshipReputationFlags : int32
{
NoFXOnReactionChange = 0x01,
NoLogTextOnRepGain = 0x02,
NoLogTextOnReactionChange = 0x04,
ShowRepGainandReactionChangeForHiddenFaction = 0x08,
NoRepGainModifiers = 0x10
};
DEFINE_ENUM_FLAG(FriendshipReputationFlags);
enum class GameRule : int32
{
NoDebuffLimit = 1,
CharNameReservationEnabled = 2,
MaxCharReservationsPerRealm = 3,
MaxAccountCharReservationsPerContentset = 4,
EtaRealmLaunchTime = 5,
TrivialGroupXPPercent = 7,
CharReservationsPerRealmReopenThreshold = 8,
DisablePct = 9,
HardcoreRuleset = 10,
ReplaceAbsentGmSeconds = 11,
ReplaceGmRankLastOnlineSeconds = 12,
GameMode = 13,
CharacterlessLogin = 14,
NoMultiboxing = 15,
VanillaNpcKnockback = 16,
Runecarving = 17,
TalentRespecCostMin = 18,
TalentRespecCostMax = 19,
TalentRespecCostStep = 20,
VanillaRageGenerationModifier = 21,
SelfFoundAllowed = 22,
DisableHonorDecay = 23,
MaxLootDropLevel = 25,
MicrobarScale = 26,
MaxUnitNameDistance = 27,
MaxNameplateDistance = 28,
UserAddonsDisabled = 29,
UserScriptsDisabled = 30,
NonPlayerNameplateScale = 31,
ForcedPartyFrameScale = 32,
CustomActionbarOverlayHeightOffset = 33,
ForcedChatLanguage = 34,
LandingPageFactionID = 35,
CollectionsPanelDisabled = 36,
CharacterPanelDisabled = 37,
SpellbookPanelDisabled = 38,
TalentsPanelDisabled = 39,
AchievementsPanelDisabled = 40,
CommunitiesPanelDisabled = 41,
EncounterJournalDisabled = 42,
FinderPanelDisabled = 43,
StoreDisabled = 44,
HelpPanelDisabled = 45,
GuildsDisabled = 46,
QuestLogMicrobuttonDisabled = 47,
MapPlunderstormCircle = 48,
AfterDeathSpectatingUI = 49,
FrontEndChat = 50,
UniversalNameplateOcclusion = 51,
FastAreaTriggerTick = 52,
AllPlayersAreFastMovers = 53,
IgnoreChrclassDisabledFlag = 54,
CharacterCreateUseFixedBackgroundModel = 55,
ForceAlteredFormsOn = 56,
PlayerNameplateDifficultyIcon = 57,
PlayerNameplateAlternateHealthColor = 58,
AlwaysAllowAlliedRaces = 59,
ActionbarIconIntroDisabled = 60,
ReleaseSpiritGhostDisabled = 61,
DeleteItemConfirmationDisabled = 62,
ChatLinkLevelToastsDisabled = 63,
BagsUIDisabled = 64,
PetBattlesDisabled = 65,
PerksProgramActivityTrackingDisabled = 66,
MaximizeWorldMapDisabled = 67,
WorldMapTrackingOptionsDisabled = 68,
WorldMapTrackingPinDisabled = 69,
WorldMapHelpPlateDisabled = 70,
QuestLogPanelDisabled = 71,
QuestLogSuperTrackingDisabled = 72,
TutorialFrameDisabled = 73,
IngameMailNotificationDisabled = 74,
IngameCalendarDisabled = 75,
IngameTrackingDisabled = 76,
IngameWhoListDisabled = 77,
RaceAlteredFormsDisabled = 78,
IngameFriendsListDisabled = 79,
MacrosDisabled = 80,
CompactRaidFrameManagerDisabled = 81,
EditModeDisabled = 82,
InstanceDifficultyBannerDisabled = 83,
FullCharacterCreateDisabled = 84,
TargetFrameBuffsDisabled = 85,
UnitFramePvPContextualDisabled = 86,
BlockWhileSheathedAllowed = 88,
VanillaAccountMailInstant = 91,
ClearMailOnRealmTransfer = 92,
PremadeGroupFinderStyle = 93,
PlunderstormAreaSelection = 94,
GroupFinderCapabilities = 98,
WorldMapLegendDisabled = 99,
WorldMapFrameStrata = 100,
MerchantFilterDisabled = 101,
SummoningStones = 108,
TransmogEnabled = 109,
MailGameRule = 132,
LootMethodStyle = 157,
};
enum class GlobalCurve : int32
{
CritDiminishing = 0,
MasteryDiminishing = 1,
HasteDiminishing = 2,
SpeedDiminishing = 3,
AvoidanceDiminishing = 4,
VersatilityDoneDiminishing = 5,
LifestealDiminishing = 6,
DodgeDiminishing = 7,
BlockDiminishing = 8,
ParryDiminishing = 9,
VersatilityTakenDiminishing = 11,
ContentTuningPvpItemLevelHealthScaling = 13,
ContentTuningPvpLevelDamageScaling = 14,
ContentTuningPvpItemLevelDamageScaling = 15,
ArmorItemLevelDiminishing = 18,
ChallengeModeHealth = 21,
ChallengeModeDamage = 22,
MythicPlusEndOfRunGearSequenceLevel = 23,
SpellAreaEffectWarningRadius = 26, // ground spell effect warning circle radius (based on spell radius)
};
#define MAX_ITEM_PROTO_FLAGS 5
#define MAX_ITEM_PROTO_ZONES 2
#define MAX_ITEM_PROTO_SOCKETS 3
#define MAX_ITEM_PROTO_STATS 10
enum GlyphSlotType
{
GLYPH_SLOT_MAJOR = 0,
GLYPH_SLOT_MINOR = 1,
GLYPH_SLOT_PRIME = 2
};
enum ItemEnchantmentType
{
ITEM_ENCHANTMENT_TYPE_NONE = 0,
ITEM_ENCHANTMENT_TYPE_COMBAT_SPELL = 1,
ITEM_ENCHANTMENT_TYPE_DAMAGE = 2,
ITEM_ENCHANTMENT_TYPE_EQUIP_SPELL = 3,
ITEM_ENCHANTMENT_TYPE_RESISTANCE = 4,
ITEM_ENCHANTMENT_TYPE_STAT = 5,
ITEM_ENCHANTMENT_TYPE_TOTEM = 6,
ITEM_ENCHANTMENT_TYPE_USE_SPELL = 7,
ITEM_ENCHANTMENT_TYPE_PRISMATIC_SOCKET = 8,
ITEM_ENCHANTMENT_TYPE_ARTIFACT_POWER_BONUS_RANK_BY_TYPE = 9,
ITEM_ENCHANTMENT_TYPE_ARTIFACT_POWER_BONUS_RANK_BY_ID = 10,
ITEM_ENCHANTMENT_TYPE_BONUS_LIST_ID = 11,
ITEM_ENCHANTMENT_TYPE_BONUS_LIST_CURVE = 12,
ITEM_ENCHANTMENT_TYPE_ARTIFACT_POWER_BONUS_RANK_PICKER = 13
};
enum ItemExtendedCostFlags
{
ITEM_EXT_COST_FLAG_REQUIRE_GUILD = 0x01,
ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_1 = 0x02,
ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_2 = 0x04,
ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_3 = 0x08,
ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_4 = 0x10,
ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_5 = 0x20,
};
enum ItemBonusType
{
ITEM_BONUS_ITEM_LEVEL = 1,
ITEM_BONUS_STAT = 2,
ITEM_BONUS_QUALITY = 3,
ITEM_BONUS_NAME_SUBTITLE = 4, // Text under name
ITEM_BONUS_SUFFIX = 5,
ITEM_BONUS_SOCKET = 6,
ITEM_BONUS_APPEARANCE = 7,
ITEM_BONUS_REQUIRED_LEVEL = 8,
ITEM_BONUS_DISPLAY_TOAST_METHOD = 9,
ITEM_BONUS_REPAIR_COST_MULTIPLIER = 10,
ITEM_BONUS_SCALING_STAT_DISTRIBUTION = 11,
ITEM_BONUS_DISENCHANT_LOOT_ID = 12,
ITEM_BONUS_SCALING_STAT_DISTRIBUTION_FIXED = 13,
ITEM_BONUS_ITEM_LEVEL_CAN_INCREASE = 14, // Displays a + next to item level indicating it can warforge
ITEM_BONUS_RANDOM_ENCHANTMENT = 15, // Responsible for showing "" or "+%d Rank Random Minor Trait" in the tooltip before item is obtained
ITEM_BONUS_BONDING = 16,
ITEM_BONUS_RELIC_TYPE = 17,
ITEM_BONUS_OVERRIDE_REQUIRED_LEVEL = 18,
ITEM_BONUS_AZERITE_TIER_UNLOCK_SET = 19,
ITEM_BONUS_SCRAPPING_LOOT_ID = 20,
ITEM_BONUS_OVERRIDE_CAN_DISENCHANT = 21,
ITEM_BONUS_OVERRIDE_CAN_SCRAP = 22,
ITEM_BONUS_ITEM_EFFECT_ID = 23,
ITEM_BONUS_MODIFIED_CRAFTING_STAT = 25,
ITEM_BONUS_REQUIRED_LEVEL_CURVE = 27,
ITEM_BONUS_DESCRIPTION_TEXT = 30, // Item description
ITEM_BONUS_OVERRIDE_NAME = 31, // ItemNameDescription id
ITEM_BONUS_ITEM_BONUS_LIST_GROUP = 34,
ITEM_BONUS_ITEM_LIMIT_CATEGORY = 35,
ITEM_BONUS_ITEM_CONVERSION = 37,
ITEM_BONUS_ITEM_HISTORY_SLOT = 38,
};
enum class ItemCollectionType : uint8
{
None = 0,
Toy = 1,
Heirloom = 2,
Transmog = 3,
TransmogSetFavorite = 4,
RuneforgeLegendaryAbility = 5,
TransmogIllusion = 6,
WarbandScene = 7,
};
enum class ItemContext : uint8
{
NONE = 0,
Dungeon_Normal = 1,
Dungeon_Heroic = 2,
Raid_Normal = 3,
Raid_Raid_Finder = 4,
Raid_Heroic = 5,
Raid_Mythic = 6,
PVP_Unranked_1 = 7,
PVP_Ranked_1_Unrated = 8,
Scenario_Normal = 9,
Scenario_Heroic = 10,
Quest_Reward = 11,
In_Game_Store = 12,
Trade_Skill = 13,
Vendor = 14,
Black_Market = 15,
MythicPlus_End_of_Run = 16,
Dungeon_Lvl_Up_1 = 17,
Dungeon_Lvl_Up_2 = 18,
Dungeon_Lvl_Up_3 = 19,
Dungeon_Lvl_Up_4 = 20,
Force_to_NONE = 21,
Timewalking = 22,
Dungeon_Mythic = 23,
Pvp_Honor_Reward = 24,
World_Quest_1 = 25,
World_Quest_2 = 26,
World_Quest_3 = 27,
World_Quest_4 = 28,
World_Quest_5 = 29,
World_Quest_6 = 30,
Mission_Reward_1 = 31,
Mission_Reward_2 = 32,
MythicPlus_End_of_Run_Time_Chest = 33,
MythicPlus_Timewalking_End_of_Run = 34,
MythicPlus_Jackpot = 35,
World_Quest_7 = 36,
World_Quest_8 = 37,
PVP_Ranked_2_Combatant = 38,
PVP_Ranked_4_Challenger = 39,
PVP_Ranked_6_Rival = 40,
PVP_Unranked_2 = 41,
World_Quest_9 = 42,
World_Quest_10 = 43,
PVP_Ranked_8_Duelist = 44,
PVP_Ranked_9_Elite = 45,
PVP_Ranked_3_Combatant = 46,
PVP_Unranked_3 = 47,
PVP_Unranked_4 = 48,
PVP_Unranked_5 = 49,
PVP_Unranked_6 = 50,
PVP_Unranked_7 = 51,
PVP_Ranked_5_Challenger = 52,
World_Quest_11 = 53,
World_Quest_12 = 54,
World_Quest_13 = 55,
PVP_Ranked_Jackpot = 56,
Tournament_Realm_1 = 57,
Relinquished = 58,
Legendary_Forge = 59,
Quest_Bonus_Loot = 60,
Character_Boost_Dragonflight_70 = 61,
Character_Boost_Shadowlands_50 = 62,
Legendary_Crafting_1 = 63,
Legendary_Crafting_2 = 64,
Legendary_Crafting_3 = 65,
Legendary_Crafting_4 = 66,
Legendary_Crafting_5 = 67,
Legendary_Crafting_6 = 68,
Legendary_Crafting_7 = 69,
Legendary_Crafting_8 = 70,
Legendary_Crafting_9 = 71,
Weekly_Rewards_Additional = 72,
Weekly_Rewards_Concession = 73,
World_Quest_Jackpot = 74,
New_Character = 75,
War_Mode = 76,
PvP_Brawl_1 = 77,
PvP_Brawl_2 = 78,
Torghast = 79,
Corpse_Recovery = 80,
World_Boss = 81,
Raid_Normal_Extended = 82,
Raid_Raid_Finder_Extended = 83,
Raid_Heroic_Extended = 84,
Raid_Mythic_Extended = 85,
Character_Boost_Shadowlands_60 = 86,
MythicPlus_Timewalking_End_of_Run_Time_Chest = 87,
Pvp_Ranked_7_Rival = 88,
Raid_Normal_Extended_2 = 89,
Raid_Finder_Extended_2 = 90,
Raid_Heroic_Extended_2 = 91,
Raid_Mythic_Extended_2 = 92,
Raid_Normal_Extended_3 = 93,
Raid_Finder_Extended_3 = 94,
Raid_Heroic_Extended_3 = 95,
Raid_Mythic_Extended_3 = 96,
Template_Character_1 = 97,
Template_Character_2 = 98,
Template_Character_3 = 99,
Template_Character_4 = 100,
Dungeon_Normal_Jackpot = 101,
Dungeon_Heroic_Jackpot = 102,
Dungeon_Mythic_Jackpot = 103,
Delves_1 = 104,
Timerunning = 105,
Delves_2 = 106,
Delves_3 = 107,
Delves_Jackpot = 108,
Delves_Key_1 = 109,
Delves_Key_2 = 110,
Delves_Key_3 = 111,
Delves_Key_4 = 112,
Delves_Key_5 = 113,
Delves_Key_6 = 114,
Delves_Key_7 = 115,
Delves_Key_8 = 116,
Delves_Bounty_1 = 117,
Delves_Bounty_2 = 118,
Delves_Bounty_3 = 119,
Delves_Bounty_4 = 120,
Delves_Bounty_5 = 121,
Delves_Bounty_6 = 122,
Delves_Bounty_7 = 123,
Delves_Bounty_8 = 124,
Delves_Level_Up_1 = 125,
Delves_Level_Up_2 = 126,
Delves_Level_Up_3 = 127,
Delves_Level_Up_4 = 128,
Delves_Bonus_1 = 129,
Delves_Bonus_2 = 130,
Delves_Bonus_3 = 131,
Delves_Bonus_4 = 132,
Delves_Bonus_5 = 133,
Delves_Bonus_6 = 134,
Delves_Bonus_7 = 135,
Delves_Bonus_8 = 136,
Delves_Bonus_9 = 137,
Delves_Bonus_10 = 138,
Dungeon_Bonus_1 = 139,
Dungeon_Bonus_2 = 140,
Dungeon_Bonus_3 = 141,
Dungeon_Bonus_4 = 142,
Dungeon_Bonus_5 = 143,
Dungeon_Bonus_6 = 144,
Dungeon_Bonus_7 = 145,
Dungeon_Bonus_8 = 146,
Dungeon_Bonus_9 = 147,
Dungeon_Bonus_10 = 148,
Raid_Bonus_1 = 149,
Raid_Bonus_2 = 150,
Raid_Bonus_3 = 151,
Raid_Bonus_4 = 152,
Raid_Bonus_5 = 153,
Raid_Bonus_6 = 154,
Raid_Bonus_7 = 155,
Raid_Bonus_8 = 156,
Raid_Bonus_9 = 157,
Raid_Bonus_10 = 158,
Dungeon_Hard_Mode_1 = 159,
Dungeon_Hard_Mode_2 = 160,
Dungeon_Hard_Mode_3 = 161,
Tournament_Realm_2 = 162,
Tournament_Realm_3 = 163,
Tournament_Realm_4 = 164,
Max
};
enum ItemLimitCategoryMode
{
ITEM_LIMIT_CATEGORY_MODE_HAVE = 0, // limit applied to amount items in inventory/bank
ITEM_LIMIT_CATEGORY_MODE_EQUIP = 1 // limit applied to amount equipped items (including used gems)
};
enum ItemSetFlags
{
ITEM_SET_FLAG_LEGACY_INACTIVE = 0x01,
};
enum ItemSpecStat
{
ITEM_SPEC_STAT_INTELLECT = 0,
ITEM_SPEC_STAT_AGILITY = 1,
ITEM_SPEC_STAT_STRENGTH = 2,
ITEM_SPEC_STAT_SPIRIT = 3,
ITEM_SPEC_STAT_HIT = 4,
ITEM_SPEC_STAT_DODGE = 5,
ITEM_SPEC_STAT_PARRY = 6,
ITEM_SPEC_STAT_ONE_HANDED_AXE = 7,
ITEM_SPEC_STAT_TWO_HANDED_AXE = 8,
ITEM_SPEC_STAT_ONE_HANDED_SWORD = 9,
ITEM_SPEC_STAT_TWO_HANDED_SWORD = 10,
ITEM_SPEC_STAT_ONE_HANDED_MACE = 11,
ITEM_SPEC_STAT_TWO_HANDED_MACE = 12,
ITEM_SPEC_STAT_DAGGER = 13,
ITEM_SPEC_STAT_FIST_WEAPON = 14,
ITEM_SPEC_STAT_GUN = 15,
ITEM_SPEC_STAT_BOW = 16,
ITEM_SPEC_STAT_CROSSBOW = 17,
ITEM_SPEC_STAT_STAFF = 18,
ITEM_SPEC_STAT_POLEARM = 19,
ITEM_SPEC_STAT_THROWN = 20,
ITEM_SPEC_STAT_WAND = 21,
ITEM_SPEC_STAT_SHIELD = 22,
ITEM_SPEC_STAT_RELIC = 23,
ITEM_SPEC_STAT_CRIT = 24,
ITEM_SPEC_STAT_HASTE = 25,
ITEM_SPEC_STAT_BONUS_ARMOR = 26,
ITEM_SPEC_STAT_CLOAK = 27,
ITEM_SPEC_STAT_WARGLAIVES = 28,
ITEM_SPEC_STAT_RELIC_IRON = 29,
ITEM_SPEC_STAT_RELIC_BLOOD = 30,
ITEM_SPEC_STAT_RELIC_SHADOW = 31,
ITEM_SPEC_STAT_RELIC_FEL = 32,
ITEM_SPEC_STAT_RELIC_ARCANE = 33,
ITEM_SPEC_STAT_RELIC_FROST = 34,
ITEM_SPEC_STAT_RELIC_FIRE = 35,
ITEM_SPEC_STAT_RELIC_WATER = 36,
ITEM_SPEC_STAT_RELIC_LIFE = 37,
ITEM_SPEC_STAT_RELIC_WIND = 38,
ITEM_SPEC_STAT_RELIC_HOLY = 39,
ITEM_SPEC_STAT_NONE = 40
};
enum MapTypes // Lua_IsInInstance
{
MAP_COMMON = 0, // none
MAP_INSTANCE = 1, // party
MAP_RAID = 2, // raid
MAP_BATTLEGROUND = 3, // pvp
MAP_ARENA = 4, // arena
MAP_SCENARIO = 5 // scenario
};
enum class MapFlags : uint32
{
Optimize = 0x00000001,
DevelopmentMap = 0x00000002,
WeightedBlend = 0x00000004,
VertexColoring = 0x00000008,
SortObjects = 0x00000010,
LimitToPlayersFromOneRealm = 0x00000020,
EnableLighting = 0x00000040,
InvertedTerrain = 0x00000080,
DynamicDifficulty = 0x00000100,
ObjectFile = 0x00000200,
TextureFile = 0x00000400,
GenerateNormals = 0x00000800,
FixBorderShadowSeams = 0x00001000,
InfiniteOcean = 0x00002000,
UnderwaterMap = 0x00004000,
FlexibleRaidLocking = 0x00008000,
LimitFarclip = 0x00010000,
UseParentMapFlightBounds = 0x00020000,
NoRaceChangeOnThisMap = 0x00040000,
DisabledForNonGMs = 0x00080000,
WeightedNormals1 = 0x00100000,
DisableLowDetailTerrain = 0x00200000,
EnableOrgArenaBlinkRule = 0x00400000,
WeightedHeightBlend = 0x00800000,
CoalescingAreaSharing = 0x01000000,
ProvingGrounds = 0x02000000,
Garrison = 0x04000000,
EnableAINeedSystem = 0x08000000,
SingleVServer = 0x10000000,
UseInstancePool = 0x20000000,
MapUsesRaidGraphics = 0x40000000,
ForceCustomUIMap = 0x80000000,
};
DEFINE_ENUM_FLAG(MapFlags);
enum class MapFlags2 : uint32
{
DontActivateShowMap = 0x00000001,
NoVoteKicks = 0x00000002,
NoIncomingTransfers = 0x00000004,
DontVoxelizePathData = 0x00000008,
TerrainLOD = 0x00000010,
UnclampedPointLights = 0x00000020,
PVP = 0x00000040,
IgnoreInstanceFarmLimit = 0x00000080,
DontInheritAreaLightsFromParent = 0x00000100,
ForceLightBufferOn = 0x00000200,
WMOLiquidScale = 0x00000400,
SpellClutterOn = 0x00000800,
SpellClutterOff = 0x00001000,
ReducedPathMapHeightValidation = 0x00002000,
NewMinimapGeneration = 0x00004000,
AIBotsDetectedLikePlayers = 0x00008000,
LinearlyLitTerrain = 0x00010000,
FogOfWar = 0x00020000,
DisableSharedWeatherSystems = 0x00040000,
HonorSpellAttribute11LosHitsNocamcollide = 0x00080000,
BelongsToLayer = 0x00100000,
};
DEFINE_ENUM_FLAG(MapFlags2);
enum class MapDifficultyFlags : uint8
{
LimitToPlayersFromOneRealm = 0x01,
UseLootBasedLockInsteadOfInstanceLock = 0x02, // Lock to single encounters
LockedToSoloOwner = 0x04,
ResumeDungeonProgressBasedOnLockout = 0x08, // Mythic dungeons with this flag zone into leaders instance instead of always using a fresh one (Return to Karazhan, Operation: Mechagon)
DisableLockExtension = 0x10,
};
DEFINE_ENUM_FLAG(MapDifficultyFlags);
enum MapDifficultyResetInterval : uint8
{
MAP_DIFFICULTY_RESET_ANYTIME = 0,
MAP_DIFFICULTY_RESET_DAILY = 1,
MAP_DIFFICULTY_RESET_WEEKLY = 2
};
enum class ModifierTreeType : int32
{
None = 0, // No modifier
PlayerInebriationLevelEqualOrGreaterThan = 1, // Player inebriation level is {#Drunkenness} or more
PlayerMeetsCondition = 2, // Player meets condition "{PlayerCondition}"
MinimumItemLevel = 3, // Minimum item level is {#Item Level}
TargetCreatureId = 4, // Target is NPC "{Creature}"
TargetIsPlayer = 5, // Target is player
TargetIsDead = 6, // Target is dead
TargetIsOppositeFaction = 7, // Target is opposite faction
PlayerHasAura = 8, // Player has aura "{Spell}"
PlayerHasAuraEffect = 9, // Player has aura effect "{SpellAuraNames.EnumID}"
TargetHasAura = 10, // Target has aura "{Spell}"
TargetHasAuraEffect = 11, // Target has aura effect "{SpellAuraNames.EnumID}"
TargetHasAuraState = 12, // Target has aura state "{$Aura State}"
PlayerHasAuraState = 13, // Player has aura state "{$Aura State}"
ItemQualityIsAtLeast = 14, // Item quality is at least {$Item Quality}
ItemQualityIsExactly = 15, // Item quality is exactly {$Item Quality}
PlayerIsAlive = 16, // Player is alive
PlayerIsInArea = 17, // Player is in area "{AreaTable}"
TargetIsInArea = 18, // Target is in area "{AreaTable}"
ItemId = 19, // Item is "{Item}"
LegacyDungeonDifficulty = 20, // Legacy dungeon difficulty is "{$Dungeon Difficulty}"
PlayerToTargetLevelDeltaGreaterThan = 21, // Exceeds the target's level by {#Level Delta} levels
TargetToPlayerLevelDeltaGreaterThan = 22, // Target exceeds your level by {#Level Delta} levels
PlayerLevelEqualTargetLevel = 23, // You and the target are equal level
PlayerInArenaWithTeamSize = 24, // Player is in an arena with team size {#Team Size}
PlayerRace = 25, // Player race is "{ChrRaces}"
PlayerClass = 26, // Player class is "{ChrClasses}"
TargetRace = 27, // Target race is "{ChrRaces}"
TargetClass = 28, // Target class is "{ChrClasses}"
LessThanTappers = 29, // Less than {#Tappers} tappers
CreatureType = 30, // Creature is type "{CreatureType}"
CreatureFamily = 31, // Creature is family "{CreatureFamily}"
PlayerMap = 32, // Player is on map "{Map}"
ClientVersionEqualOrLessThan = 33, // Milestone is at or before "{WowStaticSchemas}"
BattlePetTeamLevel = 34, // All three winning battle pets are at or above level {#Battle Pet Level}
PlayerIsNotInParty = 35, // Player is not in a party
PlayerIsInParty = 36, // Player is in a party
HasPersonalRatingEqualOrGreaterThan = 37, // Has a Personal Rating of at least {#Personal Rating}
HasTitle = 38, // Has title "{CharTitles.Mask_ID}"
PlayerLevelEqual = 39, // Player is exactly level {#Level}
TargetLevelEqual = 40, // Target is exactly level {#Level}
PlayerIsInZone = 41, // Player is in top-level area "{AreaTable}"
TargetIsInZone = 42, // Target is in top-level area "{AreaTable}"
PlayerHealthBelowPercent = 43, // Player health below {#Percent}%
PlayerHealthAbovePercent = 44, // Player health above {#Percent}%
PlayerHealthEqualsPercent = 45, // Player health equals {#Percent}%
TargetHealthBelowPercent = 46, // Target health below {#Percent}%
TargetHealthAbovePercent = 47, // Target health above {#Percent}%
TargetHealthEqualsPercent = 48, // Target health equals {#Percent}%
PlayerHealthBelowValue = 49, // Player health below {#Hit Points} HP
PlayerHealthAboveValue = 50, // Player health above {#Hit Points} HP
PlayerHealthEqualsValue = 51, // Player health equals {#Hit Points} HP
TargetHealthBelowValue = 52, // Target health below {#Hit Points} HP
TargetHealthAboveValue = 53, // Target health above {#Hit Points} HP
TargetHealthEqualsValue = 54, // Target health equals {#Hit Points} HP
TargetIsPlayerAndMeetsCondition = 55, // Target is a player with condition "{PlayerCondition}"
PlayerHasMoreThanAchievementPoints = 56, // Player has over {#Achievement Pts} achievement points
PlayerInLfgDungeon = 57, // Player is in a LFG dungeon
PlayerInRandomLfgDungeon = 58, // Player is in a random LFG dungeon
PlayerInFirstRandomLfgDungeon = 59, // Player is in a first random LFG dungeon
PlayerInRankedArenaMatch = 60, // Player is in a ranked arena match
PlayerInGuildParty = 61, /*NYI*/ // Player is in a guild party
PlayerGuildReputationEqualOrGreaterThan = 62, // Player has guild reputation of {#Guild Reputation} or more
PlayerInRatedBattleground = 63, // Player is in rated battleground
PlayerBattlegroundRatingEqualOrGreaterThan = 64, // Player has a battleground rating of {#Battleground Rating} or more
ResearchProjectRarity = 65, /*NYI*/ // Research project rarity is "{$Project Rarity}"
ResearchProjectBranch = 66, /*NYI*/ // Research project is in branch "{ResearchBranch}"
WorldStateExpression = 67, // World state expression "{WorldStateExpression}" is true
DungeonDifficulty = 68, // Dungeon difficulty is "{Difficulty}"
PlayerLevelEqualOrGreaterThan = 69, // Player level is {#Level} or more
TargetLevelEqualOrGreaterThan = 70, // Target level is {#Level} or more
PlayerLevelEqualOrLessThan = 71, // Player level is {#Level} or less
TargetLevelEqualOrLessThan = 72, // Target level is {#Level} or less
ModifierTree = 73, // Modifier tree "{ModifierTree}" is also true
PlayerScenario = 74, // Player is on scenario "{Scenario}"
TillersReputationGreaterThan = 75, // Reputation with Tillers is above {#Reputation}
BattlePetAchievementPointsEqualOrGreaterThan = 76, // Battle pet achievement points are at least {#Achievement Pts}
UniqueBattlePetsEqualOrGreaterThan = 77, // (Account) At least {#Pets Known} unique pets known
BattlePetType = 78, // Battlepet is of type "{$Battle Pet Types}"
BattlePetHealthPercentLessThan = 79, /*NYI*/ // (Account) Battlepet's health is below {#Health Percent} percent
GuildGroupMemberCountEqualOrGreaterThan = 80, // Be in a group with at least {#Members} guild members
BattlePetOpponentCreatureId = 81, /*NYI*/ // Battle pet opponent is "{Creature}"
PlayerScenarioStep = 82, // Player is on scenario step number {#Step Number}
ChallengeModeMedal = 83, // Challenge mode medal earned is "{#Challenge Mode Medal(OBSOLETE)}" (OBSOLETE)
PlayerOnQuest = 84, // Player is currently on the quest "{QuestV2}"
ExaltedWithFaction = 85, // Reach exalted with "{Faction}"
EarnedAchievementOnAccount = 86, // Earned achievement "{Achievement}" on this account
EarnedAchievementOnPlayer = 87, // Earned achievement "{Achievement}" on this player
OrderOfTheCloudSerpentReputationGreaterThan = 88, // Reputation with Order of the Cloud Serpent is above {#Reputation}
BattlePetQuality = 89, /*NYI*/ // Battle pet is of quality "{BattlePetBreedQuality}"
BattlePetFightWasPVP = 90, /*NYI*/ // Battle pet fight was PVP
BattlePetSpecies = 91, // Battle pet is species type "{BattlePetSpecies}"
ServerExpansionEqualOrGreaterThan = 92, // Server expansion level is "{$Expansion Level}" or higher
PlayerHasBattlePetJournalLock = 93, // Player has battle pet journal lock
FriendshipRepReactionIsMet = 94, // Friendship rep reaction "{FriendshipRepReaction}" is met
ReputationWithFactionIsEqualOrGreaterThan = 95, // Reputation with "{Faction}" is {#Reputation} or more
ItemClassAndSubclass = 96, // Item is class "{ItemClass.ClassID}", subclass "{^ItemSubclass.SubclassID:ItemSubclass.ClassID = ?}"
PlayerGender = 97, // Player's gender is "{$Gender}"
PlayerNativeGender = 98, // Player's native gender is "{$Gender}"
PlayerSkillEqualOrGreaterThan = 99, // Player skill "{SkillLine}" is level {#Skill Level} or higher
PlayerLanguageSkillEqualOrGreaterThan = 100, // Player language "{Languages}" is level {#Language Level} or higher
PlayerIsInNormalPhase = 101, // Player is in normal phase
PlayerIsInPhase = 102, // Player is in phase "{Phase}"
PlayerIsInPhaseGroup = 103, // Player is in phase group "{PhaseGroup}"
PlayerKnowsSpell = 104, // Player knows spell "{Spell}"
PlayerHasItemQuantity = 105, // Player is carrying item "{Item}", quantity {#Quantity}
PlayerExpansionLevelEqualOrGreaterThan = 106, // Player expansion level is "{$Expansion Level}" or higher
PlayerHasAuraWithLabel = 107, // Player has aura with label {Label}
PlayersRealmWorldState = 108, // Player's realm state "{WorldState}" equals {#Value}
TimeBetween = 109, // Time is between "{/Begin Date}" and "{/End Date}"
PlayerHasCompletedQuest = 110, // Player has previously completed quest "{QuestV2}"
PlayerIsReadyToTurnInQuest = 111, // Player is ready to turn in quest "{QuestV2}"
PlayerHasCompletedQuestObjective = 112, // Player has completed Quest Objective "{QuestObjective}"
PlayerHasExploredArea = 113, // Player has explored area "{AreaTable}"
PlayerHasItemQuantityIncludingBank = 114, // Player or bank has item "{Item}", quantity {#Quantity}
Weather = 115, // Weather is "{Weather}"
PlayerFaction = 116, // Player faction is {$Player Faction}
LfgStatusEqual = 117, // Looking-for-group status "{$LFG Status}" equals {#Value}
LFgStatusEqualOrGreaterThan = 118, // Looking-for-group status "{$LFG Status}" is {#Value} or more
PlayerHasCurrencyEqualOrGreaterThan = 119, // Player has currency "{CurrencyTypes}" in amount {#Amount} or more
TargetThreatListSizeLessThan = 120, // Player Killed creature with less than "{#Targets}" threat list targets
PlayerHasTrackedCurrencyEqualOrGreaterThan = 121, // Player has currency "{CurrencyTypes}" tracked (per season) in amount {#Amount} or more
PlayerMapInstanceType = 122, // Player is on a map of type "{@INSTANCE_TYPE}"
PlayerInTimeWalkerInstance = 123, // Player was in a Time Walker instance
PvpSeasonIsActive = 124, // PVP season is active
PvpSeason = 125, // Current PVP season is {#Season}
GarrisonTierEqualOrGreaterThan = 126, // Garrison is tier {#Tier} or higher for garrison type "{GarrType}"
GarrisonFollowersWithLevelEqualOrGreaterThan = 127, // At least {#Followers} followers of at least level {#Level} for follower type "{GarrFollowerType}"
GarrisonFollowersWithQualityEqualOrGreaterThan = 128, // At least {#Followers} followers at least quality "{@GARR_FOLLOWER_QUALITY}" for follower type "{GarrFollowerType}"
GarrisonFollowerWithAbilityAtLevelEqualOrGreaterThan = 129, // Follower of at least level {#Level} has ability {GarrAbility} for follower type "{GarrFollowerType}"
GarrisonFollowerWithTraitAtLevelEqualOrGreaterThan = 130, // Follower of at least level {#Level} has trait {GarrAbility} for follower type "{GarrFollowerType}"
GarrisonFollowerWithAbilityAssignedToBuilding = 131, // Follower with ability "{GarrAbility}" is assigned to building type "{@GARRISON_BUILDING_TYPE}" for garrison type "{GarrType}"
GarrisonFollowerWithTraitAssignedToBuilding = 132, // Follower with trait "{GarrAbility}" is assigned to building type "{@GARRISON_BUILDING_TYPE}" for garrison type "{GarrType}"
GarrisonFollowerWithLevelAssignedToBuilding = 133, // Follower at least level {#Level} is assigned to building type "{@GARRISON_BUILDING_TYPE}" for garrison type "GarrType}"
GarrisonBuildingWithLevelEqualOrGreaterThan = 134, // Building "{@GARRISON_BUILDING_TYPE}" is at least level {#Level} for garrison type "{GarrType}"
HasBlueprintForGarrisonBuilding = 135, // Has blueprint for garrison building "{GarrBuilding}" of type "{GarrType}"
HasGarrisonBuildingSpecialization = 136, // Has garrison building specialization "{GarrSpecialization}"
AllGarrisonPlotsAreFull = 137, // All garrison type "{GarrType}" plots are full
PlayerIsInOwnGarrison = 138, // Player is in their own garrison
GarrisonShipmentOfTypeIsPending = 139, /*NYI*/ // Shipment of type "{CharShipmentContainer}" is pending
GarrisonBuildingIsUnderConstruction = 140, // Garrison building "{GarrBuilding}" is under construction
GarrisonMissionHasBeenCompleted = 141, /*NYI*/ // Garrison mission "{GarrMission}" has been completed
GarrisonBuildingLevelEqual = 142, // Building {@GARRISON_BUILDING_TYPE} is exactly level {#Level} for garrison type "{GarrType}"
GarrisonFollowerHasAbility = 143, // This follower has ability "{GarrAbility}" for garrison type "{GarrType}"
GarrisonFollowerHasTrait = 144, // This follower has trait "{GarrAbility}" for garrison type "{GarrType}"
GarrisonFollowerQualityEqual = 145, // This Garrison Follower is {@GARR_FOLLOWER_QUALITY} quality
GarrisonFollowerLevelEqual = 146, // This Garrison Follower is level {#Level}
GarrisonMissionIsRare = 147, /*NYI*/ // This Garrison Mission is Rare
GarrisonMissionIsElite = 148, /*NYI*/ // This Garrison Mission is Elite
CurrentGarrisonBuildingLevelEqual = 149, // This Garrison Building is level {#Level} - building type passed as argument
GarrisonPlotInstanceHasBuildingThatIsReadyToActivate = 150, // Garrison plot instance "{GarrPlotInstance}" has building that is ready to activate
BattlePetTeamWithSpeciesEqualOrGreaterThan = 151, // Battlepet: with at least {#Amount} "{BattlePetSpecies}"
BattlePetTeamWithTypeEqualOrGreaterThan = 152, // Battlepet: with at least {#Amount} pets of type "{$Battle Pet Types}"
PetBattleLastAbility = 153, /*NYI*/ // Battlepet: last ability was "{BattlePetAbility}"
PetBattleLastAbilityType = 154, /*NYI*/ // Battlepet: last ability was of type "{$Battle Pet Types}"
BattlePetTeamWithAliveEqualOrGreaterThan = 155, // Battlepet: with at least {#Alive} alive
HasGarrisonBuildingActiveSpecialization = 156, // Has Garrison building active specialization "{GarrSpecialization}"
HasGarrisonFollower = 157, // Has Garrison follower "{GarrFollower}"
PlayerQuestObjectiveProgressEqual = 158, // Player's progress on Quest Objective "{QuestObjective}" is equal to {#Value}
PlayerQuestObjectiveProgressEqualOrGreaterThan = 159, // Player's progress on Quest Objective "{QuestObjective}" is at least {#Value}
IsPTRRealm = 160, // This is a PTR Realm
IsBetaRealm = 161, // This is a Beta Realm
IsQARealm = 162, // This is a QA Realm
GarrisonShipmentContainerIsFull = 163, /*NYI*/ // Shipment Container "{CharShipmentContainer}" is full
PlayerCountIsValidToStartGarrisonInvasion = 164, // Player count is valid to start garrison invasion
InstancePlayerCountEqualOrLessThan = 165, // Instance has at most {#Players} players
AllGarrisonPlotsFilledWithBuildingsWithLevelEqualOrGreater = 166, // All plots are full and at least level {#Level} for garrison type "{GarrType}"
GarrisonMissionType = 167, /*NYI*/ // This mission is type "{GarrMissionType}"
GarrisonFollowerItemLevelEqualOrGreaterThan = 168, // This follower is at least item level {#Level}
GarrisonFollowerCountWithItemLevelEqualOrGreaterThan = 169, // At least {#Followers} followers are at least item level {#Level} for follower type "{GarrFollowerType}"
GarrisonTierEqual = 170, // Garrison is exactly tier {#Tier} for garrison type "{GarrType}"
InstancePlayerCountEqual = 171, // Instance has exactly {#Players} players
CurrencyId = 172, // The currency is type "{CurrencyTypes}"
SelectionIsPlayerCorpse = 173, // Target is player corpse
PlayerCanAcceptQuest = 174, // Player is currently eligible for quest "{QuestV2}"
GarrisonFollowerCountWithLevelEqualOrGreaterThan = 175, // At least {#Followers} followers exactly level {#Level} for follower type "{GarrFollowerType}"
GarrisonFollowerIsInBuilding = 176, // Garrison follower "{GarrFollower}" is in building "{GarrBuilding}"
GarrisonMissionCountLessThan = 177, /*NYI*/ // Player has less than {#Available} available and {#In-Progress} in-progress missions of garrison type "{GarrType}"
GarrisonPlotInstanceCountEqualOrGreaterThan = 178, // Player has at least {#Amount} instances of plot "{GarrPlot}" available
CurrencySource = 179, /*NYI*/ // Currency source is {$Currency Source}
PlayerIsInNotOwnGarrison = 180, // Player is in another garrison (not their own)
HasActiveGarrisonFollower = 181, // Has active Garrison follower "{GarrFollower}"
PlayerDailyRandomValueMod_X_Equals = 182, /*NYI*/ // Player daily random value mod {#Mod Value} equals {#Equals Value}
PlayerHasMount = 183, // Player has Mount "{Mount}"
GarrisonFollowerCountWithInactiveWithItemLevelEqualOrGreaterThan = 184, // At least {#Followers} followers (including inactive) are at least item level {#Level} for follower type "{GarrFollowerType}"
GarrisonFollowerIsOnAMission = 185, // Garrison follower "{GarrFollower}" is on a mission
GarrisonMissionCountInSetLessThan = 186, /*NYI*/ // Player has less than {#Missions} available and in-progress missions of set "{GarrMissionSet}" in garrison type "{GarrType}"
GarrisonFollowerType = 187, // This Garrison Follower is of type "{GarrFollowerType}"
PlayerUsedBoostLessThanHoursAgoRealTime = 188, /*NYI*/ // Player has boosted and boost occurred < {#Hours} hours ago (real time)
PlayerUsedBoostLessThanHoursAgoGameTime = 189, /*NYI*/ // Player has boosted and boost occurred < {#Hours} hours ago (in-game time)
PlayerIsMercenary = 190, // Player is currently Mercenary
PlayerEffectiveRace = 191, /*NYI*/ // Player effective race is "{ChrRaces}"
TargetEffectiveRace = 192, /*NYI*/ // Target effective race is "{ChrRaces}"
HonorLevelEqualOrGreaterThan = 193, // Honor level >= {#Level}
PrestigeLevelEqualOrGreaterThan = 194, // Prestige level >= {#Level}
GarrisonMissionIsReadyToCollect = 195, /*NYI*/ // Garrison mission "{GarrMission}" is ready to collect
PlayerIsInstanceOwner = 196, /*NYI*/ // Player is the instance owner (requires 'Lock Instance Owner' LFGDungeon flag)
PlayerHasHeirloom = 197, // Player has heirloom "{Item}"
TeamPoints = 198, /*NYI*/ // Team has {#Points} Points
PlayerHasToy = 199, // Player has toy "{Item}"
PlayerHasTransmog = 200, // Player has transmog "{ItemModifiedAppearance}"
GarrisonTalentSelected = 201, /*NYI*/ // Garrison has talent "{GarrTalent}" selected
GarrisonTalentResearched = 202, /*NYI*/ // Garrison has talent "{GarrTalent}" researched
PlayerHasRestriction = 203, // Player has restriction of type "{@CHARACTER_RESTRICTION_TYPE}"
PlayerCreatedCharacterLessThanHoursAgoRealTime = 204, /*NYI*/ // Player has created their character < {#Hours} hours ago (real time)
PlayerCreatedCharacterLessThanHoursAgoGameTime = 205, // Player has created their character < {#Hours} hours ago (in-game time)
QuestHasQuestInfoId = 206, // Quest has Quest Info "{QuestInfo}"
GarrisonTalentResearchInProgress = 207, /*NYI*/ // Garrison is researching talent "{GarrTalent}"
PlayerEquippedArtifactAppearanceSet = 208, // Player has equipped Artifact Appearance Set "{ArtifactAppearanceSet}"
PlayerHasCurrencyEqual = 209, // Player has currency "{CurrencyTypes}" in amount {#Amount} exactly
MinimumAverageItemHighWaterMarkForSpec = 210, /*NYI*/ // Minimum average item high water mark is {#Item High Water Mark} for "{$Item History Spec Match}")
PlayerScenarioType = 211, // Player in scenario of type "{$Scenario Type}"
PlayersAuthExpansionLevelEqualOrGreaterThan = 212, // Player's auth expansion level is "{$Expansion Level}" or higher
PlayerLastWeek2v2Rating = 213, /*NYI*/ // Player achieved at least a rating of {#Rating} in 2v2 last week player played
PlayerLastWeek3v3Rating = 214, /*NYI*/ // Player achieved at least a rating of {#Rating} in 3v3 last week player played
PlayerLastWeekRBGRating = 215, /*NYI*/ // Player achieved at least a rating of {#Rating} in RBG last week player played
GroupMemberCountFromConnectedRealmEqualOrGreaterThan = 216, // At least {#Num Players} members of the group are from your connected realms
ArtifactTraitUnlockedCountEqualOrGreaterThan = 217, // At least {#Num Traits} traits have been unlocked in artifact "{Item}"
ParagonReputationLevelEqualOrGreaterThan = 218, // Paragon level >= "{#Level}"
GarrisonShipmentIsReady = 219, /*NYI*/ // Shipment in container type "{CharShipmentContainer}" ready
PlayerIsInPvpBrawl = 220, // Player is in PvP Brawl
ParagonReputationLevelWithFactionEqualOrGreaterThan = 221, // Paragon level >= "{#Level}" with faction "{Faction}"
PlayerHasItemWithBonusListFromTreeAndQuality = 222, // Player has an item with bonus list from tree "{ItemBonusTree}" and of quality "{$Item Quality}"
PlayerHasEmptyInventorySlotCountEqualOrGreaterThan = 223, // Player has at least "{#Number of empty slots}" empty inventory slots
PlayerHasItemInHistoryOfProgressiveEvent = 224, /*NYI*/ // Player has item "{Item}" in the item history of progressive event "{ProgressiveEvent}"
PlayerHasArtifactPowerRankCountPurchasedEqualOrGreaterThan = 225, // Player has at least {#Purchased Ranks} ranks of {ArtifactPower} on equipped artifact
PlayerHasBoosted = 226, // Player has boosted
PlayerHasRaceChanged = 227, // Player has race changed
PlayerHasBeenGrantedLevelsFromRaF = 228, // Player has been granted levels from Recruit a Friend
IsTournamentRealm = 229, // Is Tournament Realm
PlayerCanAccessAlliedRaces = 230, // Player can access allied races
GroupMemberCountWithAchievementEqualOrLessThan = 231, // No More Than {#Group Members} With Achievement {Achievement} In Group (true if no group)
PlayerMainhandWeaponType = 232, // Player has main hand weapon of type "{$Weapon Type}"
PlayerOffhandWeaponType = 233, // Player has off-hand weapon of type "{$Weapon Type}"
PlayerPvpTier = 234, // Player is in PvP tier {PvpTier}
PlayerAzeriteLevelEqualOrGreaterThan = 235, // Players' Azerite Item is at or above level "{#Azerite Level}"
PlayerIsOnQuestInQuestline = 236, // Player is on quest in questline "{QuestLine}"
PlayerIsQnQuestLinkedToScheduledWorldStateGroup = 237, // Player is on quest associated with current progressive unlock group "{ScheduledWorldStateGroup}"
PlayerIsInRaidGroup = 238, // Player is in raid group
PlayerPvpTierInBracketEqualOrGreaterThan = 239, // Player is at or above "{@PVP_TIER_ENUM}" for "{@PVP_BRACKET}"
PlayerCanAcceptQuestInQuestline = 240, // Player is eligible for quest in questline "{Questline}"
PlayerHasCompletedQuestline = 241, // Player has completed questline "{Questline}"
PlayerHasCompletedQuestlineQuestCount = 242, // Player has completed "{#Quests}" quests in questline "{Questline}"
PlayerHasCompletedPercentageOfQuestline = 243, // Player has completed "{#Percentage}" % of quests in questline "{Questline}"
PlayerHasWarModeEnabled = 244, // Player has WarMode Enabled (regardless of shard state)
PlayerIsOnWarModeShard = 245, // Player is on a WarMode Shard
PlayerIsAllowedToToggleWarModeInArea = 246, // Player is allowed to toggle WarMode in area
MythicPlusKeystoneLevelEqualOrGreaterThan = 247, /*NYI*/ // Mythic Plus Keystone Level Atleast {#Level}
MythicPlusCompletedInTime = 248, /*NYI*/ // Mythic Plus Completed In Time
MythicPlusMapChallengeMode = 249, /*NYI*/ // Mythic Plus Map Challenge Mode {MapChallengeMode}
MythicPlusDisplaySeason = 250, /*NYI*/ // Mythic Plus Display Season {#Season}
MythicPlusMilestoneSeason = 251, /*NYI*/ // Mythic Plus Milestone Season {#Season}
PlayerVisibleRace = 252, // Player visible race is "{ChrRaces}"
TargetVisibleRace = 253, // Target visible race is "{ChrRaces}"
FriendshipRepReactionEqual = 254, // Friendship rep reaction is exactly "{FriendshipRepReaction}"
PlayerAuraStackCountEqual = 255, // Player has exactly {#Stacks} stacks of aura "{Spell}"
TargetAuraStackCountEqual = 256, // Target has exactly {#Stacks} stacks of aura "{Spell}"
PlayerAuraStackCountEqualOrGreaterThan = 257, // Player has at least {#Stacks} stacks of aura "{Spell}"
TargetAuraStackCountEqualOrGreaterThan = 258, // Target has at least {#Stacks} stacks of aura "{Spell}"
PlayerHasAzeriteEssenceRankLessThan = 259, // Player has Azerite Essence {AzeriteEssence} at less than rank {#rank}
PlayerHasAzeriteEssenceRankEqual = 260, // Player has Azerite Essence {AzeriteEssence} at rank {#rank}
PlayerHasAzeriteEssenceRankGreaterThan = 261, // Player has Azerite Essence {AzeriteEssence} at greater than rank {#rank}
PlayerHasAuraWithEffectIndex = 262, // Player has Aura {Spell} with Effect Index {#index} active
PlayerLootSpecializationMatchesRole = 263, // Player loot specialization matches role {@LFG_ROLE}
PlayerIsAtMaxExpansionLevel = 264, // Player is at max expansion level
TransmogSource = 265, // Transmog Source is "{@TRANSMOG_SOURCE}"
PlayerHasAzeriteEssenceInSlotAtRankLessThan = 266, // Player has Azerite Essence in slot {@AZERITE_ESSENCE_SLOT} at less than rank {#rank}
PlayerHasAzeriteEssenceInSlotAtRankGreaterThan = 267, // Player has Azerite Essence in slot {@AZERITE_ESSENCE_SLOT} at greater than rank {#rank}
PlayerLevelWithinContentTuning = 268, // Player has level within Content Tuning {ContentTuning}
TargetLevelWithinContentTuning = 269, // Target has level within Content Tuning {ContentTuning}
PlayerIsScenarioInitiator = 270, /*NYI*/ // Player is Scenario Initiator
PlayerHasCompletedQuestOrIsOnQuest = 271, // Player is currently on or previously completed quest "{QuestV2}"
PlayerLevelWithinOrAboveContentTuning = 272, // Player has level within or above Content Tuning {ContentTuning}
TargetLevelWithinOrAboveContentTuning = 273, // Target has level within or above Content Tuning {ContentTuning}
PlayerLevelWithinOrAboveLevelRange = 274, /*NYI*/ // Player has level within or above Level Range {LevelRange}
TargetLevelWithinOrAboveLevelRange = 275, /*NYI*/ // Target has level within or above Level Range {LevelRange}
MaxJailersTowerLevelEqualOrGreaterThan = 276, // Max Jailers Tower Level Atleast {#Level}
GroupedWithRaFRecruit = 277, // Grouped With Recruit
GroupedWithRaFRecruiter = 278, // Grouped with Recruiter
PlayerSpecialization = 279, // Specialization is "{ChrSpecialization}"
PlayerMapOrCosmeticChildMap = 280, // Player is on map or cosmetic child map "{Map}"
PlayerCanAccessShadowlandsPrepurchaseContent = 281, // Player can access Shadowlands (9.0) prepurchase content
PlayerHasEntitlement = 282, /*NYI*/ // Player has entitlement "{BattlePayDeliverable}"
PlayerIsInPartySyncGroup = 283, /*NYI*/ // Player is in party sync group
QuestHasPartySyncRewards = 284, /*NYI*/ // Quest is eligible for party sync rewards
HonorGainSource = 285, /*NYI*/ // Player gained honor from source {@SPECIAL_MISC_HONOR_GAIN_SOURCE}
JailersTowerActiveFloorIndexEqualOrGreaterThan = 286, /*NYI*/ // Active Floor Index Atleast {#Level}
JailersTowerActiveFloorDifficultyEqualOrGreaterThan = 287, /*NYI*/ // Active Floor Difficulty Atleast {#Level}
PlayerCovenant = 288, // Player is member of covenant "{Covenant}"
HasTimeEventPassed = 289, // Has time event "{TimeEvent}" passed
GarrisonHasPermanentTalent = 290, /*NYI*/ // Garrison has permanent talent "{GarrTalent}"
HasActiveSoulbind = 291, // Has Active Soulbind "{Soulbind}"
HasMemorizedSpell = 292, /*NYI*/ // Has memorized spell "{Spell}"
PlayerHasAPACSubscriptionReward_2020 = 293, // Player has APAC Subscription Reward 2020
PlayerHasTBCCDEWarpStalker_Mount = 294, // Player has TBCC:DE Warp Stalker Mount
PlayerHasTBCCDEDarkPortal_Toy = 295, // Player has TBCC:DE Dark Portal Toy
PlayerHasTBCCDEPathOfIllidan_Toy = 296, // Player has TBCC:DE Path of Illidan Toy
PlayerHasImpInABallToySubscriptionReward = 297, // Player has Imp in a Ball Toy Subscription Reward
PlayerIsInAreaGroup = 298, // Player is in area group "{AreaGroup}"
TargetIsInAreaGroup = 299, // Target is in area group "{AreaGroup}"
PlayerIsInChromieTime = 300, // Player has selected Chromie Time ID "{UiChromieTimeExpansionInfo}"
PlayerIsInAnyChromieTime = 301, // Player has selected ANY Chromie Time ID
ItemIsAzeriteArmor = 302, // Item is Azerite Armor
PlayerHasRuneforgePower = 303, // Player Has Runeforge Power "{RuneforgeLegendaryAbility}"
PlayerInChromieTimeForScaling = 304, // Player is Chromie Time for Scaling
IsRaFRecruit = 305, // Is RAF recruit
AllPlayersInGroupHaveAchievement = 306, // All Players In Group Have Achievement "{Achievement}"
PlayerHasSoulbindConduitRankEqualOrGreaterThan = 307, /*NYI*/ // Player has Conduit "{SoulbindConduit}" at Rank {#Rank} or Higher
PlayerSpellShapeshiftFormCreatureDisplayInfoSelection = 308, // Player has chosen {CreatureDisplayInfo} for shapeshift form {SpellShapeshiftForm}
PlayerSoulbindConduitCountAtRankEqualOrGreaterThan = 309, /*NYI*/ // Player has at least {#Level} Conduits at Rank {#Rank} or higher.
PlayerIsRestrictedAccount = 310, // Player is a Restricted Account
PlayerIsFlying = 311, // Player is flying
PlayerScenarioIsLastStep = 312, // Player is on the last step of a Scenario
PlayerHasWeeklyRewardsAvailable = 313, // Player has weekly rewards available
TargetCovenant = 314, // Target is member of covenant "{Covenant}"
PlayerHasTBCCollectorsEdition = 315, // Player has TBC Collector's Edition
PlayerHasWrathCollectorsEdition = 316, // Player has Wrath Collector's Edition
GarrisonTalentResearchedAndAtRankEqualOrGreaterThan = 317, /*NYI*/ // Garrison has talent "{GarrTalent}" researched and active at or above {#Rank}
CurrencySpentOnGarrisonTalentResearchEqualOrGreaterThan = 318, /*NYI*/ // Currency {CurrencyTypes} Spent on Garrison Talent Research in Tree {GarrTalentTree} is greater than or equal to {#Quantity}
RenownCatchupActive = 319, /*NYI*/ // Renown Catchup Active
RapidRenownCatchupActive = 320, /*NYI*/ // Rapid Renown Catchup Active
PlayerMythicPlusRatingEqualOrGreaterThan = 321, /*NYI*/ // Player has Mythic+ Rating of at least "{#DungeonScore}"
PlayerMythicPlusRunCountInCurrentExpansionEqualOrGreaterThan = 322, /*NYI*/ // Player has completed at least "{#MythicKeystoneRuns}" Mythic+ runs in current expansion
PlayerHasCustomizationChoice = 323, // (Mainline) Player has Customization Choice "{ChrCustomizationChoice}"
PlayerBestWeeklyWinPvpTier = 324, // (Mainline) Player has best weekly win in PVP tier {PvpTier}
PlayerBestWeeklyWinPvpTierInBracketEqualOrGreaterThan = 325, // (Mainline) Player has best weekly win at or above "{@PVP_TIER_ENUM}" for "{@PVP_BRACKET}"
PlayerHasVanillaCollectorsEdition = 326, // Player has Vanilla Collector's Edition
PlayerHasItemWithKeystoneLevelModifierEqualOrGreaterThan = 327,
PlayerMythicPlusRatingInDisplaySeasonEqualOrGreaterThan = 329, /*NYI*/ // Player has Mythic+ Rating of at least "{#DungeonScore}" in {DisplaySeason}
PlayerMythicPlusLadderRatingInDisplaySeasonEqualOrGreaterThan = 333, /*NYI*/ // Player has Mythic+ Ladder Rating of at least "{#DungeonScore}" in {DisplaySeason}
MythicPlusRatingIsInTop01Percent = 334, /*NYI*/ // top 0.1% rating
PlayerAuraWithLabelStackCountEqualOrGreaterThan = 335, // Player has at least {#Stacks} stacks of aura "{Label}"
PlayerAuraWithLabelStackCountEqual = 336, // Target has exactly {#Stacks} stacks of aura with label "{Label}"
PlayerAuraWithLabelStackCountEqualOrLessThan = 337, // Player has at most {#Stacks} stacks of aura "{Label}"
PlayerIsInCrossFactionGroup = 338, // Player is in a cross faction group
PlayerHasTraitNodeEntryInActiveConfig = 340, // Player has {TraitNodeEntry} node in currently active config
PlayerHasTraitNodeEntryInActiveConfigRankGreaterOrEqualThan = 341, // Player has at least {#Rank} for {TraitNodeEntry} node in currently active config
PlayerHasPurchasedCombatTraitRanks = 342, /*NYI*/ // Player has purchased at least {#Count} talent points in active combat config
PlayerHasPurchasedTraitRanksInTraitTree = 343, /*NYI*/ // Player has purchased at least {#Count} ranks in {#TraitTree}
PlayerDaysSinceLogout = 344,
CraftingOrderSkillLineAbility = 347, /*NYI*/
CraftingOrderProfession = 348, /*NYI*/ // ProfessionEnum
PlayerHasPerksProgramPendingReward = 350,
PlayerCanUseItem = 351, // Player can use item {#Item}
PlayerSummonedBattlePetSpecies = 352,
PlayerSummonedBattlePetIsMaxLevel = 353,
PlayerHasAtLeastProfPathRanks = 355, // Player has purchased or granted at least {#Count} ranks in {SkillLine} config
PlayerHasAtLeastMissingProfPathRanks = 356, /*NYI*/ // Player is missing least {#Count} ranks in {SkillLine} config
PlayerHasItemTransmogrifiedToItemModifiedAppearance = 358, // Player has item with {ItemModifiedAppearance} transmog
ItemHasBonusList = 359, /*NYI*/ // Item has {ItemBonusList} (used by ItemCondition)
ItemHasBonusListFromGroup = 360, /*NYI*/ // Item has a bonus list from {ItemBonusListGroup} (used by ItemCondition)
ItemHasContext = 361, /*NYI*/ // Item has {ItemContext}
ItemHasItemLevelBetween = 362, /*NYI*/ // Item has item level between {#Min} and {#Max}
ItemHasContentTuningID = 363, /*NYI*/ // Item has {ContentTuning} (modifier 28)
ItemHasInventoryType = 364, /*NYI*/ // Item has inventory type
ItemWasCraftedWithReagentInSlot = 365, /*NYI*/ // Item was crafted with reagent item {Item} in slot {ModifiedCraftingReagentSlot}
PlayerHasCompletedDungeonEncounterInDifficulty = 366, // Player has completed {DungeonEncounter} on {Difficulty}
PlayerCurrencyIsRelOpFromMax = 367, /*NYI*/ // Player {CurrencyTypes} is {RelOp} {#Amount} from currency limit
ItemHasModifiedCraftingReagentSlot = 368, /*NYI*/ // Item has {ModifiedCraftingReagentSlot}
PlayerIsBetweenQuests = 369, // Player has previously completed quest or is on "{QuestV2}" but not "{QuestV2}" (SecondaryAsset)
PlayerIsOnQuestWithLabel = 370, /*NYI*/ // Player is on quest with {QuestLabel}
PlayerScenarioStepID = 371, // Player is on scenario step number {ScenarioStep}
PlayerHasCompletedQuestWithLabel = 372, /*NYI*/ // Player has previously completed quest with {QuestLabel}
LegacyLootIsEnabled = 373, /*NYI*/
PlayerZPositionBelow = 374,
PlayerWeaponHighWatermarkAboveOrEqual = 375, /*NYI*/
PlayerHeadHighWatermarkAboveOrEqual = 376, /*NYI*/
PlayerHasDisplayedCurrencyLessThan = 377, /*NYI*/ // Player has {CurrencyTypes} less than {#Amount} (value visible in ui is taken into account, not raw value)
PlayerDataFlagAccountIsSet = 378, // Player {PlayerDataFlagAccount} is set
PlayerDataFlagCharacterIsSet = 379, // Player {PlayerDataFlagCharacter} is set
PlayerIsOnMapWithExpansion = 380, // Player is on map that has {ExpansionID}
PlayerHasCompletedQuestOnAccount = 382, /*NYI*/ // Player has previously completed quest "{QuestV2}" on account
PlayerHasCompletedQuestlineOnAccount = 383, /*NYI*/ // Player has completed questline "{Questline}" on account
PlayerHasCompletedQuestlineQuestCountOnAccount = 384, /*NYI*/ // Player has completed "{#Quests}" quests in questline "{Questline}" on account
PlayerHasActiveTraitSubTree = 385, // Player has active trait config with {TraitSubTree}
PlayerIsInSoloRBG = 387, /*NYI*/ // Player is in solo RBG (BG Blitz)
PlayerHasCompletedCampaign = 388, /*NYI*/ // Player has completed campaign "{Campaign}"
TargetCreatureClassificationEqual = 389, // Creature classification is {CreatureClassification}
PlayerDataElementCharacterBetween = 390, // Player {PlayerDataElementCharacter} is between {#Amount} and {#Amount2}
PlayerDataElementAccountBetween = 391, // Player {PlayerDataElementAccount} is between {#Amount} and {#Amount2}
PlayerHasCompletedQuestOrIsReadyToTurnIn = 392, // Player has previously completed quest "{QuestV2}" or is ready to turn it in
PlayerTitle = 393, // Player is currently using "{ChrTitles}" title
PlayerWeeklyCurrencyIsRelOpFromMax = 397, /*NYI*/ // Player weekly {CurrencyTypes} is {RelOp} {#Amount} from currency weekly limit
PlayerIsInGuild = 404, // Player is in a guild
PlayerAvgItemLevelRelOp = 415, /*NYI*/ // Player average item level {AvgItemLevelCategory} is {RelOp} {#Amount}
};
enum class ModifierTreeOperator : int8
{
SingleTrue = 2,
SingleFalse = 3,
All = 4,
Some = 8
};
enum MountCapabilityFlags
{
MOUNT_CAPABILITY_FLAG_GROUND = 0x1,
MOUNT_CAPABILITY_FLAG_FLYING = 0x2,
MOUNT_CAPABILITY_FLAG_FLOAT = 0x4,
MOUNT_CAPABILITY_FLAG_UNDERWATER = 0x8,
MOUNT_CAPABIILTY_FLAG_IGNORE_RESTRICTIONS = 0x20,
};
enum class MountFlags : int32
{
ServerOnly = 0x00000001,
IsSelfMount = 0x00000002,
ExcludeFromJournalIfFactionDoesntMatch = 0x00000004,
AllowMountedCombat = 0x00000008,
SummonRandomFavorWhileUnderwater = 0x00000010,
SummonRandomFavorWhileAtWaterSurface = 0x00000020,
ExcludeFromJournalIfNotLearned = 0x00000040,
SummonRandomDoNotFavorWhenGrounded = 0x00000080,
ShowInSpellbook = 0x00000100,
AddToActionBarOnLearn = 0x00000200,
NotForUseAsATaxi = 0x00000400,
MountEquipmentEffectsSuppressed = 0x00000800,
DisablePlayerMountPreview = 0x00001000,
};
DEFINE_ENUM_FLAG(MountFlags);
enum class PathPropertyIndex : uint8
{
UseNewLiquidGenerateCode = 0,
AnimaCableId = 1,
AnimaPlayerCondition = 2,
AnimaStartTaper = 3,
AnimaEndTaper = 4,
VolumeHeight = 5,
AiPathGraphMaxStartDist = 6,
AiPathGraphMinTotalDist = 7,
AiPathGraphAreaControl = 8,
AiPathGraphAreaId = 9,
AiPathGraphWidth = 10,
AiPathDefaultFollowStyle = 11,
AiPathConstrainSteering = 12,
Phase = 13,
SteepSlopeDegrees = 14
};
enum class PhaseEntryFlags : int32
{
ReadOnly = 0x001,
InternalPhase = 0x002,
Normal = 0x008,
Cosmetic = 0x010,
Personal = 0x020,
Expensive = 0x040,
EventsAreObservable = 0x080,
UsesPreloadConditions = 0x100,
UnshareablePersonal = 0x200,
ObjectsAreVisible = 0x400,
};
DEFINE_ENUM_FLAG(PhaseEntryFlags);
// PhaseUseFlags fields in different db2s
enum PhaseUseFlagsValues : uint8
{
PHASE_USE_FLAGS_NONE = 0x0,
PHASE_USE_FLAGS_ALWAYS_VISIBLE = 0x1,
PHASE_USE_FLAGS_INVERSE = 0x2,
PHASE_USE_FLAGS_ALL = PHASE_USE_FLAGS_ALWAYS_VISIBLE | PHASE_USE_FLAGS_INVERSE
};
enum class PlayerConditionLfgStatus : uint8
{
InLFGDungeon = 1,
InLFGRandomDungeon = 2,
InLFGFirstRandomDungeon = 3,
PartialClear = 4,
StrangerCount = 5,
VoteKickCount = 6,
BootCount = 7,
GearDiff = 8
};
enum class PlayerDataElementType : int32
{
Int64 = 0,
Float = 1
};
enum class PlayerInteractionType : int32
{
None = 0,
TradePartner = 1,
Item = 2,
Gossip = 3,
QuestGiver = 4,
Merchant = 5,
TaxiNode = 6,
Trainer = 7,
Banker = 8,
AlliedRaceDetailsGiver = 9,
GuildBanker = 10,
Registrar = 11,
Vendor = 12,
PetitionVendor = 13,
GuildTabardVendor = 14,
TalentMaster = 15,
SpecializationMaster = 16,
MailInfo = 17,
SpiritHealer = 18,
AreaSpiritHealer = 19,
Binder = 20,
Auctioneer = 21,
StableMaster = 22,
BattleMaster = 23,
Transmogrifier = 24,
LFGDungeon = 25,
VoidStorageBanker = 26,
BlackMarketAuctioneer = 27,
AdventureMap = 28,
WorldMap = 29,
GarrArchitect = 30,
GarrTradeskill = 31,
GarrMission = 32,
ShipmentCrafter = 33,
GarrRecruitment = 34,
GarrTalent = 35,
Trophy = 36,
PlayerChoice = 37,
ArtifactForge = 38,
ObliterumForge = 39,
ScrappingMachine = 40,
ContributionCollector = 41,
AzeriteRespec = 42,
IslandQueue = 43,
ItemInteraction = 44,
ChromieTime = 45,
CovenantPreview = 46,
AnimaDiversion = 47,
LegendaryCrafting = 48,
WeeklyRewards = 49,
Soulbind = 50,
CovenantSanctum = 51,
NewPlayerGuide = 52,
ItemUpgrade = 53,
AdventureJournal = 54,
Renown = 55,
AzeriteForge = 56,
PerksProgramVendor = 57,
ProfessionsCraftingOrder = 58,
Professions = 59,
ProfessionsCustomerOrder = 60,
TraitSystem = 61,
BarbersChoice = 62,
JailersTowerBuffs = 63,
MajorFactionRenown = 64,
PersonalTabardVendor = 65,
ForgeMaster = 66,
CharacterBanker = 67,
AccountBanker = 68,
ProfessionRespec = 69,
PlaceholderType71 = 70,
PlaceholderType72 = 71,
PlaceholderType73 = 72,
PlaceholderType74 = 73,
PlaceholderType75 = 74,
PlaceholderType76 = 75,
GuildRename = 76,
PlaceholderType77 = 77,
};
enum class PowerTypeFlags : int16
{
StopRegenWhileCasting = 0x0001, // NYI
UseRegenInterrupt = 0x0002,
FillFractionalPowerOnEnergize = 0x0008, // NYI
NoClientPrediction = 0x0010, // NYI
UnitsUseDefaultPowerOnInit = 0x0020,
NotSetToDefaultOnResurrect = 0x0040, // NYI
IsUsedByNPCs = 0x0080,
ContinueRegenWhileFatigued = 0x0200, // NYI
RegenAffectedByHaste = 0x0400, // NYI
SetToMaxOnLevelUp = 0x1000,
SetToMaxOnInitialLogIn = 0x2000,
AllowCostModsForPlayers = 0x4000 // NYI
};
DEFINE_ENUM_FLAG(PowerTypeFlags);
enum PrestigeLevelInfoFlags : uint8
{
PRESTIGE_FLAG_DISABLED = 0x01 // Prestige levels with this flag won't be included to calculate max prestigelevel.
};
enum QuestPackageFilter
{
QUEST_PACKAGE_FILTER_LOOT_SPECIALIZATION = 0, // Players can select this quest reward if it matches their selected loot specialization
QUEST_PACKAGE_FILTER_CLASS = 1, // Players can select this quest reward if it matches their class
QUEST_PACKAGE_FILTER_UNMATCHED = 2, // Players can select this quest reward if no class/loot_spec rewards are available
QUEST_PACKAGE_FILTER_EVERYONE = 3 // Players can always select this quest reward
};
enum ScenarioStepFlags
{
SCENARIO_STEP_FLAG_BONUS_OBJECTIVE = 0x1,
SCENARIO_STEP_FLAG_HEROIC_ONLY = 0x2
};
enum class SkillLineFlags : uint16
{
AlwaysShownInUI = 0x0001,
NeverShownInUI = 0x0002,
FirstTierIsSelfTaught = 0x0004,
GrantedIncrementallyByCharacterUpgrade = 0x0008,
AutomaticRank = 0x0010,
InheritParentRankWhenLearned = 0x0020,
ShowsInSpellTooltip = 0x0040,
AppearsInMiscTabOfSpellbook = 0x0080,
// unused = 0x0100,
IgnoreCategoryMods = 0x0200,
DisplaysAsProficiency = 0x0400,
PetsOnly = 0x0800,
UniqueBitfield = 0x1000,
RacialForThePurposeOfPaidRaceOrFactionChange = 0x2000,
ProgressiveSkillUp = 0x4000,
RacialForThePurposeOfTemporaryRaceChange = 0x8000,
};
DEFINE_ENUM_FLAG(SkillLineFlags);
enum class SkillLineAbilityAcquireMethod : int32
{
Learned = 0,
AutomaticSkillRank = 1, // Spell state will update depending on skill value
AutomaticCharLevel = 2, // Spell will be learned/removed together with entire skill
NeverLearned = 3,
LearnedOrAutomaticCharLevel = 4,
};
enum class SkillLineAbilityFlags
{
CanFallbackToLearnedOnSkillLearn = 0x80, // The skill is rewarded from a quest if player started on exile's reach
};
DEFINE_ENUM_FLAG(SkillLineAbilityFlags);
enum SkillRaceClassInfoFlags
{
SKILL_FLAG_NO_SKILLUP_MESSAGE = 0x2,
SKILL_FLAG_ALWAYS_MAX_VALUE = 0x10,
SKILL_FLAG_UNLEARNABLE = 0x20, // Skill can be unlearned
SKILL_FLAG_INCLUDE_IN_SORT = 0x80, // Spells belonging to a skill with this flag will additionally compare skill ids when sorting spellbook in client
SKILL_FLAG_NOT_TRAINABLE = 0x100,
SKILL_FLAG_MONO_VALUE = 0x400 // Skill always has value 1 - clientside display flag, real value can be different
};
enum SpellCategoryFlags
{
SPELL_CATEGORY_FLAG_COOLDOWN_SCALES_WITH_WEAPON_SPEED = 0x01, // unused
SPELL_CATEGORY_FLAG_COOLDOWN_STARTS_ON_EVENT = 0x04,
SPELL_CATEGORY_FLAG_COOLDOWN_EXPIRES_AT_DAILY_RESET = 0x08,
SPELL_CATEGORY_FLAG_IGNORE_FOR_MOD_TIME_RATE = 0x40
};
enum class SpellEffectAttributes
{
None = 0,
NoImmunity = 0x00000001, // not cancelled by immunities
PositionIsFacingRelative = 0x00000002, /*NYI*/
JumpChargeUnitMeleeRange = 0x00000004, /*NYI*/
JumpChargeUnitStrictPathCheck = 0x00000008, /*NYI*/
ExcludeOwnParty = 0x00000010, /*NYI*/
AlwaysAoeLineOfSight = 0x00000020,
SuppressPointsStacking = 0x00000040,
ChainFromInitialTarget = 0x00000080,
UncontrolledNoBackwards = 0x00000100, /*NYI*/
AuraPointsStack = 0x00000200, // refreshing auras with this attribute will add remaining amount to new aura
NoCopyDamageInterruptsOrProcs = 0x00000400, /*NYI*/
AddTargetCombatReachToAOE = 0x00000800, /*NYI*/
IsHarmful = 0x00001000,
ForceScaleToOverrideCameraMinHeight = 0x00002000, /*NYI*/
PlayersOnly = 0x00004000,
ComputePointsOnlyAtCastTime = 0x00008000, /*NYI*/
EnforceLineOfSightToChainTargets = 0x00010000,
AreaEffectsUseTargetRadius = 0x00020000, /*NYI*/
TeleportWithVehicle = 0x00040000, /*NYI*/
ScalePointsByChallengeModeDamageScaler = 0x00080000, /*NYI*/
DontFailSpellOnTargetingFailure = 0x00100000,
IgnoreDuringCooldownTimeRateCalculation = 0x00800000,
DamageOnlyAbsorbShields = 0x04000000, /*NYI*/ // Effects with this attribute only reduce absorbs on targets hit without actually dealing damage
};
DEFINE_ENUM_FLAG(SpellEffectAttributes);
#define MAX_SPELL_EFFECTS 32
#define MAX_EFFECT_MASK 0xFFFFFFFF
#define MAX_SPELL_AURA_INTERRUPT_FLAGS 2
enum class SpellItemEnchantmentFlags : uint16
{
Soulbound = 0x001,
DoNotLog = 0x002,
MainhandOnly = 0x004,
AllowEnteringArena = 0x008,
DoNotSaveToDB = 0x010,
ScaleAsAGem = 0x020,
DisableInChallengeModes = 0x040,
DisableInProvingGrounds = 0x080,
AllowTransmog = 0x100,
HideUntilCollected = 0x200,
};
DEFINE_ENUM_FLAG(SpellItemEnchantmentFlags);
enum SpellProcsPerMinuteModType
{
SPELL_PPM_MOD_HASTE = 1,
SPELL_PPM_MOD_CRIT = 2,
SPELL_PPM_MOD_CLASS = 3,
SPELL_PPM_MOD_SPEC = 4,
SPELL_PPM_MOD_RACE = 5,
SPELL_PPM_MOD_ITEM_LEVEL = 6,
SPELL_PPM_MOD_BATTLEGROUND = 7,
SPELL_PPM_MOD_AURA = 8
};
constexpr std::size_t MAX_POWERS_PER_SPELL = 5;
enum class SpellShapeshiftFormFlags : int32
{
Stance = 0x00000001,
NotToggleable = 0x00000002, // player cannot cancel the aura giving this shapeshift
PersistOnDeath = 0x00000004,
CanInteractNPC = 0x00000008, // if the form does not have SHAPESHIFT_FORM_IS_NOT_A_SHAPESHIFT then this flag must be present to allow NPC interaction
DontUseWeapon = 0x00000010,
CanUseEquippedItems = 0x00000040, // if the form does not have SHAPESHIFT_FORM_IS_NOT_A_SHAPESHIFT then this flag allows equipping items without ITEM_FLAG_USABLE_WHEN_SHAPESHIFTED
CanUseItems = 0x00000080, // if the form does not have SHAPESHIFT_FORM_IS_NOT_A_SHAPESHIFT then this flag allows using items without ITEM_FLAG_USABLE_WHEN_SHAPESHIFTED
DontAutoUnshift = 0x00000100, // clientside
ConsideredDead = 0x00000200,
CanOnlyCastShapeshiftSpells = 0x00000400, // prevents using spells that don't have any shapeshift requirement
StanceCancelsAtFlightmaster = 0x00000800,
NoEmoteSounds = 0x00001000,
NoTriggerTeleport = 0x00002000,
CannotChangeEquippedItems = 0x00004000,
CannotUseGameObjects = 0x00010000
};
DEFINE_ENUM_FLAG(SpellShapeshiftFormFlags);
enum class SpellVisualEffectNameType : uint32
{
Model = 0,
Item = 1,
Creature = 2,
UnitItemMainHand = 3,
UnitItemOffHand = 4,
UnitItemRanged = 5,
UnitAmmoBasic = 6,
UnitAmmoPreferred = 7,
UnitItemMainHandIgnoreDisarmed = 8,
UnitItemOffHandIgnoreDisarmed = 9,
UnitItemRangedIgnoreDisarmed = 10
};
class TaxiMask
{
public:
using value_type = uint8;
TaxiMask();
value_type& operator[](size_t i) { return _data[i]; }
value_type const& operator[](size_t i) const { return _data[i]; }
size_t size() const { return _data.size(); }
value_type const* data() const { return _data.data(); }
decltype(auto) begin() { return _data.begin(); }
decltype(auto) end() { return _data.end(); }
private:
std::vector _data;
};
enum TotemCategoryType
{
TOTEM_CATEGORY_TYPE_KNIFE = 1,
TOTEM_CATEGORY_TYPE_TOTEM = 2,
TOTEM_CATEGORY_TYPE_ROD = 3,
TOTEM_CATEGORY_TYPE_PICK = 21,
TOTEM_CATEGORY_TYPE_STONE = 22,
TOTEM_CATEGORY_TYPE_HAMMER = 23,
TOTEM_CATEGORY_TYPE_SPANNER = 24
};
enum class TransmogIllusionFlags : int32
{
HideUntilCollected = 0x1,
PlayerConditionGrantsOnLogin = 0x2,
};
DEFINE_ENUM_FLAG(TransmogIllusionFlags);
// SummonProperties.dbc, col 1
enum SummonPropGroup
{
SUMMON_PROP_GROUP_UNKNOWN1 = 0, // 1160 spells in 3.0.3
SUMMON_PROP_GROUP_UNKNOWN2 = 1, // 861 spells in 3.0.3
SUMMON_PROP_GROUP_PETS = 2, // 52 spells in 3.0.3, pets mostly
SUMMON_PROP_GROUP_CONTROLLABLE = 3, // 13 spells in 3.0.3, mostly controllable
SUMMON_PROP_GROUP_UNKNOWN3 = 4 // 86 spells in 3.0.3, taxi/mounts
};
// SummonProperties.dbc, col 3
enum SummonPropType
{
SUMMON_PROP_TYPE_UNKNOWN = 0, // different summons, 1330 spells in 3.0.3
SUMMON_PROP_TYPE_SUMMON = 1, // generic summons, 49 spells in 3.0.3
SUMMON_PROP_TYPE_GUARDIAN = 2, // summon guardian, 393 spells in 3.0.3
SUMMON_PROP_TYPE_ARMY = 3, // summon army, 5 spells in 3.0.3
SUMMON_PROP_TYPE_TOTEM = 4, // summon totem, 169 spells in 3.0.3
SUMMON_PROP_TYPE_CRITTER = 5, // critter/minipet, 195 spells in 3.0.3
SUMMON_PROP_TYPE_DK = 6, // summon DRW/Ghoul, 2 spells in 3.0.3
SUMMON_PROP_TYPE_BOMB = 7, // summon bot/bomb, 4 spells in 3.0.3
SUMMON_PROP_TYPE_PHASING = 8, // something todo with DK prequest line, 2 spells in 3.0.3
SUMMON_PROP_TYPE_SIEGE_VEH = 9, // summon different vehicles, 14 spells in 3.0.3
SUMMON_PROP_TYPE_DRAKE_VEH = 10, // summon drake (vehicle), 3 spells
SUMMON_PROP_TYPE_LIGHTWELL = 11, // summon lightwell, 6 spells in 3.0.3
SUMMON_PROP_TYPE_JEEVES = 12, // summon Jeeves, 1 spell in 3.3.5a
SUMMON_PROP_TYPE_LASHTAIL = 13 // Lashtail Hatchling, 1 spell in 4.2.2
};
enum class SummonPropertiesFlags : uint32
{
None = 0x00000000,
AttackSummoner = 0x00000001, // NYI
HelpWhenSummonedInCombat = 0x00000002, // NYI
UseLevelOffset = 0x00000004, // NYI
DespawnOnSummonerDeath = 0x00000008, // NYI
OnlyVisibleToSummoner = 0x00000010,
CannotDismissPet = 0x00000020, // NYI
UseDemonTimeout = 0x00000040,
UnlimitedSummons = 0x00000080, // NYI
UseCreatureLevel = 0x00000100,
JoinSummonerSpawnGroup = 0x00000200, // NYI
DoNotToggle = 0x00000400, // NYI
DespawnWhenExpired = 0x00000800, // NYI
UseSummonerFaction = 0x00001000,
DoNotFollowMountedSummoner = 0x00002000, // NYI
SavePetAutocast = 0x00004000, // NYI
IgnoreSummonerPhase = 0x00008000, // Wild Only
OnlyVisibleToSummonerGroup = 0x00010000,
DespawnOnSummonerLogout = 0x00020000, // NYI
CastRideVehicleSpellOnSummoner = 0x00040000, // NYI
GuardianActsLikePet = 0x00080000, // NYI
DontSnapSessileToGround = 0x00100000, // NYI
SummonFromBattlePetJournal = 0x00200000,
UnitClutter = 0x00400000, // NYI
DefaultNameColor = 0x00800000, // NYI
UseOwnInvisibilityDetection = 0x01000000, // NYI. Ignore Owner's Invisibility Detection
DespawnWhenReplaced = 0x02000000, // NYI. Totem Slots Only
DespawnWhenTeleportingOutOfRange = 0x04000000, // NYI
SummonedAtGroupFormationPosition = 0x08000000, // NYI
DontDespawnOnSummonerDeath = 0x10000000, // NYI
UseTitleAsCreatureName = 0x20000000, // NYI
AttackableBySummoner = 0x40000000, // NYI
DontDismissWhenEncounterIsAborted = 0x80000000 // NYI
};
DEFINE_ENUM_FLAG(SummonPropertiesFlags);
#define MAX_TALENT_TIERS 7
#define MAX_TALENT_COLUMNS 4
#define MAX_PVP_TALENT_SLOTS 4
enum class TaxiNodeFlags : int32
{
ShowOnAllianceMap = 0x00000001,
ShowOnHordeMap = 0x00000002,
ShowOnMapBorder = 0x00000004,
ShowIfClientPassesCondition = 0x00000008,
UsePlayerFavoriteMount = 0x00000010,
EndPointOnly = 0x00000020,
IgnoreForFindNearest = 0x00000040,
DoNotShowInWorldMapUI = 0x00000080,
ShowNpcMinimapAtlasIfClientPassesCondition = 0x00000100,
MapLayerTransition = 0x00000200,
NotAccountWide = 0x00000400
};
DEFINE_ENUM_FLAG(TaxiNodeFlags);
enum TaxiPathNodeFlags
{
TAXI_PATH_NODE_FLAG_TELEPORT = 0x1,
TAXI_PATH_NODE_FLAG_STOP = 0x2
};
enum class TraitCombatConfigFlags : int32
{
None = 0x0,
ActiveForSpec = 0x1,
StarterBuild = 0x2,
SharedActionBars = 0x4
};
DEFINE_ENUM_FLAG(TraitCombatConfigFlags);
enum class TraitCondFlags : int32
{
None = 0x0,
IsGate = 0x1,
IsAlwaysMet = 0x2,
IsSufficient = 0x4,
};
DEFINE_ENUM_FLAG(TraitCondFlags);
enum class TraitConditionType : int32
{
Available = 0,
Visible = 1,
Granted = 2,
Increased = 3,
DisplayError = 4
};
enum class TraitConfigType : int32
{
Invalid = 0,
Combat = 1,
Profession = 2,
Generic = 3
};
enum class TraitCurrencyType : int32
{
Gold = 0,
CurrencyTypesBased = 1,
TraitSourced = 2
};
enum class TraitEdgeType : int32
{
VisualOnly = 0,
DeprecatedRankConnection = 1,
SufficientForAvailability = 2,
RequiredForAvailability = 3,
MutuallyExclusive = 4,
DeprecatedSelectionOption = 5
};
enum class TraitNodeEntryType : int32
{
SpendHex = 0,
SpendSquare = 1,
SpendCircle = 2,
SpendSmallCircle = 3,
DeprecatedSelect = 4,
DragAndDrop = 5,
SpendDiamond = 6,
ProfPath = 7,
ProfPerk = 8,
ProfPathUnlock = 9
};
enum class TraitNodeGroupFlag : int32
{
None = 0x0,
AvailableByDefault = 0x1
};
DEFINE_ENUM_FLAG(TraitNodeGroupFlag);
enum class TraitNodeType : int32
{
Single = 0,
Tiered = 1,
Selection = 2,
SubTreeSelection = 3
};
enum class TraitPointsOperationType : int32
{
None = -1,
Set = 0,
Multiply = 1
};
enum class TraitTreeFlag : int32
{
None = 0x0,
CannotRefund = 0x1,
HideSingleRankNumbers = 0x2
};
DEFINE_ENUM_FLAG(TraitTreeFlag);
enum class UiMapFlag : int32
{
None = 0,
NoHighlight = 0x00000001,
ShowOverlays = 0x00000002,
ShowTaxiNodes = 0x00000004,
GarrisonMap = 0x00000008,
FallbackToParentMap = 0x00000010,
NoHighlightTexture = 0x00000020,
ShowTaskObjectives = 0x00000040,
NoWorldPositions = 0x00000080,
HideArchaeologyDigs = 0x00000100,
Deprecated = 0x00000200,
HideIcons = 0x00000400,
HideVignettes = 0x00000800,
ForceAllOverlayExplored = 0x00001000,
FlightMapShowZoomOut = 0x00002000,
FlightMapAutoZoom = 0x00004000,
ForceOnNavbar = 0x00008000
};
DEFINE_ENUM_FLAG(UiMapFlag);
enum UiMapSystem : int8
{
UI_MAP_SYSTEM_WORLD = 0,
UI_MAP_SYSTEM_TAXI = 1,
UI_MAP_SYSTEM_ADVENTURE = 2,
UI_MAP_SYSTEM_MINIMAP = 3,
MAX_UI_MAP_SYSTEM
};
enum UiMapType : int8
{
UI_MAP_TYPE_COSMIC = 0,
UI_MAP_TYPE_WORLD = 1,
UI_MAP_TYPE_CONTINENT = 2,
UI_MAP_TYPE_ZONE = 3,
UI_MAP_TYPE_DUNGEON = 4,
UI_MAP_TYPE_MICRO = 5,
UI_MAP_TYPE_ORPHAN = 6,
};
enum class UnitConditionFlags : uint8
{
LogicOr = 0x1
};
DEFINE_ENUM_FLAG(UnitConditionFlags);
enum class UnitConditionOp : int8
{
EqualTo = 1,
NotEqualTo = 2,
LessThan = 3,
LessThanOrEqualTo = 4,
GreaterThan = 5,
GreaterThanOrEqualTo = 6
};
enum class UnitConditionVariable : uint8
{
None = 0, // - NONE -
Race = 1, // Race {$Is/Is Not} "{ChrRaces}"
Class = 2, // Class {$Is/Is Not} "{ChrClasses}"
Level = 3, // Level {$Relative Op} "{#Level}"
IsSelf = 4, // Is self? {$Yes/No}{=1}
IsMyPet = 5, // Is my pet? {$Yes/No}{=1}
IsMaster = 6, // Is master? {$Yes/No}{=1}
IsTarget = 7, // Is target? {$Yes/No}{=1}
CanAssist = 8, // Can assist? {$Yes/No}{=1}
CanAttack = 9, // Can attack? {$Yes/No}{=1}
HasPet = 10, // Has pet? {$Yes/No}{=1}
HasWeapon = 11, // Has weapon? {$Yes/No}{=1}
HealthPct = 12, // Health {$Relative Op} {#Health %}%
ManaPct = 13, // Mana {$Relative Op} {#Mana %}%
RagePct = 14, // Rage {$Relative Op} {#Rage %}%
EnergyPct = 15, // Energy {$Relative Op} {#Energy %}%
ComboPoints = 16, // Combo Points {$Relative Op} {#Points}
HasHelpfulAuraSpell = 17, // Has helpful aura spell? {$Yes/No} "{Spell}"
HasHelpfulAuraDispelType = 18, // Has helpful aura dispel type? {$Yes/No} "{SpellDispelType}"
HasHelpfulAuraMechanic = 19, // Has helpful aura mechanic? {$Yes/No} "{SpellMechanic}"
HasHarmfulAuraSpell = 20, // Has harmful aura spell? {$Yes/No} "{Spell}"
HasHarmfulAuraDispelType = 21, // Has harmful aura dispel type? {$Yes/No} "{SpellDispelType}"
HasHarmfulAuraMechanic = 22, // Has harmful aura mechanic? {$Yes/No} "{SpellMechanic}"
HasHarmfulAuraSchool = 23, // Has harmful aura school? {$Yes/No} "{Resistances}"
DamagePhysicalPct = 24, // NYI Damage (Physical) {$Relative Op} {#Physical Damage %}%
DamageHolyPct = 25, // NYI Damage (Holy) {$Relative Op} {#Holy Damage %}%
DamageFirePct = 26, // NYI Damage (Fire) {$Relative Op} {#Fire Damage %}%
DamageNaturePct = 27, // NYI Damage (Nature) {$Relative Op} {#Nature Damage %}%
DamageFrostPct = 28, // NYI Damage (Frost) {$Relative Op} {#Frost Damage %}%
DamageShadowPct = 29, // NYI Damage (Shadow) {$Relative Op} {#Shadow Damage %}%
DamageArcanePct = 30, // NYI Damage (Arcane) {$Relative Op} {#Arcane Damage %}%
InCombat = 31, // In combat? {$Yes/No}{=1}
IsMoving = 32, // Is moving? {$Yes/No}{=1}
IsCasting = 33, // Is casting? {$Yes/No}{=1}
IsCastingSpell = 34, // Is casting spell? {$Yes/No}{=1}
IsChanneling = 35, // Is channeling? {$Yes/No}{=1}
IsChannelingSpell = 36, // Is channeling spell? {$Yes/No}{=1}
NumberOfMeleeAttackers = 37, // Number of melee attackers {$Relative Op} {#Attackers}
IsAttackingMe = 38, // Is attacking me? {$Yes/No}{=1}
Range = 39, // Range {$Relative Op} {#Yards}
InMeleeRange = 40, // In melee range? {$Yes/No}{=1}
PursuitTime = 41, // NYI Pursuit time {$Relative Op} {#Seconds}
HasHarmfulAuraCanceledByDamage = 42, // Has harmful aura canceled by damage? {$Yes/No}{=1}
HasHarmfulAuraWithPeriodicDamage = 43, // Has harmful aura with periodic damage? {$Yes/No}{=1}
NumberOfEnemies = 44, // Number of enemies {$Relative Op} {#Enemies}
NumberOfFriends = 45, // NYI Number of friends {$Relative Op} {#Friends}
ThreatPhysicalPct = 46, // NYI Threat (Physical) {$Relative Op} {#Physical Threat %}%
ThreatHolyPct = 47, // NYI Threat (Holy) {$Relative Op} {#Holy Threat %}%
ThreatFirePct = 48, // NYI Threat (Fire) {$Relative Op} {#Fire Threat %}%
ThreatNaturePct = 49, // NYI Threat (Nature) {$Relative Op} {#Nature Threat %}%
ThreatFrostPct = 50, // NYI Threat (Frost) {$Relative Op} {#Frost Threat %}%
ThreatShadowPct = 51, // NYI Threat (Shadow) {$Relative Op} {#Shadow Threat %}%
ThreatArcanePct = 52, // NYI Threat (Arcane) {$Relative Op} {#Arcane Threat %}%
IsInterruptible = 53, // NYI Is interruptible? {$Yes/No}{=1}
NumberOfAttackers = 54, // Number of attackers {$Relative Op} {#Attackers}
NumberOfRangedAttackers = 55, // Number of ranged attackers {$Relative Op} {#Ranged Attackers}
CreatureType = 56, // Creature type {$Is/Is Not} "{CreatureType}"
IsMeleeAttacking = 57, // Is melee-attacking? {$Yes/No}{=1}
IsRangedAttacking = 58, // Is ranged-attacking? {$Yes/No}{=1}
Health = 59, // Health {$Relative Op} {#HP} HP
SpellKnown = 60, // Spell known? {$Yes/No} "{Spell}"
HasHarmfulAuraEffect = 61, // Has harmful aura effect? {$Yes/No} "{#Spell Aura}"
IsImmuneToAreaOfEffect = 62, // NYI Is immune to area-of-effect? {$Yes/No}{=1}
IsPlayer = 63, // Is player? {$Yes/No}{=1}
DamageMagicPct = 64, // NYI Damage (Magic) {$Relative Op} {#Magic Damage %}%
DamageTotalPct = 65, // NYI Damage (Total) {$Relative Op} {#Damage %}%
ThreatMagicPct = 66, // NYI Threat (Magic) {$Relative Op} {#Magic Threat %}%
ThreatTotalPct = 67, // NYI Threat (Total) {$Relative Op} {#Threat %}%
HasCritter = 68, // Has critter? {$Yes/No}{=1}
HasTotemInSlot1 = 69, // Has totem in slot 1? {$Yes/No}{=1}
HasTotemInSlot2 = 70, // Has totem in slot 2? {$Yes/No}{=1}
HasTotemInSlot3 = 71, // Has totem in slot 3? {$Yes/No}{=1}
HasTotemInSlot4 = 72, // Has totem in slot 4? {$Yes/No}{=1}
HasTotemInSlot5 = 73, // NYI Has totem in slot 5? {$Yes/No}{=1}
Creature = 74, // Creature {$Is/Is Not} "{Creature}"
StringID = 75, // NYI String ID {$Is/Is Not} "{StringID}"
HasAura = 76, // Has aura? {$Yes/No} {Spell}
IsEnemy = 77, // Is enemy? {$Yes/No}{=1}
IsSpecMelee = 78, // Is spec - melee? {$Yes/No}{=1}
IsSpecTank = 79, // Is spec - tank? {$Yes/No}{=1}
IsSpecRanged = 80, // Is spec - ranged? {$Yes/No}{=1}
IsSpecHealer = 81, // Is spec - healer? {$Yes/No}{=1}
IsPlayerControlledNPC = 82, // Is player controlled NPC? {$Yes/No}{=1}
IsDying = 83, // Is dying? {$Yes/No}{=1}
PathFailCount = 84, // NYI Path fail count {$Relative Op} {#Path Fail Count}
IsMounted = 85, // Is mounted? {$Yes/No}{=1}
Label = 86, // NYI Label {$Is/Is Not} "{Label}"
IsMySummon = 87, //
IsSummoner = 88, //
IsMyTarget = 89, //
Sex = 90, // Sex {$Is/Is Not} "{UnitSex}"
LevelWithinContentTuning = 91, // Level is within {$Is/Is Not} {ContentTuning}
IsFlying = 93, // Is flying? {$Yes/No}{=1}
IsHovering = 94, // Is hovering? {$Yes/No}{=1}
HasHelpfulAuraEffect = 95, // Has helpful aura effect? {$Yes/No} "{#Spell Aura}"
HasHelpfulAuraSchool = 96, // Has helpful aura school? {$Yes/No} "{Resistances}"
};
enum VehicleSeatFlags
{
VEHICLE_SEAT_FLAG_HAS_LOWER_ANIM_FOR_ENTER = 0x00000001,
VEHICLE_SEAT_FLAG_HAS_LOWER_ANIM_FOR_RIDE = 0x00000002,
VEHICLE_SEAT_FLAG_DISABLE_GRAVITY = 0x00000004, // Passenger will not be affected by gravity
VEHICLE_SEAT_FLAG_SHOULD_USE_VEH_SEAT_EXIT_ANIM_ON_VOLUNTARY_EXIT = 0x00000008,
VEHICLE_SEAT_FLAG_UNK5 = 0x00000010,
VEHICLE_SEAT_FLAG_UNK6 = 0x00000020,
VEHICLE_SEAT_FLAG_UNK7 = 0x00000040,
VEHICLE_SEAT_FLAG_UNK8 = 0x00000080,
VEHICLE_SEAT_FLAG_UNK9 = 0x00000100,
VEHICLE_SEAT_FLAG_HIDE_PASSENGER = 0x00000200, // Passenger is hidden
VEHICLE_SEAT_FLAG_ALLOW_TURNING = 0x00000400, // needed for CGCamera__SyncFreeLookFacing
VEHICLE_SEAT_FLAG_CAN_CONTROL = 0x00000800, // Lua_UnitInVehicleControlSeat
VEHICLE_SEAT_FLAG_CAN_CAST_MOUNT_SPELL = 0x00001000, // Can cast spells with SPELL_AURA_MOUNTED from seat (possibly 4.x only, 0 seats on 3.3.5a)
VEHICLE_SEAT_FLAG_UNCONTROLLED = 0x00002000, // can override !& VEHICLE_SEAT_FLAG_CAN_ENTER_OR_EXIT
VEHICLE_SEAT_FLAG_CAN_ATTACK = 0x00004000, // Can attack, cast spells and use items from vehicle
VEHICLE_SEAT_FLAG_SHOULD_USE_VEH_SEAT_EXIT_ANIM_ON_FORCED_EXIT = 0x00008000,
VEHICLE_SEAT_FLAG_UNK17 = 0x00010000,
VEHICLE_SEAT_FLAG_UNK18 = 0x00020000, // Needs research and support (28 vehicles): Allow entering vehicles while keeping specific permanent(?) auras that impose visuals (states like beeing under freeze/stun mechanic, emote state animations).
VEHICLE_SEAT_FLAG_HAS_VEH_EXIT_ANIM_VOLUNTARY_EXIT = 0x00040000,
VEHICLE_SEAT_FLAG_HAS_VEH_EXIT_ANIM_FORCED_EXIT = 0x00080000,
VEHICLE_SEAT_FLAG_PASSENGER_NOT_SELECTABLE = 0x00100000,
VEHICLE_SEAT_FLAG_UNK22 = 0x00200000,
VEHICLE_SEAT_FLAG_REC_HAS_VEHICLE_ENTER_ANIM = 0x00400000,
VEHICLE_SEAT_FLAG_IS_USING_VEHICLE_CONTROLS = 0x00800000, // Lua_IsUsingVehicleControls
VEHICLE_SEAT_FLAG_ENABLE_VEHICLE_ZOOM = 0x01000000,
VEHICLE_SEAT_FLAG_CAN_ENTER_OR_EXIT = 0x02000000, // Lua_CanExitVehicle - can enter and exit at free will
VEHICLE_SEAT_FLAG_CAN_SWITCH = 0x04000000, // Lua_CanSwitchVehicleSeats
VEHICLE_SEAT_FLAG_HAS_START_WARITING_FOR_VEH_TRANSITION_ANIM_ENTER = 0x08000000,
VEHICLE_SEAT_FLAG_HAS_START_WARITING_FOR_VEH_TRANSITION_ANIM_EXIT = 0x10000000,
VEHICLE_SEAT_FLAG_CAN_CAST = 0x20000000, // Lua_UnitHasVehicleUI
VEHICLE_SEAT_FLAG_UNK2 = 0x40000000, // checked in conjunction with 0x800 in CastSpell2
VEHICLE_SEAT_FLAG_ALLOWS_INTERACTION = 0x80000000
};
enum VehicleSeatFlagsB
{
VEHICLE_SEAT_FLAG_B_NONE = 0x00000000,
VEHICLE_SEAT_FLAG_B_USABLE_FORCED = 0x00000002,
VEHICLE_SEAT_FLAG_B_TARGETS_IN_RAIDUI = 0x00000008, // Lua_UnitTargetsVehicleInRaidUI
VEHICLE_SEAT_FLAG_B_EJECTABLE = 0x00000020, // ejectable
VEHICLE_SEAT_FLAG_B_USABLE_FORCED_2 = 0x00000040,
VEHICLE_SEAT_FLAG_B_USABLE_FORCED_3 = 0x00000100,
VEHICLE_SEAT_FLAG_B_PASSENGER_MIRRORS_ANIMS = 0x00010000, // Passenger forced to repeat all vehicle animations
VEHICLE_SEAT_FLAG_B_KEEP_PET = 0x00020000,
VEHICLE_SEAT_FLAG_B_USABLE_FORCED_4 = 0x02000000,
VEHICLE_SEAT_FLAG_B_CAN_SWITCH = 0x04000000,
VEHICLE_SEAT_FLAG_B_VEHICLE_PLAYERFRAME_UI = 0x80000000 // Lua_UnitHasVehiclePlayerFrameUI - actually checked for flagsb &~ 0x80000000
};
enum class VignetteFlags
{
InfiniteAOI = 0x000001,
ShowOnMap = 0x000002,
PingMinimap = 0x000004,
TestVisibilityRules = 0x000008,
VerticalRangeIsAbsolute = 0x000010,
Unique = 0x000020,
ZoneInfiniteAOI = 0x000040,
PersistsThroughDeath = 0x000080,
DontShowOnMinimap = 0x000200,
HasTooltip = 0x000400,
AdditionalHeightReq = 0x008000, // Must be within 10 yards of vignette Z coord (hardcoded in client)
HideOnContinentMaps = 0x010000,
NoPaddingAboveUiWidgets = 0x020000
};
DEFINE_ENUM_FLAG(VignetteFlags);
enum class WarbandSceneFlags : uint8
{
DoNotInclude = 0x01,
HiddenUntilCollected = 0x02,
CannotBeSaved = 0x04,
AwardedAutomatically = 0x08,
IsDefault = 0x10
};
DEFINE_ENUM_FLAG(WarbandSceneFlags);
enum WorldMapTransformsFlags
{
WORLD_MAP_TRANSFORMS_FLAG_DUNGEON = 0x04
};
enum class WorldStateExpressionValueType : uint8
{
Constant = 1,
WorldState = 2,
Function = 3
};
enum class WorldStateExpressionLogic : uint8
{
None = 0,
And = 1,
Or = 2,
Xor = 3,
};
enum class WorldStateExpressionComparisonType : uint8
{
None = 0,
Equal = 1,
NotEqual = 2,
Less = 3,
LessOrEqual = 4,
Greater = 5,
GreaterOrEqual = 6,
};
enum class WorldStateExpressionOperatorType : uint8
{
None = 0,
Sum = 1,
Substraction = 2,
Multiplication = 3,
Division = 4,
Remainder = 5,
};
enum WorldStateExpressionFunctions
{
WSE_FUNCTION_NONE = 0,
WSE_FUNCTION_RANDOM,
WSE_FUNCTION_MONTH,
WSE_FUNCTION_DAY,
WSE_FUNCTION_TIME_OF_DAY,
WSE_FUNCTION_REGION,
WSE_FUNCTION_CLOCK_HOUR,
WSE_FUNCTION_OLD_DIFFICULTY_ID,
WSE_FUNCTION_HOLIDAY_START,
WSE_FUNCTION_HOLIDAY_LEFT,
WSE_FUNCTION_HOLIDAY_ACTIVE,
WSE_FUNCTION_TIMER_CURRENT_TIME,
WSE_FUNCTION_WEEK_NUMBER,
WSE_FUNCTION_UNK13,
WSE_FUNCTION_UNK14,
WSE_FUNCTION_DIFFICULTY_ID,
WSE_FUNCTION_WAR_MODE_ACTIVE,
WSE_FUNCTION_UNK17,
WSE_FUNCTION_UNK18,
WSE_FUNCTION_UNK19,
WSE_FUNCTION_UNK20,
WSE_FUNCTION_UNK21,
WSE_FUNCTION_WORLD_STATE_EXPRESSION,
WSE_FUNCTION_KEYSTONE_AFFIX,
WSE_FUNCTION_UNK24,
WSE_FUNCTION_UNK25,
WSE_FUNCTION_UNK26,
WSE_FUNCTION_UNK27,
WSE_FUNCTION_KEYSTONE_LEVEL,
WSE_FUNCTION_UNK29,
WSE_FUNCTION_UNK30,
WSE_FUNCTION_UNK31,
WSE_FUNCTION_UNK32,
WSE_FUNCTION_MERSENNE_RANDOM,
WSE_FUNCTION_UNK34,
WSE_FUNCTION_UNK35,
WSE_FUNCTION_UNK36,
WSE_FUNCTION_UI_WIDGET_DATA,
WSE_FUNCTION_TIME_EVENT_PASSED,
WSE_FUNCTION_MAX,
};
#endif