private static void populateGameCharacters(__FloorPlan.__Room room, GridBoundList <GameCharacter> chars, Random rand, int dungeonLevel, int heroLevel) { switch (room.type) { case __FloorPlan.__Room.__RoomType.BOSS_ROOM: if (room.isFree(room.GetCenter())) { chars.Add(EnemyCreator.GetRandomBoss(dungeonLevel), room.GetCenter()); } break; case __FloorPlan.__Room.__RoomType.NOTHING_SPECIAL: foreach (var pos in room.GetCells()) { if (rand.NextDouble() > 0.98 && room.isFree(pos)) { chars.Add(EnemyCreator.GetRandomEnemy(1, dungeonLevel)[0], pos); } //lights.Add(new ColorEnvironment(new Color(rand.Next(100,256), rand.Next(100,256), rand.Next(100,256)), false), position); } break; case __FloorPlan.__Room.__RoomType.MOB_ROOM: Enemy[] enemies = EnemyCreator.GetRandomEnemy(rand.Next(2, 6), dungeonLevel); int dropped = 1; chars.Add(enemies[0], room.GetCenter()); foreach (var dir in Direction.Values) { if (dropped < enemies.Length && (room.isFree(room.GetCenter() + dir))) { chars.Add(enemies[dropped], room.GetCenter() + dir); dropped++; } } break; } }