diff options
| author | Aqua Deus <95978183+aquadeus@users.noreply.github.com> | 2024-12-23 20:11:00 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-23 20:11:00 +0100 |
| commit | 2c34088bbba1d6e9cda4797b96871f87bf41378a (patch) | |
| tree | 8c12377a3d2f39407ab981f3c9b1167670a6ce15 /src | |
| parent | 38eee2f034398e77335ec97228b931aaca5579bd (diff) | |
Scripts/Spells: Fix demon hunter talents "Demon Spikes" and "Deflecting Spikes" (#30493)
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/scripts/Spells/spell_dh.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_dh.cpp b/src/server/scripts/Spells/spell_dh.cpp index 11cb6165f5f..54df607a267 100644 --- a/src/server/scripts/Spells/spell_dh.cpp +++ b/src/server/scripts/Spells/spell_dh.cpp @@ -73,6 +73,7 @@ enum DemonHunterSpells SPELL_DH_DARKGLARE_BOON = 389708, SPELL_DH_DARKGLARE_BOON_ENERGIZE = 391345, SPELL_DH_DARKNESS_ABSORB = 209426, + SPELL_DH_DEFLECTING_SPIKES = 321028, SPELL_DH_DEMON_BLADES_DMG = 203796, SPELL_DH_DEMON_SPIKES = 203819, SPELL_DH_DEMON_SPIKES_TRIGGER = 203720, @@ -489,6 +490,50 @@ private: SpellInfo const* _absorbAuraInfo; }; +// 203819 - Demon Spikes +class spell_dh_deflecting_spikes : public SpellScript +{ + bool Validate(SpellInfo const* spellInfo) override + { + return ValidateSpellInfo({ SPELL_DH_DEFLECTING_SPIKES }) + && ValidateSpellEffect({ { spellInfo->Id, EFFECT_0 } }) + && spellInfo->GetEffect(EFFECT_0).IsAura(SPELL_AURA_MOD_PARRY_PERCENT); + } + + void HandleParryChance(WorldObject*& target) const + { + if (!GetCaster()->HasAura(SPELL_DH_DEFLECTING_SPIKES)) + target = nullptr; + } + + void Register() override + { + OnObjectTargetSelect += SpellObjectTargetSelectFn(spell_dh_deflecting_spikes::HandleParryChance, EFFECT_0, TARGET_UNIT_CASTER); + } +}; + +// 203720 - Demon Spikes +class spell_dh_demon_spikes : public SpellScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_DH_DEMON_SPIKES }); + } + + void HandleArmor(SpellEffIndex /*effIndex*/) + { + GetCaster()->CastSpell(GetCaster(), SPELL_DH_DEMON_SPIKES, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, + .TriggeringSpell = GetSpell() + }); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_dh_demon_spikes::HandleArmor, EFFECT_0, SPELL_EFFECT_DUMMY); + } +}; + // 198013 - Eye Beam class spell_dh_eye_beam : public AuraScript { @@ -1004,6 +1049,8 @@ void AddSC_demon_hunter_spell_scripts() RegisterSpellScript(spell_dh_cycle_of_hatred); RegisterSpellScript(spell_dh_darkglare_boon); RegisterSpellScript(spell_dh_darkness); + RegisterSpellScript(spell_dh_deflecting_spikes); + RegisterSpellScript(spell_dh_demon_spikes); RegisterSpellScript(spell_dh_eye_beam); RegisterSpellScript(spell_dh_fel_devastation); RegisterSpellScript(spell_dh_fel_flame_fortification); |
