public void updateTick() { DistrictPopulation.updateTick(); if (DistrictType == 0) { growDistrict(); } List <GoodType> peopleGoodConsList = DistrictPopulation.getConsumptionList(); List <GoodType> peopleGoodProdList = DistrictPopulation.getProductionList(); foreach (GoodType good in peopleGoodConsList) { if (peopleLastConsumed.ContainsKey(good) == false) { peopleLastConsumed.Add(good, DistrictPopulation.getLastConsumption(good) * PeopleConsumpMod); } else { peopleLastConsumed[good] = DistrictPopulation.getLastConsumption(good) * PeopleConsumpMod; } } foreach (GoodType good in peopleGoodProdList) { if (peopleLastProduced.ContainsKey(good) == false) { peopleLastProduced.Add(good, DistrictPopulation.getLastProduction(good) * PeopleProdMod); } else { peopleLastProduced[good] = DistrictPopulation.getLastProduction(good) * PeopleProdMod; } } List <GoodType> buildingGoodConsList = new List <GoodType>(); List <GoodType> buildingGoodProdList = new List <GoodType>(); List <GoodType> iterateKeys = new List <GoodType>(buildingLastConsumed.Keys); foreach (GoodType goodPair in iterateKeys) { buildingLastConsumed[goodPair] = 0; } iterateKeys.Clear(); iterateKeys.AddRange(buildingLastProduced.Keys); foreach (GoodType goodPair in iterateKeys) { buildingLastProduced[goodPair] = 0; } foreach (Building building in DistrictBuildings) { building.updateTick(); buildingGoodConsList.Clear(); buildingGoodProdList.Clear(); buildingGoodConsList.AddRange(building.getConsumptionList()); //The list you get from building SHOULD BE UNIQUE buildingGoodProdList.AddRange(building.getProductionList()); //The list you get from building SHOULD BE UNIQUE foreach (GoodType good in buildingGoodConsList) { if (buildingLastConsumed.ContainsKey(good) == false) { buildingLastConsumed.Add(good, building.getConsumed(good) * BuildingConsumpMod); } else { buildingLastConsumed[good] += building.getConsumed(good) * BuildingConsumpMod; } } foreach (GoodType good in buildingGoodProdList) { if (buildingLastProduced.ContainsKey(good) == false) { buildingLastProduced.Add(good, building.getProduced(good) * BuildingProdMod); } else { buildingLastProduced[good] += building.getProduced(good) * BuildingProdMod; } } } }
//methods public float calcPeopleConsumption(GoodType goodType) { float peopleConsump = DistrictPopulation.calcConsumption(goodType) * PeopleConsumpMod; //To change to work with dictionary of modifiers return(peopleConsump); }
public float calcPeopleProduced(GoodType goodType) { float peopleProduced = DistrictPopulation.calcProduction(goodType) * PeopleProdMod; //To change to work with dictionary of modifiers return(peopleProduced); }