Esempio n. 1
0
        private static void ConductBattle(FightQueue queue)
        {
            while (queue.AllAlive())
            {
                int dmg;
                if (queue.CurrentUnit() is Player player)
                {
                    Console.WriteLine("Choose type of attack: 1) Melee, 2) Magic");
                    ConsoleKeyInfo input = Console.ReadKey();

                    // TODO: Convert ConsoleKeyInfo value to AttackType enumerator.
                    dmg = CalculatePlayerDamage(player, input);
                }
                else
                {
                    dmg = queue.CurrentUnit().Attack + RollD4();
                }

                queue.NextUnit().Hp -= dmg;
                Console.WriteLine($"Unit {queue.CurrentUnit().Name} dealt {dmg} damage.");

                if (queue.NextUnit().IsAlive == false)
                {
                    Console.WriteLine($"Unit {queue.NextUnit().Name} is dead");
                    break;
                }
                queue.AdvanceQueue();
            }
        }