diff options
author | megamage <none@none> | 2008-12-07 12:01:56 -0600 |
---|---|---|
committer | megamage <none@none> | 2008-12-07 12:01:56 -0600 |
commit | 9c411e4f8cf38a40fae479f3f9815b661345d081 (patch) | |
tree | 97a02b6cbd1a62fee52973075621d5b2e9d7e8bb | |
parent | c10108a5cd8ba735cf051f9ea03daa944be514ab (diff) |
*Fix final heal of lifebloom.
--HG--
branch : trunk
-rw-r--r-- | src/game/SpellAuras.cpp | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index c053cfd30e6..742accf567f 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2103,26 +2103,14 @@ void Aura::HandleAuraDummy(bool apply, bool Real) if(m_target->GetTypeId()!=TYPEID_PLAYER || !((Player*)m_target)->GetSession()->PlayerLoading()) m_modifier.m_amount = caster->SpellHealingBonus(GetSpellProto(), m_modifier.m_amount, SPELL_DIRECT_DAMAGE, m_target); } - // Do final heal for real apply + // Do final heal for real !apply else if (Real) { - - // Final heal only on dispelled or duration end or 1 stack - if (!(GetAuraDuration() <= 0 || (m_removeMode==AURA_REMOVE_BY_DISPEL))) - { - // have a look if there is still some other Lifebloom dummy aura - Unit::AuraList auras = m_target->GetAurasByType(SPELL_AURA_DUMMY); - for(Unit::AuraList::iterator itr = auras.begin(); itr!=auras.end(); itr++) - if((*itr)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_DRUID && - (*itr)->GetSpellProto()->SpellFamilyFlags & 0x1000000000LL) - if((*itr)->GetCasterGUID() == GetCasterGUID()) - return; - } - else - { - // final heal - m_target->CastCustomSpell(m_target,33778,&m_modifier.m_amount,NULL,NULL,true,NULL,this,GetCasterGUID()); - } + if (GetAuraDuration() <= 0 || m_removeMode==AURA_REMOVE_BY_DISPEL) + { + int32 bp0 = GetModifierValue(); + m_target->CastCustomSpell(m_target,33778,&bp0,NULL,NULL,true,NULL,this,GetCasterGUID()); + } } return; } |