aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp36
1 files changed, 20 insertions, 16 deletions
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index 7a5e35e9ed8..90e174364b9 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -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)