TrinityCore
Loading...
Searching...
No Matches
Spell Class Reference

#include <Spell.h>

Classes

struct  CorpseTargetInfo
 
struct  GOTargetInfo
 
struct  HitTriggerSpell
 
struct  ItemTargetInfo
 
struct  TargetInfo
 
struct  TargetInfoBase
 

Public Types

typedef std::unordered_set< Aura * > UsedSpellMods
 

Public Member Functions

void EffectNULL ()
 
void EffectUnused ()
 
void EffectDistract ()
 
void EffectPull ()
 
void EffectSchoolDMG ()
 
void EffectEnvironmentalDMG ()
 
void EffectInstaKill ()
 
void EffectDummy ()
 
void EffectTeleportUnits ()
 
void EffectApplyAura ()
 
void EffectSendEvent ()
 
void EffectPowerBurn ()
 
void EffectPowerDrain ()
 
void EffectHeal ()
 
void EffectBind ()
 
void EffectHealthLeech ()
 
void EffectQuestComplete ()
 
void EffectCreateItem ()
 
void EffectCreateItem2 ()
 
void EffectCreateRandomItem ()
 
void EffectPersistentAA ()
 
void EffectEnergize ()
 
void EffectOpenLock ()
 
void EffectSummonChangeItem ()
 
void EffectProficiency ()
 
void EffectSummonType ()
 
void EffectLearnSpell ()
 
void EffectDispel ()
 
void EffectDualWield ()
 
void EffectPickPocket ()
 
void EffectAddFarsight ()
 
void EffectUntrainTalents ()
 
void EffectHealMechanical ()
 
void EffectJump ()
 
void EffectJumpDest ()
 
void EffectLeapBack ()
 
void EffectQuestClear ()
 
void EffectTeleUnitsFaceCaster ()
 
void EffectLearnSkill ()
 
void EffectAddHonor ()
 
void EffectTradeSkill ()
 
void EffectEnchantItemPerm ()
 
void EffectEnchantItemTmp ()
 
void EffectTameCreature ()
 
void EffectSummonPet ()
 
void EffectLearnPetSpell ()
 
void EffectWeaponDmg ()
 
void EffectForceCast ()
 
void EffectTriggerSpell ()
 
void EffectTriggerMissileSpell ()
 
void EffectThreat ()
 
void EffectHealMaxHealth ()
 
void EffectInterruptCast ()
 
void EffectSummonObjectWild ()
 
void EffectScriptEffect ()
 
void EffectSanctuary ()
 
void EffectAddComboPoints ()
 
void EffectDuel ()
 
void EffectStuck ()
 
void EffectSummonPlayer ()
 
void EffectActivateObject ()
 
void EffectApplyGlyph ()
 
void EffectEnchantHeldItem ()
 
void EffectSummonObject ()
 
void EffectResurrect ()
 
void EffectParry ()
 
void EffectBlock ()
 
void EffectLeap ()
 
void EffectTransmitted ()
 
void EffectDisEnchant ()
 
void EffectInebriate ()
 
void EffectFeedPet ()
 
void EffectDismissPet ()
 
void EffectReputation ()
 
void EffectForceDeselect ()
 
void EffectSelfResurrect ()
 
void EffectSkinning ()
 
void EffectCharge ()
 
void EffectChargeDest ()
 
void EffectProspecting ()
 
void EffectMilling ()
 
void EffectRenamePet ()
 
void EffectSendTaxi ()
 
void EffectKnockBack ()
 
void EffectPullTowards ()
 
void EffectPullTowardsDest ()
 
void EffectDispelMechanic ()
 
void EffectResurrectPet ()
 
void EffectDestroyAllTotems ()
 
void EffectDurabilityDamage ()
 
void EffectSkill ()
 
void EffectTaunt ()
 
void EffectDurabilityDamagePCT ()
 
void EffectModifyThreatPercent ()
 
void EffectResurrectNew ()
 
void EffectAddExtraAttacks ()
 
void EffectSpiritHeal ()
 
void EffectSkinPlayerCorpse ()
 
void EffectStealBeneficialBuff ()
 
void EffectUnlearnSpecialization ()
 
void EffectHealPct ()
 
void EffectEnergizePct ()
 
void EffectTriggerRitualOfSummoning ()
 
void EffectSummonRaFFriend ()
 
void EffectKillCreditPersonal ()
 
void EffectKillCredit ()
 
void EffectQuestFail ()
 
void EffectQuestStart ()
 
void EffectRedirectThreat ()
 
void EffectGameObjectDamage ()
 
void EffectGameObjectRepair ()
 
void EffectGameObjectSetDestructionState ()
 
void EffectActivateRune ()
 
void EffectCreateTamedPet ()
 
void EffectDiscoverTaxi ()
 
void EffectTitanGrip ()
 
void EffectEnchantItemPrismatic ()
 
void EffectPlayMusic ()
 
void EffectSpecCount ()
 
void EffectActivateSpec ()
 
void EffectPlaySound ()
 
void EffectRemoveAura ()
 
void EffectCastButtons ()
 
void EffectRechargeManaGem ()
 
 Spell (WorldObject *caster, SpellInfo const *info, TriggerCastFlags triggerFlags, ObjectGuid originalCasterGUID=ObjectGuid::Empty)
 
 ~Spell ()
 
void InitExplicitTargets (SpellCastTargets const &targets)
 
void SelectExplicitTargets ()
 
void SelectSpellTargets ()
 
void SelectEffectImplicitTargets (SpellEffectInfo const &spellEffectInfo, SpellImplicitTargetInfo const &targetType, uint32 effectMask)
 
void SelectImplicitChannelTargets (SpellEffectInfo const &spellEffectInfo, SpellImplicitTargetInfo const &targetType, uint32 effMask)
 
void SelectImplicitNearbyTargets (SpellEffectInfo const &spellEffectInfo, SpellImplicitTargetInfo const &targetType, uint32 effMask)
 
void SelectImplicitConeTargets (SpellEffectInfo const &spellEffectInfo, SpellImplicitTargetInfo const &targetType, uint32 effMask)
 
void SelectImplicitAreaTargets (SpellEffectInfo const &spellEffectInfo, SpellImplicitTargetInfo const &targetType, uint32 effMask)
 
void SelectImplicitCasterDestTargets (SpellEffectInfo const &spellEffectInfo, SpellImplicitTargetInfo const &targetType)
 
void SelectImplicitTargetDestTargets (SpellEffectInfo const &spellEffectInfo, SpellImplicitTargetInfo const &targetType)
 
void SelectImplicitDestDestTargets (SpellEffectInfo const &spellEffectInfo, SpellImplicitTargetInfo const &targetType)
 
void SelectImplicitCasterObjectTargets (SpellEffectInfo const &spellEffectInfo, SpellImplicitTargetInfo const &targetType, uint32 effMask)
 
void SelectImplicitTargetObjectTargets (SpellEffectInfo const &spellEffectInfo, SpellImplicitTargetInfo const &targetType, uint32 effMask)
 
void SelectImplicitChainTargets (SpellEffectInfo const &spellEffectInfo, SpellImplicitTargetInfo const &targetType, WorldObject *target, uint32 effMask)
 
void SelectImplicitTrajTargets (SpellEffectInfo const &spellEffectInfo, SpellImplicitTargetInfo const &targetType)
 
void SelectEffectTypeImplicitTargets (SpellEffectInfo const &spellEffectInfo)
 
uint32 GetSearcherTypeMask (SpellTargetObjectTypes objType, ConditionContainer *condList)
 
template<class SEARCHER >
void SearchTargets (SEARCHER &searcher, uint32 containerMask, WorldObject *referer, Position const *pos, float radius)
 
WorldObject * SearchNearbyTarget (float range, SpellTargetObjectTypes objectType, SpellTargetCheckTypes selectionType, ConditionContainer *condList=nullptr)
 
void SearchAreaTargets (std::list< WorldObject * > &targets, float range, Position const *position, WorldObject *referer, SpellTargetObjectTypes objectType, SpellTargetCheckTypes selectionType, ConditionContainer *condList)
 
void SearchChainTargets (std::list< WorldObject * > &targets, uint32 chainTargets, WorldObject *target, SpellTargetObjectTypes objectType, SpellTargetCheckTypes selectType, ConditionContainer *condList, bool isChainHeal)
 
GameObject * SearchSpellFocus ()
 
SpellCastResult prepare (SpellCastTargets const &targets, AuraEffect const *triggeredByAura=nullptr)
 
void cancel (SpellCastResult result=SPELL_FAILED_INTERRUPTED, Optional< SpellCastResult > resultOther={})
 
void update (uint32 difftime)
 
void cast (bool skipCheck=false)
 
void finish (bool ok=true)
 
void TakePower ()
 
void TakeAmmo ()
 
void TakeRunePower (bool didHit)
 
void TakeReagents ()
 
void TakeCastItem ()
 
SpellCastResult CheckCast (bool strict, uint32 *param1=nullptr, uint32 *param2=nullptr)
 
SpellCastResult CheckPetCast (Unit *target)
 
void handle_immediate ()
 
uint64 handle_delayed (uint64 t_offset)
 
void _handle_immediate_phase ()
 
void _handle_finish_phase ()
 
SpellCastResult CheckItems (uint32 *param1, uint32 *param2) const
 
SpellCastResult CheckRange (bool strict) const
 
SpellCastResult CheckPower () const
 
SpellCastResult CheckRuneCost (uint32 runeCostID) const
 
SpellCastResult CheckCasterAuras (uint32 *param1) const
 
SpellCastResult CheckArenaCastRules () const
 
SpellCastResult CheckMovement () const
 
bool CheckSpellCancelsAuraEffect (AuraType auraType, uint32 *param1) const
 
bool CheckSpellCancelsCharm (uint32 *param1) const
 
bool CheckSpellCancelsStun (uint32 *param1) const
 
bool CheckSpellCancelsSilence (uint32 *param1) const
 
bool CheckSpellCancelsPacify (uint32 *param1) const
 
bool CheckSpellCancelsFear (uint32 *param1) const
 
bool CheckSpellCancelsConfuse (uint32 *param1) const
 
int32 CalculateDamage (SpellEffectInfo const &spellEffectInfo) const
 
void Delayed ()
 
void DelayedChannel ()
 
uint32 getState () const
 
void setState (uint32 state)
 
void DoCreateItem (uint32 itemId)
 
void UpdateSpellCastDataTargets (WorldPackets::Spells::SpellCastData &data)
 Writes miss and hit targets for a SMSG_SPELL_GO packet.
 
void UpdateSpellCastDataAmmo (WorldPackets::Spells::SpellAmmo &data)
 
bool CheckEffectTarget (Unit const *target, SpellEffectInfo const &spellEffectInfo, Position const *losPosition) const
 
bool CheckEffectTarget (GameObject const *target, SpellEffectInfo const &spellEffectInfo) const
 
bool CheckEffectTarget (Item const *target, SpellEffectInfo const &spellEffectInfo) const
 
bool CanAutoCast (Unit *target)
 
void CheckSrc ()
 
void CheckDst ()
 
void SendCastResult (SpellCastResult result, uint32 *param1=nullptr, uint32 *param2=nullptr) const
 
void SendPetCastResult (SpellCastResult result)
 
void SendMountResult (MountResult result)
 
void SendSpellStart ()
 
void SendSpellGo ()
 
void SendSpellCooldown ()
 
void SendLogExecute ()
 
void ExecuteLogEffectTakeTargetPower (uint8 effIndex, Unit *target, uint32 powerType, uint32 powerTaken, float gainMultiplier)
 
void ExecuteLogEffectExtraAttacks (uint8 effIndex, Unit *victim, uint32 attCount)
 
void ExecuteLogEffectInterruptCast (uint8 effIndex, Unit *victim, uint32 spellId)
 
void ExecuteLogEffectDurabilityDamage (uint8 effIndex, Unit *victim, int32 itemId, int32 slot)
 
void ExecuteLogEffectOpenLock (uint8 effIndex, Object *obj)
 
void ExecuteLogEffectCreateItem (uint8 effIndex, uint32 entry)
 
void ExecuteLogEffectDestroyItem (uint8 effIndex, uint32 entry)
 
void ExecuteLogEffectSummonObject (uint8 effIndex, WorldObject *obj)
 
void ExecuteLogEffectUnsummonObject (uint8 effIndex, WorldObject *obj)
 
void ExecuteLogEffectResurrect (uint8 effIndex, Unit *target)
 
void SendInterrupted (SpellCastResult result, Optional< SpellCastResult > resultOther={})
 
void SendChannelUpdate (uint32 time)
 
void SendChannelStart (uint32 duration)
 
void SendResurrectRequest (Player *target)
 
void HandleEffects (Unit *pUnitTarget, Item *pItemTarget, GameObject *pGoTarget, Corpse *pCorpseTarget, SpellEffectInfo const &spellEffectInfo, SpellEffectHandleMode mode)
 
void HandleThreatSpells ()
 
void AddComboPointGain (Unit *target, int8 amount)
 
int32 GetCastTime () const
 
bool IsAutoRepeat () const
 
void SetAutoRepeat (bool rep)
 
void ReSetTimer ()
 
bool IsTriggered () const
 
bool IsIgnoringCooldowns () const
 
bool IsFocusDisabled () const
 
bool IsProcDisabled () const
 
bool IsChannelActive () const
 
bool IsAutoActionResetSpell () const
 
bool IsPositive () const
 
bool IsTriggeredByAura (SpellInfo const *auraSpellInfo) const
 
bool IsDeletable () const
 
void SetReferencedFromCurrent (bool yes)
 
bool IsInterruptable () const
 
void SetExecutedCurrently (bool yes)
 
uint64 GetDelayStart () const
 
void SetDelayStart (uint64 m_time)
 
uint64 GetDelayMoment () const
 
uint64 CalculateDelayMomentForDst () const
 
void RecalculateDelayMomentForDst ()
 
uint8 GetRuneState () const
 
void SetRuneState (uint8 value)
 
bool IsNeedSendToClient () const
 
CurrentSpellTypes GetCurrentContainer () const
 
WorldObject * GetCaster () const
 
Unit * GetOriginalCaster () const
 
SpellInfo const * GetSpellInfo () const
 
int32 GetPowerCost () const
 
bool UpdatePointers ()
 
void UpdateOriginalCasterPointer ()
 
void CleanupTargetList ()
 
void SetSpellValue (SpellValueMod mod, int32 value)
 
std::string GetDebugInfo () const
 
Trinity::unique_weak_ptr< Spell > GetWeakPtr () const
 
void CallScriptOnResistAbsorbCalculateHandlers (DamageInfo const &damageInfo, uint32 &resistAmount, int32 &absorbAmount)
 
int64 GetUnitTargetCountForEffect (SpellEffIndex effect) const
 
int64 GetGameObjectTargetCountForEffect (SpellEffIndex effect) const
 
int64 GetItemTargetCountForEffect (SpellEffIndex effect) const
 

Static Public Member Functions

static void SendCastResult (Player *caster, SpellInfo const *spellInfo, uint8 castCount, SpellCastResult result, SpellCustomErrors customError=SPELL_CUSTOM_ERROR_NONE, uint32 *param1=nullptr, uint32 *param2=nullptr)
 

Public Attributes

SpellInfo const *const m_spellInfo
 
Item * m_CastItem
 
ObjectGuid m_castItemGUID
 
uint32 m_castItemEntry
 
uint8 m_cast_count
 
bool m_fromClient
 
union { 
 
   uint32   GlyphSlot 
 
   uint32   Data 
 
} m_misc 
 
