diff options
author | Keader <keader.android@gmail.com> | 2020-10-11 13:33:02 -0300 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-02-28 16:59:09 +0100 |
commit | ec3cb55d2f631811e87c8e18be2a8de724cd793c (patch) | |
tree | 1ec41e97bc2ccae5fe6ba209e58f1003c13fc4c2 /src | |
parent | 6cd16b0ca9ff43b025e286f336b6af03c49b37db (diff) |
Scripts/IcecrownCitadel: Implemented Vampiric Might spell (#25556)
Closes #21294
(cherry picked from commit dadc0c98c098e0a9555124dc042687a80c89b79a)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp index 6816185539b..1bd0bce987b 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp @@ -24,6 +24,7 @@ #include "QuestPools.h" #include "ScriptedCreature.h" #include "ScriptMgr.h" +#include "SpellAuraEffects.h" #include "SpellInfo.h" #include "SpellScript.h" #include "TemporarySummon.h" @@ -86,6 +87,7 @@ enum Spells SPELL_NECROTIC_STRIKE = 70659, SPELL_SHADOW_CLEAVE = 70670, SPELL_VAMPIRIC_MIGHT = 70674, + SPELL_VAMPIRIC_MIGHT_PROC = 70677, SPELL_FANATIC_S_DETERMINATION = 71235, SPELL_DARK_MARTYRDOM_FANATIC = 71236, SPELL_DARK_MARTYRDOM_FANATIC_25N = 72495, @@ -1002,6 +1004,37 @@ class spell_deathwhisper_summon_spirits : public SpellScript } }; +// 70674 - Vampiric Might +class spell_deathwhisper_vampiric_might : public AuraScript +{ + PrepareAuraScript(spell_deathwhisper_vampiric_might); + + bool Validate(SpellInfo const* /*spell*/) override + { + return ValidateSpellInfo({ SPELL_VAMPIRIC_MIGHT_PROC }); + } + + void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo) + { + PreventDefaultAction(); + DamageInfo* damageInfo = eventInfo.GetDamageInfo(); + if (!damageInfo || !damageInfo->GetDamage()) + return; + + Unit* target = GetTarget(); + uint32 damage = damageInfo->GetDamage(); + ApplyPct(damage, aurEff->GetAmount()); + CastSpellExtraArgs args(aurEff); + args.AddSpellBP0(damage); + target->CastSpell(target, SPELL_VAMPIRIC_MIGHT_PROC, args); + } + + void Register() override + { + OnEffectProc += AuraEffectProcFn(spell_deathwhisper_vampiric_might::HandleProc, EFFECT_1, SPELL_AURA_DUMMY); + } +}; + class at_lady_deathwhisper_entrance : public OnlyOnceAreaTriggerScript { public: @@ -1031,6 +1064,7 @@ void AddSC_boss_lady_deathwhisper() RegisterSpellScript(spell_deathwhisper_mana_barrier); RegisterSpellScript(spell_deathwhisper_dominated_mind); RegisterSpellScript(spell_deathwhisper_summon_spirits); + RegisterSpellScript(spell_deathwhisper_vampiric_might); // AreaTriggers new at_lady_deathwhisper_entrance(); |