public virtual IEnumerable <Mobile> AcquireTargets(Point3D p, int range) { return(p.FindMobilesInRange(Map, range) .Where(m => m != null && !m.Deleted && m != this && m.AccessLevel <= AccessLevel && m.Alive) .Where(m => CanBeHarmful(m, false, true) && SpellHelper.ValidIndirectTarget(this, m)) .Where(m => !m.IsControlledBy(this)) .Where(m => Team == 0 || !(m is BaseCreature) || Team != ((BaseCreature)m).Team) .Where(m => Party == null || m.Party == null || m.Party != Party) .Where(m => m.Player || m.IsControlled() || m.HasAggressed(this) || m.HasAggressor(this))); }