Пример #1
0
        public GameFixture Start()
        {
            if (spirit == null)
            {
                spirit = new TestSpirit(PowerCard.For <WashAway>());
            }
            if (board == null)
            {
                board = Board.BuildBoardA();
            }

            gameState = new GameState(spirit, board);

            // Logging
            ravages = new List <InvadersRavaged>();
            gameState.InvadersRavaged.ForGame.Add((args) => { ravages.Add(args); return(Task.CompletedTask); });
            Log = new List <string>();
            gameState.NewLogEntry += (e) => Log.Add(e.Msg());


            user = new VirtualUser(spirit);
            _    = new SinglePlayer.SinglePlayerGame(gameState);          // Start the game 1st, (Initialize will wipe custome invader counts)
            return(this);
        }
        public void CanBring_2TownDahanExplorer()
        {
            // Setup
            var spirit    = new TestSpirit(PowerCard.For <FlowLikeWaterReachLikeAir>());
            var user      = new VirtualUser(spirit);
            var board     = Board.BuildBoardA();
            var gameState = new GameState(spirit, board);

            gameState.DisableInvaderDeck();
            gameState.Initialize();

            // Given: A5 has 3 Towns, Dahans, and Explorers
            var a5     = board[5];
            var tokens = gameState.Tokens[a5];

            tokens.InitDefault(TokenType.Dahan, 3);
            tokens.InitDefault(Invader.Explorer, 3);
            tokens.InitDefault(Invader.Town, 3);

            //  And: spirit has presence on A5
            spirit.Presence.PlaceOn(a5, gameState);

            //  And: A1 has nothing on it
            var a1 = board[1];