TrinityCore
SpellDefines.h File Reference
#include "Define.h"
#include "FlagsArray.h"
#include "EnumFlag.h"
#include "ObjectGuid.h"
#include "Optional.h"
#include "Position.h"
#include <vector>
+ Include dependency graph for SpellDefines.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SpellDestination
 
class  SpellCastTargets
 
struct  CastSpellTargetArg
 
struct  CastSpellExtraArgs
 
struct  SpellCastVisual
 
class  ProcFlagsInit
 

Namespaces

 UF
 
 WorldPackets
 
 WorldPackets::Spells
 

Macros

#define MAX_SPELLMOD   40
 

Enumerations

enum  SpellInterruptFlags : uint32 {
  SpellInterruptFlags::None = 0, SpellInterruptFlags::Movement = 0x00000001, SpellInterruptFlags::DamagePushbackPlayerOnly = 0x00000002, SpellInterruptFlags::Stun = 0x00000004,
  SpellInterruptFlags::Combat = 0x00000008, SpellInterruptFlags::DamageCancelsPlayerOnly = 0x00000010, SpellInterruptFlags::MeleeCombat = 0x00000020, SpellInterruptFlags::Immunity = 0x00000040,
  SpellInterruptFlags::DamageAbsorb = 0x00000080, SpellInterruptFlags::ZeroDamageCancels = 0x00000100, SpellInterruptFlags::DamagePushback = 0x00000200, SpellInterruptFlags::DamageCancels = 0x00000400
}
 
enum  SpellAuraInterruptFlags : uint32 {
  SpellAuraInterruptFlags::None = 0, SpellAuraInterruptFlags::HostileActionReceived = 0x00000001, SpellAuraInterruptFlags::Damage = 0x00000002, SpellAuraInterruptFlags::Action = 0x00000004,
  SpellAuraInterruptFlags::Moving = 0x00000008, SpellAuraInterruptFlags::Turning = 0x00000010, SpellAuraInterruptFlags::Anim = 0x00000020, SpellAuraInterruptFlags::Dismount = 0x00000040,
  SpellAuraInterruptFlags::UnderWater = 0x00000080, SpellAuraInterruptFlags::AboveWater = 0x00000100, SpellAuraInterruptFlags::Sheathing = 0x00000200, SpellAuraInterruptFlags::Interacting = 0x00000400,
  SpellAuraInterruptFlags::Looting = 0x00000800, SpellAuraInterruptFlags::Attacking = 0x00001000, SpellAuraInterruptFlags::ItemUse = 0x00002000, SpellAuraInterruptFlags::DamageChannelDuration = 0x00004000,
  SpellAuraInterruptFlags::Shapeshifting = 0x00008000, SpellAuraInterruptFlags::ActionDelayed = 0x00010000, SpellAuraInterruptFlags::Mount = 0x00020000, SpellAuraInterruptFlags::Standing = 0x00040000,
  SpellAuraInterruptFlags::LeaveWorld = 0x00080000, SpellAuraInterruptFlags::StealthOrInvis = 0x00100000, SpellAuraInterruptFlags::InvulnerabilityBuff = 0x00200000, SpellAuraInterruptFlags::EnterWorld = 0x00400000,
  SpellAuraInterruptFlags::PvPActive = 0x00800000, SpellAuraInterruptFlags::NonPeriodicDamage = 0x01000000, SpellAuraInterruptFlags::LandingOrFlight = 0x02000000, SpellAuraInterruptFlags::Release = 0x04000000,
  SpellAuraInterruptFlags::DamageCancelsScript = 0x08000000, SpellAuraInterruptFlags::EnteringCombat = 0x10000000, SpellAuraInterruptFlags::Login = 0x20000000, SpellAuraInterruptFlags::Summon = 0x40000000,
  SpellAuraInterruptFlags::LeavingCombat = 0x80000000, SpellAuraInterruptFlags::NOT_VICTIM = (HostileActionReceived | Damage | NonPeriodicDamage)
}
 
enum  SpellAuraInterruptFlags2 : uint32 {
  SpellAuraInterruptFlags2::None = 0, SpellAuraInterruptFlags2::Falling = 0x00000001, SpellAuraInterruptFlags2::Swimming = 0x00000002, SpellAuraInterruptFlags2::NotMoving = 0x00000004,
  SpellAuraInterruptFlags2::Ground = 0x00000008, SpellAuraInterruptFlags2::Transform = 0x00000010, SpellAuraInterruptFlags2::Jump = 0x00000020, SpellAuraInterruptFlags2::ChangeSpec = 0x00000040,
  SpellAuraInterruptFlags2::AbandonVehicle = 0x00000080, SpellAuraInterruptFlags2::StartOfEncounter = 0x00000100, SpellAuraInterruptFlags2::EndOfEncounter = 0x00000200, SpellAuraInterruptFlags2::Disconnect = 0x00000400,
  SpellAuraInterruptFlags2::EnteringInstance = 0x00000800, SpellAuraInterruptFlags2::DuelEnd = 0x00001000, SpellAuraInterruptFlags2::LeaveArenaOrBattleground = 0x00002000, SpellAuraInterruptFlags2::ChangeTalent = 0x00004000,
  SpellAuraInterruptFlags2::ChangeGlyph = 0x00008000, SpellAuraInterruptFlags2::SeamlessTransfer = 0x00010000, SpellAuraInterruptFlags2::WarModeLeave = 0x00020000, SpellAuraInterruptFlags2::TouchingGround = 0x00040000,
  SpellAuraInterruptFlags2::ChromieTime = 0x00080000, SpellAuraInterruptFlags2::SplineFlightOrFreeFlight = 0x00100000, SpellAuraInterruptFlags2::ProcOrPeriodicAttacking = 0x00200000
}
 
enum  SpellModOp : uint8 {
  SpellModOp::HealingAndDamage = 0, SpellModOp::Duration = 1, SpellModOp::Hate = 2, SpellModOp::PointsIndex0 = 3,
  SpellModOp::ProcCharges = 4, SpellModOp::Range = 5, SpellModOp::Radius = 6, SpellModOp::CritChance = 7,
  SpellModOp::Points = 8, SpellModOp::ResistPushback = 9, SpellModOp::ChangeCastTime = 10, SpellModOp::Cooldown = 11,
  SpellModOp::PointsIndex1 = 12, SpellModOp::TargetResistance = 13, SpellModOp::PowerCost0 = 14, SpellModOp::CritDamageAndHealing = 15,
  SpellModOp::HitChance = 16, SpellModOp::ChainTargets = 17, SpellModOp::ProcChance = 18, SpellModOp::Period = 19,
  SpellModOp::ChainAmplitude = 20, SpellModOp::StartCooldown = 21, SpellModOp::PeriodicHealingAndDamage = 22, SpellModOp::PointsIndex2 = 23,
  SpellModOp::BonusCoefficient = 24, SpellModOp::TriggerDamage = 25, SpellModOp::ProcFrequency = 26, SpellModOp::Amplitude = 27,
  SpellModOp::DispelResistance = 28, SpellModOp::CrowdDamage = 29, SpellModOp::PowerCostOnMiss = 30, SpellModOp::Doses = 31,
  SpellModOp::PointsIndex3 = 32, SpellModOp::PointsIndex4 = 33, SpellModOp::PowerCost1 = 34, SpellModOp::ChainJumpDistance = 35,
  SpellModOp::AreaTriggerMaxSummons = 36, SpellModOp::MaxAuraStacks = 37, SpellModOp::ProcCooldown = 38, SpellModOp::PowerCost2 = 39
}
 
enum  SpellValueMod : uint8 {
  SPELLVALUE_BASE_POINT0, SPELLVALUE_BASE_POINT1, SPELLVALUE_BASE_POINT2, SPELLVALUE_BASE_POINT3,
  SPELLVALUE_BASE_POINT4, SPELLVALUE_BASE_POINT5, SPELLVALUE_BASE_POINT6, SPELLVALUE_BASE_POINT7,
  SPELLVALUE_BASE_POINT8, SPELLVALUE_BASE_POINT9, SPELLVALUE_BASE_POINT10, SPELLVALUE_BASE_POINT11,
  SPELLVALUE_BASE_POINT12, SPELLVALUE_BASE_POINT13, SPELLVALUE_BASE_POINT14, SPELLVALUE_BASE_POINT15,
  SPELLVALUE_BASE_POINT16, SPELLVALUE_BASE_POINT17, SPELLVALUE_BASE_POINT18, SPELLVALUE_BASE_POINT19,
  SPELLVALUE_BASE_POINT20, SPELLVALUE_BASE_POINT21, SPELLVALUE_BASE_POINT22, SPELLVALUE_BASE_POINT23,
  SPELLVALUE_BASE_POINT24, SPELLVALUE_BASE_POINT25, SPELLVALUE_BASE_POINT26, SPELLVALUE_BASE_POINT27,
  SPELLVALUE_BASE_POINT28, SPELLVALUE_BASE_POINT29, SPELLVALUE_BASE_POINT30, SPELLVALUE_BASE_POINT31,
  SPELLVALUE_BASE_POINT_END, SPELLVALUE_RADIUS_MOD, SPELLVALUE_MAX_TARGETS, SPELLVALUE_AURA_STACK,
  SPELLVALUE_CRIT_CHANCE, SPELLVALUE_DURATION_PCT, SPELLVALUE_DURATION
}
 