SpellCastTargets m_targets
 
Unit * m_comboTarget
 
int8 m_comboPointGain
 
SpellCustomErrors m_customError
 
UsedSpellMods m_appliedMods
 
Spell ** m_selfContainer
 

Protected Types

typedef std::vector< HitTriggerSpell > HitTriggerSpellList
 

Protected Member Functions

bool HasGlobalCooldown () const
 
void TriggerGlobalCooldown ()
 
void CancelGlobalCooldown ()
 
void _cast (bool skipCheck=false)
 
void SendLoot (ObjectGuid guid, LootType loottype)
 
std::pair< float, float > GetMinMaxRange (bool strict) const
 
bool IsDelayableNoMore ()
 
Unit * GetUnitCasterForEffectHandlers () const
 
void prepareDataForTriggerSystem ()
 
template<class Container >
void DoProcessTargetContainer (Container &targetContainer)
 
void AddUnitTarget (Unit *target, uint32 effectMask, bool checkIfValid=true, bool implicit=true, Position const *losPosition=nullptr)
 
void AddGOTarget (GameObject *target, uint32 effectMask)
 
void AddItemTarget (Item *item, uint32 effectMask)
 
void AddCorpseTarget (Corpse *target, uint32 effectMask)
 
void AddDestTarget (SpellDestination const &dest, uint32 effIndex)
 
void PreprocessSpellLaunch (TargetInfo &targetInfo)
 
SpellMissInfo PreprocessSpellHit (Unit *unit, bool scaleAura, TargetInfo &targetInfo)
 
void DoSpellEffectHit (Unit *unit, SpellEffectInfo const &spellEffectInfo, TargetInfo &targetInfo)
 
void DoTriggersOnSpellHit (Unit *unit, uint8 effMask)
 
bool UpdateChanneledTargetList ()
 
bool IsValidDeadOrAliveTarget (Unit const *target) const
 
void HandleLaunchPhase ()
 
void DoEffectOnLaunchTarget (TargetInfo &targetInfo, float multiplier, SpellEffectInfo const &spellEffectInfo)
 
void PrepareTargetProcessing ()
 
void FinishTargetProcessing ()
 
void InitEffectExecuteData (uint8 effIndex)
 
void AssertEffectExecuteData () const
 
void LoadScripts ()
 
void CallScriptBeforeCastHandlers ()
 
void CallScriptOnCastHandlers ()
 
void CallScriptAfterCastHandlers ()
 
SpellCastResult CallScriptCheckCastHandlers ()
 
bool CallScriptEffectHandlers (SpellEffIndex effIndex, SpellEffectHandleMode mode)
 
void CallScriptSuccessfulDispel (SpellEffIndex effIndex)
 
void CallScriptBeforeHitHandlers (SpellMissInfo missInfo)
 
void CallScriptOnHitHandlers ()
 
void CallScriptAfterHitHandlers ()
 
void CallScriptObjectAreaTargetSelectHandlers (std::list< WorldObject * > &targets, SpellEffIndex effIndex, SpellImplicitTargetInfo const &targetType)
 
void CallScriptObjectTargetSelectHandlers (WorldObject *&target, SpellEffIndex effIndex, SpellImplicitTargetInfo const &targetType)
 
void CallScriptDestinationTargetSelectHandlers (SpellDestination &target, SpellEffIndex effIndex, SpellImplicitTargetInfo const &targetType)
 
bool CheckScriptEffectImplicitTargets (uint32 effIndex, uint32 effIndexToCheck)
 
bool CanExecuteTriggersOnHit (uint8 effMask, SpellInfo const *triggeredByAura=nullptr) const
 
void PrepareTriggersExecutedOnHit ()
 
void SummonGuardian (SpellEffectInfo const &spellEffectInfo, uint32 entry, SummonPropertiesEntry const *properties, uint32 numSummons)
 
void CalculateJumpSpeeds (SpellEffectInfo const &spellEffectInfo, float dist, float &speedXY, float &speedZ)
 
SpellCastResult CanOpenLock (SpellEffectInfo const &spellEffectInfo, uint32 lockid, SkillType &skillid, int32 &reqSkillValue, int32 &skillValue)
 
 Spell (Spell const &right)=delete
 
Spell & operator= (Spell const &right)=delete
 

Protected Attributes

WorldObject *const m_caster
 
SpellValue *const m_spellValue
 
ObjectGuid m_originalCasterGUID
 
Unit * m_originalCaster
 
SpellSchoolMask m_spellSchoolMask
 
WeaponAttackType m_attackType
 
int32 m_powerCost
 
int32 m_casttime
 
int32 m_channeledDuration
 
bool m_canReflect
 
bool m_autoRepeat
 
uint8 m_runesState
 
uint8 m_delayAtDamageCount
 
uint64 m_delayStart
 
uint64 m_delayMoment
 
bool m_immediateHandled
 
bool m_referencedFromCurrentSpell
 
bool m_executedCurrently
 
bool m_needComboPoints
 
uint8 m_applyMultiplierMask
 
float m_damageMultipliers [MAX_SPELL_EFFECTS]
 
Unit * unitTarget
 
Item * itemTarget
 
GameObject * gameObjTarget
 
Corpse * m_corpseTarget
 
WorldLocation * destTarget
 
int32 damage
 
SpellMissInfo targetMissInfo
 
SpellEffectHandleMode effectHandleMode
 
SpellEffectInfo const * effectInfo
 
UnitAura * _spellAura
 
DynObjAura * _dynObjAura
 
ObjectGuid m_focusObjectGUID
 
GameObject * focusObject
 
int32 m_damage
 
int32 m_healing
 
uint32 m_procAttacker
 
uint32 m_procVictim
 
uint32 m_hitMask
 
std::vector< TargetInfo > m_UniqueTargetInfo
 
uint8 m_channelTargetEffectMask
 
std::vector< GOTargetInfo > m_UniqueGOTargetInfo
 
std::vector< ItemTargetInfo > m_UniqueItemInfo
 
std::vector< CorpseTargetInfo > m_UniqueCorpseTargetInfo
 
SpellDestination m_destTargets [MAX_SPELL_EFFECTS]
 
std::vector< SpellScript * > m_loadedScripts
 
HitTriggerSpellList m_hitTriggerSpells
 
uint32 m_spellState
 
int32 m_timer
 
SpellEvent * _spellEvent
 
TriggerCastFlags _triggeredCastFlags
 
SpellInfo const * m_triggeredByAuraSpell
 
uint8 m_auraScaleMask
 
std::unique_ptr< PathGenerator > m_preGeneratedPath
 
ByteBuffer * m_effectExecuteData [MAX_SPELL_EFFECTS]
 

Friends

class SpellScript
 

Detailed Description

Definition at line 151 of file Spell.h.

Member Typedef Documentation

◆ HitTriggerSpellList

typedef std::vector<HitTriggerSpell> Spell::HitTriggerSpellList
protected

Definition at line 695 of file Spell.h.

◆ UsedSpellMods

typedef std::unordered_set<Aura*> Spell::UsedSpellMods

Definition at line 281 of file Spell.h.

Constructor & Destructor Documentation

◆ Spell() [1/2]

Spell::Spell ( WorldObject *  caster,
SpellInfo const *  info,
TriggerCastFlags  triggerFlags,
ObjectGuid  originalCasterGUID = ObjectGuid::Empty 
)

Definition at line 552 of file Spell.cpp.

References _dynObjAura, _spellAura, _triggeredCastFlags, CLASSMASK_WAND_USERS, CleanupTargetList(), ObjectGuid::Clear(), damage, destTarget, SpellInfo::DmgClass, effectHandleMode, effectInfo, focusObject, gameObjTarget, SpellInfo::GetAttackType(), Object::GetGUID(), SpellInfo::GetSchoolMask(), SpellInfo::HasAttribute(), SpellInfo::IsAutoRepeatRangedSpell(), ObjectGuid::IsEmpty(), SpellInfo::IsPassive(), Object::IsUnit(), itemTarget, m_applyMultiplierMask, m_attackType, m_auraScaleMask, m_autoRepeat, m_canReflect, m_cast_count, m_caster, m_CastItem, m_castItemEntry, m_castItemGUID, m_casttime, m_channeledDuration, m_channelTargetEffectMask, m_comboPointGain, m_comboTarget, m_corpseTarget, m_customError, m_damage, m_damageMultipliers, m_delayAtDamageCount, m_delayStart, m_destTargets, m_effectExecuteData, m_executedCurrently, m_fromClient, m_healing, m_hitMask, m_immediateHandled, m_misc, m_needComboPoints, m_originalCasterGUID, m_powerCost, m_procAttacker, m_procVictim, m_referencedFromCurrentSpell, m_runesState, m_selfContainer, m_spellInfo, m_spellSchoolMask, m_spellState, m_timer, m_triggeredByAuraSpell, MAX_SPELL_EFFECTS, SpellInfo::NeedsComboPoints(), RANGED_ATTACK, SPELL_ATTR0_ABILITY, SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY, SPELL_ATTR1_CANT_BE_REFLECTED, SPELL_ATTR4_CAN_CAST_WHILE_CASTING, SPELL_CUSTOM_ERROR_NONE, SPELL_DAMAGE_CLASS_MAGIC, SPELL_EFFECT_HANDLE_LAUNCH, SPELL_MISS_NONE, SPELL_STATE_NULL, targetMissInfo, Object::ToPlayer(), TRIGGERED_CAST_DIRECTLY, TRIGGERED_IGNORE_CAST_IN_PROGRESS, unitTarget, and UpdateOriginalCasterPointer().

Referenced by Creature::HasSpellFocus(), and Creature::ReleaseSpellFocus().

◆ ~Spell()

◆ Spell() [2/2]

Spell::Spell ( Spell const &  right)
protecteddelete

Member Function Documentation

◆ _cast()

void Spell::_cast ( bool  skipCheck = false)
protected

Not own traded item (in trader trade slot) req. reagents including triggered spell case

Definition at line 3371 of file Spell.cpp.

References _triggeredCastFlags, ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL, ACHIEVEMENT_CRITERIA_TYPE_USE_ITEM, ACHIEVEMENT_TIMED_TYPE_ITEM, CallScriptAfterCastHandlers(), CallScriptBeforeCastHandlers(), CallScriptOnCastHandlers(), cancel(), WorldObject::CastSpell(), CHEAT_COOLDOWN, CheckCast(), SpellInfo::DmgClass, DRTYPE_ALL, DRTYPE_PLAYER, finish(), Player::GetCommandStatus(), ObjectAccessor::GetCreatureOrPetOrVehicle(), SpellInfo::GetDiminishingReturnsGroupForSpell(), SpellInfo::GetDiminishingReturnsGroupType(), SpellInfo::GetEffects(), Object::GetEntry(), Object::GetGUID(), SpellCastTargets::GetItemTarget(), SpellCastTargets::GetObjectTarget(), SpellCastTargets::GetObjectTargetGUID(), Unit::GetSpellHistory(), GetSpellInfo(), WorldObject::GetSpellModOwner(), SpellCastTargets::GetTargetMask(), Player::GetTradeData(), ObjectAccessor::GetUnit(), SpellCastTargets::GetUnitTarget(), handle_immediate(), HandleLaunchPhase(), SpellInfo::HasAttribute(), SpellInfo::Id, SpellInfo::IsChanneled(), ObjectGuid::IsEmpty(), IsPositive(), m_caster, m_CastItem, m_hitMask, m_immediateHandled, m_originalCaster, m_procAttacker, m_spellInfo, m_spellState, m_targets, m_triggeredByAuraSpell, PrepareTriggersExecutedOnHit(), PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG, PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS, PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_NEG, PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_POS, PROC_FLAG_NONE, PROC_HIT_CRITICAL, PROC_HIT_NORMAL, PROC_SPELL_PHASE_CAST, PROC_SPELL_TYPE_MASK_ALL, Unit::ProcSkillsAndAuras(), SpellHistory::ResetCooldown(), SelectSpellTargets(), SendCastResult(), SendInterrupted(), SendSpellCooldown(), SendSpellGo(), SetDelayStart(), SetExecutedCurrently(), Player::SetSpellModTakingSpell(), SpellInfo::Speed, SPELL_ATTR1_DISMISS_PET, SPELL_CAST_OK, SPELL_DAMAGE_CLASS_MAGIC, SPELL_DAMAGE_CLASS_NONE, SPELL_FAILED_AURA_BOUNCED, SPELL_FAILED_DONT_REPORT, SPELL_STATE_DELAYED, SPELL_STATE_FINISHED, sScriptMgr, sSpellMgr, TakeCastItem(), TakePower(), TakeReagents(), TARGET_FLAG_TRADE_ITEM, Object::ToCreature(), Object::ToPlayer(), Object::ToUnit(), TRIGGERED_IGNORE_CAST_ITEM, TRIGGERED_IGNORE_POWER_AND_REAGENT_COST, UNIT_FLAG_POSSESSED, UNIT_STATE_CASTING, UpdatePointers(), and SpellCastTargets::UpdateTradeSlotItem().

Referenced by cast().

◆ _handle_finish_phase()

◆ _handle_immediate_phase()

void Spell::_handle_immediate_phase ( )

◆ AddComboPointGain()

void Spell::AddComboPointGain ( Unit *  target,
int8  amount 
)
inline

Definition at line 411 of file Spell.h.

Referenced by EffectAddComboPoints(), and EffectWeaponDmg().

◆ AddCorpseTarget()

◆ AddDestTarget()

void Spell::AddDestTarget ( SpellDestination const &  dest,
uint32  effIndex 
)
protected

Definition at line 2381 of file Spell.cpp.

References m_destTargets.

Referenced by SelectSpellTargets().

◆ AddGOTarget()

◆ AddItemTarget()

◆ AddUnitTarget()

void Spell::AddUnitTarget ( Unit *  target,
uint32  effectMask,
bool  checkIfValid = true,
bool  implicit = true,
Position const *  losPosition = nullptr 
)
protected

◆ AssertEffectExecuteData()

void Spell::AssertEffectExecuteData ( ) const
protected

Definition at line 7935 of file Spell.cpp.

References ASSERT, m_effectExecuteData, and MAX_SPELL_EFFECTS.

Referenced by PrepareTargetProcessing(), and ~Spell().

◆ CalculateDamage()

int32 Spell::CalculateDamage ( SpellEffectInfo const &  spellEffectInfo) const

◆ CalculateDelayMomentForDst()

◆ CalculateJumpSpeeds()

void Spell::CalculateJumpSpeeds ( SpellEffectInfo const &  spellEffectInfo,
float  dist,
float &  speedXY,
float &  speedZ 
)
protected

◆ CallScriptAfterCastHandlers()

void Spell::CallScriptAfterCastHandlers ( )
protected

Definition at line 7977 of file Spell.cpp.

References m_loadedScripts, and SPELL_SCRIPT_HOOK_AFTER_CAST.

Referenced by _cast().

◆ CallScriptAfterHitHandlers()

◆ CallScriptBeforeCastHandlers()

void Spell::CallScriptBeforeCastHandlers ( )
protected

Definition at line 7951 of file Spell.cpp.

References m_loadedScripts, and SPELL_SCRIPT_HOOK_BEFORE_CAST.

Referenced by _cast().

◆ CallScriptBeforeHitHandlers()

◆ CallScriptCheckCastHandlers()

SpellCastResult Spell::CallScriptCheckCastHandlers ( )
protected

Definition at line 7990 of file Spell.cpp.

References m_loadedScripts, SPELL_CAST_OK, and SPELL_SCRIPT_HOOK_CHECK_CAST.

