Core/Units: added a helper to check if a limited target aura exists without creating an empty element in the container

This commit is contained in:
Ovahlord committed 2022-02-21 13:44:24 +01:00
1 parent 003b096215
commit 6506e71a23
3 files changed
+12 -1

No files matched your search

+10
View File
@@ -4339,6 +4339,16 @@ void Unit::_ApplyAllAuraStatMods()
(*i).second->GetBase()->HandleAllEffects(i->second, AURA_EFFECT_HANDLE_STAT, true);
}
bool Unit::HasLimitedTargetAuraForSpell(uint32 spellId) const
{
AurasBySpellIdMap::const_iterator itr = m_ltAuras.find(spellId);
if (itr == m_ltAuras.end())
return false;
return !itr->second.empty();
}
AuraEffect* Unit::GetAuraEffect(uint32 spellId, uint8 effIndex, ObjectGuid caster) const
{
AuraApplicationMapBounds range = m_appliedAuras.equal_range(spellId);
+1
View File
@@ -1403,6 +1403,7 @@ class TC_GAME_API Unit : public WorldObject
AuraEffectList const& GetAuraEffectsByType(AuraType type) const { return m_modAuras[type]; }
AuraList& GetLimitedCastAuras(uint32 spellId) { return m_ltAuras[spellId]; }
AurasBySpellIdMap& GetAllLimitedCastAuras() { return m_ltAuras; }
bool HasLimitedTargetAuraForSpell(uint32 spellId) const;
AuraEffect* GetAuraEffect(uint32 spellId, uint8 effIndex, ObjectGuid casterGUID = ObjectGuid::Empty) const;
AuraEffect* GetAuraEffectOfRankedSpell(uint32 spellId, uint8 effIndex, ObjectGuid casterGUID = ObjectGuid::Empty) const;
+1 -1
View File
@@ -982,7 +982,7 @@ class spell_mage_nether_vortex : public AuraScript
bool CheckProc(ProcEventInfo& /*eventInfo*/)
{
return GetTarget()->GetLimitedCastAuras(SPELL_MAGE_SLOW).empty();
return GetTarget()->HasLimitedTargetAuraForSpell(SPELL_MAGE_SLOW);
}
void HandleEffectProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)