aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsirikfoll <sirikfoll@hotmail.com>2018-02-05 21:14:26 -0200
committersirikfoll <sirikfoll@hotmail.com>2018-02-05 21:14:26 -0200
commit14b6e3bbb36e4b5ec5212ed2a3bf5eb0012e095f (patch)
treeab931225c6aef7873f58cf8b9844b0a9a9d65316
parent713bf944aeadc250dfb76dac277ed3b589d0de5b (diff)
Scripts/Sunwell Plateau: Fixed and improved spell "Curse of Boundless Agony" target selection (Boss Kalecgos)
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
index 69ca2d31843..025bc44ed6a 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
@@ -440,8 +440,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;
}
};
@@ -520,10 +521,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;
}
@@ -623,8 +626,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;
}
};
@@ -769,8 +773,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