Referenced by CheckCast().

◆ CallScriptDestinationTargetSelectHandlers()

◆ CallScriptEffectHandlers()

◆ CallScriptObjectAreaTargetSelectHandlers()

void Spell::CallScriptObjectAreaTargetSelectHandlers ( std::list< WorldObject * > &  targets,
SpellEffIndex  effIndex,
SpellImplicitTargetInfo const &  targetType 
)
protected

◆ CallScriptObjectTargetSelectHandlers()

◆ CallScriptOnCastHandlers()

void Spell::CallScriptOnCastHandlers ( )
protected

Definition at line 7964 of file Spell.cpp.

References m_loadedScripts, and SPELL_SCRIPT_HOOK_ON_CAST.

Referenced by _cast().

◆ CallScriptOnHitHandlers()

◆ CallScriptOnResistAbsorbCalculateHandlers()

void Spell::CallScriptOnResistAbsorbCalculateHandlers ( DamageInfo const &  damageInfo,
uint32 &  resistAmount,
int32 &  absorbAmount 
)

Definition at line 8319 of file Spell.cpp.

References m_loadedScripts, and SPELL_SCRIPT_HOOK_ON_RESIST_ABSORB_CALCULATION.

Referenced by Unit::CalcAbsorbResist().

◆ CallScriptSuccessfulDispel()

void Spell::CallScriptSuccessfulDispel ( SpellEffIndex  effIndex)
protected

Definition at line 8059 of file Spell.cpp.

References m_loadedScripts, and SPELL_SCRIPT_HOOK_EFFECT_SUCCESSFUL_DISPEL.

Referenced by EffectDispel().

◆ CanAutoCast()

◆ cancel()

◆ CancelGlobalCooldown()

◆ CanExecuteTriggersOnHit()

bool Spell::CanExecuteTriggersOnHit ( uint8  effMask,
SpellInfo const *  triggeredByAura = nullptr 
) const
protected

◆ CanOpenLock()

◆ cast()

void Spell::cast ( bool  skipCheck = false)

◆ CheckArenaCastRules()

◆ CheckCast()

SpellCastResult Spell::CheckCast ( bool  strict,
uint32 *  param1 = nullptr,
uint32 *  param2 = nullptr 
)
Todo:
determine if there is some flag to enable/disable the check

Definition at line 5148 of file Spell.cpp.

References _triggeredCastFlags, InstanceTemplate::AllowMount, AREA_FLAG_NO_FLY_ZONE, AURA_INTERRUPT_FLAG_NOT_SEATED, SpellInfo::AuraInterruptFlags, CalculateDamage(), CallScriptCheckCastHandlers(), SpellInfo::CanBeUsedInCombat(), Battlefield::CanFlyIn(), GameObjectTemplate::CannotBeUsedUnderImmunity(), CanOpenLock(), Player::CanTameExoticPets(), Player::CanUseBattlegroundObject(), SpellInfo::CasterAuraSpell, SpellInfo::CasterAuraState, WorldObject::CastSpell(), CheckArenaCastRules(), CheckCasterAuras(), SpellInfo::CheckExplicitTarget(), CheckItems(), SpellInfo::CheckLocation(), CheckPower(), CheckRange(), SpellInfo::CheckShapeshift(), SpellInfo::CheckTarget(), SpellInfo::CheckVehicle(), CONDITION_SOURCE_TYPE_SPELL, Condition::ConditionTarget, SummonPropertiesEntry::Control, VMAP::VMapFactory::createOrGetVMapManager(), DISABLE_TYPE_SPELL, Player::duel, SpellValue::EffectBasePoints, Condition::ErrorTextId, Condition::ErrorType, SpellInfo::ExcludeCasterAuraSpell, SpellInfo::ExcludeCasterAuraState, ObjectAccessor::FindPlayer(), focusObject, GAMEOBJECT_TYPE_TRAP, WorldSession::GetAccountId(), WorldObject::GetAreaId(), ItemTemplate::GetBaseItemLevel(), Player::GetBattleground(), Player::GetBoundInstance(), Unit::GetCharmedGUID(), Unit::GetCharmerGUID(), Unit::GetCombatReach(), Creature::GetCreatureTemplate(), Pet::GetCurrentFoodBenefitLevel(), Map::GetDifficultyID(), Unit::GetDispellableAuraList(), SpellInfo::GetDispelMask(), SpellCastTargets::GetDstPos(), Unit::GetDynObject(), SpellInfo::GetEffects(), GameObject::GetGOInfo(), SpellCastTargets::GetGOTarget(), Unit::GetGuardianPet(), Object::GetGUID(), Map::GetId(), Player::GetItemByGuid(), SpellCastTargets::GetItemTarget(), SpellCastTargets::GetItemTargetGUID(), Player::GetLastPotionId(), Unit::GetLevel(), Pet::GetLoadPetInfo(), ItemTemplate::GetLockID(), WorldObject::GetMap(), WorldLocation::GetMapId(), SpellInfo::GetMaxRange(), SpellCastTargets::GetObjectTarget(), Pet::GetOwner(), Player::GetPet(), Unit::GetPetGUID(), Player::GetPetStable(), Position::GetPosition(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), Unit::GetPowerType(), ObjectGuid::GetRawValue(), WorldSession::GetRecruiterId(), CreatureTemplate::GetRequiredLootSkill(), Player::GetSelectedPlayer(), Player::GetSession(), Player::GetSkillValue(), TradeData::GetSpell(), Unit::GetSpellHistory(), Aura::GetSpellInfo(), GetSpellInfo(), Unit::GetTarget(), SpellCastTargets::GetTargetMask(), Item::GetTemplate(), Player::GetTradeData(), Object::GetTypeId(), SpellCastTargets::GetUnitTarget(), Unit::GetVisibleAuras(), WorldObject::GetZoneAndAreaId(), WorldObject::GetZoneId(), SpellInfo::HasAttribute(), SpellInfo::HasAura(), Unit::HasAura(), SpellHistory::HasCooldownOnHold(), SpellCastTargets::HasDst(), SpellInfo::HasEffect(), Object::HasFlag(), HasGlobalCooldown(), Player::HasSummonPending(), Unit::HasUnitFlag(), Unit::HasUnitFlag2(), Unit::HasUnitState(), Pet::HaveInDiet(), HUNTER_PET, SpellInfo::Id, Player::InBattleground(), irand(), Unit::IsAlive(), IsAutoRepeat(), Map::IsBattlegroundOrArena(), SpellInfo::IsCooldownStartedOnEvent(), Unit::IsCritter(), DisableMgr::IsDisabledFor(), Map::IsDungeon(), MapEntry::IsDungeon(), ObjectGuid::IsEmpty(), WorldObject::IsFriendlyTo(), Player::IsGameMaster(), IsIgnoringCooldowns(), Unit::IsInCombat(), Unit::IsInDisallowedMountForm(), Unit::IsInFlight(), Player::IsInSameRaidWith(), Unit::IsInWater(), VMAP::IVMapManager::isLineOfSightCalcEnabled(), Item::IsLocked(), Loot::isLooted(), Unit::IsMounted(), WorldObject::IsOutdoors(), Aura::IsPassive(), SpellInfo::IsPassive(), Item::IsPotion(), MapEntry::IsRaid(), SpellHistory::IsReady(), Unit::IsScriptOverriden(), CreatureTemplate::IsTameable(), SpellInfo::IsTargetingArea(), IsTriggered(), Object::IsUnit(), WorldObject::IsWithinLOS(), WorldObject::IsWithinLOSInMap(), LINEOFSIGHT_ALL_CHECKS, Creature::loot, VMAP::M2, m_caster, m_CastItem, m_castItemEntry, m_customError, m_focusObjectGUID, m_needComboPoints, m_originalCaster, M_PI, m_preGeneratedPath, m_selfContainer, m_spellInfo, m_spellValue, m_targets, m_triggeredByAuraSpell, ConditionSourceInfo::mLastFailedCondition, MOVEMENTFLAG_FALLING_FAR, SpellInfo::NeedsExplicitUnitTarget(), PATHFIND_INCOMPLETE, PATHFIND_NOPATH, PATHFIND_SHORT, PETTAME_CANTCONTROLEXOTIC, PETTAME_DEAD, PETTAME_NOPETAVAILABLE, PLAYER_ALLOW_ONLY_ABILITY, PLAYER_FLAGS, POWER_MANA, Unit::RemoveMovementImpairingAuras(), SpellInfo::RequiredAreasID, SpellInfo::RequiresSpellFocus, sAreaTableStore, sBattlefieldMgr, sConditionMgr, SearchSpellFocus(), SendMountResult(), Player::SendTameFailure(), sGlyphPropertiesStore, Shapeshifted, SKILL_HERBALISM, SKILL_LOCKPICKING, SKILL_MINING, SKILL_NONE, sMapStore, sObjectMgr, SPELL_ATTR0_CASTABLE_WHILE_DEAD, SPELL_ATTR0_CASTABLE_WHILE_MOUNTED, SPELL_ATTR0_CU_REQ_CASTER_BEHIND_TARGET, SPELL_ATTR0_CU_REQ_TARGET_FACING_CASTER, SPELL_ATTR0_DISABLED_WHILE_ACTIVE, SPELL_ATTR0_INDOORS_ONLY, SPELL_ATTR0_ONLY_STEALTHED, SPELL_ATTR0_OUTDOORS_ONLY, SPELL_ATTR1_DISMISS_PET, SPELL_ATTR1_MELEE_COMBAT_START, SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS, SPELL_ATTR3_BATTLEGROUND, SPELL_ATTR4_NOT_STEALABLE, SPELL_ATTR5_NOT_USABLE_WHILE_CHARMED, SPELL_ATTR5_SKIP_CHECKCAST_LOS_CHECK, SPELL_ATTR7_IS_CHEAT_SPELL, SPELL_AURA_ABILITY_IGNORE_AURASTATE, SPELL_AURA_AOE_CHARM, SPELL_AURA_BLOCK_SPELL_FAMILY, SPELL_AURA_FLY, SPELL_AURA_MOD_CHARM, SPELL_AURA_MOD_IGNORE_SHAPESHIFT, SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED, SPELL_AURA_MOD_POSSESS, SPELL_AURA_MOD_POSSESS_PET, SPELL_AURA_MOUNTED, SPELL_AURA_PERIODIC_MANA_LEECH, SPELL_AURA_RANGED_ATTACK_POWER_ATTACKER_BONUS, SPELL_CAST_OK, SPELL_CUSTOM_ERROR_GM_ONLY, SPELL_DISABLE_LOS, SPELL_EFFECT_APPLY_GLYPH, SPELL_EFFECT_CHARGE, SPELL_EFFECT_CREATE_TAMED_PET, SPELL_EFFECT_DISPEL, SPELL_EFFECT_FEED_PET, SPELL_EFFECT_JUMP, SPELL_EFFECT_JUMP_DEST, SPELL_EFFECT_LEAP, SPELL_EFFECT_LEAP_BACK, SPELL_EFFECT_LEARN_PET_SPELL, SPELL_EFFECT_LEARN_SPELL, SPELL_EFFECT_OPEN_LOCK, SPELL_EFFECT_POWER_BURN, SPELL_EFFECT_POWER_DRAIN, SPELL_EFFECT_RESURRECT_PET, SPELL_EFFECT_SKINNING, SPELL_EFFECT_STEAL_BENEFICIAL_BUFF, SPELL_EFFECT_STUCK, SPELL_EFFECT_SUMMON, SPELL_EFFECT_SUMMON_PET, SPELL_EFFECT_SUMMON_PLAYER, SPELL_EFFECT_SUMMON_RAF_FRIEND, SPELL_EFFECT_TALENT_SPEC_SELECT, SPELL_EFFECT_TELEPORT_UNITS_FACE_CASTER, SPELL_FAILED_AFFECTING_COMBAT, SPELL_FAILED_ALREADY_HAVE_CHARM, SPELL_FAILED_ALREADY_HAVE_SUMMON, SPELL_FAILED_AURA_BOUNCED, SPELL_FAILED_BAD_IMPLICIT_TARGETS, SPELL_FAILED_BAD_TARGETS, SPELL_FAILED_CANT_BE_CHARMED, SPELL_FAILED_CASTER_AURASTATE, SPELL_FAILED_CASTER_DEAD, SPELL_FAILED_CHARMED, SPELL_FAILED_CUSTOM_ERROR, SPELL_FAILED_DONT_REPORT, SPELL_FAILED_FOOD_LOWLEVEL, SPELL_FAILED_HIGHLEVEL, SPELL_FAILED_ITEM_ALREADY_ENCHANTED, SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW, SPELL_FAILED_LINE_OF_SIGHT, SPELL_FAILED_LOW_CASTLEVEL, SPELL_FAILED_LOWLEVEL, SPELL_FAILED_MOVING, SPELL_FAILED_NO_COMBO_POINTS, SPELL_FAILED_NO_MOUNTS_ALLOWED, SPELL_FAILED_NO_PET, SPELL_FAILED_NOPATH, SPELL_FAILED_NOT_BEHIND, SPELL_FAILED_NOT_HERE, SPELL_FAILED_NOT_IN_BATTLEGROUND, SPELL_FAILED_NOT_INFRONT, SPELL_FAILED_NOT_KNOWN, SPELL_FAILED_NOT_MOUNTED, SPELL_FAILED_NOT_ON_TAXI, SPELL_FAILED_NOT_READY, SPELL_FAILED_NOT_TRADING, SPELL_FAILED_NOTHING_TO_DISPEL, SPELL_FAILED_NOTHING_TO_STEAL, SPELL_FAILED_ONLY_ABOVEWATER, SPELL_FAILED_ONLY_BATTLEGROUNDS, SPELL_FAILED_ONLY_INDOORS, SPELL_FAILED_ONLY_OUTDOORS, SPELL_FAILED_ONLY_STEALTHED, SPELL_FAILED_REQUIRES_SPELL_FOCUS, SPELL_FAILED_ROOTED, SPELL_FAILED_SPELL_IN_PROGRESS, SPELL_FAILED_SPELL_UNAVAILABLE, SPELL_FAILED_SUMMON_PENDING, SPELL_FAILED_TARGET_FRIENDLY, SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED, SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE, SPELL_FAILED_TARGET_NOT_IN_INSTANCE, SPELL_FAILED_TARGET_NOT_LOOTED, SPELL_FAILED_TARGET_UNSKINNABLE, SPELL_FAILED_TRY_AGAIN, SPELL_FAILED_UNIQUE_GLYPH, SPELL_FAILED_WRONG_PET_FOOD, SPELLFAMILY_WARRIOR, SpellInfo::SpellFamilyName, SpellInfo::SpellLevel, sSpellMgr, sSummonPropertiesStore, STATUS_IN_PROGRESS, STATUS_WAIT_LEAVE, SUMMON_CATEGORY_PET, SUMMON_CATEGORY_PUPPET, TARGET_FLAG_ITEM, TARGET_FLAG_TRADE_ITEM, TARGET_GAMEOBJECT_ITEM_TARGET, TARGET_GAMEOBJECT_TARGET, TARGET_UNIT_PET, Object::ToCreature(), Object::ToGameObject(), Unit::ToPet(), Object::ToPlayer(), Object::ToUnit(), TRADE_SLOT_NONTRADED, TRIGGERED_IGNORE_CASTER_AURAS, TRIGGERED_IGNORE_CASTER_AURASTATE, TRIGGERED_IGNORE_CASTER_MOUNTED_OR_ON_VEHICLE, TRIGGERED_IGNORE_GCD, TRIGGERED_IGNORE_POWER_AND_REAGENT_COST, TRIGGERED_IGNORE_SHAPESHIFT, GameObjectTemplate::type, TYPEID_GAMEOBJECT, TYPEID_PLAYER, TYPEID_UNIT, UNIT_FLAG2_ALLOW_CHEAT_SPELLS, UNIT_FLAG_IMMUNE, UNIT_FLAG_SKINNABLE, and UNIT_STATE_ROOT.

