public void AddToHistory(System.DateTime date, CityResources avgDailyResources, CityFinances avgDailyFinances) { if (history.Count >= maxHistory) { history.RemoveAt(0); } history.Add(new TimePoint(date, avgDailyResources, avgDailyFinances)); }
//TODO add other finances/economy related parameters here static public CityFinances operator+(CityFinances fin1, CityFinances fin2) { CityFinances sum = new CityFinances(); sum.population = fin1.population + fin2.population; sum.treasury = fin1.treasury + fin2.treasury; sum.incomeTaxes = fin1.incomeTaxes + fin2.incomeTaxes; sum.industryTaxes = fin1.industryTaxes + fin2.industryTaxes; sum.commercialTaxes = fin1.commercialTaxes + fin2.commercialTaxes; sum.buildingExpenses = fin1.buildingExpenses + fin2.buildingExpenses; return(sum); }
static public CityFinances operator/(CityFinances fin, float denominator) { CityFinances result = new CityFinances(); result.treasury = System.Convert.ToInt64(System.Convert.ToSingle(fin.treasury) / denominator); result.population = System.Convert.ToInt64(System.Convert.ToSingle(fin.population) / denominator); result.incomeTaxes = fin.incomeTaxes / denominator; result.industryTaxes = Mathf.RoundToInt((float)fin.industryTaxes / denominator); result.commercialTaxes = Mathf.RoundToInt((float)fin.commercialTaxes / denominator); result.buildingExpenses = Mathf.RoundToInt((float)fin.buildingExpenses / denominator); return(result); }
public void UpdateHistory(System.DateTime date) { //Divide the sum by the amounts added to get the average CityResources averageDailyResources = dailySumResources / (float)helperCounter; CityFinances averageDailyFinances = dailySumFinances / (float)helperCounter; //Add to history resourceHistory.AddToHistory(date, averageDailyResources, averageDailyFinances); //reset the averages objects and counter dailySumResources = new CityResources(); dailySumFinances = new CityFinances(); helperCounter = 0; }
public TimePoint(System.DateTime _date, CityResources _resources, CityFinances _finances) { date = _date; resources = _resources; finances = _finances; }
//TODO while CityResources change over the course of the day, the majority of CityFinances (as of July, 3rd implementation) are the same per day, difference is in the treasury //only (which could change due to player paying for constructions, etc). The current implementation in TimeProgress() and UpdateHistory() has some redundant calculations. //For now, leaving it as is, as there *might* be additional variables in the future in CityFinances that are are updated hourly. If that didn't turn out to be the case, this //is a venue for some cleanup and optimization (for prolly statistically insignificant gains, but still). public void TimeProgress(int hours) { dailySumResources += resources; dailySumFinances += finances; helperCounter++; }