diff options
author | sirikfoll <sirikfoll@hotmail.com> | 2018-02-05 21:14:26 -0200 |
---|---|---|
committer | sirikfoll <sirikfoll@hotmail.com> | 2018-02-05 21:14:26 -0200 |
commit | 14b6e3bbb36e4b5ec5212ed2a3bf5eb0012e095f (patch) | |
tree | ab931225c6aef7873f58cf8b9844b0a9a9d65316 | |
parent | 713bf944aeadc250dfb76dac277ed3b589d0de5b (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.cpp | 24 |
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 |