public void TestPartialBottomReorder() { var baratheon = new Player(HouseName.Baratheon); var lannister = new Player(HouseName.Lannister); var stark = new Player(HouseName.Stark); var tyrell = new Player(HouseName.Tyrell); var greyjoy = new Player(HouseName.Greyjoy); var martell = new Player(HouseName.Martell); var rankedPlayers = new List<Player>(); rankedPlayers.Add(baratheon); rankedPlayers.Add(lannister); rankedPlayers.Add(stark); rankedPlayers.Add(tyrell); rankedPlayers.Add(greyjoy); rankedPlayers.Add(martell); var track = new InfluenceTrack(InfluenceTrackType.IronThrone, LeaderTokenType.IronThrone, rankedPlayers); track.Reorder(tyrell, greyjoy, martell); track.GetLeadPlayer().House.Should().Be(HouseName.Tyrell); track.GetRankedPlayers()[0].House.Should().Be(HouseName.Tyrell); track.GetRankedPlayers()[1].House.Should().Be(HouseName.Greyjoy); track.GetRankedPlayers()[2].House.Should().Be(HouseName.Martell); track.GetRankedPlayers()[3].House.Should().Be(HouseName.Baratheon); track.GetRankedPlayers()[4].House.Should().Be(HouseName.Lannister); track.GetRankedPlayers()[5].House.Should().Be(HouseName.Stark); }
public void TestSharedSupplyLevels() { var baratheon = new Player(HouseName.Baratheon); var lannister = new Player(HouseName.Lannister); var stark = new Player(HouseName.Stark); var tyrell = new Player(HouseName.Tyrell); var greyjoy = new Player(HouseName.Greyjoy); var martell = new Player(HouseName.Martell); var track = new SupplyTrack(null); track.Add(baratheon, supply: 2); track.Add(lannister, supply: 2); track.Add(stark, supply: 2); track.Add(tyrell, supply: 2); track.Add(greyjoy, supply: 2); track.Add(martell, supply: 2); track.GetSupply(baratheon).Should().Be(2); track.GetSupply(lannister).Should().Be(2); track.GetSupply(stark) .Should().Be(2); track.GetSupply(tyrell) .Should().Be(2); track.GetSupply(greyjoy) .Should().Be(2); track.GetSupply(martell) .Should().Be(2); }
public void BasicVictory() { var baratheon = new Player(); var lannister = new Player(); var stark = new Player(); var track = new VictoryTrack(new Mock<IGameData>().Object); track.Add(baratheon, Convert.ToInt32(TestContext.DataRow["baratheonInput"])); track.Add(lannister, Convert.ToInt32(TestContext.DataRow["lannisterInput"])); track.Add(stark, Convert.ToInt32(TestContext.DataRow["starkInput"])); track.GetVictoryPoints(baratheon).Should().Be(Convert.ToInt32(TestContext.DataRow["baratheonOutput"])); track.GetVictoryPoints(lannister).Should().Be(Convert.ToInt32(TestContext.DataRow["lannisterOutput"])); track.GetVictoryPoints(stark).Should() .Be(Convert.ToInt32(TestContext.DataRow["starkOutput"])); }
public void TestBasicSupplyAmount() { var baratheon = new Player(HouseName.Baratheon); var lannister = new Player(HouseName.Lannister); var stark = new Player(HouseName.Stark); var track = new SupplyTrack(null); track.Add(baratheon, supply: 2); track.Add(lannister, supply: 2); track.Add(stark, supply: 1); track.GetSupply(baratheon).Should().Be(2); track.GetSupply(lannister).Should().Be(2); track.GetSupply(stark) .Should().Be(1); }
public void TestMinimumSupply() { var baratheon = new Player(HouseName.Baratheon); var lannister = new Player(HouseName.Lannister); var stark = new Player(HouseName.Stark); var track = new SupplyTrack(null); track.Add(baratheon, supply: 2); track.Add(lannister, supply: 2); track.Add(stark, supply: 1); Action set = () => track.Set(stark, supply: -1); set.ShouldThrow<ArgumentOutOfRangeException>("because 0 is the minimum supply level."); track.GetSupply(baratheon).Should().Be(2); track.GetSupply(lannister).Should().Be(2); track.GetSupply(stark).Should().Be(1); }
public void TestMissingPlayerReorder() { var baratheon = new Player(HouseName.Baratheon); var lannister = new Player(HouseName.Lannister); var stark = new Player(HouseName.Stark); var tyrell = new Player(HouseName.Tyrell); var rankedPlayers = new List<Player>(); rankedPlayers.Add(baratheon); rankedPlayers.Add(lannister); rankedPlayers.Add(stark); var track = new InfluenceTrack(InfluenceTrackType.IronThrone, LeaderTokenType.IronThrone, rankedPlayers); Action reorder = () => track.Reorder(stark, baratheon, lannister, tyrell); reorder.ShouldThrow<ArgumentException>("because player to reorder was not found on this track"); track.GetLeadPlayer().House.Should().Be(HouseName.Baratheon); track.GetRankedPlayers()[0].House.Should().Be(HouseName.Baratheon); track.GetRankedPlayers()[1].House.Should().Be(HouseName.Lannister); track.GetRankedPlayers()[2].House.Should().Be(HouseName.Stark); }
/// <summary> /// /// </summary> /// <param name="playerCount"></param> public void Setup(int playerCount) { players.Clear(); this.playerCount = playerCount; WildlingThreat = GameData.GetStartingWildlingThreat(); foreach (var house in GameData.GetValidHouses(playerCount)) { var player = new Player(house); supplyTrack.Set(player, GameData.GetStartingSupply(house)); player.AddPower(GameData.GetStartingPower()); players.Add(player); } // TODO: Influence Tracks should have their token inferred from their type based on GameData influenceTracks.Add(new InfluenceTrack(InfluenceTrackType.IronThrone, LeaderTokenType.IronThrone, players)); influenceTracks.Add(new InfluenceTrack(InfluenceTrackType.Fiefdoms, LeaderTokenType.ValyrianSteelBlade, players)); influenceTracks.Add(new InfluenceTrack(InfluenceTrackType.KingsCourt, LeaderTokenType.MessengerRaven, players)); }
public void TestReorderPlayers() { var baratheon = new Player(HouseName.Baratheon); var lannister = new Player(HouseName.Lannister); var stark = new Player(HouseName.Stark); var rankedPlayers = new List<Player>(); rankedPlayers.Add(baratheon); rankedPlayers.Add(lannister); rankedPlayers.Add(stark); var track = new InfluenceTrack(InfluenceTrackType.IronThrone, LeaderTokenType.IronThrone, rankedPlayers); track.Reorder(stark, baratheon, lannister); track.GetLeadPlayer().House.Should().Be(HouseName.Stark); track.GetRankedPlayers()[0].House.Should().Be(HouseName.Stark); track.GetRankedPlayers()[1].House.Should().Be(HouseName.Baratheon); track.GetRankedPlayers()[2].House.Should().Be(HouseName.Lannister); }