diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_azerite.cpp | 33 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_item.cpp | 22 |
2 files changed, 55 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_azerite.cpp b/src/server/scripts/Spells/spell_azerite.cpp index f3c44809adc..add0174d0b5 100644 --- a/src/server/scripts/Spells/spell_azerite.cpp +++ b/src/server/scripts/Spells/spell_azerite.cpp @@ -481,6 +481,38 @@ class spell_item_echoing_blades_damage : public SpellScript } }; +// 288882 - Hour of Reaping +class spell_item_hour_of_reaping : public AuraScript +{ + PrepareAuraScript(spell_item_hour_of_reaping); + + enum + { + SPELL_DH_SOUL_BARRIER = 263648 + }; + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_DH_SOUL_BARRIER }); + } + + bool CheckProc(AuraEffect const* /*aurEff*/, ProcEventInfo& /*eventInfo*/) + { + return GetStackAmount() == GetAura()->CalcMaxStackAmount(); + } + + void TriggerSoulBarrier(AuraEffect* aurEff, ProcEventInfo& /*procInfo*/) + { + GetTarget()->CastSpell(GetTarget(), SPELL_DH_SOUL_BARRIER, aurEff); + } + + void Register() override + { + DoCheckEffectProc += AuraCheckEffectProcFn(spell_item_hour_of_reaping::CheckProc, EFFECT_0, SPELL_AURA_DUMMY); + AfterEffectProc += AuraEffectProcFn(spell_item_hour_of_reaping::TriggerSoulBarrier, EFFECT_0, SPELL_AURA_DUMMY); + } +}; + // 277253 - Heart of Azeroth class spell_item_heart_of_azeroth : public AuraScript { @@ -533,6 +565,7 @@ void AddSC_azerite_item_spell_scripts() RegisterSpellScript(spell_item_bastion_of_might); RegisterSpellScript(spell_item_echoing_blades); RegisterSpellScript(spell_item_echoing_blades_damage); + RegisterSpellScript(spell_item_hour_of_reaping); RegisterSpellScript(spell_item_heart_of_azeroth); } diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index 5c03f59f492..1dca1784067 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -4727,6 +4727,27 @@ class spell_item_seeping_scourgewing_aoe_check : public SpellScript } }; +// 295175 - Spiteful Binding +class spell_item_grips_of_forsaken_sanity : public AuraScript +{ + PrepareAuraScript(spell_item_grips_of_forsaken_sanity); + + bool Validate(SpellInfo const* spellInfo) override + { + return spellInfo->GetEffects().size() > EFFECT_1; + } + + bool CheckHealth(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo) + { + return eventInfo.GetActor()->GetHealthPct() >= float(GetEffectInfo(EFFECT_1).CalcValue()); + } + + void Register() override + { + DoCheckEffectProc += AuraCheckEffectProcFn(spell_item_grips_of_forsaken_sanity::CheckHealth, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL); + } +}; + void AddSC_item_spell_scripts() { // 23074 Arcanite Dragonling @@ -4875,4 +4896,5 @@ void AddSC_item_spell_scripts() RegisterSpellScript(spell_item_highfathers_machination); RegisterSpellScript(spell_item_seeping_scourgewing); RegisterSpellScript(spell_item_seeping_scourgewing_aoe_check); + RegisterSpellScript(spell_item_grips_of_forsaken_sanity); } |