Beispiel #1
0
        public static IEnumerable<ILivingObject> FindEnemies(IEnvironmentObject env, IntPoint3 location, int range, LivingCategory categories)
        {
            int maxSide = 2 * range + 1;

            var rect = new IntGrid2Z(location.X - maxSide / 2, location.Y - maxSide / 2, maxSide, maxSide, location.Z);

            return env.GetContents(rect)
                .OfType<ILivingObject>()
                .Where(o => (o.LivingCategory & categories) != 0)
                .OrderBy(o => (location - o.Location).Length);
        }
Beispiel #2
0
        public static ILivingObject FindNearestEnemy(IEnvironmentObject env, IntVector3 location, int range, LivingCategory categories)
        {
            int maxSide = 2 * range + 1;

            var rect = new IntGrid2Z(location.X - maxSide / 2, location.Y - maxSide / 2, maxSide, maxSide, location.Z);

            return env.GetContents(rect)
                .OfType<ILivingObject>()
                .Where(o => (o.LivingCategory & categories) != 0)
                .OrderBy(o => (location - o.Location).Length)
                .FirstOrDefault();
        }
Beispiel #3
0
 public static ILivingObject FindNearestEnemy(ILivingObject living, LivingCategory categories)
 {
     return(FindNearestEnemy(living.Environment, living.Location, living.VisionRange, categories));
 }
Beispiel #4
0
        public static IEnumerable <ILivingObject> FindEnemies(IEnvironmentObject env, IntVector3 location, int range, LivingCategory categories)
        {
            int maxSide = 2 * range + 1;

            var rect = new IntGrid2Z(location.X - maxSide / 2, location.Y - maxSide / 2, maxSide, maxSide, location.Z);

            return(env.GetContents(rect)
                   .OfType <ILivingObject>()
                   .Where(o => (o.LivingCategory & categories) != 0)
                   .OrderBy(o => (location - o.Location).Length));
        }
Beispiel #5
0
 public static IEnumerable <ILivingObject> FindEnemies(ILivingObject living, LivingCategory categories)
 {
     return(FindEnemies(living.Environment, living.Location, living.VisionRange, categories));
 }
Beispiel #6
0
        public static IEnumerable<LivingInfo> GetLivingInfos(LivingCategory category)
        {
            Debug.Assert(category != LivingCategory.None);

            return s_livings.Skip(1).Where(li => (li.Category & category) != 0);
        }
Beispiel #7
0
        public static IEnumerable <LivingInfo> GetLivingInfos(LivingCategory category)
        {
            Debug.Assert(category != LivingCategory.None);

            return(s_livings.Skip(1).Where(li => (li.Category & category) != 0));
        }
Beispiel #8
0
 public static ILivingObject FindNearestEnemy(ILivingObject living, LivingCategory categories)
 {
     return FindNearestEnemy(living.Environment, living.Location, living.VisionRange, categories);
 }
Beispiel #9
0
 public static IEnumerable<ILivingObject> FindEnemies(ILivingObject living, LivingCategory categories)
 {
     return FindEnemies(living.Environment, living.Location, living.VisionRange, categories);
 }