fix(Scripts/SSC): Fix Leotheras running in melee range in demon phase (#20507)

* fix(Scripts/SSC): Fix Leotheras running in melee range in demon phase

* Update boss_leotheras_the_blind.cpp
This commit is contained in:
Andrew
2024-11-10 14:54:05 -03:00
committed by GitHub
parent 4da49dd63a
commit e8366f6935
@@ -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 void DoAction(int32 actionId) override
{ {
if (actionId == ACTION_CHECK_SPELLBINDERS) if (actionId == ACTION_CHECK_SPELLBINDERS)
@@ -172,15 +180,13 @@ struct boss_leotheras_the_blind : public BossAI
void MoveToTargetIfOutOfRange(Unit* target) 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); me->AddThreat(target, 0.0f);
} }
else else
{
me->GetMotionMaster()->Clear(); me->GetMotionMaster()->Clear();
}
} }
void DemonTime() void DemonTime()
@@ -204,7 +210,7 @@ struct boss_leotheras_the_blind : public BossAI
{ {
DoResetThreatList(); DoResetThreatList();
me->LoadEquipment(); me->LoadEquipment();
me->GetMotionMaster()->MoveChase(me->GetVictim(), 0.0f); me->ResumeChasingVictim();
me->RemoveAurasDueToSpell(SPELL_METAMORPHOSIS); me->RemoveAurasDueToSpell(SPELL_METAMORPHOSIS);
scheduler.CancelGroup(GROUP_DEMON); scheduler.CancelGroup(GROUP_DEMON);
ElfTime(); ElfTime();
@@ -223,9 +229,7 @@ struct boss_leotheras_the_blind : public BossAI
if (me->GetDisplayId() == me->GetNativeDisplayId()) if (me->GetDisplayId() == me->GetNativeDisplayId())
{ {
if (me->GetReactState() != REACT_PASSIVE) if (me->GetReactState() != REACT_PASSIVE)
{
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
}
} }
else if (me->isAttackReady(BASE_ATTACK)) else if (me->isAttackReady(BASE_ATTACK))
{ {
@@ -235,9 +239,7 @@ struct boss_leotheras_the_blind : public BossAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
else else
{
me->setAttackTimer(BASE_ATTACK, 2000); me->setAttackTimer(BASE_ATTACK, 2000);
}
} }
} }
private: private: