18#ifndef TRINITY_SPELLDEFINES_H
19#define TRINITY_SPELLDEFINES_H
39 struct SpellTargetData;
218 void RelocateOffset(
Position const& offset);
240 Unit* GetUnitTarget()
const;
241 void SetUnitTarget(
Unit* target);
248 Corpse* GetCorpseTarget()
const;
252 void RemoveObjectTarget();
257 void SetItemTarget(
Item* item);
258 void SetTradeItemTarget(
Player* caster);
259 void UpdateTradeSlotItem();
263 void SetSrc(
float x,
float y,
float z);
289 float GetDist2d()
const {
return m_src._position.GetExactDist2d(&m_dst._position); }
290 float GetSpeedXY()
const {
return m_speed * std::cos(m_elevation); }
291 float GetSpeedZ()
const {
return m_speed * std::sin(m_elevation); }
322 Targets->SetItemTarget(itemTarget);
331 Targets.emplace(std::move(targets));
367 auto begin()
const {
return data.cbegin(); }
368 auto end()
const {
return data.cend(); }
370 std::vector<std::pair<SpellValueMod, int32>>
data;
371 } SpellValueOverrides;
#define DEFINE_ENUM_FLAG(enumType)
std::optional< T > Optional
Optional helper class to wrap optional values within.
@ SPELL_INTERRUPT_FLAG_UNK3
@ SPELL_INTERRUPT_FLAG_ABORT_ON_DMG
@ SPELL_INTERRUPT_FLAG_PUSH_BACK
@ SPELL_INTERRUPT_FLAG_INTERRUPT
@ SPELL_INTERRUPT_FLAG_MOVEMENT
SpellChannelInterruptFlags
@ CHANNEL_INTERRUPT_FLAG_INTERRUPT
@ SPELLMOD_CHANCE_OF_SUCCESS
@ SPELLMOD_CRIT_DAMAGE_BONUS
@ SPELLMOD_NOT_LOSE_CASTING_TIME
@ SPELLMOD_CRITICAL_CHANCE
@ SPELLMOD_CRIT_DAMAGE_BONUS_2
@ SPELLMOD_BONUS_MULTIPLIER
@ SPELLMOD_SPELL_COST_REFUND_ON_FAIL
@ SPELLMOD_VALUE_MULTIPLIER
@ SPELLMOD_DAMAGE_MULTIPLIER
@ SPELLMOD_GLOBAL_COOLDOWN
@ SPELLMOD_PROC_PER_MINUTE
@ SPELLMOD_ACTIVATION_TIME
@ SPELLMOD_RESIST_MISS_CHANCE
@ SPELLMOD_RESIST_DISPEL_CHANCE
@ 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_DEST_TARGET
@ TARGET_FLAG_CORPSE_ENEMY
@ TARGET_FLAG_CORPSE_MASK
@ TARGET_FLAG_GAMEOBJECT_MASK
@ TRIGGERED_IGNORE_EQUIPPED_ITEM_REQUIREMENT
Used when doing CastSpell with triggered == true.
@ TRIGGERED_FULL_MASK
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
@ TRIGGERED_IGNORE_POWER_AND_REAGENT_COST
Will ignore Spell and Category cooldowns.
@ TRIGGERED_DONT_RESET_PERIODIC_TIMER
Will ignore caster aura restrictions or requirements.
@ TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD
Will ignore GCD.
@ TRIGGERED_CAST_DIRECTLY
Will ignore combo point requirement.
@ TRIGGERED_IGNORE_TARGET_CHECK
Will ignore equipped item requirements.
@ TRIGGERED_IGNORE_CASTER_AURASTATE
Will ignore shapeshift checks.
@ 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_CASTER_MOUNTED_OR_ON_VEHICLE
Disallows proc events from triggered spell (default)
@ TRIGGERED_IGNORE_SHAPESHIFT
Will not adjust facing to target (if any)
@ TRIGGERED_IGNORE_AURA_INTERRUPT_FLAGS
In Spell::prepare, will be cast directly without setting containers for executed spell.
@ TRIGGERED_IGNORE_CAST_ITEM
Will ignore power and reagent cost.
@ TRIGGERED_IGNORE_COMBO_POINTS
Will not check if a current cast is in progress.
@ TRIGGERED_IGNORE_GCD
Not triggered.
@ TRIGGERED_DISALLOW_PROC_EVENTS
Will ignore caster aura states including combat requirements and death state.
@ TRIGGERED_IGNORE_CASTER_AURAS
Will ignore mounted/on vehicle restrictions.
@ TRIGGERED_DONT_REPORT_CAST_ERROR
Will allow periodic aura timers to keep ticking (instead of resetting)
@ TRIGGERED_FULL_DEBUG_MASK
Will ignore most target checks (mostly DBC target checks)
@ TRIGGERED_IGNORE_SET_FACING
Will ignore interruptible aura's at cast.
@ SPELL_FACING_FLAG_INFRONT
@ AURA_INTERRUPT_FLAG_TAKE_DAMAGE
@ AURA_INTERRUPT_FLAG_SPELL_ATTACK
@ AURA_INTERRUPT_FLAG_TELEPORTED
@ AURA_INTERRUPT_FLAG_CAST
@ AURA_INTERRUPT_FLAG_NOT_SHEATHED
@ AURA_INTERRUPT_FLAG_UNK21
@ AURA_INTERRUPT_FLAG_NOT_VICTIM
@ AURA_INTERRUPT_FLAG_DIRECT_DAMAGE
@ AURA_INTERRUPT_FLAG_UNK14
@ AURA_INTERRUPT_FLAG_IMMUNE_OR_LOST_SELECTION
@ AURA_INTERRUPT_FLAG_TALK
@ AURA_INTERRUPT_FLAG_HITBYSPELL
@ AURA_INTERRUPT_FLAG_MOVE
@ AURA_INTERRUPT_FLAG_TURNING
@ AURA_INTERRUPT_FLAG_JUMP
@ AURA_INTERRUPT_FLAG_NOT_ABOVEWATER
@ AURA_INTERRUPT_FLAG_NOT_SEATED
@ AURA_INTERRUPT_FLAG_NOT_UNDERWATER
@ AURA_INTERRUPT_FLAG_MELEE_ATTACK
@ AURA_INTERRUPT_FLAG_LEAVE_COMBAT
@ AURA_INTERRUPT_FLAG_TRANSFORM
@ AURA_INTERRUPT_FLAG_UNK16
@ AURA_INTERRUPT_FLAG_LOOTING
@ AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT
@ AURA_INTERRUPT_FLAG_CHANGE_MAP
@ AURA_INTERRUPT_FLAG_MOUNT
@ AURA_INTERRUPT_FLAG_LANDING
@ AURA_INTERRUPT_FLAG_NOT_MOUNTED
static ObjectGuid const Empty
ObjectGuid m_objectTargetGUID
void SetSpeed(float speed)
void SetTargetFlag(SpellCastTargetFlags flag)
float GetElevation() const
void SetTargetMask(uint32 newMask)
ObjectGuid GetItemTargetGUID() const
WorldObject * m_objectTarget
Item * GetItemTarget() const
uint32 GetTargetMask() const
void SetElevation(float elevation)
uint32 GetItemTargetEntry() const
ObjectGuid m_itemTargetGUID
CastSpellTargetArg(Item *itemTarget)
CastSpellTargetArg(std::nullptr_t)
Optional< SpellCastTargets > Targets
CastSpellTargetArg(Position const &dest)
CastSpellTargetArg(SpellCastTargets &&targets)
Position _transportOffset
ObjectGuid _transportGUID