diff options
| author | Anubisss <none@none> | 2009-06-01 21:30:31 +0200 |
|---|---|---|
| committer | Anubisss <none@none> | 2009-06-01 21:30:31 +0200 |
| commit | 16e0e9931edf21f837672cdc14f5a8298eba444e (patch) | |
| tree | 11b932b1813ab0c3f6b9d8c4634beb242f6c8153 /src | |
| parent | 38c6880d93327ca18c92b6c03bae6629de8592b3 (diff) | |
*Fix the bug that Lay on Hands heals the target for an amount equal to the target's maximum health instead of the caster's maximum health.
--HG--
branch : trunk
Diffstat (limited to 'src')
| -rw-r--r-- | src/game/SpellEffects.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 190f9934b84..f2ea33c5cc4 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -4348,7 +4348,20 @@ void Spell::EffectHealMaxHealth(uint32 /*i*/) return; uint32 addhealth = unitTarget->GetMaxHealth() - unitTarget->GetHealth(); - unitTarget->SetHealth(unitTarget->GetMaxHealth()); + + // Lay on Hands + if(m_spellInfo->SpellFamilyName == SPELLFAMILY_PALADIN && m_spellInfo->SpellFamilyFlags & 0x0000000000008000) + { + if(!m_originalCaster) + return; + addhealth = addhealth > m_originalCaster->GetMaxHealth() ? m_originalCaster->GetMaxHealth() : addhealth; + uint32 LoHamount = unitTarget->GetHealth() + m_originalCaster->GetMaxHealth(); + LoHamount = LoHamount > unitTarget->GetMaxHealth() ? unitTarget->GetMaxHealth() : LoHamount; + unitTarget->SetHealth(LoHamount); + } + else + unitTarget->SetHealth(unitTarget->GetMaxHealth()); + if(m_originalCaster) m_originalCaster->SendHealSpellLog(unitTarget, m_spellInfo->Id, addhealth, false); } |
