summaryrefslogtreecommitdiff
path: root/src/server/game/AI/CreatureAI.cpp
diff options
context:
space:
mode:
authoravarishd <46330494+avarishd@users.noreply.github.com>2023-12-15 14:43:24 +0200
committerGitHub <noreply@github.com>2023-12-15 09:43:24 -0300
commit03d06da87b85084e0a6891bed1c03807e30e663d (patch)
tree64238c4cbd3d82c5cb26a082daf5cd29987233f1 /src/server/game/AI/CreatureAI.cpp
parent9df2c485fca14aa787ee6e536664b7a30f4304b5 (diff)
feat(Core/SmartScripts): SMART_EVENT_SUMMONED_UNIT_EVADE (#18018)
* feat(Core/SmartScripts): SMART_EVENT_SUMMONED_UNIT_EVADE * .
Diffstat (limited to 'src/server/game/AI/CreatureAI.cpp')
-rw-r--r--src/server/game/AI/CreatureAI.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp
index e85a674d03..bb014a0347 100644
--- a/src/server/game/AI/CreatureAI.cpp
+++ b/src/server/game/AI/CreatureAI.cpp
@@ -21,6 +21,7 @@
#include "CreatureAIImpl.h"
#include "CreatureGroups.h"
#include "CreatureTextMgr.h"
+#include "GameObjectAI.h"
#include "Log.h"
#include "MapReference.h"
#include "Player.h"
@@ -222,7 +223,7 @@ void CreatureAI::EnterEvadeMode(EvadeReason why)
me->GetVehicleKit()->Reset(true);
}
- // despawn bosses at reset - only verified tbc/woltk bosses with this reset type - add bosses in last line respectively (dungeon/raid) and increase array limit
+ // despawn bosses at reset - only verified tbc/woltk bosses with this reset type
CreatureTemplate const* cInfo = sObjectMgr->GetCreatureTemplate(me->GetEntry());
if (cInfo && cInfo->HasFlagsExtra(CREATURE_FLAG_EXTRA_HARD_RESET))
{
@@ -321,6 +322,21 @@ bool CreatureAI::_EnterEvadeMode(EvadeReason /*why*/)
formation->MemberEvaded(me);
}
+ if (TempSummon* summon = me->ToTempSummon())
+ {
+ if (WorldObject* summoner = summon->GetSummoner())
+ {
+ if (summoner->ToCreature() && summoner->ToCreature()->IsAIEnabled)
+ {
+ summoner->ToCreature()->AI()->SummonedCreatureEvade(me);
+ }
+ else if (summoner->ToGameObject() && summoner->ToGameObject()->AI())
+ {
+ summoner->ToGameObject()->AI()->SummonedCreatureEvade(me);
+ }
+ }
+ }
+
return true;
}