diff options
-rw-r--r-- | src/server/game/AI/CreatureAI.h | 3 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h index 63ecf516666..ac8b1d7ea15 100644 --- a/src/server/game/AI/CreatureAI.h +++ b/src/server/game/AI/CreatureAI.h @@ -157,6 +157,9 @@ class TC_GAME_API CreatureAI : public UnitAI void OnCharmed(bool apply) override; + // Called when a spell cast gets interrupted + virtual void OnSpellCastInterrupt(SpellInfo const* /*spell*/) { } + // Called at reaching home after evade virtual void JustReachedHome() { } diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index a1878130e8c..e3d05356342 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -2932,6 +2932,9 @@ void Unit::InterruptSpell(CurrentSpellTypes spellType, bool withDelayed, bool wi if (spell->getState() != SPELL_STATE_FINISHED) spell->cancel(); + if (GetTypeId() == TYPEID_UNIT && IsAIEnabled) + ToCreature()->AI()->OnSpellCastInterrupt(spell->GetSpellInfo()); + m_currentSpells[spellType] = NULL; spell->SetReferencedFromCurrent(false); } |