public int GetGlobalHappinessOfCity(ICity city) { if (city == null) { throw new ArgumentNullException("city"); } int retval = 0; foreach (var building in BuildingPossessionCanon.GetPossessionsOfOwner(city)) { retval += building.Template.GlobalHappiness; } if (CapitalConnectionLogic.IsCityConnectedToCapital(city)) { retval += CityModifiers.CapitalConnectionHappiness.GetValueForCity(city); } if (UnitGarrisonLogic.IsCityGarrisoned(city)) { retval += CityModifiers.GarrisonedHappiness.GetValueForCity(city); } return(retval); }
public YieldSummary GetYieldOfCityCenter(ICity city) { YieldSummary centerYield = CityConfig.CityCenterBaseYield; centerYield += new YieldSummary(science: 1) * city.Population; centerYield += CityModifiers.BonusYield.GetValueForCity(city); if (UnitGarrisonLogic.IsCityGarrisoned(city)) { centerYield += CityModifiers.GarrisonedYield.GetValueForCity(city); } var cityMultipliers = IncomeModifierLogic.GetYieldMultipliersForCity(city); var civMultipliers = IncomeModifierLogic.GetYieldMultipliersForCivilization(CityPossessionCanon.GetOwnerOfPossession(city)); centerYield *= (YieldSummary.Ones + cityMultipliers + civMultipliers); return(centerYield); }