Code
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 44fe64a..692ac06 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -2723,10 +2723,6 @@ void Spell::finish(bool ok)
}
}
- // Heal caster for all health leech from all targets
- if (m_healthLeech)
- m_caster->DealHeal(m_caster, uint32(m_healthLeech), m_spellInfo);
-
if (IsMeleeAttackResetSpell())
{
m_caster->resetAttackTimer(BASE_ATTACK);
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index 5d39fab..e1042aa 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -2544,12 +2544,12 @@ void Spell::EffectHealthLeech(uint32 i)
if(Player *modOwner = m_caster->GetSpellModOwner())
modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_MULTIPLE_VALUE, multiplier);
- int32 new_damage = int32(damage*multiplier);
uint32 curHealth = unitTarget->GetHealth();
- new_damage = m_caster->SpellNonMeleeDamageLog(unitTarget, m_spellInfo->Id, new_damage );
+ int32 new_damage = m_caster->SpellNonMeleeDamageLog(unitTarget, m_spellInfo->Id, damage );
if(curHealth < new_damage)
new_damage = curHealth;
+ new_damage = int32(new_damage*multiplier);
if(m_caster->isAlive())
{
new_damage = m_caster->SpellHealingBonus(m_caster, m_spellInfo, new_damage, HEAL);
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index fb91db4..f010f05 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -7964,8 +7964,7 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3
// 50% for damage and healing spells for leech spells from damage bonus and 0% from healing
for(int j = 0; j < 3; ++j)
{
- if( spellProto->Effect[j] == SPELL_EFFECT_HEALTH_LEECH ||
- spellProto->Effect[j] == SPELL_EFFECT_APPLY_AURA && spellProto->EffectApplyAuraName[j] == SPELL_AURA_PERIODIC_LEECH )
+ if( spellProto->Effect[j] == SPELL_EFFECT_APPLY_AURA && spellProto->EffectApplyAuraName[j] == SPELL_AURA_PERIODIC_LEECH )
{
CastingTime /= 2;
break;