diff options
author | Keader <keader.android@gmail.com> | 2019-10-03 08:49:05 -0300 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-12-18 22:37:30 +0100 |
commit | 03a1b036339ccc5dc21f14fef534aeaeca087d61 (patch) | |
tree | 58f77652ffcaeb4e6438f0e0ab2bb6fff4386b46 /src | |
parent | 9abdc4ee3d819a992ac998bfb565d4a403308e5a (diff) |
Scripts/Forge of Souls: Fixed spell Soul Sickness (#23843)
(cherry picked from commit 34ee2effc89dc5bb34b4873dbfed6081ea8cb685)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 9 | ||||
-rw-r--r-- | src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp | 33 |
2 files changed, 42 insertions, 0 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 532e9f3d90e..a9a9d78a638 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -4591,6 +4591,15 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->AttributesEx2 |= SPELL_ATTR2_CAN_TARGET_DEAD; }); + // Soul Sickness (Forge of Souls) + ApplySpellFix({ 69131 }, [](SpellInfo* spellInfo) + { + ApplySpellEffectFix(spellInfo, EFFECT_1, [](SpellEffectInfo* spellEffectInfo) + { + spellEffectInfo->ApplyAuraName = SPELL_AURA_MOD_DECREASE_SPEED; + }); + }); + // // FIRELANDS SPELLS // diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp index 33feba58a2f..a75c6d7da69 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp @@ -19,6 +19,8 @@ #include "forge_of_souls.h" #include "ScriptedCreature.h" #include "ScriptedGossip.h" +#include "SpellAuras.h" +#include "SpellScript.h" enum Events { @@ -68,6 +70,11 @@ enum Phase PHASE_INTRO, }; +enum ForgeSpells +{ + SPELL_LETHARGY = 69133 +}; + class npc_sylvanas_fos : public CreatureScript { public: @@ -269,8 +276,34 @@ public: } }; +// 69131 - Soul Sickness +class spell_forge_of_souls_soul_sickness : public AuraScript +{ + PrepareAuraScript(spell_forge_of_souls_soul_sickness); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_LETHARGY }); + } + + void HandleStun(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) + { + if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE) + { + Unit* target = GetTarget(); + target->CastSpell(target, SPELL_LETHARGY, aurEff); + } + } + + void Register() override + { + AfterEffectRemove += AuraEffectRemoveFn(spell_forge_of_souls_soul_sickness::HandleStun, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + } +}; + void AddSC_forge_of_souls() { new npc_sylvanas_fos(); new npc_jaina_fos(); + RegisterAuraScript(spell_forge_of_souls_soul_sickness); } |