aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2022_01_30_00_world.sql5
-rw-r--r--src/server/scripts/Spells/spell_paladin.cpp57
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);