Core/AI: No longer override chase movement with follow movement if the creature engages before JustAppeared has had a chance to fire.

(cherry picked from commit 49b04c0fdd)
This commit is contained in:
Treeston
2019-07-21 03:59:17 +02:00
committed by Shauren
parent a2b1b3e2aa
commit a4c2c0fb1d
2 changed files with 15 additions and 9 deletions

View File

@@ -193,15 +193,18 @@ static bool ShouldFollowOnSpawn(SummonPropertiesEntry const* properties)
void CreatureAI::JustAppeared()
{
if (TempSummon* summon = me->ToTempSummon())
if (!IsEngaged())
{
// Only apply this to specific types of summons
if (!summon->GetVehicle() && ShouldFollowOnSpawn(summon->m_Properties))
if (TempSummon* summon = me->ToTempSummon())
{
if (Unit* owner = summon->GetCharmerOrOwner())
// Only apply this to specific types of summons
if (!summon->GetVehicle() && ShouldFollowOnSpawn(summon->m_Properties))
{
summon->GetMotionMaster()->Clear();
summon->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, summon->GetFollowAngle());
if (Unit* owner = summon->GetCharmerOrOwner())
{
summon->GetMotionMaster()->Clear();
summon->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, summon->GetFollowAngle());
}
}
}
}

View File

@@ -25,6 +25,7 @@
#include "Player.h"
#include "SpellAuraEffects.h"
#include "SpellMgr.h"
#include "TemporarySummon.h"
#include "Hacks/boost_1_74_fibonacci_heap.h"
BOOST_1_74_FIBONACCI_HEAP_MSVC_COMPILE_FIX(ThreatManager::threat_list_heap::value_type)
@@ -158,9 +159,11 @@ void ThreatReference::UnregisterAndFree()
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(UNIT_MASK_MINION | UNIT_MASK_GUARDIAN) && !cWho->GetOwnerGUID().IsCreature())
return false;
// summons cannot have a threat list if they were summoned by a player
if (cWho->HasUnitTypeMask(UNIT_MASK_MINION | UNIT_MASK_GUARDIAN))
if (TempSummon const* tWho = cWho->ToTempSummon())
if (tWho->GetSummonerGUID().IsPlayer())
return false;
return true;
}