Scripts/ScarletEnclave: fix Massacre at Light's Point mine cart escort to work again (tag #20310)

This commit is contained in:
Treeston
2018-02-12 02:58:51 +01:00
parent 92a8f65203
commit 6ff71dffbb

View File

@@ -1056,11 +1056,6 @@ class npc_scarlet_miner_cart : public CreatureScript
if (Creature* miner = ObjectAccessor::GetCreature(*me, _minerGUID))
{
me->SetWalk(false);
// Not 100% correct, but movement is smooth. Sometimes miner walks faster
// than normal, this speed is fast enough to keep up at those times.
me->SetSpeedRate(MOVE_RUN, 1.25f);
me->GetMotionMaster()->MoveFollow(miner, 1.0f, 0);
}
}
@@ -1110,25 +1105,21 @@ class npc_scarlet_miner : public CreatureScript
{
npc_scarlet_minerAI(Creature* creature) : EscortAI(creature)
{
Initialize();
me->SetReactState(REACT_PASSIVE);
}
void Initialize()
void InitializeAI() override
{
carGUID.Clear();
IntroTimer = 0;
IntroPhase = 0;
carGUID.Clear();
playerGUID.Clear();
}
uint32 IntroTimer;
uint32 IntroPhase;
ObjectGuid carGUID;
void Reset() override
{
Initialize();
}
ObjectGuid playerGUID;
void IsSummonedBy(Unit* summoner) override
{
@@ -1170,9 +1161,12 @@ class npc_scarlet_miner : public CreatureScript
void SetGUID(ObjectGuid const& guid, int32 /*id*/) override
{
InitWaypoint();
Start(false, false, guid);
SetDespawnAtFar(false);
playerGUID = guid;
}
void Reset() override
{
EscortAI::Reset();
}
void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override
@@ -1200,6 +1194,16 @@ class npc_scarlet_miner : public CreatureScript
}
}
void JustAppeared() override
{
EscortAI::JustAppeared();
if (!playerGUID)
return;
InitWaypoint();
Start(false, false, playerGUID);
SetDespawnAtFar(false);
}
void UpdateAI(uint32 diff) override
{
if (IntroPhase)