コード例 #1
0
 private void LaunchGame(Save save)
 {
     GameLogic.CreateLevel(save.LevelName, save.Name, DataLayer.Settings.SizeX,
                           DataLayer.Settings.SizeY, DataLayer.Settings.Difficulty, PlaySound);
     GameLogic.Player.Score = save.Score;
     GameLogic.Player.Hero  = save.Hero;
     GameLogic.CurrentSave  = save;
     GameStatus             = GameStatusEnum.Game;
 }
コード例 #2
0
        private void CreateMenu()
        {
            var c = Console.ReadKey(true);

            _menuInputProcessor.ProcessInput(
                c.Key,
                () => { Environment.Exit(0); },
                ChangeGameStatus,
                i => {
                ChangeCurrentMenuAction(i);
                _menu.DrawMenu(_currentMenuAction);
            },
                () => _currentMenuAction,
                () => {
                _menu.DrawNewGame();
                var name = Console.ReadLine();
                _dataLayer.AddGameSave(new Save {
                    Name = name
                });
                var currentSave = _dataLayer.GetAllGameSaves().Find(e => e.Name == name);
                if (currentSave == null)
                {
                    throw new Exception("Wrong save name!");
                }
                _gameLogic.CreateLevel(currentSave.LevelName, currentSave.Name, _dataLayer.Settings.SizeX,
                                       _dataLayer.Settings.SizeY, _dataLayer.Settings.Difficulty, PlaySound);
                _gameLogic.CurrentSave = currentSave;
            },
                () => {
                _menu.DrawHelp();
                Console.ReadKey();
                _menu.DrawMenu(
                    4);     //3 is "Help" index in _menuActions, so new  menu will be with this element current
            },
                () => {
                _menu.DrawSettings(_dataLayer.Settings);
                Console.WriteLine();
                Console.Write(" New Difficulty: ");
                _dataLayer.Settings.Difficulty = int.Parse(Console.ReadLine() ?? string.Empty);
                Console.WriteLine();
                Console.Write(" New TickRate: ");
                _dataLayer.Settings.TickRate = int.Parse(Console.ReadLine() ?? string.Empty);
                Console.WriteLine();
                Console.Write(" New SizeX: ");
                _dataLayer.Settings.SizeX = int.Parse(Console.ReadLine() ?? string.Empty);
                Console.WriteLine();
                Console.Write(" New SizeY: ");
                _dataLayer.Settings.SizeY = int.Parse(Console.ReadLine() ?? string.Empty);
                Console.WriteLine();
                Console.Write(" Press any key to quit settings");
                Console.ReadKey();
                _dataLayer.SaveSettings();
                _menu.DrawMenu(
                    2);     //2 is "Settings" index in _menuActions, so new  menu will be with this element current
            },
                () => {
                var results = _dataLayer.GetBestScores();
                _menu.DrawScores(results);
                try {
                    Console.ReadKey();
                    _menu.DrawMenu(
                        3);     //2 is "Settings" index in _menuActions, so new  menu will be with this element current
                }
                catch (Exception e) {
                    Console.WriteLine("Unable to read file with best scores");
                    Console.WriteLine(e.Message);
                }
            },
                () => {
                var saves = _dataLayer.GetAllGameSaves();
                _menu.DrawSaves(saves);
                var name = Console.ReadLine();
                foreach (var save in saves)
                {
                    if (save.Name == name)
                    {
                        LaunchGame(save);
                        ChangeGameStatus(GameStatusEnum.Game);
                    }
                }
            }
                );
        }