示例#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());
        }