void Unit::_RemoveAllAuraMods()
{
ApplyStats(false);
for (AuraMap::iterator i = m_Auras.begin(); i != m_Auras.end(); ++i)
{
switch ((*i).second->GetModifier()->m_auraname)
{
case SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE:
case SPELL_AURA_MOD_RESISTANCE_PCT:
// these are already removed by applystats
break;
default:
(*i).second->ApplyModifier(false);
}
}
// these must be removed after applystats
AuraList& mModTotalStatPct = GetAurasByType(SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE);
for(AuraList::iterator i = mModTotalStatPct.begin(); i != mModTotalStatPct.end(); ++i)
(*i)->ApplyModifier(false);
AuraList& mModResistancePct = GetAurasByType(SPELL_AURA_MOD_RESISTANCE_PCT);
for(AuraList::iterator i = mModResistancePct.begin(); i != mModResistancePct.end(); ++i)
(*i)->ApplyModifier(false);
ApplyStats(true);
}
void Unit::_ApplyAllAuraMods()
{
ApplyStats(false);
// these must be applied before applystats
AuraList& mModTotalStatPct = GetAurasByType(SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE);
for(AuraList::iterator i = mModTotalStatPct.begin(); i != mModTotalStatPct.end(); ++i)
(*i)->ApplyModifier(true);
AuraList& mModResistancePct = GetAurasByType(SPELL_AURA_MOD_RESISTANCE_PCT);
for(AuraList::iterator i = mModResistancePct.begin(); i != mModResistancePct.end(); ++i)
(*i)->ApplyModifier(true);
for (AuraMap::iterator i = m_Auras.begin(); i != m_Auras.end(); ++i)
{
switch ((*i).second->GetModifier()->m_auraname)
{
case SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE:
case SPELL_AURA_MOD_RESISTANCE_PCT:
// these are already applied by applystats
break;
default:
(*i).second->ApplyModifier(true);
}
}
ApplyStats(true);
}