diff options
-rw-r--r-- | sql/updates/world/master/2025_02_15_00_world.sql | 3 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_paladin.cpp | 21 |
2 files changed, 24 insertions, 0 deletions
diff --git a/sql/updates/world/master/2025_02_15_00_world.sql b/sql/updates/world/master/2025_02_15_00_world.sql new file mode 100644 index 00000000000..8d96841fc67 --- /dev/null +++ b/sql/updates/world/master/2025_02_15_00_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_pal_justicars_vengeance'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(215661, 'spell_pal_justicars_vengeance'); diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp index ba976a67112..178025065f3 100644 --- a/src/server/scripts/Spells/spell_paladin.cpp +++ b/src/server/scripts/Spells/spell_paladin.cpp @@ -994,6 +994,26 @@ class spell_pal_judgment : public SpellScript } }; +// 215661 - Justicar's Vengeance +class spell_pal_justicars_vengeance : public SpellScript +{ + bool Validate(SpellInfo const* spellInfo) override + { + return ValidateSpellEffect({ { spellInfo->Id, EFFECT_1 } }); + } + + void HandleDamage(SpellEffectInfo const& /*spellEffectInfo*/, Unit const* victim, int32& /*damage*/, int32& /*flatMod*/, float& pctMod) const + { + if (victim->HasUnitState(UNIT_STATE_STUNNED)) + AddPct(pctMod, GetEffectInfo(EFFECT_1).CalcValue(GetCaster())); + } + + void Register() override + { + CalcDamage += SpellCalcDamageFn(spell_pal_justicars_vengeance::HandleDamage); + } +}; + // 114165 - Holy Prism class spell_pal_holy_prism : public SpellScript { @@ -1775,6 +1795,7 @@ void AddSC_paladin_spell_scripts() RegisterSpellScript(spell_pal_infusion_of_light); RegisterSpellScript(spell_pal_moment_of_glory); RegisterSpellScript(spell_pal_judgment); + RegisterSpellScript(spell_pal_justicars_vengeance); RegisterSpellScript(spell_pal_holy_prism); RegisterSpellScript(spell_pal_holy_prism_selector); RegisterSpellScript(spell_pal_holy_shock); |