Esempio n. 1
0
        public void CanMoveColonists()
        {
            Game.Players.ForEach(p => {
                var tile = new Quarry();
                tile.AddWorker(new Colonist());
                p.Plant(tile);
                p.Build(new SmallMarket());
            });
            var action = new MoveColonist {
                FromIndex      = 1,
                ToIndex        = 0,
                IsMoveFromTile = true,
                IsMoveToTile   = false
            };

            Game.Players.ForEach(p => CanExecuteActionMultiple(action, p));
        }
        private void CanUseQuarry_ToBuild <T>(int expectedDiscount, IPlayer player, int quarryCount) where T : IBuilding
        {
            const int playerFunds = 21;

            player.Doubloons = playerFunds;
            for (var i = 0; i < quarryCount; i++)
            {
                var quarry = new Quarry();
                quarry.AddWorker(new Colonist());
                player.Plant(quarry);
            }

            var building = Game.Buildings.OfType <T>().First();
            var index    = Game.Buildings.IndexOf(building);
            var action   = new Build {
                BuildingIndex = index
            };

            Role.Execute(action, player);

            Assert.Equal(playerFunds - building.Cost + expectedDiscount, player.Doubloons);
        }