public IEnumerator turnEndTest() { THHGame game = TestGameflow.initStandardGame(); game.run(); game.players[0].cmdInitReplace(game); game.players[1].cmdInitReplace(game); game.sortedPlayers[0].cmdTurnEnd(game); THHGame.TurnEndEventArg turnEnd = game.triggers.getRecordedEvents().LastOrDefault(e => e is THHGame.TurnEndEventArg) as THHGame.TurnEndEventArg; Assert.NotNull(turnEnd); Assert.AreEqual(game.sortedPlayers[0], turnEnd.player); THHGame.TurnStartEventArg turnStart = game.triggers.getRecordedEvents().LastOrDefault(e => e is THHGame.TurnStartEventArg) as THHGame.TurnStartEventArg; Assert.NotNull(turnStart); Assert.AreEqual(game.sortedPlayers[1], turnStart.player); game.Dispose(); yield break; }
public IEnumerator discoverTest_TurnEnd() { TestGameflow.createGame(out var game, out var you, out var _, new GameOption() { timeoutForTurn = 1 }); game.skipTurnUntil(() => game.currentPlayer == you); var cards = you.hand.randomTake(game, 3); var task = you.discover(game, cards); Assert.NotNull(game.answers.getRequest <DiscoverRequest>(you.id)); THHGame.TurnEndEventArg turnEnd = null; game.triggers.onEventBefore += obj => { if (obj is THHGame.TurnEndEventArg) { turnEnd = obj as THHGame.TurnEndEventArg; } }; DiscoverResponse discoverResponse = null; game.answers.onResponse += response => { if (response is DiscoverResponse) { discoverResponse = response as DiscoverResponse; } }; yield return(new WaitForSeconds(1.1f)); Assert.NotNull(turnEnd); Assert.NotNull(discoverResponse); Assert.AreNotEqual(you, game.currentPlayer); Assert.Null(game.answers.getRequest <DiscoverRequest>(you.id)); Assert.True(task.IsCompleted); Assert.True(cards.Contains(task.Result)); }