Referenced by _cast(), Unit::_UpdateAutoRepeatSpell(), CheckPetCast(), WorldSession::HandleAcceptTradeOpcode(), and prepare().

◆ CheckCasterAuras()

◆ CheckDst()

void Spell::CheckDst ( )

◆ CheckEffectTarget() [1/3]

◆ CheckEffectTarget() [2/3]

bool Spell::CheckEffectTarget ( Item const *  target,
SpellEffectInfo const &  spellEffectInfo 
) const

Definition at line 7498 of file Spell.cpp.

◆ CheckEffectTarget() [3/3]

◆ CheckItems()

SpellCastResult Spell::CheckItems ( uint32 *  param1,
uint32 *  param2 
) const
Todo:
Needs review

Definition at line 6654 of file Spell.cpp.

References _triggeredCastFlags, BASE_ATTACK, SpellEffectInfo::CalcValue(), Player::CanNoReagentCast(), Player::CanStoreNewItem(), WorldObject::CastSpell(), ItemTemplate::DisenchantID, SpellItemEnchantmentEntry::Effect, EFFECT_1, ItemTemplate::Effects, ENCHANTMENT_CAN_SOULBOUND, EQUIP_ERR_INV_FULL, EQUIP_ERR_OK, SpellInfo::EquippedItemClass, SpellItemEnchantmentEntry::Flags, ItemTemplate::GetBaseItemLevel(), ItemTemplate::GetClass(), Item::GetCount(), SpellInfo::GetEffect(), SpellInfo::GetEffects(), Item::GetEnchantmentId(), Object::GetEntry(), Player::GetFreeInventorySpace(), Object::GetGUID(), Player::GetItemByEntry(), ItemTemplate::GetItemLimitCategory(), SpellCastTargets::GetItemTarget(), SpellCastTargets::GetItemTargetEntry(), SpellCastTargets::GetItemTargetGUID(), Unit::GetMaxPower(), ItemTemplate::GetMaxStackSize(), Item::GetOwner(), Item::GetOwnerGUID(), Unit::GetPower(), ItemTemplate::GetQuality(), ItemTemplate::GetRequiredDisenchantSkill(), ItemTemplate::GetRequiredLevel(), ItemTemplate::GetRequiredSkillRank(), Player::GetSkillValue(), ItemTemplate::GetSocketColor(), Item::GetSpellCharges(), ItemTemplate::GetSubClass(), Item::GetTemplate(), Object::GetTypeId(), Object::GetUInt32Value(), SpellCastTargets::GetUnitTarget(), Player::GetWeaponForAttack(), SpellInfo::HasAttribute(), Unit::HasAura(), ItemTemplate::HasFlag(), Player::HasItemCount(), Player::HasItemFitToSpellRequirements(), Player::HasItemTotemCategory(), LootStore::HaveLootFor(), Item::IsArmorVellum(), Item::IsBroken(), ObjectGuid::IsEmpty(), Item::IsFitToSpellRequirements(), Unit::IsFullHealth(), IsTriggered(), Item::IsWeaponVellum(), ITEM_CLASS_ARMOR, ITEM_CLASS_CONSUMABLE, ITEM_CLASS_PROJECTILE, ITEM_CLASS_WEAPON, ITEM_ENCHANTMENT_TYPE_PRISMATIC_SOCKET, ITEM_ENCHANTMENT_TYPE_USE_SPELL, ITEM_FLAG_IS_MILLABLE, ITEM_FLAG_IS_PROSPECTABLE, ITEM_FLAG_NO_REAGENT_COST, ITEM_SPELLTRIGGER_ON_USE, ITEM_SUBCLASS_ARROW, ITEM_SUBCLASS_BULLET, ITEM_SUBCLASS_WEAPON_BOW, ITEM_SUBCLASS_WEAPON_CROSSBOW, ITEM_SUBCLASS_WEAPON_GUN, ITEM_SUBCLASS_WEAPON_THROWN, ITEM_SUBCLASS_WEAPON_WAND, LootTemplates_Milling, LootTemplates_Prospecting, m_attackType, m_caster, m_CastItem, m_castItemGUID, m_spellInfo, m_targets, MAX_ITEM_ENCHANTMENT_EFFECTS, MAX_ITEM_PROTO_SOCKETS, MAX_ITEM_PROTO_SPELLS, MAX_POWERS, MAX_SPELL_REAGENTS, SpellInfo::MaxLevel, NULL_BAG, NULL_SLOT, OFF_ATTACK, PLAYER_AMMO_ID, PRISMATIC_ENCHANTMENT_SLOT, RANGED_ATTACK, SpellInfo::Reagent, SpellInfo::ReagentCount, Player::SendEquipError(), Object::SetUInt32Value(), SKILL_ENCHANTING, SKILL_INSCRIPTION, SKILL_JEWELCRAFTING, sObjectMgr, SPELL_ATTR2_ALLOW_LOW_LEVEL_BUFF, SPELL_ATTR3_MAIN_HAND, SPELL_ATTR3_REQ_OFFHAND, SPELL_CAST_OK, SPELL_EFFECT_CREATE_ITEM, SPELL_EFFECT_CREATE_ITEM_2, SPELL_EFFECT_CREATE_MANA_GEM, SPELL_EFFECT_DISENCHANT, SPELL_EFFECT_ENCHANT_HELD_ITEM, SPELL_EFFECT_ENCHANT_ITEM, SPELL_EFFECT_ENCHANT_ITEM_PRISMATIC, SPELL_EFFECT_ENCHANT_ITEM_TEMPORARY, SPELL_EFFECT_ENERGIZE, SPELL_EFFECT_HEAL, SPELL_EFFECT_MILLING, SPELL_EFFECT_PROSPECTING, SPELL_EFFECT_WEAPON_DAMAGE, SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL, SPELL_FAILED_ALREADY_AT_FULL_HEALTH, SPELL_FAILED_ALREADY_AT_FULL_POWER, SPELL_FAILED_CANT_BE_DISENCHANTED, SPELL_FAILED_CANT_BE_MILLED, SPELL_FAILED_CANT_BE_PROSPECTED, SPELL_FAILED_DONT_REPORT, SPELL_FAILED_EQUIPPED_ITEM, SPELL_FAILED_EQUIPPED_ITEM_CLASS, SPELL_FAILED_ERROR, SPELL_FAILED_HIGHLEVEL, SPELL_FAILED_ITEM_AT_MAX_CHARGES, SPELL_FAILED_ITEM_GONE, SPELL_FAILED_ITEM_NOT_FOUND, SPELL_FAILED_ITEM_NOT_READY, SPELL_FAILED_LOW_CASTLEVEL, SPELL_FAILED_LOWLEVEL, SPELL_FAILED_MAX_SOCKETS, SPELL_FAILED_NEED_MORE_ITEMS, SPELL_FAILED_NO_AMMO, SPELL_FAILED_NO_CHARGES_REMAIN, SPELL_FAILED_NOT_TRADEABLE, SPELL_FAILED_ON_USE_ENCHANT, SPELL_FAILED_REAGENTS, SPELL_FAILED_TOO_MANY_OF_ITEM, SPELL_FAILED_TOTEM_CATEGORY, SPELL_FAILED_TOTEMS, SPELLFAMILY_MAGE, SpellInfo::SpellFamilyFlags, SpellInfo::SpellFamilyName, sSpellItemEnchantmentStore, TARGET_UNIT_PET, Object::ToPlayer(), SpellInfo::Totem, SpellInfo::TotemCategory, TRIGGERED_IGNORE_EQUIPPED_ITEM_REQUIREMENT, TRIGGERED_IGNORE_POWER_AND_REAGENT_COST, and TYPEID_PLAYER.

Referenced by CheckCast().

◆ CheckMovement()

◆ CheckPetCast()

◆ CheckPower()

◆ CheckRange()

◆ CheckRuneCost()

◆ CheckScriptEffectImplicitTargets()

bool Spell::CheckScriptEffectImplicitTargets ( uint32  effIndex,
uint32  effIndexToCheck 
)
protected

Definition at line 8154 of file Spell.cpp.

References m_loadedScripts, and m_spellInfo.

Referenced by SelectSpellTargets().

◆ CheckSpellCancelsAuraEffect()

◆ CheckSpellCancelsCharm()

bool Spell::CheckSpellCancelsCharm ( uint32 *  param1) const

◆ CheckSpellCancelsConfuse()

bool Spell::CheckSpellCancelsConfuse ( uint32 *  param1) const

Definition at line 6393 of file Spell.cpp.

References CheckSpellCancelsAuraEffect(), and SPELL_AURA_MOD_CONFUSE.

Referenced by CheckCasterAuras().

◆ CheckSpellCancelsFear()

bool Spell::CheckSpellCancelsFear ( uint32 *  param1) const

Definition at line 6388 of file Spell.cpp.

References CheckSpellCancelsAuraEffect(), and SPELL_AURA_MOD_FEAR.

Referenced by CheckCasterAuras().

◆ CheckSpellCancelsPacify()

bool Spell::CheckSpellCancelsPacify ( uint32 *  param1) const

◆ CheckSpellCancelsSilence()

bool Spell::CheckSpellCancelsSilence ( uint32 *  param1) const

◆ CheckSpellCancelsStun()

bool Spell::CheckSpellCancelsStun ( uint32 *  param1) const

Definition at line 6370 of file Spell.cpp.

References CheckSpellCancelsAuraEffect(), SPELL_AURA_MOD_STUN, and SPELL_AURA_STRANGULATE.

Referenced by CheckCasterAuras().

◆ CheckSrc()

void Spell::CheckSrc ( )

◆ CleanupTargetList()

void Spell::CleanupTargetList ( )

◆ Delayed()

◆ DelayedChannel()

◆ DoCreateItem()

◆ DoEffectOnLaunchTarget()

◆ DoProcessTargetContainer()

template<class Container >
void Spell::DoProcessTargetContainer ( Container &  targetContainer)
protected

Definition at line 3634 of file Spell.cpp.

References SpellInfo::GetEffects(), and m_spellInfo.

Referenced by _handle_immediate_phase(), handle_delayed(), and handle_immediate().

◆ DoSpellEffectHit()

void Spell::DoSpellEffectHit ( Unit *  unit,
SpellEffectInfo const &  spellEffectInfo,
TargetInfo &  targetInfo 
)
protected

◆ DoTriggersOnSpellHit()

void Spell::DoTriggersOnSpellHit ( Unit *  unit,
uint8  effMask 
)
protected

◆ EffectActivateObject()

◆ EffectActivateRune()

◆ EffectActivateSpec()

◆ EffectAddComboPoints()

void Spell::EffectAddComboPoints ( )

◆ EffectAddExtraAttacks()

◆ EffectAddFarsight()

◆ EffectAddHonor()

◆ EffectApplyAura()

◆ EffectApplyGlyph()

◆ EffectBind()

◆ EffectBlock()

◆ EffectCastButtons()

◆ EffectCharge()

◆ EffectChargeDest()

◆ EffectCreateItem()

◆ EffectCreateItem2()

◆ EffectCreateRandomItem()

void Spell::EffectCreateRandomItem ( )
Todo:
ExecuteLogEffectCreateItem(effectInfo->EffectIndex, effectInfo->ItemType);

Definition at line 1535 of file SpellEffects.cpp.

References Player::AutoStoreLoot(), effectHandleMode, Object::GetTypeId(), SpellInfo::Id, LootTemplates_Spell, m_spellInfo, SPELL_EFFECT_HANDLE_HIT_TARGET, Object::ToPlayer(), TYPEID_PLAYER, and unitTarget.

◆ EffectCreateTamedPet()

◆ EffectDestroyAllTotems()

◆ EffectDiscoverTaxi()

◆ EffectDisEnchant()

◆ EffectDismissPet()

◆ EffectDispel()

◆ EffectDispelMechanic()

◆ EffectDistract()

◆ EffectDualWield()

void Spell::EffectDualWield ( )

◆ EffectDuel()

◆ EffectDummy()

◆ EffectDurabilityDamage()

◆ EffectDurabilityDamagePCT()

◆ EffectEnchantHeldItem()

◆ EffectEnchantItemPerm()

◆ EffectEnchantItemPrismatic()

◆ EffectEnchantItemTmp()

◆ EffectEnergize()

◆ EffectEnergizePct()

◆ EffectEnvironmentalDMG()

◆ EffectFeedPet()

◆ EffectForceCast()

◆ EffectForceDeselect()

◆ EffectGameObjectDamage()

◆ EffectGameObjectRepair()

void Spell::EffectGameObjectRepair ( )

◆ EffectGameObjectSetDestructionState()

void Spell::EffectGameObjectSetDestructionState ( )

◆ EffectHeal()

◆ EffectHealMaxHealth()

◆ EffectHealMechanical()

◆ EffectHealPct()

◆ EffectHealthLeech()

◆ EffectInebriate()

◆ EffectInstaKill()

◆ EffectInterruptCast()

◆ EffectJump()

◆ EffectJumpDest()

◆ EffectKillCredit()

◆ EffectKillCreditPersonal()

◆ EffectKnockBack()

◆ EffectLeap()

◆ EffectLeapBack()

◆ EffectLearnPetSpell()

◆ EffectLearnSkill()

◆ EffectLearnSpell()

◆ EffectMilling()

◆ EffectModifyThreatPercent()

◆ EffectNULL()

void Spell::EffectNULL ( )

Definition at line 233 of file SpellEffects.cpp.

References TC_LOG_DEBUG.

Referenced by EffectPull().

◆ EffectOpenLock()

◆ EffectParry()

◆ EffectPersistentAA()

◆ EffectPickPocket()

◆ EffectPlayMusic()

◆ EffectPlaySound()

◆ EffectPowerBurn()

◆ EffectPowerDrain()

◆ EffectProficiency()

◆ EffectProspecting()

◆ EffectPull()

void Spell::EffectPull ( )
Todo:
create a proper pull towards distract spell center for distract

Definition at line 2369 of file SpellEffects.cpp.

References EffectNULL().

◆ EffectPullTowards()

◆ EffectPullTowardsDest()

◆ EffectQuestClear()

◆ EffectQuestComplete()

◆ EffectQuestFail()

◆ EffectQuestStart()

◆ EffectRechargeManaGem()

◆ EffectRedirectThreat()

◆ EffectRemoveAura()

◆ EffectRenamePet()

◆ EffectReputation()

◆ EffectResurrect()

◆ EffectResurrectNew()

◆ EffectResurrectPet()

◆ EffectSanctuary()

◆ EffectSchoolDMG()

void Spell::EffectSchoolDMG ( )
Todo:
should this be put on taken but not done?

Definition at line 322 of file SpellEffects.cpp.

