fix(Scripts/SunwellPlateau): Make Twin special abilities target one of the highest 6 in threat of the other twin (#21964)

This commit is contained in:
Tereneckla 2025-04-27 07:34:29 +00:00 committed by GitHub
parent 40a6d667aa
commit 08ca9eb3f2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -119,7 +119,7 @@ struct boss_sacrolash : public BossAI
scheduler.CancelGroup(GROUP_SPECIAL_ABILITY);
ScheduleTimedEvent(20s, [&] {
Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1, 100.0f);
Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true, false);
if (!target)
target = me->GetVictim();
@ -153,7 +153,14 @@ struct boss_sacrolash : public BossAI
}, 8s, 12s);
scheduler.Schedule(36s, GROUP_SPECIAL_ABILITY, [this](TaskContext context) {
Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1, 100.0f);
Unit* target = nullptr;
if (Creature* alythess = instance->GetCreature(DATA_ALYTHESS))
{
std::list<Unit*> targets;
alythess->AI()->SelectTargetList(targets, 6, SelectTargetMethod::MaxThreat, 0, 100.0f, true, false);
if (!targets.empty())
target = Acore::Containers::SelectRandomContainerElement(targets);
}
if (!target)
target = me->GetVictim();
Talk(EMOTE_SHADOW_NOVA, target);
@ -244,7 +251,7 @@ struct boss_alythess : public BossAI
}, 8s, 10s);
ScheduleTimedEvent(20s, 26s, [&] {
Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1, 100.0f);
Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true, false);
if (!target)
target = me->GetVictim();
DoCast(target, SPELL_SHADOW_NOVA);
@ -280,7 +287,14 @@ struct boss_alythess : public BossAI
}, 10s, 15s);
scheduler.Schedule(20s, GROUP_SPECIAL_ABILITY, [this](TaskContext context) {
Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1, 100.0f);
Unit* target = nullptr;
if (Creature* sacrolash = instance->GetCreature(DATA_SACROLASH))
{
std::list<Unit*> targets;
sacrolash->AI()->SelectTargetList(targets, 6, SelectTargetMethod::MaxThreat, 0, 100.0f, true, false);
if (!targets.empty())
target = Acore::Containers::SelectRandomContainerElement(targets);
}
if (!target)
target = me->GetVictim();
Talk(EMOTE_CONFLAGRATION, target);