Apply diminishing only on 1 spell aura add/begin timing only on last spell aura removed

Signed-off-by: DiSlord <dislord@nomail.com>
This commit is contained in:
DiSlord 2009-01-19 01:24:45 +03:00
parent d469a604eb
commit c9ae3b8b5c
2 changed files with 15 additions and 19 deletions

View file

@ -941,10 +941,6 @@ void Aura::_AddAura()
break;
}
// register aura
if (getDiminishGroup() != DIMINISHING_NONE )
m_target->ApplyDiminishingAura(getDiminishGroup(),true);
Unit* caster = GetCaster();
// passive auras (except totem auras) do not get placed in the slots
@ -967,6 +963,10 @@ void Aura::_AddAura()
//*****************************************************
if (!secondaura)
{
// register aura diminishing on apply
if (getDiminishGroup() != DIMINISHING_NONE )
m_target->ApplyDiminishingAura(getDiminishGroup(),true);
// Update Seals information
if (IsSealSpell(m_spellProto))
m_target->ModifyAuraState(AURA_STATE_JUDGEMENT, true);
@ -1010,10 +1010,6 @@ void Aura::_RemoveAura()
dynObj->RemoveAffected(m_target);
}
// unregister aura
if (getDiminishGroup() != DIMINISHING_NONE )
m_target->ApplyDiminishingAura(getDiminishGroup(),false);
//passive auras do not get put in slots
// Note: but totem can be not accessible for aura target in time remove (to far for find in grid)
//if(m_isPassive && !(caster && caster->GetTypeId() == TYPEID_UNIT && ((Creature*)caster)->isTotem()))
@ -1048,6 +1044,10 @@ void Aura::_RemoveAura()
// only remove icon when the last aura of the spell is removed (current aura already removed from list)
if (lastaura)
{
// unregister aura diminishing (and store last time)
if (getDiminishGroup() != DIMINISHING_NONE )
m_target->ApplyDiminishingAura(getDiminishGroup(),false);
SetAura(true);
SetAuraFlags(AFLAG_NONE);
SetAuraLevel(0);