aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index f4facc19d0e..95e6a925ddd 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -377,15 +377,17 @@ class npc_eye_of_acherus : public CreatureScript
npc_eye_of_acherusAI(Creature* creature) : ScriptedAI(creature)
{
me->SetDisplayId(me->GetCreatureTemplate()->Modelid1);
- if (Player* owner = me->GetCharmerOrOwner()->ToPlayer())
- owner->SendAutoRepeatCancel(me);
-
+ DoCastSelf(SPELL_EYE_VISUAL);
me->SetReactState(REACT_PASSIVE);
+ me->SetDisableGravity(true);
+ me->SetControlled(true, UNIT_STATE_ROOT);
Movement::MoveSplineInit init(me);
init.MoveTo(EyeOFAcherusFallPoint.GetPositionX(), EyeOFAcherusFallPoint.GetPositionY(), EyeOFAcherusFallPoint.GetPositionZ(), false);
init.SetFall();
me->GetMotionMaster()->LaunchMoveSpline(std::move(init), POINT_EYE_FALL, MOTION_PRIORITY_NORMAL, POINT_MOTION_TYPE);
+
+ _events.ScheduleEvent(EVENT_MOVE_START, 7s);
}
void OnCharmed(bool /*apply*/) override { }
@@ -400,9 +402,9 @@ class npc_eye_of_acherus : public CreatureScript
{
case EVENT_MOVE_START:
{
- DoCast(me, SPELL_EYE_FLIGHT_BOOST);
-
+ DoCastSelf(SPELL_EYE_FLIGHT_BOOST);
me->SetControlled(false, UNIT_STATE_ROOT);
+
if (Player* owner = me->GetCharmerOrOwner()->ToPlayer())
{
for (uint8 i = 0; i < MAX_MOVE_TYPE; ++i)
@@ -422,7 +424,6 @@ class npc_eye_of_acherus : public CreatureScript
{
if (movementType == WAYPOINT_MOTION_TYPE && pointId == POINT_EYE_MOVE_END - 1)
{
- me->SetSheath(SHEATH_STATE_MELEE);
me->RemoveAllAuras();
if (Player* owner = me->GetCharmerOrOwner()->ToPlayer())
@@ -434,14 +435,7 @@ class npc_eye_of_acherus : public CreatureScript
Talk(TALK_CONTROL, owner);
}
me->SetDisableGravity(false);
- DoCast(me, SPELL_EYE_FLIGHT);
- }
-
- if (movementType == POINT_MOTION_TYPE && pointId == POINT_EYE_FALL)
- {
- me->SetDisableGravity(true);
- me->SetControlled(true, UNIT_STATE_ROOT);
- _events.ScheduleEvent(EVENT_MOVE_START, 5000);
+ DoCastSelf(SPELL_EYE_FLIGHT);
}
}