Esempio n. 1
0
        private SpellCastResult ValidateShapeShift()
        {
            if (spellValue.CastFlags.HasTargetFlag(SpellCastFlags.IgnoreShapeShift))
            {
                return(SpellCastResult.Success);
            }

            IReadOnlyList <AuraEffect> shapeShiftIgnoreEffects = Caster.Auras.GetAuraEffects(AuraEffectType.IgnoreShapeShift);

            if (shapeShiftIgnoreEffects != null)
            {
                for (int i = 0; i < shapeShiftIgnoreEffects.Count; i++)
                {
                    if (shapeShiftIgnoreEffects[i].IsAffectingSpell(SpellInfo))
                    {
                        return(SpellCastResult.Success);
                    }
                }
            }

            return(SpellInfo.CheckShapeShift(Caster));
        }