diff options
author | Ovah <dreadkiller@gmx.de> | 2018-04-12 20:26:45 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2018-04-12 21:26:45 +0300 |
commit | 1aa42e97a81e285fa34316ad9cfe9657865e3c35 (patch) | |
tree | dc2aee39819dc9a85e06f7e0740502d367fb69f2 /src | |
parent | 08193cf625b6e2af54eba2bd36145837500a1c33 (diff) |
Core/AI: Added CreatureAI hook that is getting triggered when a spell cast has been successfully finished. (#21774)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/AI/CreatureAI.h | 3 | ||||
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h index c8f5de0420c..4aa8cfdddc0 100644 --- a/src/server/game/AI/CreatureAI.h +++ b/src/server/game/AI/CreatureAI.h @@ -160,6 +160,9 @@ class TC_GAME_API CreatureAI : public UnitAI // Called when a spell cast gets interrupted virtual void OnSpellCastInterrupt(SpellInfo const* /*spell*/) { } + // Called when a spell cast has been successfully finished + virtual void OnSuccessfulSpellCast(SpellInfo const* /*spell*/) { } + // Called at reaching home after evade virtual void JustReachedHome() { } diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index e1dc6d62dfa..5ce5123f762 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3417,6 +3417,11 @@ void Spell::cast(bool skipCheck) hitMask |= PROC_HIT_NORMAL; m_originalCaster->ProcSkillsAndAuras(nullptr, procAttacker, PROC_FLAG_NONE, PROC_SPELL_TYPE_MASK_ALL, PROC_SPELL_PHASE_CAST, hitMask, this, nullptr, nullptr); + + // Call CreatureAI hook OnSuccessfulSpellCast + if (Creature* caster = m_originalCaster->ToCreature()) + if (caster->IsAIEnabled) + caster->AI()->OnSuccessfulSpellCast(GetSpellInfo()); } void Spell::handle_immediate() |