From 3d31e2a157c18fb2ce0c676d6195b4f24ca47fae Mon Sep 17 00:00:00 2001 From: mik1893 Date: Sun, 12 Jun 2016 10:47:29 +0100 Subject: Core/Spells: fix issue with Illumination talent (broken in #17122) (#17350) --- src/server/scripts/Spells/spell_paladin.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp index eed84d4ff6b..6de95af8d8f 100644 --- a/src/server/scripts/Spells/spell_paladin.cpp +++ b/src/server/scripts/Spells/spell_paladin.cpp @@ -898,19 +898,19 @@ public: // this script is valid only for the Holy Shock procs of illumination if (eventInfo.GetHealInfo() && eventInfo.GetHealInfo()->GetSpellInfo()) { + SpellInfo const* originalSpell = nullptr; + + // if proc comes from the Holy Shock heal, need to get mana cost of original spell - else it's the original heal itself if (eventInfo.GetHealInfo()->GetSpellInfo()->SpellFamilyFlags[1] & 0x00010000) + originalSpell = sSpellMgr->GetSpellInfo(sSpellMgr->GetSpellWithRank(SPELL_PALADIN_HOLY_SHOCK_R1, eventInfo.GetHealInfo()->GetSpellInfo()->GetRank())); + else + originalSpell = eventInfo.GetHealInfo()->GetSpellInfo(); + + if (originalSpell && aurEff->GetSpellInfo()) { - PreventDefaultAction(); Unit* target = eventInfo.GetActor(); // Paladin is the target of the energize - - // proc comes from the Holy Shock heal, need to get mana cost of original spell - uint32 originalspellid = sSpellMgr->GetSpellWithRank(SPELL_PALADIN_HOLY_SHOCK_R1, eventInfo.GetHealInfo()->GetSpellInfo()->GetRank()); - SpellInfo const* originalSpell = sSpellMgr->GetSpellInfo(originalspellid); - if (originalSpell && aurEff->GetSpellInfo()) - { - uint32 bp = CalculatePct(originalSpell->CalcPowerCost(target, originalSpell->GetSchoolMask()), aurEff->GetSpellInfo()->Effects[EFFECT_1].CalcValue()); - target->CastCustomSpell(SPELL_PALADIN_ILLUMINATION_ENERGIZE, SPELLVALUE_BASE_POINT0, bp, target, true, nullptr, aurEff); - } + uint32 bp = CalculatePct(originalSpell->CalcPowerCost(target, originalSpell->GetSchoolMask()), aurEff->GetSpellInfo()->Effects[EFFECT_1].CalcValue()); + target->CastCustomSpell(SPELL_PALADIN_ILLUMINATION_ENERGIZE, SPELLVALUE_BASE_POINT0, bp, target, true, nullptr, aurEff); } } } -- cgit v1.2.3