diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp index aef75b359..621ecbc2b 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp @@ -128,6 +128,14 @@ struct boss_leotheras_the_blind : public BossAI }); } + void AttackStart(Unit* who) override + { + if (me->HasAura(SPELL_METAMORPHOSIS)) + AttackStartCaster(who, 40.0f); + else + ScriptedAI::AttackStart(who); + } + void DoAction(int32 actionId) override { if (actionId == ACTION_CHECK_SPELLBINDERS) @@ -172,15 +180,13 @@ struct boss_leotheras_the_blind : public BossAI void MoveToTargetIfOutOfRange(Unit* target) { - if (me->GetDistance2d(target) > 40.0f) + if (!me->IsWithinDistInMap(target, 40.0f)) { - me->GetMotionMaster()->MoveChase(target, 5.0f, 0); + me->GetMotionMaster()->MoveChase(target, 40.0f, 0); me->AddThreat(target, 0.0f); } else - { me->GetMotionMaster()->Clear(); - } } void DemonTime() @@ -204,7 +210,7 @@ struct boss_leotheras_the_blind : public BossAI { DoResetThreatList(); me->LoadEquipment(); - me->GetMotionMaster()->MoveChase(me->GetVictim(), 0.0f); + me->ResumeChasingVictim(); me->RemoveAurasDueToSpell(SPELL_METAMORPHOSIS); scheduler.CancelGroup(GROUP_DEMON); ElfTime(); @@ -223,9 +229,7 @@ struct boss_leotheras_the_blind : public BossAI if (me->GetDisplayId() == me->GetNativeDisplayId()) { if (me->GetReactState() != REACT_PASSIVE) - { DoMeleeAttackIfReady(); - } } else if (me->isAttackReady(BASE_ATTACK)) { @@ -235,9 +239,7 @@ struct boss_leotheras_the_blind : public BossAI DoMeleeAttackIfReady(); } else - { me->setAttackTimer(BASE_ATTACK, 2000); - } } } private: