aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2018-03-13 12:17:33 -0300
committerShauren <shauren.trinity@gmail.com>2021-09-06 20:38:34 +0200
commit7c5e23c97300e52cec1f78adb18f711c8e3af80b (patch)
tree4c71bf23a53e566f1458475fd9eab9cbb80bf149 /src
parent5491b7f89ff466b4f78e99801d135b2e736a7635 (diff)
Core/Spells: implemented 'Weakened Spirit' mechanic in Valithria Dreamwalker
- Debuff used to prevent multiple priests chaining 40% heal buff (Guardian Spirit) (cherry picked from commit 7d118f05baf9c9e4d7c13987e1530988c9a6a921)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
index baec83a7608..55c0487bfdd 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
@@ -60,6 +60,7 @@ enum Spells
SPELL_CLEAR_ALL = 71721,
SPELL_AWARD_REPUTATION_BOSS_KILL = 73843,
SPELL_CORRUPTION_VALITHRIA = 70904,
+ SPELL_WEAKENED_SOUL = 72232,
// The Lich King
SPELL_TIMER_GLUTTONOUS_ABOMINATION = 70915,
@@ -1477,6 +1478,34 @@ class spell_dreamwalker_twisted_nightmares : public SpellScriptLoader
}
};
+// 47788 - Guardian Spirit
+class spell_dreamwalker_guardian_spirit_restriction : public SpellScript
+{
+ PrepareSpellScript(spell_dreamwalker_guardian_spirit_restriction);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_WEAKENED_SOUL });
+ }
+
+ bool Load() override
+ {
+ return InstanceHasScript(GetCaster(), ICCScriptName);
+ }
+
+ SpellCastResult SkipWithWeakenedSoul()
+ {
+ if (!GetExplTargetUnit() || GetExplTargetUnit()->HasAura(SPELL_WEAKENED_SOUL))
+ return SPELL_FAILED_TARGET_AURASTATE;
+ return SPELL_CAST_OK;
+ }
+
+ void Register() override
+ {
+ OnCheckCast += SpellCheckCastFn(spell_dreamwalker_guardian_spirit_restriction::SkipWithWeakenedSoul);
+ }
+};
+
class achievement_portal_jockey : public AchievementCriteriaScript
{
public:
@@ -1509,5 +1538,6 @@ void AddSC_boss_valithria_dreamwalker()
new spell_dreamwalker_summon_nightmare_portal();
new spell_dreamwalker_nightmare_cloud();
new spell_dreamwalker_twisted_nightmares();
+ RegisterSpellScript(spell_dreamwalker_guardian_spirit_restriction);
new achievement_portal_jockey();
}