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];