internal bool IsAffectedBySpellModifier(Spell spell, SpellModifier modifier) { if (modifier.Aura.AuraInfo.UsesCharges && modifier.Aura.Charges == 0 && !spell.HasAppliedModifier(modifier.Aura)) { return(false); } if (spell.SpellInfo.HasAttribute(SpellAttributes.IgnoreSpellModifiers)) { return(false); } for (int i = 0; i < modifier.AuraModifier.ApplicationConditions.Count; i++) { Condition applicationCondition = modifier.AuraModifier.ApplicationConditions[i]; if (applicationCondition.IsApplicableAndInvalid(spell.Caster, spell.ExplicitTargets.Target, spell)) { return(false); } } return(true); }
internal bool IsAffectedBySpellModifier(Spell spell, SpellModifier modifier) { if (modifier.Aura.AuraInfo.UsesCharges && modifier.Aura.Charges == 0 && !spell.HasAppliedModifier(modifier.Aura)) { return(false); } return(!spell.SpellInfo.HasAttribute(SpellAttributes.IgnoreSpellModifiers)); }