References AddPct(), CastSpellExtraArgs::AddSpellMod(), WorldObject::ApplyEffectModifiers(), ApplyPct(), ASSERT, AURA_STATE_CONFLAGRATE, BASE_ATTACK, Unit::CalculateMinMaxDamage(), CalculatePct(), WorldObject::CalculateSpellDamage(), SpellEffectInfo::CalcValue(), WorldObject::CastSpell(), SpellEffectInfo::ChainAmplitude, damage, EFFECT_1, EFFECT_2, SpellValue::EffectBasePoints, effectHandleMode, SpellEffectInfo::EffectIndex, effectInfo, FORM_SHADOW, AuraEffect::GetAmount(), Unit::GetAttackTime(), Unit::GetAuraEffect(), Unit::GetAuraEffectsByType(), SpellInfo::GetCategory(), Unit::GetComboPoints(), Unit::GetDummyAuraEffect(), SpellInfo::GetEffect(), Object::GetGUID(), AuraEffect::GetId(), Unit::GetLevel(), SpellInfo::GetMaxTicks(), WorldObject::GetOwner(), Unit::GetShapeshiftForm(), Unit::GetShieldBlockValue(), AuraEffect::GetSpellInfo(), Unit::GetTotalAttackPowerValue(), Object::GetTypeId(), GetUnitCasterForEffectHandlers(), GetUnitTargetCountForEffect(), SpellInfo::HasAttribute(), Unit::HasAura(), Unit::HasAuraState(), SpellInfo::Id, IN_MILLISECONDS, irand(), Unit::IsAlive(), Unit::IsPet(), m_damage, m_spellInfo, m_spellValue, MAX_ITEM_PROTO_DAMAGES, MAXDAMAGE, MINDAMAGE, Unit::ModifyPower(), POWER_ENERGY, RANGED_ATTACK, Unit::RemoveAuraFromStack(), Unit::RemoveAurasDueToSpell(), roll_chance_i(), SPELL_ATTR0_CU_SHARE_DAMAGE, SPELL_AURA_ADD_FLAT_MODIFIER, SPELL_AURA_MOD_AURA_DURATION_BY_DISPEL_NOT_STACK, SPELL_AURA_MOD_DECREASE_SPEED, SPELL_AURA_PERIODIC_DAMAGE, SPELL_DIRECT_DAMAGE, SPELL_EFFECT_HANDLE_LAUNCH_TARGET, Unit::SpellDamageBonusDone(), Unit::SpellDamageBonusTaken(), SPELLFAMILY_DEATHKNIGHT, SPELLFAMILY_DRUID, SPELLFAMILY_GENERIC, SPELLFAMILY_HUNTER, SPELLFAMILY_PALADIN, SPELLFAMILY_PRIEST, SPELLFAMILY_ROGUE, SPELLFAMILY_WARLOCK, SPELLFAMILY_WARRIOR, SpellInfo::SpellFamilyFlags, SpellInfo::SpellFamilyName, SpellInfo::SpellIconID, SPELLVALUE_BASE_POINT0, SpellInfo::SpellVisual, SpellInfo::TargetAuraState, Object::ToPlayer(), TRIGGERED_FULL_MASK, TYPEID_PLAYER, TYPEID_UNIT, and unitTarget.

◆ EffectScriptEffect()

◆ EffectSelfResurrect()

◆ EffectSendEvent()

◆ EffectSendTaxi()

◆ EffectSkill()

void Spell::EffectSkill ( )

Definition at line 4839 of file SpellEffects.cpp.

References effectHandleMode, SPELL_EFFECT_HANDLE_HIT, and TC_LOG_DEBUG.

◆ EffectSkinning()

◆ EffectSkinPlayerCorpse()

◆ EffectSpecCount()

◆ EffectSpiritHeal()

void Spell::EffectSpiritHeal ( )

Definition at line 4851 of file SpellEffects.cpp.

References effectHandleMode, and SPELL_EFFECT_HANDLE_HIT_TARGET.

◆ EffectStealBeneficialBuff()

◆ EffectStuck()

◆ EffectSummonChangeItem()

◆ EffectSummonObject()

◆ EffectSummonObjectWild()

◆ EffectSummonPet()

◆ EffectSummonPlayer()

◆ EffectSummonRaFFriend()

◆ EffectSummonType()

void Spell::EffectSummonType ( )

Definition at line 2018 of file SpellEffects.cpp.

References CastSpellExtraArgs::AddSpellMod(), SpellEffectInfo::CalcRadius(), SpellEffectInfo::CalcValue(), WorldObject::CastSpell(), SummonPropertiesEntry::Control, Unit::CountPctFromMaxHealth(), damage, destTarget, effectHandleMode, SpellEffectInfo::EffectIndex, effectInfo, ExecuteLogEffectSummonObject(), SummonPropertiesEntry::Faction, SummonPropertiesEntry::Flags, Creature::GetCreatureTemplate(), SpellInfo::GetDuration(), WorldObject::GetFaction(), Unit::GetFaction(), Object::GetGUID(), WorldObject::GetMap(), WorldObject::GetPrivateObjectOwner(), WorldObject::GetRandomPoint(), WorldObject::GetSpellModOwner(), GetUnitCasterForEffectHandlers(), SpellInfo::HasAura(), Unit::HasUnitTypeMask(), SpellInfo::Id, SummonPropertiesEntry::ID, WorldObject::IsPrivateObject(), Unit::IsTotem(), Unit::IsVehicle(), m_caster, m_originalCaster, m_spellInfo, MAX_VEHICLE_SEATS, SpellEffectInfo::MiscValue, SpellEffectInfo::MiscValueB, CreatureTemplate::npcflag, Unit::ReplaceAllNpcFlags(), Creature::SelectLevel(), Unit::SetCreatorGUID(), Unit::SetFaction(), Unit::SetHealth(), Creature::SetImmuneToAll(), Unit::SetMaxHealth(), Unit::SetOwnerGUID(), SPELL_AURA_CONTROL_VEHICLE, SPELL_EFFECT_HANDLE_HIT, SPELLMOD_DURATION, SPELLVALUE_BASE_POINT0, sSpellMgr, sSummonPropertiesStore, SUMMON_CATEGORY_ALLY, SUMMON_CATEGORY_PET, SUMMON_CATEGORY_PUPPET, SUMMON_CATEGORY_UNK, SUMMON_CATEGORY_VEHICLE, SUMMON_CATEGORY_WILD, SUMMON_PROP_FLAG_PERSONAL_SPAWN, SUMMON_TYPE_GUARDIAN, SUMMON_TYPE_GUARDIAN2, SUMMON_TYPE_LIGHTWELL, SUMMON_TYPE_MINION, SUMMON_TYPE_MINIPET, SUMMON_TYPE_PET, SUMMON_TYPE_TOTEM, SUMMON_TYPE_VEHICLE, SUMMON_TYPE_VEHICLE2, Map::SummonCreature(), WorldObject::SummonCreature(), SummonGuardian(), TC_LOG_ERROR, TEMPSUMMON_DEAD_DESPAWN, TEMPSUMMON_TIMED_DESPAWN, SummonPropertiesEntry::Title, TRIGGERED_FULL_MASK, UNIT_MASK_MINION, and VEHICLE_SPELL_RIDE_HARDCODED.

◆ EffectTameCreature()

◆ EffectTaunt()

◆ EffectTeleportUnits()

◆ EffectTeleUnitsFaceCaster()

◆ EffectThreat()

◆ EffectTitanGrip()

◆ EffectTradeSkill()

void Spell::EffectTradeSkill ( )

◆ EffectTransmitted()

◆ EffectTriggerMissileSpell()

◆ EffectTriggerRitualOfSummoning()

◆ EffectTriggerSpell()

◆ EffectUnlearnSpecialization()

◆ EffectUntrainTalents()

◆ EffectUnused()

void Spell::EffectUnused ( )

Definition at line 238 of file SpellEffects.cpp.

◆ EffectWeaponDmg()

void Spell::EffectWeaponDmg ( )

Definition at line 2995 of file SpellEffects.cpp.

References AddComboPointGain(), AddPct(), ApplyPct(), AURA_STATE_BLEEDING, AURA_STATE_DEADLY_POISON, BASE_ATTACK, CalculateDamage(), Unit::CalculateDamage(), SpellEffectInfo::CalcValue(), WorldObject::CastSpell(), DISPEL_POISON, SpellEffectInfo::Effect, EFFECT_0, EFFECT_1, EFFECT_2, effectHandleMode, SpellEffectInfo::EffectIndex, effectInfo, Unit::GetAppliedAuras(), Unit::GetAura(), Unit::GetAuraEffect(), Unit::GetDiseasesByCaster(), Unit::GetDummyAuraEffect(), SpellInfo::GetEffect(), SpellInfo::GetEffects(), Object::GetGUID(), Unit::GetPctModifierValue(), Unit::GetPower(), SpellInfo::GetSchoolMask(), WorldObject::GetSpellModOwner(), Unit::GetTotalAttackPowerValue(), Object::GetTypeId(), GetUnitCasterForEffectHandlers(), Player::GetWeaponForAttack(), SpellInfo::HasAttribute(), Unit::HasAura(), Unit::HasAuraState(), Unit::HasAuraType(), SpellInfo::Id, Unit::IsAlive(), Unit::IsImmunedToSpellEffect(), Unit::IsScriptOverriden(), ITEM_SUBCLASS_WEAPON_DAGGER, m_attackType, m_damage, m_spellInfo, m_spellSchoolMask, Unit::MeleeDamageBonusDone(), Unit::MeleeDamageBonusTaken(), OFF_ATTACK, POWER_RUNIC_POWER, RANGED_ATTACK, roll_chance_i(), SPELL_ATTR6_LIMIT_PCT_DAMAGE_MODS, SPELL_AURA_MOD_DECREASE_SPEED, SPELL_EFFECT_HANDLE_LAUNCH_TARGET, SPELL_EFFECT_NORMALIZED_WEAPON_DMG, SPELL_EFFECT_WEAPON_DAMAGE, SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL, SPELL_EFFECT_WEAPON_PERCENT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, Unit::SpellBaseDamageBonusDone(), SPELLFAMILY_DEATHKNIGHT, SPELLFAMILY_DRUID, SPELLFAMILY_HUNTER, SPELLFAMILY_PALADIN, SPELLFAMILY_ROGUE, SPELLFAMILY_SHAMAN, SPELLFAMILY_WARRIOR, SpellInfo::SpellFamilyFlags, SpellInfo::SpellFamilyName, SpellInfo::SpellIconID, SPELLMOD_DAMAGE, Object::ToPlayer(), TOTAL_PCT, TYPEID_PLAYER, UNIT_MOD_DAMAGE_MAINHAND, UNIT_MOD_DAMAGE_OFFHAND, UNIT_MOD_DAMAGE_RANGED, and unitTarget.

◆ ExecuteLogEffectCreateItem()

void Spell::ExecuteLogEffectCreateItem ( uint8  effIndex,
uint32  entry 
)

Definition at line 4600 of file Spell.cpp.

References InitEffectExecuteData(), and m_effectExecuteData.

Referenced by EffectCreateItem().

◆ ExecuteLogEffectDestroyItem()

void Spell::ExecuteLogEffectDestroyItem ( uint8  effIndex,
uint32  entry 
)

Definition at line 4606 of file Spell.cpp.

References InitEffectExecuteData(), and m_effectExecuteData.

Referenced by EffectFeedPet().

◆ ExecuteLogEffectDurabilityDamage()

void Spell::ExecuteLogEffectDurabilityDamage ( uint8  effIndex,
Unit *  victim,
int32  itemId,
int32  slot 
)

Definition at line 4586 of file Spell.cpp.

References Object::GetPackGUID(), InitEffectExecuteData(), and m_effectExecuteData.

Referenced by EffectDurabilityDamage().

◆ ExecuteLogEffectExtraAttacks()

void Spell::ExecuteLogEffectExtraAttacks ( uint8  effIndex,
Unit *  victim,
uint32  attCount 
)

Definition at line 4572 of file Spell.cpp.

References Object::GetPackGUID(), InitEffectExecuteData(), and m_effectExecuteData.

Referenced by EffectAddExtraAttacks().

◆ ExecuteLogEffectInterruptCast()

void Spell::ExecuteLogEffectInterruptCast ( uint8  effIndex,
Unit *  victim,
uint32  spellId 
)

Definition at line 4579 of file Spell.cpp.

References Object::GetPackGUID(), InitEffectExecuteData(), and m_effectExecuteData.

Referenced by EffectInterruptCast().

◆ ExecuteLogEffectOpenLock()

void Spell::ExecuteLogEffectOpenLock ( uint8  effIndex,
Object *  obj 
)

Definition at line 4594 of file Spell.cpp.

References Object::GetPackGUID(), InitEffectExecuteData(), and m_effectExecuteData.

Referenced by EffectOpenLock().

◆ ExecuteLogEffectResurrect()

void Spell::ExecuteLogEffectResurrect ( uint8  effIndex,
Unit *  target 
)

◆ ExecuteLogEffectSummonObject()

void Spell::ExecuteLogEffectSummonObject ( uint8  effIndex,
WorldObject *  obj 
)

◆ ExecuteLogEffectTakeTargetPower()

void Spell::ExecuteLogEffectTakeTargetPower ( uint8  effIndex,
Unit *  target,
uint32  powerType,
uint32  powerTaken,
float  gainMultiplier 
)

Definition at line 4563 of file Spell.cpp.

References Object::GetPackGUID(), InitEffectExecuteData(), and m_effectExecuteData.

Referenced by EffectPowerBurn(), and EffectPowerDrain().

◆ ExecuteLogEffectUnsummonObject()

void Spell::ExecuteLogEffectUnsummonObject ( uint8  effIndex,
WorldObject *  obj 
)

Definition at line 4618 of file Spell.cpp.

References Object::GetPackGUID(), InitEffectExecuteData(), and m_effectExecuteData.

Referenced by EffectDismissPet().

◆ finish()

◆ FinishTargetProcessing()

void Spell::FinishTargetProcessing ( )
protected

Definition at line 7913 of file Spell.cpp.

References SendLogExecute().

Referenced by handle_immediate(), and HandleLaunchPhase().

◆ GetCaster()

◆ GetCastTime()

int32 Spell::GetCastTime ( ) const
inline

◆ GetCurrentContainer()

◆ GetDebugInfo()

std::string Spell::GetDebugInfo ( ) const

◆ GetDelayMoment()

uint64 Spell::GetDelayMoment ( ) const
inline

Definition at line 447 of file Spell.h.

Referenced by SpellEvent::Execute().

◆ GetDelayStart()

uint64 Spell::GetDelayStart ( ) const
inline

Definition at line 445 of file Spell.h.

Referenced by SpellEvent::Execute(), and RecalculateDelayMomentForDst().

◆ GetGameObjectTargetCountForEffect()

int64 Spell::GetGameObjectTargetCountForEffect ( SpellEffIndex  effect) const

Definition at line 2394 of file Spell.cpp.

References m_UniqueGOTargetInfo.

Referenced by SpellScript::GetGameObjectTargetCountForEffect().

◆ GetItemTargetCountForEffect()

int64 Spell::GetItemTargetCountForEffect ( SpellEffIndex  effect) const

Definition at line 2402 of file Spell.cpp.

References m_UniqueItemInfo.

Referenced by SpellScript::GetItemTargetCountForEffect().

◆ GetMinMaxRange()

◆ GetOriginalCaster()

Unit * Spell::GetOriginalCaster ( ) const
inline

Definition at line 458 of file Spell.h.

Referenced by SpellScript::GetOriginalCaster().

◆ GetPowerCost()

int32 Spell::GetPowerCost ( ) const
inline

Definition at line 460 of file Spell.h.

◆ GetRuneState()

uint8 Spell::GetRuneState ( ) const
inline

Definition at line 450 of file Spell.h.

◆ GetSearcherTypeMask()

◆ GetSpellInfo()

◆ getState()

