Пример #1
0
            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));
            }