aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/SpellEffects.cpp15
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);
}