/// <summary> /// Called AFTER everything has been configured. and BEFORE players make first move. /// </summary> public void Initialize() { // ! this has to go first since ManyMinds requires the beast to be in place foreach (var board in Island.Boards) { Tokens[board[2]].Disease.Init(1); var lowest = board.Spaces.Skip(1).OfType <Space1>().First(s => s.StartUpCounts.Empty); Tokens[lowest].Beasts.Adjust(1); } foreach (var board in Island.Boards) { foreach (var space in board.Spaces) { ((Space1)space).InitTokens(Tokens[space]); } } // Explore InvaderDeck.Explore[0].Explore(this).Wait(); InvaderDeck.Advance(); InitSpirits(); // Blight BlightCard.OnGameStart(this); Tokens.TokenAdded.ForGame.Add(async args => { if (args.Token == TokenType.Blight) { await BlightAdded(args); } }); Tokens.TokenRemoved.ForGame.Add(args => { if (args.Token == TokenType.Blight && !args.Reason.IsOneOf( RemoveReason.MovedFrom, // pushing / gathering blight RemoveReason.Replaced // just in case... ) ) { this.blightOnCard += args.Count; } }); }
static void Advance(InvaderDeck sut) { sut.Advance(); sut.Advance(); sut.Advance(); }