◆ GetUnitCasterForEffectHandlers()

◆ GetUnitTargetCountForEffect()

int64 Spell::GetUnitTargetCountForEffect ( SpellEffIndex  effect) const

◆ GetWeakPtr()

Trinity::unique_weak_ptr< Spell > Spell::GetWeakPtr ( ) const

Definition at line 8314 of file Spell.cpp.

References _spellEvent, and SpellEvent::GetSpellWeakPtr().

◆ handle_delayed()

◆ handle_immediate()

◆ HandleEffects()

◆ HandleLaunchPhase()

◆ HandleThreatSpells()

◆ HasGlobalCooldown()

bool Spell::HasGlobalCooldown ( ) const
protected

◆ InitEffectExecuteData()

◆ InitExplicitTargets()

◆ IsAutoActionResetSpell()

bool Spell::IsAutoActionResetSpell ( ) const
Todo:
changed SPELL_INTERRUPT_FLAG_AUTOATTACK -> SPELL_INTERRUPT_FLAG_INTERRUPT to fix compile - is this check correct at all?

Definition at line 7528 of file Spell.cpp.

References SpellInfo::HasAttribute(), SpellInfo::InterruptFlags, IsTriggered(), m_casttime, m_spellInfo, SPELL_ATTR6_NOT_RESET_SWING_IF_INSTANT, and SPELL_INTERRUPT_FLAG_INTERRUPT.

Referenced by finish().

◆ IsAutoRepeat()

bool Spell::IsAutoRepeat ( ) const
inline

Definition at line 428 of file Spell.h.

Referenced by CheckCast(), GetCurrentContainer(), prepare(), and update().

◆ IsChannelActive()

bool Spell::IsChannelActive ( ) const

Definition at line 7523 of file Spell.cpp.

References Unit::GetChannelSpellId(), Object::IsUnit(), m_caster, and Object::ToUnit().

◆ IsDelayableNoMore()

bool Spell::IsDelayableNoMore ( )
inlineprotected

Definition at line 509 of file Spell.h.

Referenced by Delayed(), and DelayedChannel().

◆ IsDeletable()

bool Spell::IsDeletable ( ) const
inline

Definition at line 441 of file Spell.h.

Referenced by SpellEvent::Execute(), SpellEvent::IsDeletable(), and SpellEvent::~SpellEvent().

◆ IsFocusDisabled()

◆ IsIgnoringCooldowns()

bool Spell::IsIgnoringCooldowns ( ) const

◆ IsInterruptable()

bool Spell::IsInterruptable ( ) const
inline

Definition at line 443 of file Spell.h.

Referenced by Unit::InterruptSpell().

◆ IsNeedSendToClient()

bool Spell::IsNeedSendToClient ( ) const

◆ IsPositive()

◆ IsProcDisabled()

bool Spell::IsProcDisabled ( ) const

Definition at line 7518 of file Spell.cpp.

References _triggeredCastFlags, and TRIGGERED_DISALLOW_PROC_EVENTS.

Referenced by Unit::TriggerAurasProcOnEvent().

◆ IsTriggered()

◆ IsTriggeredByAura()

bool Spell::IsTriggeredByAura ( SpellInfo const *  auraSpellInfo) const
inline

Definition at line 439 of file Spell.h.

◆ IsValidDeadOrAliveTarget()

bool Spell::IsValidDeadOrAliveTarget ( Unit const *  target) const
protected

◆ LoadScripts()

void Spell::LoadScripts ( )
protected

Definition at line 7941 of file Spell.cpp.

References SpellInfo::Id, m_loadedScripts, m_spellInfo, sScriptMgr, and TC_LOG_DEBUG.

Referenced by prepare().

◆ operator=()

Spell & Spell::operator= ( Spell const &  right)
protecteddelete

◆ prepare()

SpellCastResult Spell::prepare ( SpellCastTargets const &  targets,
AuraEffect const *  triggeredByAura = nullptr 
)

@todoApply this to all cast spells if needed

m_spellInfo->StartRecoveryTime &&

Definition at line 3091 of file Spell.cpp.

References _spellEvent, _triggeredCastFlags, EventProcessor::AddEvent(), AURA_INTERRUPT_FLAG_CAST, AURA_INTERRUPT_FLAG_SPELL_ATTACK, SpellInfo::CalcCastTime(), SpellInfo::CalcPowerCost(), EventProcessor::CalculateTime(), CanStopMovementForSpellCasting(), cast(), CHEAT_CASTTIME, CheckCast(), CheckMovement(), ObjectGuid::Clear(), CURRENT_GENERIC_SPELL, DISABLE_TYPE_SPELL, SpellValue::EffectBasePoints, finish(), AuraEffect::GetBase(), GetCurrentContainer(), MotionMaster::GetCurrentMovementGeneratorType(), SpellInfo::GetEffects(), Object::GetEntry(), Object::GetGUID(), SpellInfo::GetMaxDuration(), Unit::GetMotionMaster(), SpellCastTargets::GetObjectTarget(), AuraEffect::GetSpellInfo(), GetSpellInfo(), SpellCastTargets::GetTargetMask(), Unit::HasUnitFlag(), SpellInfo::Id, InitExplicitTargets(), IsAutoRepeat(), SpellInfo::IsBreakingStealth(), SpellInfo::IsChanneled(), Unit::IsControlledByPlayer(), Object::IsCreature(), DisableMgr::IsDisabledFor(), Unit::isMoving(), SpellInfo::IsNextMeleeSwingSpell(), Unit::IsNonMeleeSpellCast(), Aura::IsPassive(), SpellInfo::IsPassive(), AuraEffect::IsPeriodic(), SpellInfo::IsPositiveEffect(), Object::IsUnit(), LoadScripts(), m_auraScaleMask, m_cast_count, m_caster, m_CastItem, m_castItemEntry, m_castItemGUID, m_casttime, WorldObject::m_Events, m_needComboPoints, m_originalCaster, m_powerCost, m_spellInfo, m_spellSchoolMask, m_spellState, m_spellValue, m_targets, m_triggeredByAuraSpell, prepareDataForTriggerSystem(), ReSetTimer(), SendCastResult(), SendChannelUpdate(), SendSpellStart(), Aura::SetDuration(), Creature::SetSpellFocus(), SPELL_CAST_OK, SPELL_EFFECT_APPLY_AURA, SPELL_FAILED_BAD_TARGETS, SPELL_FAILED_SPELL_IN_PROGRESS, SPELL_FAILED_SPELL_UNAVAILABLE, SPELL_STATE_PREPARING, SpellInfo::SpellLevel, Unit::StopMoving(), TARGET_OBJECT_TYPE_UNIT, TC_LOG_DEBUG, Object::ToCreature(), Object::ToPlayer(), Object::ToUnit(), TRIGGERED_CAST_DIRECTLY, TRIGGERED_IGNORE_AURA_INTERRUPT_FLAGS, TRIGGERED_IGNORE_AURA_SCALING, TRIGGERED_IGNORE_CAST_IN_PROGRESS, TRIGGERED_IGNORE_COMBO_POINTS, TRIGGERED_IGNORE_GCD, TRIGGERED_IGNORE_SET_FACING, TRIGGERED_IGNORE_TARGET_CHECK, TriggerGlobalCooldown(), and UNIT_FLAG_POSSESSED.

Referenced by Unit::_UpdateAutoRepeatSpell(), Player::CastItemUseSpell(), WorldObject::CastSpell(), PlayerAI::DoRangedAttackIfReady(), EffectEnchantItemTmp(), WorldSession::HandleAcceptTradeOpcode(), WorldSession::HandleCastSpellOpcode(), WorldSession::HandlePetActionHelper(), WorldSession::HandlePetCastSpellOpcode(), and PetAI::UpdateAI().

◆ prepareDataForTriggerSystem()

◆ PrepareTargetProcessing()

void Spell::PrepareTargetProcessing ( )
protected

Definition at line 7908 of file Spell.cpp.

References AssertEffectExecuteData().

Referenced by handle_delayed(), handle_immediate(), and HandleLaunchPhase().

◆ PrepareTriggersExecutedOnHit()

void Spell::PrepareTriggersExecutedOnHit ( )
protected

◆ PreprocessSpellHit()

SpellMissInfo Spell::PreprocessSpellHit ( Unit *  unit,
bool  scaleAura,
TargetInfo &  targetInfo 
)
protected

Definition at line 2781 of file Spell.cpp.

References ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL2, ACHIEVEMENT_TIMED_TYPE_SPELL_CASTER, ACHIEVEMENT_TIMED_TYPE_SPELL_TARGET, Unit::ApplyDiminishingToDuration(), AURA_INTERRUPT_FLAG_HITBYSPELL, Spell::TargetInfo::AuraBasePoints, Spell::TargetInfo::AuraDuration, Spell::TargetInfo::AuraSpellInfo, Aura::BuildEffectMaskForOwner(), Aura::CalcMaxDuration(), DIMINISHING_LEVEL_1, Spell::TargetInfo::DRGroup, DRTYPE_ALL, DRTYPE_PLAYER, SpellEffectInfo::Effect, Spell::TargetInfoBase::EffectMask, ThreatManager::ForwardThreatForAssistingMe(), SpellInfo::GetAuraRankForLevel(), Unit::GetCharmerOrOwnerGUID(), WorldObject::GetCharmerOrOwnerPlayerOrPlayerItself(), Unit::GetCombatManager(), Unit::GetDiminishing(), SpellInfo::GetDiminishingReturnsGroupForSpell(), SpellInfo::GetDiminishingReturnsGroupType(), SpellInfo::GetEffect(), SpellInfo::GetEffects(), Object::GetGUID(), Unit::GetLevel(), Unit::GetThreatManager(), Object::GetTypeId(), SpellInfo::HasInitialAggro(), Unit::HasUnitFlag(), Unit::HasUnitState(), SpellInfo::Id, Unit::IncrDiminishing(), CombatManager::InheritCombatStatesFrom(), Unit::IsAffectedByDiminishingReturns(), WorldObject::IsFriendlyTo(), Unit::IsImmunedToSpell(), Unit::IsInCombat(), IsPositive(), SpellInfo::IsPositiveEffect(), WorldObject::IsValidAssistTarget(), WorldObject::IsValidAttackTarget(), m_caster, m_originalCaster, m_spellInfo, m_triggeredByAuraSpell, MAX_EFFECT_MASK, Spell::TargetInfo::Positive, Unit::RemoveAurasWithInterruptFlags(), SpellInfo::Speed, SPELL_MISS_EVADE, SPELL_MISS_IMMUNE, SPELL_MISS_NONE, Object::ToCreature(), Object::ToPlayer(), TYPEID_PLAYER, UNIT_FLAG_NON_ATTACKABLE, UNIT_FLAG_PLAYER_CONTROLLED, UNIT_STATE_ATTACK_PLAYER, and unitTarget.

Referenced by Spell::TargetInfo::PreprocessTarget().

◆ PreprocessSpellLaunch()

◆ RecalculateDelayMomentForDst()

◆ ReSetTimer()

void Spell::ReSetTimer ( )
inline

Definition at line 430 of file Spell.h.

Referenced by prepare().

◆ SearchAreaTargets()

void Spell::SearchAreaTargets ( std::list< WorldObject * > &  targets,
float  range,
Position const *  position,
WorldObject *  referer,
SpellTargetObjectTypes  objectType,
SpellTargetCheckTypes  selectionType,
ConditionContainer *  condList 
)

◆ SearchChainTargets()

◆ SearchNearbyTarget()

WorldObject * Spell::SearchNearbyTarget ( float  range,
SpellTargetObjectTypes  objectType,
SpellTargetCheckTypes  selectionType,
ConditionContainer *  condList = nullptr 
)

◆ SearchSpellFocus()

◆ SearchTargets()

template<class SEARCHER >
void Spell::SearchTargets ( SEARCHER &  searcher,
uint32  containerMask,
WorldObject *  referer,
Position const *  pos,
float  radius 
)

◆ SelectEffectImplicitTargets()

◆ SelectEffectTypeImplicitTargets()

◆ SelectExplicitTargets()

◆ SelectImplicitAreaTargets()

◆ SelectImplicitCasterDestTargets()

void Spell::SelectImplicitCasterDestTargets ( SpellEffectInfo const &  spellEffectInfo,
SpellImplicitTargetInfo const &  targetType 
)
Todo:
fix this check

Definition at line 1377 of file Spell.cpp.

References SpellDestination::_position, SpellImplicitTargetInfo::CalcDirectionAngle(), SpellEffectInfo::CalcRadius(), CallScriptDestinationTargetSelectHandlers(), DEFAULT_PLAYER_BOUNDING_RADIUS, SpellEffectInfo::EffectIndex, finish(), frand(), WorldObject::GetClosePoint(), WorldObject::GetCollisionHeight(), WorldObject::GetCombatReach(), Map::GetLiquidStatus(), WorldObject::GetMap(), WorldObject::GetMapHeight(), WorldLocation::GetMapId(), SpellInfo::GetMaxRange(), SpellInfo::GetMinRange(), SpellCastTargets::GetObjectTarget(), Position::GetOrientation(), WorldObject::GetPhaseMask(), SpellImplicitTargetInfo::GetTarget(), SpellInfo::HasEffect(), SpellEffectInfo::HasRadius(), SpellInfo::Id, LiquidData::level, m_caster, M_PI, m_spellInfo, m_targets, WorldObject::MovePositionToFirstCollision(), PET_FOLLOW_DIST, rand_norm(), SpellDestination::Relocate(), SendCastResult(), SendChannelUpdate(), SpellCastTargets::SetDst(), SPELL_EFFECT_BIND, SPELL_EFFECT_TELEPORT_UNITS, SPELL_FAILED_NOT_HERE, SPELL_FAILED_TOO_SHALLOW, sSpellMgr, TARGET_DEST_CASTER, TARGET_DEST_CASTER_BACK_LEFT, TARGET_DEST_CASTER_BACK_RIGHT, TARGET_DEST_CASTER_FISHING, TARGET_DEST_CASTER_FRONT_LEAP, TARGET_DEST_CASTER_FRONT_LEFT, TARGET_DEST_CASTER_FRONT_RIGHT, TARGET_DEST_CASTER_RANDOM, TARGET_DEST_CASTER_SUMMON, TARGET_DEST_DB, TARGET_DEST_HOME, TC_LOG_DEBUG, Object::ToPlayer(), Object::ToUnit(), and VMAP_INVALID_HEIGHT_VALUE.

Referenced by SelectEffectImplicitTargets().

◆ SelectImplicitCasterObjectTargets()

◆ SelectImplicitChainTargets()

◆ SelectImplicitChannelTargets()

◆ SelectImplicitConeTargets()

◆ SelectImplicitDestDestTargets()

◆ SelectImplicitNearbyTargets()

◆ SelectImplicitTargetDestTargets()

◆ SelectImplicitTargetObjectTargets()

◆ SelectImplicitTrajTargets()

◆ SelectSpellTargets()

◆ SendCastResult() [1/2]

◆ SendCastResult() [2/2]

◆ SendChannelStart()

◆ SendChannelUpdate()

◆ SendInterrupted()

◆ SendLogExecute()

◆ SendLoot()

◆ SendMountResult()

◆ SendPetCastResult()

◆ SendResurrectRequest()

◆ SendSpellCooldown()

void Spell::SendSpellCooldown ( )

◆ SendSpellGo()

void Spell::SendSpellGo ( )
Todo:
There is a crash caused by a spell with CAST_FLAG_RUNE_LIST cast by a creature

Definition at line 4282 of file Spell.cpp.

