aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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();
}