Core/Spells: expand the single target aura system to support a specific amount of targets

* limit Living Bomb targets to three per caster
This commit is contained in:
Ovahlord committed 2019-05-12 20:03:17 +02:00
1 parent 3d93df80a6
commit 9bf40cfee4
9 files changed
+101 -66

No files matched your search

+14 -9
View File
@@ -27234,19 +27234,24 @@ void Player::ActivateSpec(uint8 spec)
ExitVehicle();
RemoveAllControlled();
// remove single target auras at other targets
AuraList& scAuras = GetSingleCastAuras();
for (AuraList::iterator iter = scAuras.begin(); iter != scAuras.end();)
// remove limited target auras at other targets
AurasBySpellIdMap& ltAurasBySpellId = GetAllLimitedCastAuras();
for (AurasBySpellIdMap::iterator itr = ltAurasBySpellId.begin(); itr != ltAurasBySpellId.end(); itr++)
{
Aura* aura = *iter;
if (aura->GetUnitOwner() != this)
AuraList list = itr->second;
for (AuraList::iterator iter = list.begin(); iter != list.end();)
{
aura->Remove();
iter = scAuras.begin();
Aura* aura = *iter;
if (aura->GetUnitOwner() != this)
{
aura->Remove();
iter = list.begin();
}
else
++iter;
}
else
++iter;
}
/*RemoveAllAurasOnDeath();
if (GetPet())
GetPet()->RemoveAllAurasOnDeath();*/