mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripts/Sunwell Plateau: Fixed and improved spell "Curse of Boundless Agony" target selection (Boss Kalecgos)
(cherry picked from commit 14b6e3bbb3)
This commit is contained in:
@@ -439,8 +439,9 @@ public:
|
||||
{
|
||||
if (Unit* unitTarget = target->ToUnit())
|
||||
return !NonTankTargetSelector::operator()(unitTarget)
|
||||
|| unitTarget->HasAura(SPELL_AGONY_CURSE) || unitTarget->HasAura(SPELL_AGONY_CURSE_ALLY)
|
||||
|| !unitTarget->HasAura(SPELL_SPECTRAL_REALM_AURA);
|
||||
&& !unitTarget->HasAura(SPELL_AGONY_CURSE)
|
||||
&& !unitTarget->HasAura(SPELL_AGONY_CURSE_ALLY)
|
||||
&& unitTarget->HasAura(SPELL_SPECTRAL_REALM_AURA);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
@@ -519,10 +520,12 @@ struct boss_sathrovarr : public BossAI
|
||||
break;
|
||||
case EVENT_AGONY_CURSE:
|
||||
{
|
||||
CastSpellExtraArgs args(TRIGGERED_FULL_MASK);
|
||||
args.AddSpellMod(SPELLVALUE_MAX_TARGETS, 1);
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, CurseAgonySelector(me)))
|
||||
DoCast(target, SPELL_AGONY_CURSE);
|
||||
DoCast(target, SPELL_AGONY_CURSE, args);
|
||||
else
|
||||
DoCastVictim(SPELL_AGONY_CURSE);
|
||||
DoCastVictim(SPELL_AGONY_CURSE, args);
|
||||
events.Repeat(Seconds(20));
|
||||
break;
|
||||
}
|
||||
@@ -622,8 +625,9 @@ class SpectralBlastSelector : NonTankTargetSelector
|
||||
bool operator()(WorldObject* target) const
|
||||
{
|
||||
if (Unit* unitTarget = target->ToUnit())
|
||||
return !NonTankTargetSelector::operator()(unitTarget) ||
|
||||
unitTarget->HasAura(SPELL_SPECTRAL_EXHAUSTION) || unitTarget->HasAura(SPELL_SPECTRAL_REALM_AURA);
|
||||
return !NonTankTargetSelector::operator()(unitTarget)
|
||||
&& !unitTarget->HasAura(SPELL_SPECTRAL_EXHAUSTION)
|
||||
&& !unitTarget->HasAura(SPELL_SPECTRAL_REALM_AURA);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
@@ -768,8 +772,12 @@ class spell_kalecgos_curse_of_boundless_agony : public AuraScript
|
||||
|
||||
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_CANCEL)
|
||||
GetTarget()->CastSpell(GetTarget(), SPELL_AGONY_CURSE_ALLY, true);
|
||||
if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_CANCEL)
|
||||
return;
|
||||
|
||||
CastSpellExtraArgs args(TRIGGERED_FULL_MASK);
|
||||
args.AddSpellMod(SPELLVALUE_MAX_TARGETS, 1);
|
||||
GetTarget()->CastSpell(GetTarget(), SPELL_AGONY_CURSE_ALLY, args);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
||||
Reference in New Issue
Block a user