Core/Spells: Don't allow passive area auras to stack.

This commit is contained in:
QAston
2011-07-30 02:02:35 +02:00
parent 0cb2a95a04
commit 1df57ae522
2 changed files with 13 additions and 1 deletions
+12 -1
View File
@@ -856,6 +856,16 @@ void Aura::RefreshSpellMods()
player->RestoreAllSpellMods(0, this);
}
bool Aura::IsArea() const
{
for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i)
{
if (HasEffect(i) && GetSpellInfo()->Effects[i].IsAreaAuraEffect())
return true;
}
return false;
}
bool Aura::IsPassive() const
{
return GetSpellInfo()->IsPassive();
@@ -1865,7 +1875,8 @@ bool Aura::CanStackWith(Aura const* existingAura) const
// spell of same spell rank chain
if (m_spellInfo->IsRankOf(existingSpellInfo))
{
if (m_spellInfo->IsMultiSlotAura())
// don't allow passive area auras to stack
if (m_spellInfo->IsMultiSlotAura() && !IsArea())
return true;
if (GetCastItemGUID() && existingAura->GetCastItemGUID())
if (GetCastItemGUID() != existingAura->GetCastItemGUID() && (m_spellInfo->AttributesCu & SPELL_ATTR0_CU_ENCHANT_PROC))