public void ComputeCopyBuildCardTest()
        {
            var manager  = new GameFlowManager();
            var cardName = CardName.SpiesGuild;
            var guild    = new GuildCard(cardName, 3, Age.III, null, null, new List <IEffect> {
                new Effect(EffectType.VictoryPointPerMilitaryCard, 1, PlayerDirection.ToTheLeft | PlayerDirection.ToTheRight)
            });

            manager.CreateNewPlayer("ashley");
            manager.CreateNewPlayer("kate");
            manager.SetupGame();
            var player1 = manager.Players[0];
            var player2 = manager.Players[1];

            player1.SetWonder(WonderFactory.CreateWonder(WonderName.StatueOfZeusInOlimpia, WonderBoardSide.B));
            player1.Wonder.BuildStage();
            player1.Wonder.BuildStage();
            player1.Wonder.BuildStage();
            player1.Wonder.EffectsAvailable.First(e => e.Type == EffectType.CopyGuildFromNeighbor).Info = cardName;

            player2.Cards.Add(guild);

            manager.CollectPostGameRewards();

            Assert.IsTrue(player1.Cards.Any(c => c.Name == cardName));
        }
        public void DealAgeCardsFor3PlayersTest()
        {
            var manager = new GameFlowManager();

            manager.CreateNewPlayer("paul");
            manager.CreateNewPlayer("mary");
            manager.CreateNewPlayer("tracy");
            manager.SetupGame();
            manager.StartAge();
            Assert.IsFalse(manager.Players.Any(p => p.SelectableCards.Count != 7));
            Assert.IsFalse(manager.Players.Any(p => p.SelectableCards.Any(c => c.Age != Age.I)));
        }
        public void SetupGameFor5PlayersTest()
        {
            var manager = new GameFlowManager();

            manager.CreateNewPlayer("maria");
            manager.CreateNewPlayer("joão");
            manager.CreateNewPlayer("josé");
            manager.CreateNewPlayer("ana");
            manager.CreateNewPlayer("pedro");
            manager.SetupGame();
            Assert.AreEqual(5, manager.Players.Count);
            //Number of players X 3 ages X 7 cards per age
            Assert.AreEqual(105, manager.FullDeckOfCards.Count);
            //Base game has 7 wonders - number of players
            Assert.AreEqual(2, manager.WonderCards.Count);
            Assert.AreNotEqual(manager.Players[1].Wonder.Name, manager.Players[3].Wonder.Name);
        }
        public void PlayTurnTest()
        {
            var manager = new GameFlowManager();

            manager.CreateNewPlayer("paul");
            manager.CreateNewPlayer("mary");
            manager.CreateNewPlayer("tracy");
            manager.SetupGame();
            manager.StartAge();
            for (int i = 0; i < 7; i++)
            {
                foreach (var p in manager.Players)
                {
                    p.SelectedCard = p.SelectableCards[0];
                    p.ChosenAction = TurnAction.BuyCard;
                }
                manager.PlayTurn();
                manager.CollectTurnRewards();
                manager.EndTurn();
            }
        }
Esempio n. 5
0
 static void DefinePlayers()
 {
     while (true)
     {
         Console.WriteLine("Please type the name of the players separated by comma (,) or semi-colon (;)");
         var names = Console.ReadLine().Split(new string[] { ";", "," }, StringSplitOptions.RemoveEmptyEntries);
         if (names.Length < 3)
         {
             Console.WriteLine("At least three players to play the game");
             continue;
         }
         if (names.Length > 7)
         {
             Console.WriteLine("No more than seven players to play the game");
             continue;
         }
         foreach (var s in names)
         {
             manager.CreateNewPlayer(s);
         }
         break;
     }
     Console.WriteLine();
 }