fix(Scripts/SunwellPlateau): Increase delay before choosing lane and … (#21733)

This commit is contained in:
Andrew
2025-03-19 08:52:37 -03:00
committed by GitHub
parent 35d37a6f93
commit 5eee6bc383

View File

@@ -106,20 +106,29 @@ const Position LandingPos = { 1476.77f, 665.094f, 20.6423f };
class CorruptTriggers : public BasicEvent class CorruptTriggers : public BasicEvent
{ {
public: public:
CorruptTriggers(Unit* caster) : _caster(caster) { } CorruptTriggers(Unit* caster, uint8 currentLane) : _caster(caster), _currentLane(currentLane) { }
bool Execute(uint64 /*execTime*/, uint32 /*diff*/) override bool Execute(uint64 /*execTime*/, uint32 /*diff*/) override
{ {
std::list<Creature*> creatureList; std::list<Creature*> creatureList;
_caster->GetCreaturesWithEntryInRange(creatureList, 70.0f, NPC_FOG_TRIGGER); _caster->GetCreaturesWithEntryInRange(creatureList, 70.0f, NPC_FOG_TRIGGER);
for (auto const& creature : creatureList) for (auto const& creature : creatureList)
{
if (_caster->GetExactDist2d(creature) <= 11.0f) if (_caster->GetExactDist2d(creature) <= 11.0f)
{
creature->CastSpell(creature, SPELL_FOG_OF_CORRUPTION, true); creature->CastSpell(creature, SPELL_FOG_OF_CORRUPTION, true);
continue;
}
if (!_currentLane && creature->GetPositionX() > 1510.0f)
creature->CastSpell(creature, SPELL_FOG_OF_CORRUPTION, true);
}
return true; return true;
} }
private: private:
Unit* _caster; Unit* _caster;
uint8 _currentLane;
}; };
struct boss_felmyst : public BossAI struct boss_felmyst : public BossAI
@@ -283,20 +292,20 @@ struct boss_felmyst : public BossAI
me->GetMotionMaster()->MovePoint(POINT_LANE, RightSideLanes[_currentLane], false); me->GetMotionMaster()->MovePoint(POINT_LANE, RightSideLanes[_currentLane], false);
else else
me->GetMotionMaster()->MovePoint(POINT_LANE, LeftSideLanes[_currentLane], false); me->GetMotionMaster()->MovePoint(POINT_LANE, LeftSideLanes[_currentLane], false);
}, 2s); }, 5s);
break; break;
case POINT_LANE: case POINT_LANE:
Talk(EMOTE_BREATH); Talk(EMOTE_BREATH);
me->m_Events.AddEventAtOffset([&] { me->m_Events.AddEventAtOffset([&] {
me->m_Events.AddEvent(new CorruptTriggers(me), me->m_Events.CalculateTime(0)); me->m_Events.AddEvent(new CorruptTriggers(me, _currentLane), me->m_Events.CalculateTime(0));
me->m_Events.AddEvent(new CorruptTriggers(me), me->m_Events.CalculateTime(500)); me->m_Events.AddEvent(new CorruptTriggers(me, _currentLane), me->m_Events.CalculateTime(500));
me->m_Events.AddEvent(new CorruptTriggers(me), me->m_Events.CalculateTime(1000)); me->m_Events.AddEvent(new CorruptTriggers(me, _currentLane), me->m_Events.CalculateTime(1000));
me->m_Events.AddEvent(new CorruptTriggers(me), me->m_Events.CalculateTime(1500)); me->m_Events.AddEvent(new CorruptTriggers(me, _currentLane), me->m_Events.CalculateTime(1500));
me->m_Events.AddEvent(new CorruptTriggers(me), me->m_Events.CalculateTime(2000)); me->m_Events.AddEvent(new CorruptTriggers(me, _currentLane), me->m_Events.CalculateTime(2000));
me->m_Events.AddEvent(new CorruptTriggers(me), me->m_Events.CalculateTime(2500)); me->m_Events.AddEvent(new CorruptTriggers(me, _currentLane), me->m_Events.CalculateTime(2500));
me->m_Events.AddEvent(new CorruptTriggers(me), me->m_Events.CalculateTime(3000)); me->m_Events.AddEvent(new CorruptTriggers(me, _currentLane), me->m_Events.CalculateTime(3000));
me->m_Events.AddEvent(new CorruptTriggers(me), me->m_Events.CalculateTime(3500)); me->m_Events.AddEvent(new CorruptTriggers(me, _currentLane), me->m_Events.CalculateTime(3500));
me->m_Events.AddEvent(new CorruptTriggers(me), me->m_Events.CalculateTime(4000)); me->m_Events.AddEvent(new CorruptTriggers(me, _currentLane), me->m_Events.CalculateTime(4000));
}, 5s); }, 5s);
me->m_Events.AddEventAtOffset([&] { me->m_Events.AddEventAtOffset([&] {