enum  SpellFacingFlags { SPELL_FACING_FLAG_INFRONT = 0x0001 }
 
enum  TriggerCastFlags : uint32 {
  TRIGGERED_NONE = 0x00000000, TRIGGERED_IGNORE_GCD = 0x00000001, TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD = 0x00000002, TRIGGERED_IGNORE_POWER_AND_REAGENT_COST = 0x00000004,
  TRIGGERED_IGNORE_CAST_ITEM = 0x00000008, TRIGGERED_IGNORE_AURA_SCALING = 0x00000010, TRIGGERED_IGNORE_CAST_IN_PROGRESS = 0x00000020, TRIGGERED_IGNORE_COMBO_POINTS = 0x00000040,
  TRIGGERED_CAST_DIRECTLY = 0x00000080, TRIGGERED_IGNORE_AURA_INTERRUPT_FLAGS = 0x00000100, TRIGGERED_IGNORE_SET_FACING = 0x00000200, TRIGGERED_IGNORE_SHAPESHIFT = 0x00000400,
  TRIGGERED_IGNORE_CASTER_AURASTATE = 0x00000800, TRIGGERED_DISALLOW_PROC_EVENTS = 0x00001000, TRIGGERED_IGNORE_CASTER_MOUNTED_OR_ON_VEHICLE = 0x00002000, TRIGGERED_IGNORE_CASTER_AURAS = 0x00010000,
  TRIGGERED_DONT_RESET_PERIODIC_TIMER = 0x00020000, TRIGGERED_DONT_REPORT_CAST_ERROR = 0x00040000, TRIGGERED_FULL_MASK = 0x0007FFFF, TRIGGERED_IGNORE_EQUIPPED_ITEM_REQUIREMENT = 0x00080000,
  TRIGGERED_IGNORE_TARGET_CHECK = 0x00100000, TRIGGERED_FULL_DEBUG_MASK = 0xFFFFFFFF
}
 
enum  SpellCastTargetFlags : uint32 {
  TARGET_FLAG_NONE = 0x00000000, TARGET_FLAG_UNUSED_1 = 0x00000001, TARGET_FLAG_UNIT = 0x00000002, TARGET_FLAG_UNIT_RAID = 0x00000004,
  TARGET_FLAG_UNIT_PARTY = 0x00000008, TARGET_FLAG_ITEM = 0x00000010, TARGET_FLAG_SOURCE_LOCATION = 0x00000020, TARGET_FLAG_DEST_LOCATION = 0x00000040,
  TARGET_FLAG_UNIT_ENEMY = 0x00000080, TARGET_FLAG_UNIT_ALLY = 0x00000100, TARGET_FLAG_CORPSE_ENEMY = 0x00000200, TARGET_FLAG_UNIT_DEAD = 0x00000400,
  TARGET_FLAG_GAMEOBJECT = 0x00000800, TARGET_FLAG_TRADE_ITEM = 0x00001000, TARGET_FLAG_STRING = 0x00002000, TARGET_FLAG_GAMEOBJECT_ITEM = 0x00004000,
  TARGET_FLAG_CORPSE_ALLY = 0x00008000, TARGET_FLAG_UNIT_MINIPET = 0x00010000, TARGET_FLAG_GLYPH_SLOT = 0x00020000, TARGET_FLAG_DEST_TARGET = 0x00040000,
  TARGET_FLAG_EXTRA_TARGETS = 0x00080000, TARGET_FLAG_UNIT_PASSENGER = 0x00100000, TARGET_FLAG_UNK400000 = 0X00400000, TARGET_FLAG_UNK1000000 = 0X01000000,
  TARGET_FLAG_UNK4000000 = 0X04000000, TARGET_FLAG_UNK10000000 = 0X10000000, TARGET_FLAG_UNK40000000 = 0X40000000, TARGET_FLAG_UNIT_MASK,
  TARGET_FLAG_GAMEOBJECT_MASK = TARGET_FLAG_GAMEOBJECT | TARGET_FLAG_GAMEOBJECT_ITEM, TARGET_FLAG_CORPSE_MASK = TARGET_FLAG_CORPSE_ALLY | TARGET_FLAG_CORPSE_ENEMY, TARGET_FLAG_ITEM_MASK = TARGET_FLAG_TRADE_ITEM | TARGET_FLAG_ITEM | TARGET_FLAG_GAMEOBJECT_ITEM
}
 

Functions

 DEFINE_ENUM_FLAG (SpellInterruptFlags)
 
 DEFINE_ENUM_FLAG (SpellAuraInterruptFlags)
 
 DEFINE_ENUM_FLAG (SpellAuraInterruptFlags2)
 

