Ejemplo n.º 1
0
        private static void RootConsole_Update(object sender, UpdateEventArgs e)
        {
            bool       didPlayerAct = false;
            RLKeyPress keyPress     = rootConsole.Keyboard.GetKeyPress();

            if (CommandSystem.IsPlayerTurn)
            {
                if (keyPress != null)
                {
                    if (keyPress.Key == RLKey.Up)
                    {
                        didPlayerAct = CommandSystem.MovePlayer(Direction.Up);
                    }
                    else if (keyPress.Key == RLKey.Down)
                    {
                        didPlayerAct = CommandSystem.MovePlayer(Direction.Down);
                    }
                    else if (keyPress.Key == RLKey.Left)
                    {
                        didPlayerAct = CommandSystem.MovePlayer(Direction.Left);
                    }
                    else if (keyPress.Key == RLKey.Right)
                    {
                        didPlayerAct = CommandSystem.MovePlayer(Direction.Right);
                    }
                    else if (keyPress.Key == RLKey.Escape)
                    {
                        rootConsole.Close();
                    }
                    else if (keyPress.Key == RLKey.Space)
                    {
                        if (DungeonMap.CanMoveDownTNextLevel())
                        {
                            MapGenerator mapGenerator = new MapGenerator(mazmorraWidth, mazmorraHeight, 20, 13, 7, ++_mapLevel);
                            DungeonMap        = mapGenerator.CreateMap();
                            MessageLog        = new MessageLog();
                            CommandSystem     = new CommandSystem();
                            rootConsole.Title = $"OmniSharp - Level {_mapLevel}";
                            didPlayerAct      = true;
                        }
                    }
                }

                if (didPlayerAct)
                {
                    _renderRequired = true;
                    CommandSystem.EndPlayerTurn();
                }
            }
            else
            {
                CommandSystem.ActivateMonster();
                _renderRequired = true;
            }
        }