public void Level2_2DamagePush3TownOrExplorers() // 2-Sun, 3-Water { var fixture = new ConfigurableTestFixture(); var space = fixture.Board[5]; var tokens = fixture.GameState.Tokens[space]; var destination = space.Adjacent.Last(); // Given: spirit has a sacred site adjacent to the target space (range-1) fixture.Spirit.Presence.Adjust(space.Adjacent.First(), 2); // And: Spirit has enough elements to trigger Level-2 of Massive Flooding fixture.InitElements("3 water,2 sun"); // And: target has 1 city, 4 towns, 5 explorers - !!! collapse this to 1 line fixture.InitTokens(space, "1C@3,4T@2,5E@1"); // When: activate innate _ = InnatePower.For <MassiveFlooding>().ActivateAsync(fixture.SelfCtx); fixture.Choose(space); // target space fixture.Choose(Tokens.Town); // 1st damage fixture.Choose(Tokens.Town1); // 2nd damage fixture.ChoosePush(Tokens.Town, destination); // push 1 fixture.ChoosePush(Tokens.Town, destination); // push 2 fixture.ChoosePush(Tokens.Explorer, destination); // push 3 // Then: target has remaining invaders tokens.Summary.ShouldBe("1C@3,4E@1,1T@2"); // And: destination had pushed invaders fixture.GameState.Tokens[destination].Summary.ShouldBe("1E@1,2T@2"); }
public void Level1_Pushes1TownOrExplorer() // 1-Sun, 2-Water { var fixture = new ConfigurableTestFixture(); var space = fixture.Board[5]; var tokens = fixture.GameState.Tokens[space]; var destination = space.Adjacent.Last(); // Given: spirit has a sacred site adjacent to the target space (range-1) fixture.Spirit.Presence.Adjust(space.Adjacent.First(), 2); // And: Spirit has enough elements to trigger Level-1 of Massive Flooding fixture.InitElements("1 sun,2 water"); // And: target has 1 city, 4 towns, 5 explorers fixture.InitTokens(space, "1C@3,5E@1,4T@2"); // When: activate innate _ = InnatePower.For <MassiveFlooding>().ActivateAsync(fixture.SelfCtx); fixture.Choose(space); // target space fixture.ChoosePush(Tokens.Town, destination); // push 1 // Then: target has remaining invaders tokens.Summary.ShouldBe("1C@3,5E@1,3T@2"); // And: destination had pushed invaders fixture.GameState.Tokens[destination].Summary.ShouldBe("1T@2"); }