Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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"]));
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }
Example #7
0
File: Game.cs Project: jtheis85/GoT
        /// <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));
        }
Example #8
0
        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);
        }