public async Task StartAsync() { for (int i = 1; i <= Settings.MaxTurns; i++) { Turn = TurnFactory.Create(i); OnTurnStarting(); await Turn.StartAsync(Bots); OnTurnFinished(); if (Bots.Count(b => b.HP > 0) <= 1) { break; } await WaitForNextTurnAsync(); } var scores = new List <Score>(); foreach (var bot in Bots) { scores.Add(new Score { BotName = bot.Name, Kills = bot.Kills, Deaths = bot.Deaths }); } Scores = scores; }
public void GetNextTurnIndexTest() { var turn = TurnFactory.TwoPlayer(); var currentTurn = turn.Value; var nextTurnIndex = turn.GetNextTurnIndex(); Assert.True(nextTurnIndex == currentTurn + 1); }
public void ProgressTurnTest() { var turn = TurnFactory.TwoPlayer(); var currentTurn = turn.Value; turn.ProgressTurn(); Assert.True(turn.Value == currentTurn + 1); Assert.True(turn.PreviousValue == currentTurn); }
public void GetNextTurnIndexAtEndOfPlayersTest() { var turn = TurnFactory.TwoPlayer(); turn.Value = 1; var nextTurnIndex = turn.GetNextTurnIndex(); Assert.True(nextTurnIndex == 0); }
public override void SetUp() { base.SetUp(); Battlefield = Get <IBattlefieldFactory>().Create(); BotWorkshop = Get <IBotWorkshop>(); TurnFactory = Get <ITurnFactory>(); Turn = TurnFactory.Create(1); Settings = Get <ISettings>(); AttackerBot = BotWorkshop.Create(TestBotAI.AttackFirstEnemy); IdleBot = BotWorkshop.Create(TestBotAI.Idle); }
public void ProgressTurnTwiceTest() { var turn = TurnFactory.TwoPlayer(); var currentTurn = turn.Value; turn.ProgressTurn(2); // Turn should appear to be the same in a two person game Assert.True(turn.Value == currentTurn); Assert.True(turn.PreviousValue == currentTurn); }
private static void NewTakeTurn() { Turn turn = MaintananceTurn.GetBestMaintanance(GameLayer); if (turn != null) { turn = turn.TakeTurn(GameLayer); if (turn != null) { StackedTurns.Push(turn); } return; } turn = AdjustEnergyTurn.GetBestEnergyAdjustment(GameLayer, 2); if (turn != null) { turn = turn.TakeTurn(GameLayer); if (turn != null) { StackedTurns.Push(turn); } return; } if (StackedTurns.Count > 0) { Turn nextTurn = StackedTurns.Pop().TakeTurn(GameLayer); if (nextTurn != null) { StackedTurns.Push(nextTurn); } return; } List <Bundle> possibleMoves = new List <Bundle>(); possibleMoves.AddRange(TurnFactory.GetBestPlaceBuildingTurnBundles(GameLayer)); possibleMoves.AddRange(TurnFactory.GetBestUpgradesTurnBundles(GameLayer)); possibleMoves.AddRange(TurnFactory.GetBestPlaceUtilitiesturnBundles(GameLayer)); possibleMoves.Add(TurnFactory.GetWaitTurnBundle(GameLayer)); Bundle bestTurn = BundleSorter.GetBestBundle(possibleMoves, GameLayer); turn = bestTurn.Turn.TakeTurn(GameLayer); if (turn != null) { StackedTurns.Push(turn); } }
public void ItIsPossibleToKill() { var attacker = BotWorkshop.Create(TestBotAI.SeekAndDestroy("attacker")); var victim = BotWorkshop.Create(TestBotAI.Idle); var bots = new List <IBattleBot> { attacker, victim }; attacker.PositionTo(Battlefield, 0, 0); victim.PositionTo(Battlefield, Battlefield.Width - 1, Battlefield.Height - 1); for (int i = 1; i <= Settings.MaxTurns; i++) { System.Console.WriteLine($"Attacker: {attacker.Position}"); System.Console.WriteLine($"Victim: {victim.Position}"); var turn = TurnFactory.Create(i); turn.Start(bots); System.Console.WriteLine(attacker.Action); } victim.HP.Should().Be(0); }
public override void SetUp() { base.SetUp(); Turn = TurnFactory.Create(1); }
private void CreateTurn() { turn = TurnFactory.CreateNextTurn(); }