From 2d53863396af51de67dfad5a3508d48a69a93224 Mon Sep 17 00:00:00 2001 From: Vincent-Michael Date: Sun, 21 Jul 2013 16:41:13 +0200 Subject: Core/Spells: Convert/Update priest Vampiric Touch for 4.3.4 --- src/server/scripts/Spells/spell_priest.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index a5ae42e13aa..f1b5630c096 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -66,6 +66,11 @@ enum PriestSpellIcons PRIEST_ICON_ID_PAIN_AND_SUFFERING = 2874, }; +enum MiscSpells +{ + SPELL_GEN_REPLENISHMENT = 57669 +}; + // 527 - Dispel magic class spell_pri_dispel_magic : public SpellScriptLoader { @@ -979,7 +984,8 @@ class spell_pri_vampiric_touch : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { - if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_VAMPIRIC_TOUCH_DISPEL)) + if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_VAMPIRIC_TOUCH_DISPEL) || + !sSpellMgr->GetSpellInfo(SPELL_GEN_REPLENISHMENT)) return false; return true; } @@ -996,9 +1002,21 @@ class spell_pri_vampiric_touch : public SpellScriptLoader } } + bool CheckProc(ProcEventInfo& eventInfo) + { + return eventInfo.GetProcTarget() == GetCaster(); + } + + void HandleEffectProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) + { + eventInfo.GetProcTarget()->CastSpell((Unit*)NULL, SPELL_GEN_REPLENISHMENT, true, NULL, aurEff); + } + void Register() OVERRIDE { AfterDispel += AuraDispelFn(spell_pri_vampiric_touch_AuraScript::HandleDispel); + DoCheckProc += AuraCheckProcFn(spell_pri_vampiric_touch_AuraScript::CheckProc); + OnEffectProc += AuraEffectProcFn(spell_pri_vampiric_touch_AuraScript::HandleEffectProc, EFFECT_2, SPELL_AURA_DUMMY); } }; -- cgit v1.2.3