예제 #1
0
        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;
                    }
                }
            }
        }
예제 #2
0
        //methods
        public float calcPeopleConsumption(GoodType goodType)
        {
            float peopleConsump = DistrictPopulation.calcConsumption(goodType) * PeopleConsumpMod; //To change to work with dictionary of modifiers

            return(peopleConsump);
        }
예제 #3
0
        public float calcPeopleProduced(GoodType goodType)
        {
            float peopleProduced = DistrictPopulation.calcProduction(goodType) * PeopleProdMod; //To change to work with dictionary of modifiers

            return(peopleProduced);
        }