Macro Definition Documentation

◆ MAX_SPELLMOD

#define MAX_SPELLMOD   40

Enumeration Type Documentation

◆ SpellAuraInterruptFlags

Enumerator
None 
HostileActionReceived 
Damage 
Action 
Moving 
Turning 
Anim 
Dismount 
UnderWater 
AboveWater 
Sheathing 
Interacting 
Looting 
Attacking 
ItemUse 
DamageChannelDuration 
Shapeshifting 
ActionDelayed 
Mount 
Standing 
LeaveWorld 
StealthOrInvis 
InvulnerabilityBuff 
EnterWorld 
PvPActive 
NonPeriodicDamage 
LandingOrFlight 
Release 
DamageCancelsScript 
EnteringCombat 
Login 
Summon 
LeavingCombat 
NOT_VICTIM 
74  : uint32
75 {
76  None = 0,
77  HostileActionReceived = 0x00000001,
78  Damage = 0x00000002,
79  Action = 0x00000004,
80  Moving = 0x00000008,
81  Turning = 0x00000010,
82  Anim = 0x00000020,
83  Dismount = 0x00000040,
84  UnderWater = 0x00000080, // TODO: disallow casting when swimming (SPELL_FAILED_ONLY_ABOVEWATER)
85  AboveWater = 0x00000100, // TODO: disallow casting when not swimming (SPELL_FAILED_ONLY_UNDERWATER)
86  Sheathing = 0x00000200,
87  Interacting = 0x00000400, // TODO: more than gossip, replace all the feign death removals by aura type
88  Looting = 0x00000800,
89  Attacking = 0x00001000,
90  ItemUse = 0x00002000,
91  DamageChannelDuration = 0x00004000,
92  Shapeshifting = 0x00008000,
93  ActionDelayed = 0x00010000,
94  Mount = 0x00020000,
95  Standing = 0x00040000,
96  LeaveWorld = 0x00080000,
97  StealthOrInvis = 0x00100000,
98  InvulnerabilityBuff = 0x00200000,
99  EnterWorld = 0x00400000,
100  PvPActive = 0x00800000,
101  NonPeriodicDamage = 0x01000000,
102  LandingOrFlight = 0x02000000,
103  Release = 0x04000000,
104  DamageCancelsScript = 0x08000000, // NYI dedicated aura script hook
105  EnteringCombat = 0x10000000,
106  Login = 0x20000000,
107  Summon = 0x40000000,
108  LeavingCombat = 0x80000000,
109 
111 };
Action
Definition: boss_balinda.cpp:39
Anim
Definition: SharedDefines.h:3542
uint32_t uint32
Definition: Define.h:143

◆ SpellAuraInterruptFlags2

Enumerator
None 
Falling 
Swimming 
NotMoving 
Ground 
Transform 
Jump 
ChangeSpec 
AbandonVehicle 
StartOfEncounter 
EndOfEncounter 
Disconnect 
EnteringInstance 
DuelEnd 
LeaveArenaOrBattleground 
ChangeTalent 
ChangeGlyph 
SeamlessTransfer 
WarModeLeave 
TouchingGround 
ChromieTime 
SplineFlightOrFreeFlight 
ProcOrPeriodicAttacking 
115  : uint32
116 {
117  None = 0,
118  Falling = 0x00000001, // NYI
119  Swimming = 0x00000002,
120  NotMoving = 0x00000004, // NYI
121  Ground = 0x00000008,
122  Transform = 0x00000010, // NYI
123  Jump = 0x00000020,
124  ChangeSpec = 0x00000040,
125  AbandonVehicle = 0x00000080, // NYI
126  StartOfEncounter = 0x00000100, // NYI
127  EndOfEncounter = 0x00000200, // NYI
128  Disconnect = 0x00000400, // NYI
129  EnteringInstance = 0x00000800, // NYI
130  DuelEnd = 0x00001000, // NYI
131  LeaveArenaOrBattleground = 0x00002000, // NYI
132  ChangeTalent = 0x00004000,
133  ChangeGlyph = 0x00008000,
134  SeamlessTransfer = 0x00010000, // NYI
135  WarModeLeave = 0x00020000, // NYI
136  TouchingGround = 0x00040000, // NYI
137  ChromieTime = 0x00080000, // NYI
138  SplineFlightOrFreeFlight = 0x00100000, // NYI
139  ProcOrPeriodicAttacking = 0x00200000 // NYI
140 };
uint32_t uint32
Definition: Define.h:143

◆ SpellCastTargetFlags