References _triggeredCastFlags, WorldPackets::Spells::SpellCastData::Ammo, ASSERT_NOTNULL, WorldPackets::Spells::SpellGo::Cast, CAST_FLAG_ADJUST_MISSILE, CAST_FLAG_AMMO, CAST_FLAG_NO_GCD, CAST_FLAG_PENDING, CAST_FLAG_POWER_LEFT_SELF, CAST_FLAG_RUNE_LIST, CAST_FLAG_UNKNOWN_9, WorldPackets::Spells::SpellCastData::CasterGUID, WorldPackets::Spells::SpellCastData::CasterUnit, WorldPackets::Spells::SpellCastData::CastFlags, WorldPackets::Spells::SpellCastData::CastID, WorldPackets::Spells::SpellCastData::CastTime, CLASS_DEATH_KNIGHT, WorldPackets::ServerPacket::Clear(), WorldPackets::Spells::SpellCastData::DestLocSpellCastIndex, Unit::GetClass(), GameTime::GetGameTimeMS(), Object::GetGUID(), SpellCastTargets::GetPitch(), SpellCastTargets::GetTargetMask(), Object::GetTypeId(), SpellInfo::HasAttribute(), SpellInfo::HasAura(), SpellInfo::HasEffect(), SpellCastTargets::HasTraj(), SpellInfo::Id, SpellInfo::IsAutoRepeatRangedSpell(), IsNeedSendToClient(), Unit::IsPet(), Object::IsPlayer(), IsTriggered(), m_cast_count, m_caster, m_CastItem, m_delayMoment, m_fromClient, m_runesState, m_spellInfo, m_targets, m_triggeredByAuraSpell, MAX_RUNES, WorldPackets::Spells::SpellCastData::MissileTrajectory, POWER_HEALTH, POWER_RUNE, SpellInfo::PowerType, WorldPackets::Array< T, N >::push_back(), WorldPackets::Spells::SpellCastData::RemainingPower, WorldPackets::Spells::SpellCastData::RemainingRunes, SpellInfo::RuneCostID, Player::SendDirectMessage(), WorldObject::SendMessageToSet(), SPELL_ATTR0_CU_NEEDS_AMMO_DATA, SPELL_ATTR0_REQ_AMMO, SPELL_AURA_CONVERT_RUNE, SPELL_EFFECT_ACTIVATE_RUNE, WorldPackets::Spells::SpellCastData::SpellID, SpellInfo::StartRecoveryTime, WorldPackets::Spells::SpellCastData::Target, TARGET_FLAG_DEST_LOCATION, TARGET_FLAG_UNUSED20, WorldPackets::Spells::SpellCastData::TargetPoints, Object::ToCreature(), Object::ToPlayer(), Object::ToUnit(), TRIGGERED_IGNORE_POWER_AND_REAGENT_COST, TYPEID_PLAYER, TYPEID_UNIT, UpdateSpellCastDataAmmo(), UpdateSpellCastDataTargets(), WorldPackets::Spells::SpellGo::Write(), and SpellCastTargets::Write().

Referenced by _cast().

◆ SendSpellStart()

◆ SetAutoRepeat()

void Spell::SetAutoRepeat ( bool  rep)
inline

Definition at line 429 of file Spell.h.

◆ SetDelayStart()

void Spell::SetDelayStart ( uint64  m_time)
inline

Definition at line 446 of file Spell.h.

Referenced by _cast(), and SpellEvent::Execute().

◆ SetExecutedCurrently()

void Spell::SetExecutedCurrently ( bool  yes)
inline

Definition at line 444 of file Spell.h.

Referenced by _cast().

◆ SetReferencedFromCurrent()

void Spell::SetReferencedFromCurrent ( bool  yes)
inline

◆ SetRuneState()

void Spell::SetRuneState ( uint8  value)
inline

Definition at line 451 of file Spell.h.

◆ SetSpellValue()

◆ setState()

void Spell::setState ( uint32  state)
inline

Definition at line 357 of file Spell.h.

◆ SummonGuardian()

◆ TakeAmmo()

◆ TakeCastItem()

◆ TakePower()

◆ TakeReagents()

◆ TakeRunePower()

◆ TriggerGlobalCooldown()

◆ update()

◆ UpdateChanneledTargetList()

◆ UpdateOriginalCasterPointer()

void Spell::UpdateOriginalCasterPointer ( )

◆ UpdatePointers()

◆ UpdateSpellCastDataAmmo()

◆ UpdateSpellCastDataTargets()

Friends And Related Symbol Documentation

◆ SpellScript

friend class SpellScript
friend

Definition at line 153 of file Spell.h.

Member Data Documentation

◆ _dynObjAura

DynObjAura* Spell::_dynObjAura
protected

◆ _spellAura

◆ _spellEvent

SpellEvent* Spell::_spellEvent
protected

Definition at line 708 of file Spell.h.

Referenced by GetWeakPtr(), prepare(), and RecalculateDelayMomentForDst().

◆ _triggeredCastFlags

◆ damage

◆ Data

uint32 Spell::Data

Definition at line 407 of file Spell.h.

Referenced by Player::CastItemUseSpell().

◆ destTarget

◆ effectHandleMode

SpellEffectHandleMode Spell::effectHandleMode
protected

Definition at line 538 of file Spell.h.

Referenced by EffectActivateObject(), EffectActivateRune(), EffectActivateSpec(), EffectAddComboPoints(), EffectAddExtraAttacks(), EffectAddFarsight(), EffectAddHonor(), EffectApplyAura(), EffectApplyGlyph(), EffectBind(), EffectBlock(), EffectCastButtons(), EffectCharge(), EffectChargeDest(), EffectCreateItem(), EffectCreateItem2(), EffectCreateRandomItem(), EffectCreateTamedPet(), EffectDestroyAllTotems(), EffectDiscoverTaxi(), EffectDisEnchant(), EffectDismissPet(), EffectDispel(), EffectDispelMechanic(), EffectDistract(), EffectDualWield(), EffectDuel(), EffectDummy(), EffectDurabilityDamage(), EffectDurabilityDamagePCT(), EffectEnchantHeldItem(), EffectEnchantItemPerm(), EffectEnchantItemPrismatic(), EffectEnchantItemTmp(), EffectEnergize(), EffectEnergizePct(), EffectEnvironmentalDMG(), EffectFeedPet(), EffectForceCast(), EffectForceDeselect(), EffectGameObjectDamage(), EffectGameObjectRepair(), EffectGameObjectSetDestructionState(), EffectHeal(), EffectHealMaxHealth(), EffectHealMechanical(), EffectHealPct(), EffectHealthLeech(), EffectInebriate(), EffectInstaKill(), EffectInterruptCast(), EffectJump(), EffectJumpDest(), EffectKillCredit(), EffectKillCreditPersonal(), EffectKnockBack(), EffectLeap(), EffectLeapBack(), EffectLearnPetSpell(), EffectLearnSkill(), EffectLearnSpell(), EffectMilling(), EffectModifyThreatPercent(), EffectOpenLock(), EffectParry(), EffectPersistentAA(), EffectPickPocket(), EffectPlayMusic(), EffectPlaySound(), EffectPowerBurn(), EffectPowerDrain(), EffectProficiency(), EffectProspecting(), EffectPullTowards(), EffectPullTowardsDest(), EffectQuestClear(), EffectQuestComplete(), EffectQuestFail(), EffectQuestStart(), EffectRechargeManaGem(), EffectRedirectThreat(), EffectRemoveAura(), EffectRenamePet(), EffectReputation(), EffectResurrect(), EffectResurrectNew(), EffectResurrectPet(), EffectSanctuary(), EffectSchoolDMG(), EffectScriptEffect(), EffectSelfResurrect(), EffectSendEvent(), EffectSendTaxi(), EffectSkill(), EffectSkinning(), EffectSkinPlayerCorpse(), EffectSpecCount(), EffectSpiritHeal(), EffectStealBeneficialBuff(), EffectStuck(), EffectSummonChangeItem(), EffectSummonObject(), EffectSummonObjectWild(), EffectSummonPet(), EffectSummonPlayer(), EffectSummonRaFFriend(), EffectSummonType(), EffectTameCreature(), EffectTaunt(), EffectTeleportUnits(), EffectTeleUnitsFaceCaster(), EffectThreat(), EffectTitanGrip(), EffectTradeSkill(), EffectTransmitted(), EffectTriggerMissileSpell(), EffectTriggerRitualOfSummoning(), EffectTriggerSpell(), EffectUnlearnSpecialization(), EffectUntrainTalents(), EffectWeaponDmg(), HandleEffects(), and Spell().

◆ effectInfo

SpellEffectInfo const* Spell::effectInfo
protected

Definition at line 539 of file Spell.h.

Referenced by EffectActivateObject(), EffectActivateRune(), EffectAddExtraAttacks(), EffectAddFarsight(), EffectApplyAura(), EffectApplyGlyph(), EffectBind(), EffectCastButtons(), EffectCreateItem(), EffectCreateItem2(), EffectCreateTamedPet(), EffectDiscoverTaxi(), EffectDismissPet(), EffectDispel(), EffectDispelMechanic(), EffectDuel(), EffectDummy(), EffectDurabilityDamage(), EffectDurabilityDamagePCT(), EffectEnchantHeldItem(), EffectEnchantItemPerm(), EffectEnchantItemPrismatic(), EffectEnchantItemTmp(), EffectEnergize(), EffectEnergizePct(), EffectFeedPet(), EffectForceCast(), EffectGameObjectSetDestructionState(), EffectHeal(), EffectHealMechanical(), EffectHealPct(), EffectHealthLeech(), EffectInterruptCast(), EffectJump(), EffectJumpDest(), EffectKillCredit(), EffectKillCreditPersonal(), EffectKnockBack(), EffectLeapBack(), EffectLearnPetSpell(), EffectLearnSkill(), EffectLearnSpell(), EffectOpenLock(), EffectPersistentAA(), EffectPlayMusic(), EffectPlaySound(), EffectPowerBurn(), EffectPowerDrain(), EffectPullTowards(), EffectPullTowardsDest(), EffectQuestClear(), EffectQuestComplete(), EffectQuestFail(), EffectQuestStart(), EffectRechargeManaGem(), EffectRemoveAura(), EffectReputation(), EffectResurrect(), EffectResurrectNew(), EffectSchoolDMG(), EffectScriptEffect(), EffectSelfResurrect(), EffectSendEvent(), EffectSendTaxi(), EffectStealBeneficialBuff(), EffectSummonChangeItem(), EffectSummonObject(), EffectSummonObjectWild(), EffectSummonPet(), EffectSummonRaFFriend(), EffectSummonType(), EffectTitanGrip(), EffectTransmitted(), EffectTriggerMissileSpell(), EffectTriggerRitualOfSummoning(), EffectTriggerSpell(), EffectUnlearnSpecialization(), EffectWeaponDmg(), SpellScript::GetEffectInfo(), HandleEffects(), and Spell().

◆ focusObject

◆ gameObjTarget

◆ GlyphSlot

uint32 Spell::GlyphSlot

Definition at line 405 of file Spell.h.

◆ itemTarget

◆ m_appliedMods

◆ m_applyMultiplierMask

uint8 Spell::m_applyMultiplierMask
protected

◆ m_attackType

◆ m_auraScaleMask

uint8 Spell::m_auraScaleMask
protected

Definition at line 716 of file Spell.h.

Referenced by AddUnitTarget(), prepare(), SelectSpellTargets(), and Spell().

◆ m_autoRepeat

bool Spell::m_autoRepeat
protected

Definition at line 505 of file Spell.h.

Referenced by cancel(), and Spell().

◆ m_canReflect

bool Spell::m_canReflect
protected

Definition at line 504 of file Spell.h.

Referenced by AddUnitTarget(), and Spell().

◆ m_cast_count

◆ m_caster

WorldObject* const Spell::m_caster
protected

Definition at line 490 of file Spell.h.

Referenced by _cast(), _handle_finish_phase(), AddCorpseTarget(), AddGOTarget(), AddUnitTarget(), CalculateDamage(), CalculateDelayMomentForDst(), cancel(), CancelGlobalCooldown(), CanOpenLock(), cast(), CheckCast(), CheckCasterAuras(), CheckDst(), CheckEffectTarget(), CheckItems(), CheckPetCast(), CheckPower(), CheckRange(), CheckRuneCost(), CheckSpellCancelsAuraEffect(), CheckSrc(), Delayed(), DelayedChannel(), Spell::TargetInfo::DoDamageAndTriggers(), DoEffectOnLaunchTarget(), DoSpellEffectHit(), Spell::TargetInfo::DoTargetSpellHit(), Spell::GOTargetInfo::DoTargetSpellHit(), Spell::CorpseTargetInfo::DoTargetSpellHit(), DoTriggersOnSpellHit(), EffectActivateObject(), EffectActivateRune(), EffectAddFarsight(), EffectApplyGlyph(), EffectBind(), EffectBlock(), EffectCastButtons(), EffectCharge(), EffectDisEnchant(), EffectDispel(), EffectDispelMechanic(), EffectDuel(), EffectDummy(), EffectEnchantHeldItem(), EffectEnchantItemPerm(), EffectEnchantItemPrismatic(), EffectEnchantItemTmp(), EffectFeedPet(), EffectForceCast(), EffectGameObjectDamage(), EffectGameObjectRepair(), EffectGameObjectSetDestructionState(), EffectInstaKill(), EffectKnockBack(), EffectLeap(), EffectLeapBack(), EffectLearnSpell(), EffectMilling(), EffectOpenLock(), EffectParry(), EffectPickPocket(), EffectProficiency(), EffectProspecting(), EffectPullTowards(), EffectRechargeManaGem(), EffectResurrect(), EffectResurrectNew(), EffectResurrectPet(), EffectScriptEffect(), EffectSelfResurrect(), EffectSendEvent(), EffectSkinning(), EffectSkinPlayerCorpse(), EffectStealBeneficialBuff(), EffectStuck(), EffectSummonChangeItem(), EffectSummonObjectWild(), EffectSummonPet(), EffectSummonRaFFriend(), EffectSummonType(), EffectTeleportUnits(), EffectTeleUnitsFaceCaster(), EffectTitanGrip(), EffectTradeSkill(), EffectTriggerMissileSpell(), EffectTriggerRitualOfSummoning(), EffectTriggerSpell(), EffectUnlearnSpecialization(), EffectUntrainTalents(), finish(), GetMinMaxRange(), GetUnitCasterForEffectHandlers(), handle_delayed(), handle_immediate(), HandleLaunchPhase(), HandleThreatSpells(), HasGlobalCooldown(), InitExplicitTargets(), IsChannelActive(), prepare(), PrepareTriggersExecutedOnHit(), PreprocessSpellHit(), PreprocessSpellLaunch(), Spell::TargetInfo::PreprocessTarget(), RecalculateDelayMomentForDst(), SearchAreaTargets(), SearchChainTargets(), SearchNearbyTarget(), SearchSpellFocus(), SelectEffectImplicitTargets(), SelectEffectTypeImplicitTargets(), SelectExplicitTargets(), SelectImplicitAreaTargets(), SelectImplicitCasterDestTargets(), SelectImplicitCasterObjectTargets(), SelectImplicitChainTargets(), SelectImplicitChannelTargets(), SelectImplicitConeTargets(), SelectImplicitDestDestTargets(), SelectImplicitNearbyTargets(), SelectImplicitTrajTargets(), SelectSpellTargets(), SendCastResult(), SendChannelStart(), SendChannelUpdate(), SendInterrupted(), SendLogExecute(), SendLoot(), SendMountResult(), SendPetCastResult(), SendResurrectRequest(), SendSpellCooldown(), SendSpellGo(), SendSpellStart(), Spell(), TakeAmmo(), TakeCastItem(), TakePower(), TakeReagents(), TakeRunePower(), TriggerGlobalCooldown(), update(), UpdateChanneledTargetList(), UpdateOriginalCasterPointer(), UpdatePointers(), UpdateSpellCastDataAmmo(), and ~Spell().

