Code
diff -r 706dcaa64f85 src/game/SpellAuraEffects.cpp
--- a/src/game/SpellAuraEffects.cpp Mon Mar 08 17:20:25 2010 +0100
+++ b/src/game/SpellAuraEffects.cpp Tue Mar 09 01:08:35 2010 +0700
@@ -845,23 +845,6 @@
m_spellmod->value = GetBase()->GetUnitOwner()->CalculateSpellDamage(GetSpellProto(), 1, GetSpellProto()->EffectBasePoints[1], GetBase()->GetUnitOwner());
break;
}
- // Drain Soul - If the target is at or below 25% health, Drain Soul causes four times the normal damage
- if (GetSpellProto()->SpellFamilyName == SPELLFAMILY_WARLOCK && GetSpellProto()->SpellFamilyFlags[0] & 0x00004000)
- {
- if (!m_spellmod)
- {
- m_spellmod = new SpellModifier(GetBase());
- m_spellmod->op = SPELLMOD_DOT;
- m_spellmod->type = SPELLMOD_PCT;
- m_spellmod->spellId = GetId();
- m_spellmod->mask[0] = 0x00004000;
- // 300% more dmg
- if (GetBase()->GetUnitOwner()->GetMaxHealth() / 4 > GetBase()->GetUnitOwner()->GetHealth())
- m_spellmod->value = 300;
- else
- m_spellmod->value = 0;
- }
- }
break;
case SPELL_AURA_ADD_FLAT_MODIFIER:
case SPELL_AURA_ADD_PCT_MODIFIER:
diff -r 706dcaa64f85 src/game/Unit.cpp
--- a/src/game/Unit.cpp Mon Mar 08 17:20:25 2010 +0100
+++ b/src/game/Unit.cpp Tue Mar 09 01:08:35 2010 +0700
@@ -9979,6 +9979,9 @@
break;
}
}
+ // Drain soul 4x damage
+ if(spellProto->SpellIconID == 113 && pVictim->GetHealth()*100/pVictim->GetMaxHealth()<25)
+ DoneTotalMod*=4.0f;
break;
case SPELLFAMILY_DEATHKNIGHT:
// Improved Icy Touch