public Level(int width, int height, GameMessageLogger logger, EntityManager entityManager) { this.entityManager = entityManager; this.logger = logger; this.width = width; this.height = height; map = new ArrayMap <bool>(width, height); //GoRogue.MapGeneration.Generators.RectangleMapGenerator.Generate(map); aStar = new GoRogue.Pathing.AStar(map, GoRogue.Distance.MANHATTAN); GoRogue.MapGeneration.Generators.RandomRoomsGenerator.Generate(map, MaxRooms, MinRoomSize, MaxRoomSize, 5); // Place player Player = GeneratePlayer(); entityManager.Entities.Add(Player.RenderEntity); // Generate charge stations ChargeStations = new List <ChargeStation>(); // How Many? as many as max rooms for now for (int i = 0; i < MaxRooms; i++) { ChargeStation chargeStation = GenerateChargeStation(); ChargeStations.Add(chargeStation); entityManager.Entities.Add(chargeStation.RenderEntity); } // Generate enemies Enemies = new List <Enemy>(); for (int i = 0; i < MaxRooms / 3; i++) { Enemy enemy = GenerateEnemy(); Enemies.Add(enemy); entityManager.Entities.Add(enemy.RenderEntity); } }
private static void Init() { Console messageConsole = new Console( DisplayWidth - BottomConsoleWidth, BottomConsoleHeight); messageConsole.Position = new Point(BottomConsoleWidth, DisplayHeight - BottomConsoleHeight); GameMessageLogger logger = new GameMessageLogger(messageConsole); EntityManager entityManager = new EntityManager(); Console parentConsole = new Console(DisplayWidth, DisplayHeight); // Generate a map int mapWidth = DisplayWidth * 2, mapHeight = DisplayHeight * 2; map = new Level(mapWidth, mapHeight, logger, entityManager); levelConsole = new Console( mapWidth, mapHeight, Global.FontDefault, new Rectangle(0, 1, DisplayWidth, DisplayHeight - BottomConsoleHeight), map.GetCells()); parentConsole.Children.Add(levelConsole); energyConsole = new Console( BottomConsoleWidth, BottomConsoleHeight); energyConsole.Position = new Point(0, DisplayHeight - BottomConsoleHeight); parentConsole.Children.Add(energyConsole); RenderPlayerEnergy(); parentConsole.Children.Add(messageConsole); // Set the player levelConsole.Children.Add(entityManager); levelConsole.CenterViewPortOnPoint(map.Player.RenderEntity.Position); // Set our new console as the thing to render and process SadConsole.Global.CurrentScreen = parentConsole; logger.LogMessage("Tread lightly."); }