aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/AI/CreatureAI.h1
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp9
2 files changed, 10 insertions, 0 deletions
diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h
index 7be9290a732..e1067dadd88 100755
--- a/src/server/game/AI/CreatureAI.h
+++ b/src/server/game/AI/CreatureAI.h
@@ -106,6 +106,7 @@ class CreatureAI : public UnitAI
virtual void IsSummonedBy(Unit * /*summoner*/) {}
virtual void SummonedCreatureDespawn(Creature* /*unit*/) {}
+ virtual void SummonedCreatureDies(Creature* /*unit*/, Unit* /*killer*/) {}
// Called when hit by a spell
virtual void SpellHit(Unit*, const SpellEntry*) {}
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index b88021cbb50..58829667ae6 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -15194,6 +15194,15 @@ void Unit::Kill(Unit *pVictim, bool durabilityLoss)
// Call creature just died function
if (creature->IsAIEnabled)
creature->AI()->JustDied(this);
+
+ if (creature->ToTempSummon())
+ {
+ if (Unit* pSummoner = creature->ToTempSummon()->GetSummoner())
+ {
+ if (pSummoner->ToCreature() && pSummoner->ToCreature()->IsAIEnabled)
+ pSummoner->ToCreature()->AI()->SummonedCreatureDies(creature, this);
+ }
+ }
// Dungeon specific stuff, only applies to players killing creatures
if (creature->GetInstanceId())