aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/scripts/Spells/spell_paladin.cpp68
1 files changed, 35 insertions, 33 deletions
diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp
index 8304ea87bfb..3bae7d45974 100644
--- a/src/server/scripts/Spells/spell_paladin.cpp
+++ b/src/server/scripts/Spells/spell_paladin.cpp
@@ -81,9 +81,9 @@ enum PaladinSpells
SPELL_PALADIN_HOLY_PRISM_TARGET_ALLY = 114871,
SPELL_PALADIN_HOLY_PRISM_TARGET_ENEMY = 114852,
SPELL_PALADIN_HOLY_PRISM_TARGET_BEAM_VISUAL = 114862,
- SPELL_PALADIN_HOLY_SHOCK_R1 = 20473,
- SPELL_PALADIN_HOLY_SHOCK_R1_DAMAGE = 25912,
- SPELL_PALADIN_HOLY_SHOCK_R1_HEALING = 25914,
+ SPELL_PALADIN_HOLY_SHOCK = 20473,
+ SPELL_PALADIN_HOLY_SHOCK_DAMAGE = 25912,
+ SPELL_PALADIN_HOLY_SHOCK_HEALING = 25914,
SPELL_PALADIN_IMMUNE_SHIELD_MARKER = 61988,
SPELL_PALADIN_ITEM_HEALING_TRANCE = 37706,
SPELL_PALADIN_JUDGMENT_GAIN_HOLY_POWER = 220637,
@@ -99,7 +99,12 @@ enum PaladinSpells
enum PaladinSpellVisualKit
{
- PALADIN_VISUAL_KIT_DIVINE_STORM = 73892
+ PALADIN_VISUAL_KIT_DIVINE_STORM = 73892
+};
+
+enum PaladinSpellVisual
+{
+ PALADIN_VISUAL_SPELL_HOLY_SHOCK = 83732
};
/*
@@ -361,12 +366,12 @@ class spell_pal_crusader_might : public AuraScript
bool Validate(SpellInfo const* /*spellInfo*/) override
{
- return ValidateSpellInfo({ SPELL_PALADIN_HOLY_SHOCK_R1 });
+ return ValidateSpellInfo({ SPELL_PALADIN_HOLY_SHOCK });
}
void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/)
{
- GetTarget()->GetSpellHistory()->ModifyCooldown(SPELL_PALADIN_HOLY_SHOCK_R1, Seconds(aurEff->GetAmount()));
+ GetTarget()->GetSpellHistory()->ModifyCooldown(SPELL_PALADIN_HOLY_SHOCK, Seconds(aurEff->GetAmount()));
}
void Register() override
@@ -841,39 +846,20 @@ class spell_pal_holy_shock : public SpellScript
{
PrepareSpellScript(spell_pal_holy_shock);
- bool Validate(SpellInfo const* spellInfo) override
- {
- SpellInfo const* firstRankSpellInfo = sSpellMgr->GetSpellInfo(SPELL_PALADIN_HOLY_SHOCK_R1, DIFFICULTY_NONE);
- if (!firstRankSpellInfo)
- return false;
-
- // can't use other spell than holy shock due to spell_ranks dependency
- if (!spellInfo->IsRankOf(firstRankSpellInfo))
- return false;
-
- uint8 rank = spellInfo->GetRank();
- if (!sSpellMgr->GetSpellWithRank(SPELL_PALADIN_HOLY_SHOCK_R1_DAMAGE, rank, true) || !sSpellMgr->GetSpellWithRank(SPELL_PALADIN_HOLY_SHOCK_R1_HEALING, rank, true))
- return false;
-
- return true;
- }
-
- void HandleDummy(SpellEffIndex /*effIndex*/)
+ bool Validate(SpellInfo const* /*spellInfo*/) override
{
- Unit* caster = GetCaster();
- if (Unit* unitTarget = GetHitUnit())
- {
- uint8 rank = GetSpellInfo()->GetRank();
- if (caster->IsFriendlyTo(unitTarget))
- caster->CastSpell(unitTarget, sSpellMgr->GetSpellWithRank(SPELL_PALADIN_HOLY_SHOCK_R1_HEALING, rank), true);
- else
- caster->CastSpell(unitTarget, sSpellMgr->GetSpellWithRank(SPELL_PALADIN_HOLY_SHOCK_R1_DAMAGE, rank), true);
- }
+ return ValidateSpellInfo
+ ({
+ SPELL_PALADIN_HOLY_SHOCK,
+ SPELL_PALADIN_HOLY_SHOCK_HEALING,
+ SPELL_PALADIN_HOLY_SHOCK_DAMAGE
+ });
}
SpellCastResult CheckCast()
{
Unit* caster = GetCaster();
+
if (Unit* target = GetExplTargetUnit())
{
if (!caster->IsFriendlyTo(target))
@@ -887,9 +873,25 @@ class spell_pal_holy_shock : public SpellScript
}
else
return SPELL_FAILED_BAD_TARGETS;
+
return SPELL_CAST_OK;
}
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ Unit* caster = GetCaster();
+
+ if (Unit* unitTarget = GetHitUnit())
+ {
+ if (caster->IsFriendlyTo(unitTarget))
+ caster->CastSpell(unitTarget, SPELL_PALADIN_HOLY_SHOCK_HEALING, true);
+ else
+ caster->CastSpell(unitTarget, SPELL_PALADIN_HOLY_SHOCK_DAMAGE, true);
+
+ caster->SendPlaySpellVisual(unitTarget, PALADIN_VISUAL_SPELL_HOLY_SHOCK, 0, 0, 0, false);
+ }
+ }
+
void Register() override
{
OnCheckCast += SpellCheckCastFn(spell_pal_holy_shock::CheckCast);