mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/AI: Remove EnterEvadeMode calls from Guardian/Summon spell handlers. Add follow logic to CreatureAI::JustAppeared. Closes #23270.
(cherry picked from commit 8499434340)
This commit is contained in:
@@ -158,6 +158,18 @@ void CreatureAI::TriggerAlert(Unit const* who) const
|
||||
me->GetMotionMaster()->MoveDistract(5 * IN_MILLISECONDS, me->GetAbsoluteAngle(who));
|
||||
}
|
||||
|
||||
void CreatureAI::JustAppeared()
|
||||
{
|
||||
if (!me->GetVehicle())
|
||||
{
|
||||
if (Unit* owner = me->GetCharmerOrOwner())
|
||||
{
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, me->GetFollowAngle());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CreatureAI::EnterEvadeMode(EvadeReason why)
|
||||
{
|
||||
if (!_EnterEvadeMode(why))
|
||||
|
||||
@@ -136,7 +136,7 @@ class TC_GAME_API CreatureAI : public UnitAI
|
||||
virtual bool IsEscorted() const { return false; }
|
||||
|
||||
// Called when creature appears in the world (spawn, respawn, grid load etc...)
|
||||
virtual void JustAppeared() { }
|
||||
virtual void JustAppeared();
|
||||
|
||||
// Called at waypoint reached or point movement finished
|
||||
virtual void MovementInform(uint32 /*type*/, uint32 /*id*/) { }
|
||||
|
||||
@@ -2047,8 +2047,6 @@ void Spell::EffectSummonType()
|
||||
summon->SetNpcFlags(NPCFlags(summon->GetCreatureTemplate()->npcflag & 0xFFFFFFFF));
|
||||
summon->SetNpcFlags2(NPCFlags2(summon->GetCreatureTemplate()->npcflag >> 32));
|
||||
summon->SetImmuneToAll(true);
|
||||
|
||||
summon->AI()->EnterEvadeMode();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@@ -4940,8 +4938,6 @@ void Spell::SummonGuardian(SpellEffectInfo const* effect, uint32 entry, SummonPr
|
||||
summon->SetDisplayId(1126); // modelid1
|
||||
}
|
||||
|
||||
summon->AI()->EnterEvadeMode();
|
||||
|
||||
ExecuteLogEffectSummonObject(SpellEffectName(effect->Effect), summon);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user