From dd1a750921af53a435e166e23bb3caa84093d01e Mon Sep 17 00:00:00 2001 From: John Holiver Date: Tue, 25 May 2010 20:25:56 -0300 Subject: [PATCH] Re-Fix Life Tap Formula (3.3.3). More blizzlike formula. The formula used now IS NOT perfect(!), but it's a extremely good aproximation of the current Blizz calc. This formula was based on curve fitting from data collected from retail. Also, fix the usage of BaseSpellPower, now it also employ 'green' bonus. Tnx to the reviewers. --HG-- branch : trunk --- src/game/SpellEffects.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 25f40cb5455..350901b99dc 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -1630,10 +1630,8 @@ void Spell::EffectDummy(uint32 i) // Life Tap if (m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_WARLOCK_LIFETAP) { - // Health = [effectBasePoints1 + SPI * 1.5] - int32 damage = 1 + m_spellInfo->EffectBasePoints[0] + (m_caster->GetStat(STAT_SPIRIT) * 1.5); - // Mana = [effectBasePoints1 + SPS * 0.5] - int32 mana = 1 + m_spellInfo->EffectBasePoints[0] + (m_caster->ToPlayer()->GetBaseSpellPowerBonus() * 0.5); + int32 damage = m_spellInfo->EffectBasePoints[0] + (6 * m_spellInfo->baseLevel); + int32 mana = damage + (m_caster->ToPlayer()->GetUInt32Value(PLAYER_FIELD_MOD_DAMAGE_DONE_POS+SPELL_SCHOOL_SHADOW) / 2); if (unitTarget && (int32(unitTarget->GetHealth()) > damage)) {