private async Task OnExecute() { if (string.IsNullOrEmpty(MapPath)) { return; } if (string.IsNullOrEmpty(AdventureDllPath)) { return; } var builder = new GameBuilder(); var runner = builder.BuildGameRunner(MapPath, AdventureDllPath).Result; GameState turn; do { await Task.Delay(TimeBetweenTurns); turn = await runner.PlayTurn(); if (!OutputGame) { continue; } Console.WriteLine(turn.TurnCounter); Console.WriteLine(runner.ToString()); } while (!turn.IsFinished); Console.WriteLine("============ FINISHED ============"); Console.WriteLine("Total rounds played: " + turn.TurnCounter); Console.WriteLine("Total balance: " + turn.Party.Balance); Console.WriteLine("Total health left: " + turn.Party.Members.Select(member => member.HealthPoints).Sum()); Console.WriteLine("=================================="); }