/// <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); }
/// <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); }
/// <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); }