public override void Update() { for (int i = 0; i < this.Houses.Count; i++) { if (this.Houses[i].ControlledCities.Count() >= 10 && this.Houses[i] is House) { GreatHouse temp = new GreatHouse(this.Houses[i].Name, this.Houses[i].TreasuryAmount); foreach (ICity city in this.Houses[i].ControlledCities) { temp.AddCityToHouse(city); } this.Houses[i] = temp; } else if (this.Houses[i].ControlledCities.Count() < 5 && this.Houses[i] is GreatHouse) { House temp = new House(this.Houses[i].Name, this.Houses[i].TreasuryAmount); foreach (ICity city in this.Houses[i].ControlledCities) { temp.AddCityToHouse(city); } this.Houses[i] = temp; } } base.Update(); }
private void UpgradedHouses() { var housesToGreatHouse = this.Houses .Where(house => !(house is GreatHouse) && house.ControlledCities.Count() >= 10) .ToList(); foreach (var house in housesToGreatHouse) { var greatHouse = new GreatHouse(house.Name, house.TreasuryAmount, house.ControlledCities); this.Houses.Remove(house); this.Houses.Add(greatHouse); } }
private void UpgradeHouses() { var housesToUpgrade = this.Houses .Where(h => !(h is GreatHouse) && h.ControlledCities.Count() >= UpgradeHouseNumberOfCitiesThreshold) .ToList(); foreach (var house in housesToUpgrade) { var greatHouse = new GreatHouse(house.Name, house.TreasuryAmount, house.ControlledCities); this.Houses.Remove(house); this.Houses.Add(greatHouse); } }