Enumerator
TARGET_FLAG_NONE 
TARGET_FLAG_UNUSED_1 
TARGET_FLAG_UNIT 
TARGET_FLAG_UNIT_RAID 
TARGET_FLAG_UNIT_PARTY 
TARGET_FLAG_ITEM 
TARGET_FLAG_SOURCE_LOCATION 
TARGET_FLAG_DEST_LOCATION 
TARGET_FLAG_UNIT_ENEMY 
TARGET_FLAG_UNIT_ALLY 
TARGET_FLAG_CORPSE_ENEMY 
TARGET_FLAG_UNIT_DEAD 
TARGET_FLAG_GAMEOBJECT 
TARGET_FLAG_TRADE_ITEM 
TARGET_FLAG_STRING 
TARGET_FLAG_GAMEOBJECT_ITEM 
TARGET_FLAG_CORPSE_ALLY 
TARGET_FLAG_UNIT_MINIPET 
TARGET_FLAG_GLYPH_SLOT 
TARGET_FLAG_DEST_TARGET 
TARGET_FLAG_EXTRA_TARGETS 
TARGET_FLAG_UNIT_PASSENGER 
TARGET_FLAG_UNK400000 
TARGET_FLAG_UNK1000000 
TARGET_FLAG_UNK4000000 
TARGET_FLAG_UNK10000000 
TARGET_FLAG_UNK40000000 
TARGET_FLAG_UNIT_MASK 
TARGET_FLAG_GAMEOBJECT_MASK 
TARGET_FLAG_CORPSE_MASK 
TARGET_FLAG_ITEM_MASK 
268  : uint32
269 {
270  TARGET_FLAG_NONE = 0x00000000,
271  TARGET_FLAG_UNUSED_1 = 0x00000001, // not used
272  TARGET_FLAG_UNIT = 0x00000002, // pguid
273  TARGET_FLAG_UNIT_RAID = 0x00000004, // not sent, used to validate target (if raid member)
274  TARGET_FLAG_UNIT_PARTY = 0x00000008, // not sent, used to validate target (if party member)
275  TARGET_FLAG_ITEM = 0x00000010, // pguid
276  TARGET_FLAG_SOURCE_LOCATION = 0x00000020, // pguid, 3 float
277  TARGET_FLAG_DEST_LOCATION = 0x00000040, // pguid, 3 float
278  TARGET_FLAG_UNIT_ENEMY = 0x00000080, // not sent, used to validate target (if enemy)
279  TARGET_FLAG_UNIT_ALLY = 0x00000100, // not sent, used to validate target (if ally)
280  TARGET_FLAG_CORPSE_ENEMY = 0x00000200, // pguid
281  TARGET_FLAG_UNIT_DEAD = 0x00000400, // not sent, used to validate target (if dead creature)
282  TARGET_FLAG_GAMEOBJECT = 0x00000800, // pguid, used with TARGET_GAMEOBJECT_TARGET
283  TARGET_FLAG_TRADE_ITEM = 0x00001000, // pguid
284  TARGET_FLAG_STRING = 0x00002000, // string
285  TARGET_FLAG_GAMEOBJECT_ITEM = 0x00004000, // not sent, used with TARGET_GAMEOBJECT_ITEM_TARGET
286  TARGET_FLAG_CORPSE_ALLY = 0x00008000, // pguid
287  TARGET_FLAG_UNIT_MINIPET = 0x00010000, // pguid, used to validate target (if non combat pet)
288  TARGET_FLAG_GLYPH_SLOT = 0x00020000, // used in glyph spells
289  TARGET_FLAG_DEST_TARGET = 0x00040000, // sometimes appears with DEST_TARGET spells (may appear or not for a given spell)
290  TARGET_FLAG_EXTRA_TARGETS = 0x00080000, // uint32 counter, loop { vec3 - screen position (?), guid }, not used so far
291  TARGET_FLAG_UNIT_PASSENGER = 0x00100000, // guessed, used to validate target (if vehicle passenger)
292  TARGET_FLAG_UNK400000 = 0X00400000,
293  TARGET_FLAG_UNK1000000 = 0X01000000,
294  TARGET_FLAG_UNK4000000 = 0X04000000,
295  TARGET_FLAG_UNK10000000 = 0X10000000,
296  TARGET_FLAG_UNK40000000 = 0X40000000,
297 
303 };
Definition: SpellDefines.h:281
Definition: SpellDefines.h:287
Definition: SpellDefines.h:283
Definition: SpellDefines.h:272
Definition: SpellDefines.h:278
Definition: SpellDefines.h:295
Definition: SpellDefines.h:296
Definition: SpellDefines.h:270
Definition: SpellDefines.h:294
Definition: SpellDefines.h:302
Definition: SpellDefines.h:271
Definition: SpellDefines.h:291
Definition: SpellDefines.h:293
Definition: SpellDefines.h:282
Definition: SpellDefines.h:285
Definition: SpellDefines.h:301
Definition: SpellDefines.h:292
Definition: SpellDefines.h:286
Definition: SpellDefines.h:298
uint32_t uint32
Definition: Define.h:143
Definition: SpellDefines.h:274
Definition: SpellDefines.h:300
Definition: SpellDefines.h:280
Definition: SpellDefines.h:289
Definition: SpellDefines.h:273
Definition: SpellDefines.h:290
Definition: SpellDefines.h:279
Definition: SpellDefines.h:277
Definition: SpellDefines.h:284
Definition: SpellDefines.h:275
Definition: SpellDefines.h:288
Definition: SpellDefines.h:276

