From ba4fa060d765a35507f1a73287504c3f2e440fdb Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 16 Oct 2021 22:05:02 +0200 Subject: Core/Auras: Implemented SPELL_AURA_ADD_PCT_MODIFIER_BY_SPELL_LABEL and SPELL_AURA_ADD_FLAT_MODIFIER_BY_SPELL_LABEL --- src/server/game/Spells/SpellInfo.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'src/server/game/Spells/SpellInfo.cpp') diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 44896751acb..3ae31465448 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -1729,9 +1729,22 @@ bool SpellInfo::IsAffectedBySpellMod(SpellModifier const* mod) const if (!affectSpell) return false; - // TEMP: dont use IsAffected - !familyName and !familyFlags are not valid options for spell mods - // TODO: investigate if the !familyName and !familyFlags conditions are even valid for all other (nonmod) uses of SpellInfo::IsAffected - return affectSpell->SpellFamilyName == SpellFamilyName && mod->mask & SpellFamilyFlags; + switch (mod->type) + { + case SPELLMOD_FLAT: + case SPELLMOD_PCT: + // TEMP: dont use IsAffected - !familyName and !familyFlags are not valid options for spell mods + // TODO: investigate if the !familyName and !familyFlags conditions are even valid for all other (nonmod) uses of SpellInfo::IsAffected + return affectSpell->SpellFamilyName == SpellFamilyName && static_cast(mod)->mask & SpellFamilyFlags; + case SPELLMOD_LABEL_FLAT: + return HasLabel(static_cast(mod)->value.LabelID); + case SPELLMOD_LABEL_PCT: + return HasLabel(static_cast(mod)->value.LabelID); + default: + break; + } + + return false; } bool SpellInfo::CanPierceImmuneAura(SpellInfo const* auraSpellInfo) const -- cgit v1.2.3