Core/Auras: Fixed removing auras triggered by aurastates
Closes #17868 (cherry picked from commit f94e6cee38241e10daed711247a18b8706cb8924)
This commit is contained in:
1 parent
67edf04835
commit
5ddf50bdee
1 file changed
+7
-10
@@ -7926,17 +7926,14 @@ void Unit::ModifyAuraState(AuraStateType flag, bool apply)
|
||||
{
|
||||
RemoveFlag(UNIT_FIELD_AURASTATE, 1<<(flag-1));
|
||||
|
||||
if (flag != AURA_STATE_ENRAGE) // enrage aura state triggering continues auras
|
||||
Unit::AuraApplicationMap& tAuras = GetAppliedAuras();
|
||||
for (Unit::AuraApplicationMap::iterator itr = tAuras.begin(); itr != tAuras.end();)
|
||||
{
|
||||
Unit::AuraApplicationMap& tAuras = GetAppliedAuras();
|
||||
for (Unit::AuraApplicationMap::iterator itr = tAuras.begin(); itr != tAuras.end();)
|
||||
{
|
||||
SpellInfo const* spellProto = (*itr).second->GetBase()->GetSpellInfo();
|
||||
if (spellProto->CasterAuraState == uint32(flag))
|
||||
RemoveAura(itr);
|
||||
else
|
||||
++itr;
|
||||
}
|
||||
SpellInfo const* spellProto = itr->second->GetBase()->GetSpellInfo();
|
||||
if (itr->second->GetBase()->GetCasterGUID() == GetGUID() && spellProto->CasterAuraState == uint32(flag) && (spellProto->IsPassive() || flag != AURA_STATE_ENRAGE))
|
||||
RemoveAura(itr);
|
||||
else
|
||||
++itr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user