18#ifndef TRINITY_SPELLDEFINES_H
19#define TRINITY_SPELLDEFINES_H
55 struct SpellTargetData;
195#define MAX_SPELLMOD 40
334 void RelocateOffset(
Position const& offset);
356 Unit* GetUnitTarget()
const;
357 void SetUnitTarget(
Unit* target);
364 Corpse* GetCorpseTarget()
const;
368 void RemoveObjectTarget();
373 void SetItemTarget(
Item* item);
374 void SetTradeItemTarget(
Player* caster);
375 void UpdateTradeSlotItem();
379 void SetSrc(
float x,
float y,
float z);
405 float GetDist2d()
const {
return m_src._position.GetExactDist2d(&m_dst._position); }
406 float GetSpeedXY()
const {
return m_speed * std::cos(m_pitch); }
407 float GetSpeedZ()
const {
return m_speed * std::sin(m_pitch); }
439 Targets->SetItemTarget(itemTarget);
453 Targets.emplace(std::move(targets));
555 using Base::operator&;
567 using Base::operator=;
std::optional< T > Optional
Optional helper class to wrap optional values within.
@ SPELLVALUE_BASE_POINT24
@ SPELLVALUE_BASE_POINT18
@ SPELLVALUE_BASE_POINT31
@ SPELLVALUE_BASE_POINT26
@ SPELLVALUE_BASE_POINT30
@ SPELLVALUE_BASE_POINT_END
@ SPELLVALUE_BASE_POINT29
@ SPELLVALUE_BASE_POINT19
@ SPELLVALUE_BASE_POINT28
@ SPELLVALUE_BASE_POINT14
@ SPELLVALUE_BASE_POINT21
@ SPELLVALUE_BASE_POINT16
@ SPELLVALUE_BASE_POINT27
@ SPELLVALUE_PARENT_SPELL_TARGET_COUNT
@ SPELLVALUE_BASE_POINT20
@ SPELLVALUE_BASE_POINT17
@ SPELLVALUE_BASE_POINT22
@ SPELLVALUE_BASE_POINT11
@ SPELLVALUE_PARENT_SPELL_TARGET_INDEX
@ SPELLVALUE_BASE_POINT15
@ SPELLVALUE_BASE_POINT25
@ SPELLVALUE_BASE_POINT23
@ SPELLVALUE_BASE_POINT13
@ SPELLVALUE_BASE_POINT10
@ SPELLVALUE_BASE_POINT12
@ DamagePushbackPlayerOnly
@ DamageCancelsPlayerOnly
DEFINE_ENUM_FLAG(SpellInterruptFlags)
@ ProcOrPeriodicAttacking
@ StartOfRaidEncounterAndStartOfMythicPlus
@ SplineFlightOrFreeFlight
@ LeaveArenaOrBattleground
@ EndOfRaidEncounterAndStartOfMythicPlus
@ PeriodicHealingAndDamage
@ TARGET_FLAG_CORPSE_ALLY
@ TARGET_FLAG_UNIT_MINIPET
@ TARGET_FLAG_UNIT_PASSENGER
@ TARGET_FLAG_GAMEOBJECT_ITEM
@ TARGET_FLAG_DEST_LOCATION
@ TARGET_FLAG_SOURCE_LOCATION
@ TARGET_FLAG_UNK40000000
@ TARGET_FLAG_DEST_TARGET
@ TARGET_FLAG_UNK10000000
@ TARGET_FLAG_CORPSE_ENEMY
@ TARGET_FLAG_CORPSE_MASK
@ TARGET_FLAG_EXTRA_TARGETS
@ TARGET_FLAG_GAMEOBJECT_MASK
@ TRIGGERED_IGNORE_EQUIPPED_ITEM_REQUIREMENT
Will ignore equipped item requirements.
@ TRIGGERED_FULL_MASK
Used when doing CastSpell with triggered == true.
@ TRIGGERED_DONT_RESET_PERIODIC_TIMER
Will allow periodic aura timers to keep ticking (instead of resetting)
@ TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD
Will ignore Spell and Category cooldowns.
@ TRIGGERED_CAST_DIRECTLY
In Spell::prepare, will be cast directly without setting containers for executed spell.
@ 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_IGNORE_AURA_SCALING
Will ignore aura scaling.
@ TRIGGERED_IGNORE_CAST_IN_PROGRESS
Will not check if a current cast is in progress.
@ TRIGGERED_IGNORE_CASTER_MOUNTED_OR_ON_VEHICLE
Will ignore mounted/on vehicle restrictions.
@ TRIGGERED_IGNORE_SHAPESHIFT
Will ignore shapeshift checks.
@ TRIGGERED_IGNORE_POWER_COST
Will ignore power and reagent cost.
@ TRIGGERED_IGNORE_CAST_ITEM
Will not take away cast item or update related achievement criteria.
@ TRIGGERED_IGNORE_REAGENT_COST
Will ignore reagent cost.
@ TRIGGERED_IGNORE_GCD
Will ignore GCD.
@ TRIGGERED_DISALLOW_PROC_EVENTS
Disallows proc events from triggered spell (default)
@ TRIGGERED_IGNORE_CASTER_AURAS
Will ignore caster aura restrictions or requirements.
@ TRIGGERED_DONT_REPORT_CAST_ERROR
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
@ TRIGGERED_NONE
Not triggered.
@ TRIGGERED_IGNORE_CAST_TIME
Will always be instantly cast.
@ TRIGGERED_FULL_DEBUG_MASK
@ TRIGGERED_IGNORE_SET_FACING
Will not adjust facing to target (if any)
@ SPELLVALUE_DURATION_PCT
@ SPELL_FACING_FLAG_INFRONT
std::array< int32, N > _storage
static ObjectGuid const Empty
constexpr ProcFlags operator&(ProcFlags procFlags) const
constexpr ProcFlagsInit & operator|=(ProcFlags2 procFlags2)
constexpr ProcFlagsInit(ProcFlags procFlags={}, ProcFlags2 procFlags2={})
constexpr ProcFlagsInit & operator|=(ProcFlags procFlags)
constexpr ProcFlagsInit & operator=(Base const &right)
constexpr ProcFlags2 operator&(ProcFlags2 procFlags2) const
void SetPitch(float pitch)
ObjectGuid m_objectTargetGUID
void SetSpeed(float speed)
void SetTargetFlag(SpellCastTargetFlags flag)
void SetTargetMask(uint32 newMask)
std::string GetTargetString() const
ObjectGuid GetItemTargetGUID() const
WorldObject * m_objectTarget
Item * GetItemTarget() const
uint32 GetTargetMask() const
uint32 GetItemTargetEntry() const
ObjectGuid m_itemTargetGUID
void Update(VignetteData &vignette, WorldObject const *owner)
CastSpellTargetArg(Item *itemTarget)
CastSpellTargetArg(std::nullptr_t)
Optional< SpellCastTargets > Targets
CastSpellTargetArg(Position const &dest)
CastSpellTargetArg(SpellDestination const &dest)
CastSpellTargetArg(SpellCastTargets &&targets)
uint32 SpellXSpellVisualID
Position _transportOffset
ObjectGuid _transportGUID