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:
sirikfoll
2018-02-05 21:14:26 -02:00
committed by Shauren
parent 8c379e920c
commit e2c72cc02e

View File

@@ -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