Example #1
0
        private void RemoveGreatHouse()
        {
            var houseToDowngradeToHouse = this.Houses
                                          .Where(h => h.ControlledCities.Count() < MinCitiesRequiredToReamainGreat && h is GreatHouse).ToList();

            foreach (var house in houseToDowngradeToHouse)
            {
                var houseToAdd = new House(house.Name, house.TreasuryAmount);
                foreach (var city in house.ControlledCities)
                {
                    houseToAdd.AddCityToHouse(city);
                }

                this.Houses.Remove(house);
                this.Houses.Add(houseToAdd);
            }
        }
Example #2
0
        private void DowngradeHouses()
        {
            var housesToDowngrade = this.Houses
                                    .Where(h => (h is GreatHouse) && h.ControlledCities.Count() < DowngradeHouseNumberOfCitiesThreshold)
                                    .ToList();

            foreach (var greatHouse in housesToDowngrade)
            {
                var regularHouse = new House(greatHouse.Name, greatHouse.TreasuryAmount);

                foreach (var controlledCity in greatHouse.ControlledCities)
                {
                    regularHouse.AddCityToHouse(controlledCity);
                }

                this.Houses.Remove(greatHouse);
                this.Houses.Add(regularHouse);
            }
        }