diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 17 | ||||
| -rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 1 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_priest.cpp | 20 |
3 files changed, 19 insertions, 19 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 9d96b920ad8..af16f9bdb64 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -5538,23 +5538,6 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere } case SPELLFAMILY_PRIEST: { - // Vampiric Touch - if (dummySpell->SpellFamilyFlags[1] & 0x00000400) - { - if (!victim || !victim->IsAlive()) - return false; - - if (effIndex != 0) - return false; - - // victim is caster of aura - if (triggeredByAura->GetCasterGUID() != victim->GetGUID()) - return false; - - // Energize 1% of max. mana - victim->CastSpell(victim, 57669, true, castItem, triggeredByAura); - return true; // no hidden cooldown - } // Body and Soul if (dummySpell->SpellIconID == 2218) { diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 55484123e8e..697ce4e622d 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -1182,7 +1182,6 @@ void AuraEffect::HandleShapeshiftBoosts(Unit* target, bool apply) const break; case FORM_SHADOW: spellId = 49868; - spellId2 = 71167; break; case FORM_GHOSTWOLF: spellId = 67116; 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); } }; |
