Пример #1
0
        private int ChooseAttack()
        {
            string strCh;
            int    ch;

            do
            {
                Console.Clear();
                FighterInfoHelper.fighterSmallInfo(_fighter);
                messager?.Invoke("Выбор атаки:");
                messager?.Invoke($"1 - Обычная атака\n2 - Использовать способность ({_fighter.Ability.Cost} маны)\n3 - Сдаться и проиграть");
                strCh = Console.ReadLine();
                if (int.TryParse(strCh, out ch))
                {
                    switch (ch)
                    {
                    case 1:
                        return(_fighter.Attack(_enemie));

                    case 2:
                        return(_fighter.SuperAbility(_enemie));

                    case 3:
                        return(int.MinValue);

                    default:
                        break;
                    }
                }
            } while (ch != 3);
            return(-1);
        }
Пример #2
0
        /// <summary>
        /// Начинает бой
        /// </summary>
        /// <param name="fighterOne">Атакующий</param>
        /// <param name="fighterTwo">Защищающийся</param>
        /// <returns>Возвращает значение TRUE - если бой закончился и FALSE - если бой продолжается</returns>
        public static bool Fight(BaseFighter fighterOne, BaseFighter fighterTwo, int chooseAttack)
        {
            int attack = 0;

            attack += fighterOne.Attack(fighterTwo);
            attack += fighterOne.Effects(fighterTwo);
            fighterOne.SuperAbility(fighterTwo);

            if (attack > 0)
            {
                fighterTwo.Health -= attack;
            }
            else
            {
                attack = 0;
            }

            FighterInfoHelper.fightersNormalInfo(fighterOne, fighterTwo);

            Console.ForegroundColor = fighterOne.Color;
            messager($"{fighterOne.Name} нанёс {attack} урона {fighterTwo.Name}");
            messager($"Оставшееся здоровье противника: {fighterTwo.Health}");
            Console.ForegroundColor = ConsoleColor.White;

            return(fighterTwo.IsDeath());
        }
Пример #3
0
 public void StartAtack()
 {
     do
     {
         int attack = ChooseAttack();
         _enemie.Health -= attack;
         FighterInfoHelper.fightersNormalInfo(_fighter, _enemie);
         Console.ForegroundColor = _fighter.Color;
         messager($"{_fighter.Name} нанёс {attack} урона {_fighter.Name}");
         messager($"Оставшееся здоровье противника: {_fighter.Health}");
         Console.ForegroundColor = ConsoleColor.White;
         Console.WriteLine("Нажмите любую клавишу для продолжения...");
         Console.ReadKey();
     } while (_fighter.Health > 0 && _enemie.Health > 0);
 }
Пример #4
0
        public void Start(BaseFighter fighter)
        {
            string strCh;
            int    ch;

            do
            {
                Console.Clear();
                messager?.Invoke($"Добро пожаловать, {fighter.Name}");
                messager?.Invoke("Что будем делать ?");
                messager?.Invoke("1 - Найти противника\n2 - Повысить уровень\n3 - Магазин\n4 - Информация о герое\n5 - Выход в меню");
                strCh = Console.ReadLine();
                if (int.TryParse(strCh, out ch))
                {
                    switch (ch)
                    {
                    case 1:
                        var fm = new FightMenu(fighter);
                        fm.StartAtack();
                        break;

                    case 2:
                        throw new MissingMethodException("Реализация в процессе");
                        break;

                    case 3:
                        throw new MissingMethodException("Реализация в процессе");
                        break;

                    case 4:
                        FighterInfoHelper.fighterFullInfo(fighter);
                        messager?.Invoke("Для продолжения, нажмите 'Enter'...");
                        Console.ReadLine();
                        break;

                    case 5:
                        break;

                    default:
                        throw new NotSupportedException("Хакер, что ли");
                        break;
                    }
                }
            } while (ch != 5);
        }