Core/AI: No longer override chase movement with follow movement if the creature engages before JustAppeared has had a chance to fire.
Port From (https://github.com/TrinityCore/TrinityCore/commit/a4c2c0fb1d1b9fae832ecc52aa68fe3fb8d1ca52)
This commit is contained in:
@@ -186,17 +186,20 @@ namespace Game.AI
|
||||
// Called when creature appears in the world (spawn, respawn, grid load etc...)
|
||||
public virtual void JustAppeared()
|
||||
{
|
||||
TempSummon summon = me.ToTempSummon();
|
||||
if (summon != null)
|
||||
if (!IsEngaged())
|
||||
{
|
||||
// Only apply this to specific types of summons
|
||||
if (!summon.GetVehicle() && ShouldFollowOnSpawn(summon.m_Properties))
|
||||
TempSummon summon = me.ToTempSummon();
|
||||
if (summon != null)
|
||||
{
|
||||
Unit owner = summon.GetCharmerOrOwner();
|
||||
if (owner != null)
|
||||
// Only apply this to specific types of summons
|
||||
if (!summon.GetVehicle() && ShouldFollowOnSpawn(summon.m_Properties))
|
||||
{
|
||||
summon.GetMotionMaster().Clear();
|
||||
summon.GetMotionMaster().MoveFollow(owner, SharedConst.PetFollowDist, summon.GetFollowAngle());
|
||||
Unit owner = summon.GetCharmerOrOwner();
|
||||
if (owner != null)
|
||||
{
|
||||
summon.GetMotionMaster().Clear();
|
||||
summon.GetMotionMaster().MoveFollow(owner, SharedConst.PetFollowDist, summon.GetFollowAngle());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,9 +59,14 @@ namespace Game.Combat
|
||||
if (cWho.IsPet() || cWho.IsTotem() || cWho.IsTrigger())
|
||||
return false;
|
||||
|
||||
// summons cannot have a threat list, unless they are controlled by a creature
|
||||
if (cWho.HasUnitTypeMask(UnitTypeMask.Minion | UnitTypeMask.Guardian) && !cWho.GetOwnerGUID().IsCreature())
|
||||
return false;
|
||||
// summons cannot have a threat list if they were summoned by a player
|
||||
if (cWho.HasUnitTypeMask(UnitTypeMask.Minion | UnitTypeMask.Guardian))
|
||||
{
|
||||
TempSummon tWho = cWho.ToTempSummon();
|
||||
if (tWho != null)
|
||||
if (tWho.GetSummonerGUID().IsPlayer())
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user