Core/Auras: Only auras that are stackable to use the same slot
This commit is contained in:
@@ -3149,7 +3149,7 @@ Aura* Unit::_TryStackingOrRefreshingExistingAura(SpellInfo const* newAura, uint8
|
||||
ASSERT(casterGUID || caster);
|
||||
|
||||
// Check if these can stack anyway
|
||||
if (!casterGUID && (newAura->IsChanneled() || newAura->AttributesEx3 & SPELL_ATTR3_STACK_FOR_DIFF_CASTERS))
|
||||
if (!casterGUID && !newAura->IsStackableOnOneSlotWithDifferentCasters())
|
||||
casterGUID = caster->GetGUID();
|
||||
|
||||
// passive and Incanter's Absorption and auras with different type can stack with themselves any number of times
|
||||
|
||||
@@ -1030,6 +1030,12 @@ bool SpellInfo::IsMultiSlotAura() const
|
||||
return IsPassive() || Id == 55849 || Id == 40075 || Id == 44413; // Power Spark, Fel Flak Fire, Incanter's Absorption
|
||||
}
|
||||
|
||||
bool SpellInfo::IsStackableOnOneSlotWithDifferentCasters() const
|
||||
{
|
||||
/// TODO: Re-verify meaning of SPELL_ATTR3_STACK_FOR_DIFF_CASTERS and update conditions here
|
||||
return StackAmount > 1 && !IsChanneled() && !(AttributesEx3 & SPELL_ATTR3_STACK_FOR_DIFF_CASTERS);
|
||||
}
|
||||
|
||||
bool SpellInfo::IsDeathPersistent() const
|
||||
{
|
||||
return AttributesEx3 & SPELL_ATTR3_DEATH_PERSISTENT;
|
||||
|
||||
@@ -392,6 +392,7 @@ public:
|
||||
bool IsStackableWithRanks() const;
|
||||
bool IsPassiveStackableWithRanks() const;
|
||||
bool IsMultiSlotAura() const;
|
||||
bool IsStackableOnOneSlotWithDifferentCasters() const;
|
||||
bool IsDeathPersistent() const;
|
||||
bool IsRequiringDeadTarget() const;
|
||||
bool IsAllowingDeadTarget() const;
|
||||
|
||||
Reference in New Issue
Block a user