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); } }
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); } }