aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2021_09_06_03_world_2018_03_13_00_world.sql7
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp30
2 files changed, 37 insertions, 0 deletions
diff --git a/sql/updates/world/master/2021_09_06_03_world_2018_03_13_00_world.sql b/sql/updates/world/master/2021_09_06_03_world_2018_03_13_00_world.sql
new file mode 100644
index 00000000000..5a0c4ba35f0
--- /dev/null
+++ b/sql/updates/world/master/2021_09_06_03_world_2018_03_13_00_world.sql
@@ -0,0 +1,7 @@
+DELETE FROM `spell_proc` WHERE `SpellId`=70904;
+INSERT INTO `spell_proc` (`SpellId`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `ProcFlags`, `SpellTypeMask`, `SpellPhaseMask`, `HitMask`, `AttributesMask`, `ProcsPerMinute`, `Chance`, `Cooldown`, `Charges`) VALUES
+(70904, 0x0, 6, 0x00000000, 0x00000000, 0x00000800, 2048, 0x4, 0x0, 0x0, 0x0, 0, 0, 0, 0);
+
+DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_dreamwalker_guardian_spirit_restriction';
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(47788,'spell_dreamwalker_guardian_spirit_restriction');
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();
}