◆ SpellFacingFlags

Enumerator
SPELL_FACING_FLAG_INFRONT 
234 {
236 };
Definition: SpellDefines.h:235

◆ SpellInterruptFlags

enum SpellInterruptFlags : uint32
strong
Enumerator
None 
Movement 
DamagePushbackPlayerOnly 
Stun 
Combat 
DamageCancelsPlayerOnly 
MeleeCombat 
Immunity 
DamageAbsorb 
ZeroDamageCancels 
DamagePushback 
DamageCancels 
56  : uint32
57 {
58  None = 0,
59  Movement = 0x00000001,
60  DamagePushbackPlayerOnly = 0x00000002,
61  Stun = 0x00000004, // useless, even spells without it get interrupted
62  Combat = 0x00000008,
63  DamageCancelsPlayerOnly = 0x00000010,
64  MeleeCombat = 0x00000020, // NYI
65  Immunity = 0x00000040, // NYI
66  DamageAbsorb = 0x00000080,
67  ZeroDamageCancels = 0x00000100,
68  DamagePushback = 0x00000200,
69  DamageCancels = 0x00000400
70 };
Definition: AreaTrigger.h:36
uint32_t uint32
Definition: Define.h:143

◆ SpellModOp

enum SpellModOp : uint8
strong
Enumerator
HealingAndDamage 
Duration 
Hate 
PointsIndex0 
ProcCharges 
Range 
Radius 
CritChance 
Points 
ResistPushback 
ChangeCastTime 
Cooldown 
PointsIndex1 
TargetResistance 
PowerCost0 
CritDamageAndHealing 
HitChance 
ChainTargets 
ProcChance 
Period 
ChainAmplitude 
StartCooldown 
PeriodicHealingAndDamage 
PointsIndex2 
BonusCoefficient 
TriggerDamage 
ProcFrequency 
Amplitude 
DispelResistance 
CrowdDamage 
PowerCostOnMiss 
Doses 
PointsIndex3 
PointsIndex4 
PowerCost1 
ChainJumpDistance 
AreaTriggerMaxSummons 
MaxAuraStacks 
ProcCooldown 
PowerCost2 
144  : uint8
145 {
146  HealingAndDamage = 0,
147  Duration = 1,
148  Hate = 2,
149  PointsIndex0 = 3,
150  ProcCharges = 4,
151  Range = 5,
152  Radius = 6,
153  CritChance = 7,
154  Points = 8,
155  ResistPushback = 9,
156  ChangeCastTime = 10,
157  Cooldown = 11,
158  PointsIndex1 = 12,
159  TargetResistance = 13,
160  PowerCost0 = 14, // Used when SpellPowerEntry::PowerIndex == 0
162  HitChance = 16,
163  ChainTargets = 17,
164  ProcChance = 18,
165  Period = 19,
166  ChainAmplitude = 20,
167  StartCooldown = 21,
169  PointsIndex2 = 23,
170  BonusCoefficient = 24,
171  TriggerDamage = 25, // NYI
172  ProcFrequency = 26,
173  Amplitude = 27,
174  DispelResistance = 28,
175  CrowdDamage = 29, // NYI
176  PowerCostOnMiss = 30,
177  Doses = 31,
178  PointsIndex3 = 32,
179  PointsIndex4 = 33,
180  PowerCost1 = 34, // Used when SpellPowerEntry::PowerIndex == 1
181  ChainJumpDistance = 35,
182  AreaTriggerMaxSummons = 36, // NYI
183  MaxAuraStacks = 37,
184  ProcCooldown = 38,
185  PowerCost2 = 39, // Used when SpellPowerEntry::PowerIndex == 2
186 };
Points
Definition: ScriptedEscortAI.cpp:30
uint8_t uint8
Definition: Define.h:145

◆ SpellValueMod

Enumerator
SPELLVALUE_BASE_POINT0 
SPELLVALUE_BASE_POINT1 
SPELLVALUE_BASE_POINT2 
SPELLVALUE_BASE_POINT3 
SPELLVALUE_BASE_POINT4 
SPELLVALUE_BASE_POINT5 
SPELLVALUE_BASE_POINT6 
SPELLVALUE_BASE_POINT7 
SPELLVALUE_BASE_POINT8 
SPELLVALUE_BASE_POINT9 
SPELLVALUE_BASE_POINT10 
SPELLVALUE_BASE_POINT11 
SPELLVALUE_BASE_POINT12 
SPELLVALUE_BASE_POINT13 
SPELLVALUE_BASE_POINT14 
SPELLVALUE_BASE_POINT15 
SPELLVALUE_BASE_POINT16 
SPELLVALUE_BASE_POINT17 
SPELLVALUE_BASE_POINT18 
SPELLVALUE_BASE_POINT19 
SPELLVALUE_BASE_POINT20 
SPELLVALUE_BASE_POINT21 
SPELLVALUE_BASE_POINT22 
SPELLVALUE_BASE_POINT23 
SPELLVALUE_BASE_POINT24 
SPELLVALUE_BASE_POINT25 
SPELLVALUE_BASE_POINT26 
SPELLVALUE_BASE_POINT27 
SPELLVALUE_BASE_POINT28 
SPELLVALUE_BASE_POINT29 
SPELLVALUE_BASE_POINT30 
SPELLVALUE_BASE_POINT31 
SPELLVALUE_BASE_POINT_END 
SPELLVALUE_RADIUS_MOD 
SPELLVALUE_MAX_TARGETS 
SPELLVALUE_AURA_STACK 
SPELLVALUE_CRIT_CHANCE 
SPELLVALUE_DURATION_PCT 
SPELLVALUE_DURATION 
190  : uint8
191 {
231 };
Definition: SpellDefines.h:209
Definition: SpellDefines.h:230
Definition: SpellDefines.h:217
Definition: SpellDefines.h:196
Definition: SpellDefines.h:222
Definition: SpellDefines.h:219
Definition: SpellDefines.h:228
Definition: SpellDefines.h:203
Definition: SpellDefines.h:206
Definition: SpellDefines.h:223
Definition: SpellDefines.h:221
Definition: SpellDefines.h:211
Definition: SpellDefines.h:210
Definition: SpellDefines.h:198
Definition: SpellDefines.h:220
Definition: SpellDefines.h:226
Definition: SpellDefines.h:214
Definition: SpellDefines.h:204
Definition: SpellDefines.h:195
Definition: SpellDefines.h:200
Definition: SpellDefines.h:212
Definition: SpellDefines.h:193
Definition: SpellDefines.h:213
Definition: SpellDefines.h:201
Definition: SpellDefines.h:229
Definition: SpellDefines.h:202
Definition: SpellDefines.h:208
Definition: SpellDefines.h:194
Definition: SpellDefines.h:224
Definition: SpellDefines.h:197
Definition: SpellDefines.h:225
Definition: SpellDefines.h:205
uint8_t uint8
Definition: Define.h:145
Definition: SpellDefines.h:192
Definition: SpellDefines.h:215
Definition: SpellDefines.h:207
Definition: SpellDefines.h:199
Definition: SpellDefines.h:227
Definition: SpellDefines.h:216
Definition: SpellDefines.h:218

◆ TriggerCastFlags

Enumerator
TRIGGERED_NONE 
TRIGGERED_IGNORE_GCD 

Not triggered.

TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD 

Will ignore GCD.

TRIGGERED_IGNORE_POWER_AND_REAGENT_COST 

Will ignore Spell and Category cooldowns.

TRIGGERED_IGNORE_CAST_ITEM 

Will ignore power and reagent cost.

TRIGGERED_IGNORE_AURA_SCALING 

Will not take away cast item or update related achievement criteria.

TRIGGERED_IGNORE_CAST_IN_PROGRESS 

Will ignore aura scaling.

TRIGGERED_IGNORE_COMBO_POINTS 

Will not check if a current cast is in progress.

TRIGGERED_CAST_DIRECTLY 

Will ignore combo point requirement.

TRIGGERED_IGNORE_AURA_INTERRUPT_FLAGS 

In Spell::prepare, will be cast directly without setting containers for executed spell.

TRIGGERED_IGNORE_SET_FACING 

Will ignore interruptible aura's at cast.

TRIGGERED_IGNORE_SHAPESHIFT 

Will not adjust facing to target (if any)

TRIGGERED_IGNORE_CASTER_AURASTATE 

Will ignore shapeshift checks.

