diff options
-rw-r--r-- | sql/updates/world/master/2022_01_30_00_world.sql | 5 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_paladin.cpp | 57 |
2 files changed, 57 insertions, 5 deletions
diff --git a/sql/updates/world/master/2022_01_30_00_world.sql b/sql/updates/world/master/2022_01_30_00_world.sql new file mode 100644 index 00000000000..3486e457862 --- /dev/null +++ b/sql/updates/world/master/2022_01_30_00_world.sql @@ -0,0 +1,5 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_pal_holy_shock_damage_visual'; +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_pal_holy_shock_heal_visual'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(25912,'spell_pal_holy_shock_damage_visual'), +(25914,'spell_pal_holy_shock_heal_visual'); diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp index 3bae7d45974..820551eeb01 100644 --- a/src/server/scripts/Spells/spell_paladin.cpp +++ b/src/server/scripts/Spells/spell_paladin.cpp @@ -104,7 +104,10 @@ enum PaladinSpellVisualKit enum PaladinSpellVisual { - PALADIN_VISUAL_SPELL_HOLY_SHOCK = 83732 + PALADIN_VISUAL_SPELL_HOLY_SHOCK_DAMAGE = 83731, + PALADIN_VISUAL_SPELL_HOLY_SHOCK_DAMAGE_CRIT = 83881, + PALADIN_VISUAL_SPELL_HOLY_SHOCK_HEAL = 83732, + PALADIN_VISUAL_SPELL_HOLY_SHOCK_HEAL_CRIT = 83880, }; /* @@ -884,11 +887,9 @@ class spell_pal_holy_shock : public SpellScript if (Unit* unitTarget = GetHitUnit()) { if (caster->IsFriendlyTo(unitTarget)) - caster->CastSpell(unitTarget, SPELL_PALADIN_HOLY_SHOCK_HEALING, true); + caster->CastSpell(unitTarget, SPELL_PALADIN_HOLY_SHOCK_HEALING, GetSpell()); else - caster->CastSpell(unitTarget, SPELL_PALADIN_HOLY_SHOCK_DAMAGE, true); - - caster->SendPlaySpellVisual(unitTarget, PALADIN_VISUAL_SPELL_HOLY_SHOCK, 0, 0, 0, false); + caster->CastSpell(unitTarget, SPELL_PALADIN_HOLY_SHOCK_DAMAGE, GetSpell()); } } @@ -899,6 +900,50 @@ class spell_pal_holy_shock : public SpellScript } }; +// 25912 - Holy Shock +class spell_pal_holy_shock_damage_visual : public SpellScript +{ + PrepareSpellScript(spell_pal_holy_shock_damage_visual); + + bool Validate(SpellInfo const*) override + { + return sSpellVisualStore.HasRecord(PALADIN_VISUAL_SPELL_HOLY_SHOCK_DAMAGE) + && sSpellVisualStore.HasRecord(PALADIN_VISUAL_SPELL_HOLY_SHOCK_DAMAGE_CRIT); + } + + void PlayVisual() + { + GetCaster()->SendPlaySpellVisual(GetHitUnit(), IsHitCrit() ? PALADIN_VISUAL_SPELL_HOLY_SHOCK_DAMAGE_CRIT : PALADIN_VISUAL_SPELL_HOLY_SHOCK_DAMAGE, 0, 0, 0.0f, false); + } + + void Register() override + { + AfterHit += SpellHitFn(spell_pal_holy_shock_damage_visual::PlayVisual); + } +}; + +// 25914 - Holy Shock +class spell_pal_holy_shock_heal_visual : public SpellScript +{ + PrepareSpellScript(spell_pal_holy_shock_heal_visual); + + bool Validate(SpellInfo const*) override + { + return sSpellVisualStore.HasRecord(PALADIN_VISUAL_SPELL_HOLY_SHOCK_HEAL) + && sSpellVisualStore.HasRecord(PALADIN_VISUAL_SPELL_HOLY_SHOCK_HEAL_CRIT); + } + + void PlayVisual() + { + GetCaster()->SendPlaySpellVisual(GetHitUnit(), IsHitCrit() ? PALADIN_VISUAL_SPELL_HOLY_SHOCK_HEAL_CRIT : PALADIN_VISUAL_SPELL_HOLY_SHOCK_HEAL, 0, 0, 0.0f, false); + } + + void Register() override + { + AfterHit += SpellHitFn(spell_pal_holy_shock_heal_visual::PlayVisual); + } +}; + // 37705 - Healing Discount class spell_pal_item_healing_discount : public AuraScript { @@ -1336,6 +1381,8 @@ void AddSC_paladin_spell_scripts() RegisterSpellScript(spell_pal_holy_prism); RegisterSpellScript(spell_pal_holy_prism_selector); RegisterSpellScript(spell_pal_holy_shock); + RegisterSpellScript(spell_pal_holy_shock_damage_visual); + RegisterSpellScript(spell_pal_holy_shock_heal_visual); RegisterAuraScript(spell_pal_item_healing_discount); RegisterAuraScript(spell_pal_item_t6_trinket); RegisterSpellScript(spell_pal_lay_on_hands); |