public GamePointsManager()
        {
            pointsCategory = new TreasuryContentsCategory();
            var military   = new MilitaryConflictsCategory();
            var wonder     = new WonderCategory();
            var civilian   = new CivilianStructuresCategory();
            var scientific = new ScientificStructuresCategory();
            var commercial = new CommercialStructuresCategory();
            var guilds     = new GuildsCategory();

            pointsCategory.SetSuccessor(military);
            military.SetSuccessor(wonder);
            wonder.SetSuccessor(civilian);
            civilian.SetSuccessor(scientific);
            scientific.SetSuccessor(commercial);
            commercial.SetSuccessor(guilds);
        }
示例#2
0
        public void ComputeTest()
        {
            var player1 = (ITurnPlayer)players[0];
            var player2 = (ITurnPlayer)players[1];
            var player3 = (ITurnPlayer)players[2];

            player1.Wonder.BuildStage();
            player1.Wonder.BuildStage();
            player2.Wonder.BuildStage();
            player3.Wonder.BuildStage();
            player3.Wonder.BuildStage();

            player1.ConflictTokens.Add(ConflictToken.Defeat);
            player1.ConflictTokens.Add(ConflictToken.Defeat);
            player1.ConflictTokens.Add(ConflictToken.AgeThreeVictory);
            player3.ConflictTokens.Add(ConflictToken.Defeat);
            player3.ConflictTokens.Add(ConflictToken.Defeat);
            player3.ConflictTokens.Add(ConflictToken.Defeat);
            player3.ConflictTokens.Add(ConflictToken.AgeOneVictory);

            player1.Cards.Add(cards.First(c => c.Name == CardName.SpiesGuild));
            player1.Cards.Add(cards.First(c => c.Name == CardName.CraftsmenGuild));

            player2.Cards.Add(cards.First(c => c.Name == CardName.StrategistsGuild));
            player2.Cards.Add(cards.First(c => c.Name == CardName.BuildersGuild));
            player2.Cards.Add(cards.First(c => c.Name == CardName.SiegeWorkshop));
            player2.Cards.Add(cards.First(c => c.Name == CardName.Fortification));

            player3.Cards.Add(cards.First(c => c.Name == CardName.ShipownersGuild));
            player3.Cards.Add(cards.First(c => c.Name == CardName.Fortification));
            player3.Cards.Add(cards.First(c => c.Name == CardName.LumberYard));
            player3.Cards.Add(cards.First(c => c.Name == CardName.Brickyard));
            player3.Cards.Add(cards.First(c => c.Name == CardName.Loom));

            var pointsCategory = new GuildsCategory();

            pointsCategory.ComputePoints(players);

            Assert.AreEqual(5, player1.VictoryPoints);
            Assert.AreEqual(10, player2.VictoryPoints);
            Assert.AreEqual(4, player3.VictoryPoints);
        }