TrinityCore
SpellDefines.h File Reference
#include "Define.h"
#include "FlagsArray.h"
#include "EnumFlag.h"
#include "ObjectGuid.h"
#include "Optional.h"
#include "Position.h"
#include <any>
#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

namespace  UF
 
namespace  WorldPackets
 
namespace  WorldPackets::Spells
 

Macros

#define MAX_SPELLMOD   40
 

Enumerations

enum class  SpellInterruptFlags : uint32 {
  None = 0 , Movement = 0x00000001 , DamagePushbackPlayerOnly = 0x00000002 , Stun = 0x00000004 ,
  Combat = 0x00000008 , DamageCancelsPlayerOnly = 0x00000010 , MeleeCombat = 0x00000020 , Immunity = 0x00000040 ,
  DamageAbsorb = 0x00000080 , ZeroDamageCancels = 0x00000100 , DamagePushback = 0x00000200 , DamageCancels = 0x00000400
}
 
enum class  SpellAuraInterruptFlags : uint32 {
  None = 0 , HostileActionReceived = 0x00000001 , Damage = 0x00000002 , Action = 0x00000004 ,
  Moving = 0x00000008 , Turning = 0x00000010 , Anim = 0x00000020 , Dismount = 0x00000040 ,
  UnderWater = 0x00000080 , AboveWater = 0x00000100 , Sheathing = 0x00000200 , Interacting = 0x00000400 ,
  Looting = 0x00000800 , Attacking = 0x00001000 , ItemUse = 0x00002000 , DamageChannelDuration = 0x00004000 ,
  Shapeshifting = 0x00008000 , ActionDelayed = 0x00010000 , Mount = 0x00020000 , Standing = 0x00040000 ,
  LeaveWorld = 0x00080000 , StealthOrInvis = 0x00100000 , InvulnerabilityBuff = 0x00200000 , EnterWorld = 0x00400000 ,
  PvPActive = 0x00800000 , NonPeriodicDamage = 0x01000000 , LandingOrFlight = 0x02000000 , Release = 0x04000000 ,
  DamageCancelsScript = 0x08000000 , EnteringCombat = 0x10000000 , Login = 0x20000000 , Summon = 0x40000000 ,
  LeavingCombat = 0x80000000 , NOT_VICTIM = (HostileActionReceived | Damage | NonPeriodicDamage)
}
 
enum class  SpellAuraInterruptFlags2 : uint32 {
  None = 0 , Falling = 0x00000001 , Swimming = 0x00000002 , NotMoving = 0x00000004 ,
  Ground = 0x00000008 , Transform = 0x00000010 , Jump = 0x00000020 , ChangeSpec = 0x00000040 ,
  AbandonVehicle = 0x00000080 , StartOfEncounter = 0x00000100 , EndOfEncounter = 0x00000200 , Disconnect = 0x00000400 ,
  EnteringInstance = 0x00000800 , DuelEnd = 0x00001000 , LeaveArenaOrBattleground = 0x00002000 , ChangeTalent = 0x00004000 ,
  ChangeGlyph = 0x00008000 , SeamlessTransfer = 0x00010000 , WarModeLeave = 0x00020000 , TouchingGround = 0x00040000 ,
  ChromieTime = 0x00080000 , SplineFlightOrFreeFlight = 0x00100000 , ProcOrPeriodicAttacking = 0x00200000 , StartOfMythicPlusRun = 0x00400000 ,
  StartOfDungeonEncounter = 0x00800000 , EndOfDungeonEncounter = 0x01000000
}
 
enum class  SpellModOp : uint8 {
  HealingAndDamage = 0 , Duration = 1 , Hate = 2 , PointsIndex0 = 3 ,
  ProcCharges = 4 , Range = 5 , Radius = 6 , CritChance = 7 ,
  Points = 8 , ResistPushback = 9 , ChangeCastTime = 10 , Cooldown = 11 ,
  PointsIndex1 = 12 , TargetResistance = 13 , PowerCost0 = 14 , CritDamageAndHealing = 15 ,
  HitChance = 16 , ChainTargets = 17 , ProcChance = 18 , Period = 19 ,
  ChainAmplitude = 20 , StartCooldown = 21 , PeriodicHealingAndDamage = 22 , PointsIndex2 = 23 ,
  BonusCoefficient = 24 , TriggerDamage = 25 , ProcFrequency = 26 , Amplitude = 27 ,
  DispelResistance = 28 , CrowdDamage = 29 , PowerCostOnMiss = 30 , Doses = 31 ,
  PointsIndex3 = 32 , PointsIndex4 = 33 , PowerCost1 = 34 , ChainJumpDistance = 35 ,
  AreaTriggerMaxSummons = 36 , MaxAuraStacks = 37 , ProcCooldown = 38 , 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 , SPELLVALUE_PARENT_SPELL_TARGET_COUNT ,
  SPELLVALUE_PARENT_SPELL_TARGET_INDEX
}
 
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_CAST_DIRECTLY = 0x00000080 ,
  TRIGGERED_IGNORE_SET_FACING = 0x00000200 , TRIGGERED_IGNORE_SHAPESHIFT = 0x00000400 , 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_IGNORE_CASTER_AURASTATE = 0x00200000 , 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)
 
 DEFINE_ENUM_FLAG (TriggerCastFlags)
 