TRIGGERED_DISALLOW_PROC_EVENTS 

Will ignore caster aura states including combat requirements and death state.

TRIGGERED_IGNORE_CASTER_MOUNTED_OR_ON_VEHICLE 

Disallows proc events from triggered spell (default)

TRIGGERED_IGNORE_CASTER_AURAS 

Will ignore mounted/on vehicle restrictions.

TRIGGERED_DONT_RESET_PERIODIC_TIMER 

Will ignore caster aura restrictions or requirements.

TRIGGERED_DONT_REPORT_CAST_ERROR 

Will allow periodic aura timers to keep ticking (instead of resetting)

TRIGGERED_FULL_MASK 

Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.

TRIGGERED_IGNORE_EQUIPPED_ITEM_REQUIREMENT 

Used when doing CastSpell with triggered == true.

TRIGGERED_IGNORE_TARGET_CHECK 

Will ignore equipped item requirements.

TRIGGERED_FULL_DEBUG_MASK 

Will ignore most target checks (mostly DBC target checks)

238  : uint32
239 {
240  TRIGGERED_NONE = 0x00000000,
241  TRIGGERED_IGNORE_GCD = 0x00000001,
244  TRIGGERED_IGNORE_CAST_ITEM = 0x00000008,
245  TRIGGERED_IGNORE_AURA_SCALING = 0x00000010,
246  TRIGGERED_IGNORE_CAST_IN_PROGRESS = 0x00000020,
247  TRIGGERED_IGNORE_COMBO_POINTS = 0x00000040,
248  TRIGGERED_CAST_DIRECTLY = 0x00000080,
250  TRIGGERED_IGNORE_SET_FACING = 0x00000200,
251  TRIGGERED_IGNORE_SHAPESHIFT = 0x00000400,
252  TRIGGERED_IGNORE_CASTER_AURASTATE = 0x00000800,
253  TRIGGERED_DISALLOW_PROC_EVENTS = 0x00001000,
255  // reuse = 0x00004000,
256  // reuse = 0x00008000,
257  TRIGGERED_IGNORE_CASTER_AURAS = 0x00010000,
259  TRIGGERED_DONT_REPORT_CAST_ERROR = 0x00040000,
260  TRIGGERED_FULL_MASK = 0x0007FFFF,
261 
262  // debug flags (used with .cast triggered commands)
264  TRIGGERED_IGNORE_TARGET_CHECK = 0x00100000,
265  TRIGGERED_FULL_DEBUG_MASK = 0xFFFFFFFF
266 };
Will allow periodic aura timers to keep ticking (instead of resetting)
Definition: SpellDefines.h:259
Will not check if a current cast is in progress.
Definition: SpellDefines.h:247
Will ignore most target checks (mostly DBC target checks)
Definition: SpellDefines.h:265
In Spell::prepare, will be cast directly without setting containers for executed spell.
Definition: SpellDefines.h:249
Will ignore combo point requirement.
Definition: SpellDefines.h:248
Definition: SpellDefines.h:240
Will not adjust facing to target (if any)
Definition: SpellDefines.h:251
uint32_t uint32
Definition: Define.h:143
Will ignore shapeshift checks.
Definition: SpellDefines.h:252
Will ignore power and reagent cost.
Definition: SpellDefines.h:244
Will ignore caster aura states including combat requirements and death state.
Definition: SpellDefines.h:253
Will ignore Spell and Category cooldowns.
Definition: SpellDefines.h:243
Used when doing CastSpell with triggered == true.
Definition: SpellDefines.h:263
Will ignore caster aura restrictions or requirements.
Definition: SpellDefines.h:258
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
Definition: SpellDefines.h:260
Not triggered.
Definition: SpellDefines.h:241
Disallows proc events from triggered spell (default)
Definition: SpellDefines.h:254
Will ignore mounted/on vehicle restrictions.
Definition: SpellDefines.h:257
Will ignore equipped item requirements.
Definition: SpellDefines.h:264
Will ignore interruptible aura&#39;s at cast.
Definition: SpellDefines.h:250
Will ignore GCD.
Definition: SpellDefines.h:242
Will not take away cast item or update related achievement criteria.
Definition: SpellDefines.h:245
Will ignore aura scaling.
Definition: SpellDefines.h:246

Function Documentation

◆ DEFINE_ENUM_FLAG() [1/3]

DEFINE_ENUM_FLAG ( SpellInterruptFlags  )

◆ DEFINE_ENUM_FLAG() [2/3]

DEFINE_ENUM_FLAG ( SpellAuraInterruptFlags  )

◆ DEFINE_ENUM_FLAG() [3/3]

DEFINE_ENUM_FLAG ( SpellAuraInterruptFlags2  )