示例#1
0
        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);
            }
        }
示例#2
0
        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.");
        }