◆ m_CastItem

◆ m_castItemEntry

uint32 Spell::m_castItemEntry

◆ m_castItemGUID

ObjectGuid Spell::m_castItemGUID

◆ m_casttime

int32 Spell::m_casttime
protected

Definition at line 502 of file Spell.h.

Referenced by CheckMovement(), CheckRange(), Delayed(), IsAutoActionResetSpell(), prepare(), Spell(), and update().

◆ m_channeledDuration

int32 Spell::m_channeledDuration
protected

Definition at line 503 of file Spell.h.

Referenced by DelayedChannel(), handle_immediate(), and Spell().

◆ m_channelTargetEffectMask

uint8 Spell::m_channelTargetEffectMask
protected

◆ m_comboPointGain

int8 Spell::m_comboPointGain

Definition at line 422 of file Spell.h.

Referenced by _handle_finish_phase(), and Spell().

◆ m_comboTarget

Unit* Spell::m_comboTarget

Definition at line 421 of file Spell.h.

Referenced by _handle_finish_phase(), and Spell().

◆ m_corpseTarget

◆ m_customError

SpellCustomErrors Spell::m_customError

◆ m_damage

◆ m_damageMultipliers

float Spell::m_damageMultipliers[MAX_SPELL_EFFECTS]
protected

Definition at line 528 of file Spell.h.

Referenced by DoEffectOnLaunchTarget(), SelectImplicitChainTargets(), and Spell().

◆ m_delayAtDamageCount

uint8 Spell::m_delayAtDamageCount
protected

Definition at line 508 of file Spell.h.

Referenced by Spell().

◆ m_delayMoment

◆ m_delayStart

uint64 Spell::m_delayStart
protected

Definition at line 519 of file Spell.h.

Referenced by Spell().

◆ m_destTargets

SpellDestination Spell::m_destTargets[MAX_SPELL_EFFECTS]
protected

Definition at line 640 of file Spell.h.

Referenced by AddDestTarget(), HandleEffects(), Spell(), and UpdatePointers().

◆ m_effectExecuteData

◆ m_executedCurrently

bool Spell::m_executedCurrently
protected

Definition at line 525 of file Spell.h.

Referenced by Spell().

◆ m_focusObjectGUID

ObjectGuid Spell::m_focusObjectGUID
protected

Definition at line 546 of file Spell.h.

Referenced by CheckCast(), and UpdatePointers().

◆ m_fromClient

◆ m_healing

◆ m_hitMask

uint32 Spell::m_hitMask
protected

◆ m_hitTriggerSpells

HitTriggerSpellList Spell::m_hitTriggerSpells
protected

Definition at line 696 of file Spell.h.

Referenced by DoTriggersOnSpellHit(), and PrepareTriggersExecutedOnHit().

◆ m_immediateHandled

bool Spell::m_immediateHandled
protected

Definition at line 521 of file Spell.h.

Referenced by _cast(), handle_delayed(), and Spell().

◆ m_loadedScripts

◆ [union]

union { ... } Spell::m_misc

◆ m_needComboPoints

bool Spell::m_needComboPoints
protected

◆ m_originalCaster

◆ m_originalCasterGUID

◆ m_powerCost

int32 Spell::m_powerCost
protected

Definition at line 501 of file Spell.h.

Referenced by CheckPetCast(), CheckPower(), prepare(), Spell(), and TakePower().

◆ m_preGeneratedPath

std::unique_ptr<PathGenerator> Spell::m_preGeneratedPath
protected

Definition at line 717 of file Spell.h.

Referenced by CheckCast(), and EffectCharge().

◆ m_procAttacker

uint32 Spell::m_procAttacker
protected

◆ m_procVictim

uint32 Spell::m_procVictim
protected

◆ m_referencedFromCurrentSpell

bool Spell::m_referencedFromCurrentSpell
protected

Definition at line 524 of file Spell.h.

Referenced by Spell(), and ~Spell().

◆ m_runesState

uint8 Spell::m_runesState
protected

Definition at line 506 of file Spell.h.

Referenced by EffectActivateRune(), SendSpellGo(), Spell(), and TakeRunePower().

◆ m_selfContainer

Spell** Spell::m_selfContainer

Definition at line 469 of file Spell.h.

Referenced by cancel(), CheckCast(), Unit::SetCurrentCastSpell(), Spell(), and ~Spell().

◆ m_spellInfo

SpellInfo const* const Spell::m_spellInfo

Definition at line 396 of file Spell.h.

Referenced by _cast(), _handle_finish_phase(), _handle_immediate_phase(), Unit::_UpdateAutoRepeatSpell(), AddCorpseTarget(), AddGOTarget(), AddItemTarget(), AddUnitTarget(), CalculateDelayMomentForDst(), CallScriptDestinationTargetSelectHandlers(), CallScriptEffectHandlers(), CallScriptObjectAreaTargetSelectHandlers(), CallScriptObjectTargetSelectHandlers(), CanAutoCast(), cancel(), CancelGlobalCooldown(), CanExecuteTriggersOnHit(), CanOpenLock(), CheckArenaCastRules(), CheckCast(), CheckCasterAuras(), CheckEffectTarget(), CheckItems(), CheckMovement(), CheckPetCast(), CheckPower(), CheckRange(), CheckRuneCost(), CheckScriptEffectImplicitTargets(), CheckSpellCancelsAuraEffect(), Delayed(), DelayedChannel(), DoCreateItem(), Spell::TargetInfo::DoDamageAndTriggers(), DoEffectOnLaunchTarget(), DoProcessTargetContainer(), DoSpellEffectHit(), Spell::GOTargetInfo::DoTargetSpellHit(), DoTriggersOnSpellHit(), EffectActivateObject(), EffectActivateRune(), EffectAddFarsight(), EffectAddHonor(), EffectCharge(), EffectCreateItem2(), EffectCreateRandomItem(), EffectCreateTamedPet(), EffectDisEnchant(), EffectDispel(), EffectDuel(), EffectDummy(), EffectEnchantHeldItem(), EffectEnchantItemPerm(), EffectEnchantItemPrismatic(), EffectEnchantItemTmp(), EffectEnergize(), EffectEnergizePct(), EffectEnvironmentalDMG(), EffectForceCast(), EffectHeal(), EffectHealMechanical(), EffectHealPct(), EffectHealthLeech(), EffectInstaKill(), EffectInterruptCast(), EffectKillCredit(), EffectLeapBack(), EffectOpenLock(), EffectPersistentAA(), EffectPlayMusic(), EffectPlaySound(), EffectPowerBurn(), EffectPowerDrain(), EffectProficiency(), EffectPullTowards(), EffectPullTowardsDest(), EffectRedirectThreat(), EffectSchoolDMG(), EffectScriptEffect(), EffectSendEvent(), EffectSendTaxi(), EffectStealBeneficialBuff(), EffectSummonObject(), EffectSummonObjectWild(), EffectSummonPet(), EffectSummonType(), EffectTameCreature(), EffectTaunt(), EffectTeleportUnits(), EffectThreat(), EffectTitanGrip(), EffectTransmitted(), EffectTriggerMissileSpell(), EffectTriggerRitualOfSummoning(), EffectTriggerSpell(), EffectWeaponDmg(), finish(), GetCurrentContainer(), GetMinMaxRange(), GetSearcherTypeMask(), handle_immediate(), HandleLaunchPhase(), HandleThreatSpells(), WorldSession::HandleUpdateMissileTrajectory(), HasGlobalCooldown(), InitExplicitTargets(), IsAutoActionResetSpell(), IsFocusDisabled(), IsNeedSendToClient(), IsPositive(), IsValidDeadOrAliveTarget(), LoadScripts(), prepare(), prepareDataForTriggerSystem(), PrepareTriggersExecutedOnHit(), PreprocessSpellHit(), PreprocessSpellLaunch(), Spell::TargetInfo::PreprocessTarget(), SearchAreaTargets(), SearchChainTargets(), SearchNearbyTarget(), SearchSpellFocus(), SelectEffectImplicitTargets(), SelectEffectTypeImplicitTargets(), SelectExplicitTargets(), SelectImplicitAreaTargets(), SelectImplicitCasterDestTargets(), SelectImplicitChainTargets(), SelectImplicitChannelTargets(), SelectImplicitConeTargets(), SelectImplicitNearbyTargets(), SelectImplicitTrajTargets(), SelectSpellTargets(), SendCastResult(), SendChannelStart(), SendInterrupted(), SendLogExecute(), SendPetCastResult(), SendResurrectRequest(), SendSpellCooldown(), SendSpellGo(), SendSpellStart(), SetSpellValue(), Spell(), SummonGuardian(), TakeCastItem(), TakePower(), TakeReagents(), TakeRunePower(), TriggerGlobalCooldown(), update(), UpdateChanneledTargetList(), UpdatePointers(), Player::UpdatePotionCooldown(), UpdateSpellCastDataTargets(), ~Spell(), and SpellEvent::~SpellEvent().

◆ m_spellSchoolMask

◆ m_spellState

uint32 Spell::m_spellState
protected

Definition at line 705 of file Spell.h.

Referenced by _cast(), cancel(), DelayedChannel(), finish(), handle_immediate(), prepare(), Spell(), and update().

◆ m_spellValue

◆ m_targets

SpellCastTargets Spell::m_targets

Definition at line 409 of file Spell.h.

Referenced by _cast(), CalculateDelayMomentForDst(), CheckCast(), CheckDst(), CheckEffectTarget(), CheckItems(), CheckPetCast(), CheckRange(), CheckSrc(), Spell::TargetInfo::DoDamageAndTriggers(), EffectBind(), EffectChargeDest(), EffectEnchantItemPerm(), EffectJumpDest(), EffectKnockBack(), EffectLeap(), EffectPullTowardsDest(), EffectScriptEffect(), EffectSummonChangeItem(), EffectSummonObject(), EffectSummonObjectWild(), EffectTeleportUnits(), EffectTeleUnitsFaceCaster(), EffectTransmitted(), EffectTriggerMissileSpell(), EffectTriggerSpell(), SpellScript::GetExplTargetDest(), SpellScript::GetExplTargetGObj(), SpellScript::GetExplTargetItem(), SpellScript::GetExplTargetUnit(), SpellScript::GetExplTargetWorldObject(), GetMinMaxRange(), handle_delayed(), WorldSession::HandleAcceptTradeOpcode(), WorldSession::HandlePetActionHelper(), WorldSession::HandlePetCastSpellOpcode(), spell_vehicle_throw_passenger::spell_vehicle_throw_passenger_SpellScript::HandleScript(), WorldSession::HandleUpdateMissileTrajectory(), WorldSession::HandleUpdateProjectilePosition(), InitExplicitTargets(), prepare(), SelectEffectImplicitTargets(), SelectEffectTypeImplicitTargets(), SelectExplicitTargets(), SelectImplicitAreaTargets(), SelectImplicitCasterDestTargets(), SelectImplicitChannelTargets(), SelectImplicitDestDestTargets(), SelectImplicitNearbyTargets(), SelectImplicitTargetDestTargets(), SelectImplicitTargetObjectTargets(), SelectImplicitTrajTargets(), SelectSpellTargets(), SendChannelStart(), SendSpellGo(), SendSpellStart(), SpellScript::SetExplTargetDest(), SummonGuardian(), TakeCastItem(), TakePower(), TakeReagents(), update(), and UpdatePointers().

◆ m_timer

int32 Spell::m_timer
protected

Definition at line 706 of file Spell.h.

Referenced by Delayed(), DelayedChannel(), SendChannelStart(), SendSpellStart(), Spell(), and update().

◆ m_triggeredByAuraSpell

◆ m_UniqueCorpseTargetInfo

std::vector<CorpseTargetInfo> Spell::m_UniqueCorpseTargetInfo
protected

Definition at line 635 of file Spell.h.

Referenced by AddCorpseTarget(), handle_immediate(), and UpdateSpellCastDataTargets().

◆ m_UniqueGOTargetInfo

◆ m_UniqueItemInfo

std::vector<ItemTargetInfo> Spell::m_UniqueItemInfo
protected

◆ m_UniqueTargetInfo

◆ targetMissInfo

SpellMissInfo Spell::targetMissInfo
protected

Definition at line 537 of file Spell.h.

Referenced by Spell::TargetInfo::DoTargetSpellHit(), EffectDispel(), and Spell().

◆ unitTarget

Unit* Spell::unitTarget
protected

Definition at line 531 of file Spell.h.

Referenced by DoCreateItem(), Spell::TargetInfo::DoDamageAndTriggers(), Spell::TargetInfo::DoTargetSpellHit(), EffectActivateSpec(), EffectAddComboPoints(), EffectAddExtraAttacks(), EffectAddHonor(), EffectApplyAura(), EffectBind(), EffectCharge(), EffectCreateItem2(), EffectCreateRandomItem(), EffectCreateTamedPet(), EffectDiscoverTaxi(), EffectDismissPet(), EffectDispel(), EffectDispelMechanic(), EffectDistract(), EffectDualWield(), EffectDuel(), EffectDummy(), EffectDurabilityDamage(), EffectDurabilityDamagePCT(), EffectEnchantHeldItem(), EffectEnchantItemPerm(), EffectEnergize(), EffectEnergizePct(), EffectEnvironmentalDMG(), EffectForceCast(), EffectHeal(), EffectHealMaxHealth(), EffectHealMechanical(), EffectHealPct(), EffectHealthLeech(), EffectInebriate(), EffectInstaKill(), EffectInterruptCast(), EffectJump(), EffectKillCredit(), EffectKillCreditPersonal(), EffectKnockBack(), EffectLeap(), EffectLeapBack(), EffectLearnPetSpell(), EffectLearnSkill(), EffectLearnSpell(), EffectModifyThreatPercent(), EffectPickPocket(), EffectPlayMusic(), EffectPlaySound(), EffectPowerBurn(), EffectPowerDrain(), EffectPullTowards(), EffectPullTowardsDest(), EffectQuestClear(), EffectQuestComplete(), EffectQuestFail(), EffectQuestStart(), EffectRechargeManaGem(), EffectRedirectThreat(), EffectRemoveAura(), EffectRenamePet(), EffectReputation(), EffectResurrect(), EffectResurrectNew(), EffectSanctuary(), EffectSchoolDMG(), EffectScriptEffect(), EffectSendEvent(), EffectSendTaxi(), EffectSkinning(), EffectSkinPlayerCorpse(), EffectSpecCount(), EffectStealBeneficialBuff(), EffectSummonPlayer(), EffectSummonRaFFriend(), EffectTameCreature(), EffectTaunt(), EffectTeleportUnits(), EffectTeleUnitsFaceCaster(), EffectThreat(), EffectTriggerMissileSpell(), EffectTriggerSpell(), EffectUnlearnSpecialization(), EffectUntrainTalents(), EffectWeaponDmg(), SpellScript::GetHitCreature(), SpellScript::GetHitPlayer(), SpellScript::GetHitUnit(), HandleEffects(), PreprocessSpellHit(), Spell::TargetInfo::PreprocessTarget(), and Spell().


The documentation for this class was generated from the following files: