예제 #1
0
        /// <summary>
        /// Obtient les entités vivantes se trouvant dans la forme passée en paramètre.
        /// </summary>
        public EntityCollection GetAliveEntitiesIn(Shapes.Shape shape, EntityType type)
        {
            EntityCollection entitiesIn = new EntityCollection();

            foreach (var kvp in this)
            {
                if (shape.Intersects(kvp.Value.Shape) && !kvp.Value.IsDead && kvp.Value.Type.HasFlag(type))
                {
                    entitiesIn.Add(kvp.Key, kvp.Value);
                }
            }
            return(entitiesIn);
        }
예제 #2
0
        /// <summary>
        /// Retourne les entités de la collection contenant le flag de type donné.
        /// </summary>
        /// <returns></returns>
        public EntityCollection GetEntitiesByType(EntityType type)
        {
            EntityCollection entities = new EntityCollection();

            foreach (var kvp in this)
            {
                EntityBase entity = kvp.Value;
                if (entity.Type.HasFlag(type))
                {
                    entities.Add(kvp.Key, entity);
                }
            }
            return(entities);
        }
예제 #3
0
        /// <summary>
        /// Retourne les entités en à portée de vue de la team donnée.
        /// </summary>
        public EntityCollection GetEntitiesInSight(EntityType team)
        {
            team = team & (EntityType.Team1 | EntityType.Team2);
            int teamId = (int)team;
            EntityCollection entitiesIn = new EntityCollection();

            foreach (var kvp in this)
            {
                if (GameServer.GetMap().Vision.HasSightOn(team, kvp.Value))
                {
                    entitiesIn.Add(kvp.Key, kvp.Value);
                }
            }

            return(entitiesIn);
        }