public void GetContinentBonusSuccess()
        {
            // Arrange
            var mapTemplate = new MapTemplate("Name");
            var countryA = new CountryTemplate("A", "A");
            mapTemplate.Countries.Add(countryA);
            var countryB = new CountryTemplate("B", "B");
            mapTemplate.Countries.Add(countryB);

            var continentA = new Continent("A", 42);
            continentA.Countries.Add(countryA);
            mapTemplate.Continents.Add(continentA);

            var continentB = new Continent("B", 23);
            continentB.Countries.Add(countryB);
            mapTemplate.Continents.Add(continentB);

            // Act
            var bonus = mapTemplate.CalculateBonus(mapTemplate.Countries.Select(x => x.Identifier));

            // Assert
            Assert.AreEqual(mapTemplate.Continents.Sum(x => x.Bonus), bonus);
        }
Example #2
0
        public int GetUnitsToPlace(MapTemplate mapTemplate, Player player)
        {
            // Base units as configured
            var unitsToPlace = this.Options.NewUnitsPerTurn;

            if (player.PlacedInitialUnits)
            {
                // Add units from number of occupied countries
                unitsToPlace += player.Countries.Count() / 3;

                // Bonus from continents
                unitsToPlace += mapTemplate.CalculateBonus(player.Countries.Select(x => x.CountryIdentifier));

                // Add any previous bonus
                unitsToPlace += player.Bonus;
            }

            return unitsToPlace;
        }