Exemple #1
0
        public void GameMenu()
        {
            while (true)
            {
                Console.Clear();
                Console.WriteLine($"What do you want to do {_characterManager.GetCharacterName()}");

                foreach (var action in _actionService.GetMenuActionsByMenuName("Game Menu"))
                {
                    Console.WriteLine($"{action.Id}. {action.Name}");
                }

                int chosenOption;

                int.TryParse(Console.ReadKey().KeyChar.ToString(), out chosenOption);

                Console.Clear();

                switch (chosenOption)
                {
                case 1:
                    DungeonManager dungeonService    = new DungeonManager(_characterManager, _itemManager);
                    int            selectedOption    = 0;
                    bool           isDungeonFinished = false;
                    do
                    {
                        Console.Clear();
                        selectedOption = dungeonService.DungeonMenu(_actionService);

                        switch (selectedOption)
                        {
                        case 1:
                            if (dungeonService.CheckCount())
                            {
                                dungeonService.NextFight(_actionService);
                            }
                            else
                            {
                                isDungeonFinished = true;
                                _characterManager = dungeonService.ExitMenu();
                            }
                            break;

                        case 2:
                            Console.Clear();
                            int cost = 250 * _characterManager.GetHeroLevel();
                            Console.WriteLine($"Do you want to heal your hero for {cost} gold? (y/n)");
                            var confirmHeal = Console.ReadLine();
                            if (confirmHeal == "y" || confirmHeal == "Y")
                            {
                                if (_characterManager.Heal(cost))
                                {
                                    Console.WriteLine("Your hero was fully healed!");
                                }
                                else
                                {
                                    Console.WriteLine("Sorry you don't have enough gold");
                                }
                            }
                            break;

                        case 3:
                            isDungeonFinished = true;
                            _characterManager = dungeonService.ExitMenu();
                            break;
                        }
                    } while (!isDungeonFinished);

                    _characterManager.SaveCharacter();
                    break;

                case 2:
                    ShopManager shop = new ShopManager(_itemManager, _characterManager);
                    shop.ShowMenu();
                    break;

                case 3:
                    Console.Clear();
                    int i = _characterManager.CharacterInfo();
                    break;

                case 4:
                    Messages.SaveResult(_characterManager.SaveCharacter());
                    break;

                case 5:
                    Messages.Exit();
                    break;

                default:
                    Messages.WrongOption();
                    Console.Clear();
                    break;
                }
            }
        }