[10199] Fix 33763 and ranks final heal and mana return on dispel and on expire

This commit is contained in:
Laise 2010-07-16 21:34:05 +03:00
parent 2284df7868
commit ae51168ffc
6 changed files with 54 additions and 34 deletions

View file

@ -2477,21 +2477,14 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
}
else
{
// Final heal only on dispelled or duration end
if (!(GetAuraDuration() <= 0 || m_removeMode == AURA_REMOVE_BY_DISPEL))
// Final heal on duration end
if (m_removeMode != AURA_REMOVE_BY_EXPIRE)
return;
// have a look if there is still some other Lifebloom dummy aura
Unit::AuraList const& auras = target->GetAurasByType(SPELL_AURA_DUMMY);
for(Unit::AuraList::const_iterator itr = auras.begin(); itr!=auras.end(); ++itr)
if ((*itr)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_DRUID &&
((*itr)->GetSpellProto()->SpellFamilyFlags & UI64LIT(0x1000000000)))
return;
// final heal
if (target->IsInWorld() && GetStackAmount() > 0)
{
int32 amount = m_modifier.m_amount / GetStackAmount();
int32 amount = m_modifier.m_amount;
target->CastCustomSpell(target, 33778, &amount, NULL, NULL, true, NULL, this, GetCasterGUID());
if (Unit* caster = GetCaster())