Macro Definition Documentation

◆ MAX_SPELLMOD

#define MAX_SPELLMOD   40

Definition at line 192 of file SpellDefines.h.

Enumeration Type Documentation

◆ SpellAuraInterruptFlags

enum class SpellAuraInterruptFlags : uint32
strong
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 

Definition at line 75 of file SpellDefines.h.

◆ SpellAuraInterruptFlags2

enum class SpellAuraInterruptFlags2 : uint32
strong
Enumerator
None 
Falling 
Swimming 
NotMoving 
Ground 
Transform 
Jump 
ChangeSpec 
AbandonVehicle 
StartOfEncounter 
EndOfEncounter 
Disconnect 
EnteringInstance 
DuelEnd 
LeaveArenaOrBattleground 
ChangeTalent 
ChangeGlyph 
SeamlessTransfer 
WarModeLeave 
TouchingGround 
ChromieTime 
SplineFlightOrFreeFlight 
ProcOrPeriodicAttacking 
StartOfMythicPlusRun 
StartOfDungeonEncounter 
EndOfDungeonEncounter 

Definition at line 116 of file SpellDefines.h.

◆ 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 

Definition at line 277 of file SpellDefines.h.

◆ SpellFacingFlags

Enumerator
SPELL_FACING_FLAG_INFRONT 

Definition at line 239 of file SpellDefines.h.

◆ SpellInterruptFlags

enum class SpellInterruptFlags : uint32
strong
Enumerator
None 
Movement 
DamagePushbackPlayerOnly 
Stun 
Combat 
DamageCancelsPlayerOnly 
MeleeCombat 
Immunity 
DamageAbsorb 
ZeroDamageCancels 
DamagePushback 
DamageCancels 

Definition at line 57 of file SpellDefines.h.

◆ SpellModOp

enum class 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 

Definition at line 148 of file SpellDefines.h.

◆ 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 
SPELLVALUE_PARENT_SPELL_TARGET_COUNT 
SPELLVALUE_PARENT_SPELL_TARGET_INDEX 

Definition at line 194 of file SpellDefines.h.

◆ TriggerCastFlags

Enumerator
TRIGGERED_NONE 

Not triggered.

TRIGGERED_IGNORE_GCD 

Will ignore GCD.

TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD 

Will ignore Spell and Category cooldowns.

TRIGGERED_IGNORE_POWER_AND_REAGENT_COST 

Will ignore power and reagent cost.

TRIGGERED_IGNORE_CAST_ITEM 

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

TRIGGERED_IGNORE_AURA_SCALING 

Will ignore aura scaling.

TRIGGERED_IGNORE_CAST_IN_PROGRESS 

Will not check if a current cast is in progress.

TRIGGERED_CAST_DIRECTLY 

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

TRIGGERED_IGNORE_SET_FACING 

Will not adjust facing to target (if any)

TRIGGERED_IGNORE_SHAPESHIFT 

Will ignore shapeshift checks.

TRIGGERED_DISALLOW_PROC_EVENTS 

Disallows proc events from triggered spell (default)

TRIGGERED_IGNORE_CASTER_MOUNTED_OR_ON_VEHICLE 

Will ignore mounted/on vehicle restrictions.

TRIGGERED_IGNORE_CASTER_AURAS 

Will ignore caster aura restrictions or requirements.

TRIGGERED_DONT_RESET_PERIODIC_TIMER 

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

TRIGGERED_DONT_REPORT_CAST_ERROR 

Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.

TRIGGERED_FULL_MASK 

Used when doing CastSpell with triggered == true.

TRIGGERED_IGNORE_EQUIPPED_ITEM_REQUIREMENT 

Will ignore equipped item requirements.

TRIGGERED_IGNORE_TARGET_CHECK 

Will ignore most target checks (mostly DBC target checks)

TRIGGERED_IGNORE_CASTER_AURASTATE 

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

TRIGGERED_FULL_DEBUG_MASK 

Definition at line 244 of file SpellDefines.h.

Function Documentation

◆ DEFINE_ENUM_FLAG() [1/4]

DEFINE_ENUM_FLAG ( SpellAuraInterruptFlags  )

◆ DEFINE_ENUM_FLAG() [2/4]

DEFINE_ENUM_FLAG ( SpellAuraInterruptFlags2  )

◆ DEFINE_ENUM_FLAG() [3/4]

DEFINE_ENUM_FLAG ( SpellInterruptFlags  )

◆ DEFINE_ENUM_FLAG() [4/4]

DEFINE_ENUM_FLAG ( TriggerCastFlags  )