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;
        }
Beispiel #2
0
        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));
        }