@@ -438,15 +438,12 @@ struct npc_eye_of_acherus : public ScriptedAI
438438 {
439439 creature->SetDisplayId (creature->GetCreatureTemplate ()->Modelid1 );
440440 creature->SetReactState (REACT_PASSIVE);
441- creature->SetDisableGravity (true );
442- creature->SetCanFly (true );
443- creature->SetSpeed (MOVE_FLIGHT, 35 .f );
444441 }
445442
446- void Reset () override
443+ void InitializeAI () override
447444 {
448- DoCastSelf (SPELL_EYE_OF_ACHERUS_VISUAL);
449445 DoCastSelf (SPELL_ROOT_SELF);
446+ DoCastSelf (SPELL_EYE_OF_ACHERUS_VISUAL);
450447 _events.ScheduleEvent (EVENT_ANNOUNCE_LAUNCH_TO_DESTINATION, 7s);
451448 }
452449
@@ -459,11 +456,6 @@ struct npc_eye_of_acherus : public ScriptedAI
459456 }
460457 }
461458
462- void EnterEvadeMode (EvadeReason why) override
463- {
464- _EnterEvadeMode (why);
465- }
466-
467459 void UpdateAI (uint32 diff) override
468460 {
469461 _events.Update (diff);
@@ -473,14 +465,14 @@ struct npc_eye_of_acherus : public ScriptedAI
473465 switch (eventId)
474466 {
475467 case EVENT_ANNOUNCE_LAUNCH_TO_DESTINATION:
476- // DoCastSelf(SPELL_EYE_OF_ACHERUS_FLIGHT_BOOST);
477468 if (Unit* owner = me->GetCharmerOrOwner ())
478469 Talk (SAY_LAUNCH_TOWARDS_DESTINATION, owner);
479470 _events.ScheduleEvent (EVENT_UNROOT, 1s + 200ms);
480471 break ;
481472 case EVENT_UNROOT:
482473 me->RemoveAurasDueToSpell (SPELL_ROOT_SELF);
483- _events.ScheduleEvent (EVENT_LAUNCH_TOWARDS_DESTINATION, 1ms);
474+ DoCastSelf (SPELL_EYE_OF_ACHERUS_FLIGHT_BOOST);
475+ _events.ScheduleEvent (EVENT_LAUNCH_TOWARDS_DESTINATION, 1s + 200ms);
484476 break ;
485477 case EVENT_LAUNCH_TOWARDS_DESTINATION:
486478 {
@@ -489,17 +481,17 @@ struct npc_eye_of_acherus : public ScriptedAI
489481 Movement::PointsArray path (EyeOfAcherusPath, EyeOfAcherusPath + EyeOfAcherusPathSize);
490482 init.MovebyPath (path);
491483 init.SetFly ();
492- init. SetSwim ();
493- init.SetVelocity (35 . f );
484+ if (Unit* owner = me-> GetCharmerOrOwner ())
485+ init.SetVelocity (owner-> GetSpeed (MOVE_RUN) );
494486 };
495487
496488 me->GetMotionMaster ()->LaunchMoveSpline (std::move (initializer), POINT_NEW_AVALON, MOTION_PRIORITY_NORMAL, POINT_MOTION_TYPE);
497489 break ;
498490 }
499491 case EVENT_GRANT_CONTROL:
500- // me->RemoveAurasDueToSpell(SPELL_EYE_OF_ACHERUS_FLIGHT_BOOST);
501- // DoCastSelf(SPELL_EYE_OF_ACHERUS_FLIGHT);
502492 me->RemoveAurasDueToSpell (SPELL_ROOT_SELF);
493+ DoCastSelf (SPELL_EYE_OF_ACHERUS_FLIGHT);
494+ me->RemoveAurasDueToSpell (SPELL_EYE_OF_ACHERUS_FLIGHT_BOOST);
503495 if (Unit* owner = me->GetCharmerOrOwner ())
504496 Talk (SAY_EYE_UNDER_CONTROL, owner);
505497 break ;
0 commit comments