public static TransferManager.TransferReason GetIncomingProductionType(ushort buildingID, Building data) { RealCityIndustrialBuildingAI.InitDelegate(); if (data.Info.m_buildingAI is IndustrialExtractorAI) { } else { switch (data.Info.m_class.m_subService) { case ItemClass.SubService.CommercialHigh: case ItemClass.SubService.CommercialLow: case ItemClass.SubService.CommercialEco: case ItemClass.SubService.CommercialLeisure: case ItemClass.SubService.CommercialTourist: CommercialBuildingAI commercialBuildingAI = data.Info.m_buildingAI as CommercialBuildingAI; return(commercialBuildingAI.m_incomingResource); case ItemClass.SubService.IndustrialForestry: case ItemClass.SubService.IndustrialFarming: case ItemClass.SubService.IndustrialOil: case ItemClass.SubService.IndustrialOre: case ItemClass.SubService.IndustrialGeneric: return(RealCityIndustrialBuildingAI.GetIncomingTransferReason((IndustrialBuildingAI)(data.Info.m_buildingAI), buildingID)); } } return(TransferManager.TransferReason.None); }
public static float GetComsumptionDivider(Building data, ushort buildingID) { Citizen.BehaviourData behaviourData = default; int aliveWorkerCount = 0; int totalWorkerCount = 0; RealCityCommonBuildingAI.GetWorkBehaviour((CommonBuildingAI)data.Info.m_buildingAI, buildingID, ref data, ref behaviourData, ref aliveWorkerCount, ref totalWorkerCount); float comsumptionDivider = aliveWorkerCount / 8f; if (comsumptionDivider < 1f) { comsumptionDivider = 1f; } if (data.Info.m_class.m_service == ItemClass.Service.Industrial) { RealCityIndustrialBuildingAI.InitDelegate(); var incomingTransferReason = RealCityIndustrialBuildingAI.GetIncomingTransferReason((IndustrialBuildingAI)data.Info.m_buildingAI, buildingID); //petrol related if (incomingTransferReason == TransferManager.TransferReason.Petrol) { //*2 / 4 comsumptionDivider /= 2f; } else if (incomingTransferReason == TransferManager.TransferReason.Coal) { //*1.67 / 4 comsumptionDivider /= 2.4f; } else if (incomingTransferReason == TransferManager.TransferReason.Lumber) { //*1.33 / 4 comsumptionDivider /= 3f; } else if (incomingTransferReason == TransferManager.TransferReason.Food) { comsumptionDivider /= 4f; } } return(comsumptionDivider); }
public static float GetPrice(bool isSelling, ushort buildingID, Building data) { RealCityIndustrialBuildingAI.InitDelegate(); float price = 0f; if (!isSelling) { if (!(data.Info.m_buildingAI is IndustrialExtractorAI)) { switch (data.Info.m_class.m_subService) { case ItemClass.SubService.CommercialHigh: case ItemClass.SubService.CommercialLow: case ItemClass.SubService.CommercialEco: case ItemClass.SubService.CommercialLeisure: case ItemClass.SubService.CommercialTourist: CommercialBuildingAI commercialBuildingAI = data.Info.m_buildingAI as CommercialBuildingAI; if (commercialBuildingAI.m_incomingResource == TransferManager.TransferReason.Food || commercialBuildingAI.m_incomingResource == TransferManager.TransferReason.Goods) { //SecondaryIncoming : FirstIncoming = 1:3 price = (3f * RealCityIndustryBuildingAI.GetResourcePrice(commercialBuildingAI.m_incomingResource) + (RealCityIndustryBuildingAI.GetResourcePrice(TransferManager.TransferReason.LuxuryProducts))) / 4f; } else { price = RealCityIndustryBuildingAI.GetResourcePrice(commercialBuildingAI.m_incomingResource); } break; case ItemClass.SubService.IndustrialForestry: case ItemClass.SubService.IndustrialFarming: case ItemClass.SubService.IndustrialOil: case ItemClass.SubService.IndustrialOre: TransferManager.TransferReason tempReason = RealCityIndustrialBuildingAI.GetIncomingTransferReason((IndustrialBuildingAI)(data.Info.m_buildingAI), buildingID); price = RealCityIndustryBuildingAI.GetResourcePrice(tempReason); break; case ItemClass.SubService.IndustrialGeneric: TransferManager.TransferReason firstReason = RealCityIndustrialBuildingAI.GetIncomingTransferReason((IndustrialBuildingAI)(data.Info.m_buildingAI), buildingID); TransferManager.TransferReason secondReason = RealCityIndustrialBuildingAI.GetSecondaryIncomingTransferReason((IndustrialBuildingAI)(data.Info.m_buildingAI), buildingID); //SecondaryIncoming : FirstIncoming = 1:3 price = (3f * RealCityIndustryBuildingAI.GetResourcePrice(firstReason) + (RealCityIndustryBuildingAI.GetResourcePrice(secondReason))) / 4f; break; default: price = 0; break; } } } else { if (data.Info.m_buildingAI is IndustrialExtractorAI) { switch (data.Info.m_class.m_subService) { case ItemClass.SubService.IndustrialForestry: price = RealCityIndustryBuildingAI.GetResourcePrice(TransferManager.TransferReason.Logs); break; case ItemClass.SubService.IndustrialFarming: price = RealCityIndustryBuildingAI.GetResourcePrice(TransferManager.TransferReason.Grain); break; case ItemClass.SubService.IndustrialOil: price = RealCityIndustryBuildingAI.GetResourcePrice(TransferManager.TransferReason.Oil); break; case ItemClass.SubService.IndustrialOre: price = RealCityIndustryBuildingAI.GetResourcePrice(TransferManager.TransferReason.Ore); break; default: price = 0; break; } } else { switch (data.Info.m_class.m_subService) { case ItemClass.SubService.IndustrialForestry: price = RealCityIndustryBuildingAI.GetResourcePrice(TransferManager.TransferReason.Lumber); break; case ItemClass.SubService.IndustrialFarming: price = RealCityIndustryBuildingAI.GetResourcePrice(TransferManager.TransferReason.Food); break; case ItemClass.SubService.IndustrialOil: price = RealCityIndustryBuildingAI.GetResourcePrice(TransferManager.TransferReason.Petrol); break; case ItemClass.SubService.IndustrialOre: price = RealCityIndustryBuildingAI.GetResourcePrice(TransferManager.TransferReason.Coal); break; case ItemClass.SubService.IndustrialGeneric: price = RealCityIndustryBuildingAI.GetResourcePrice(TransferManager.TransferReason.Goods); break; case ItemClass.SubService.CommercialHigh: case ItemClass.SubService.CommercialLow: case ItemClass.SubService.CommercialEco: case ItemClass.SubService.CommercialLeisure: case ItemClass.SubService.CommercialTourist: price = RealCityIndustryBuildingAI.GetResourcePrice(TransferManager.TransferReason.Shopping); break; default: price = RealCityIndustryBuildingAI.GetResourcePrice(TransferManager.TransferReason.None); break; } } } return(price); }
public static string GetProductionType(bool isSelling, ushort buildingID, Building data) { RealCityIndustrialBuildingAI.InitDelegate(); string material = ""; if (!isSelling) { if (data.Info.m_buildingAI is IndustrialExtractorAI) { } else { switch (data.Info.m_class.m_subService) { case ItemClass.SubService.CommercialHigh: case ItemClass.SubService.CommercialLow: case ItemClass.SubService.CommercialEco: case ItemClass.SubService.CommercialLeisure: case ItemClass.SubService.CommercialTourist: CommercialBuildingAI commercialBuildingAI = data.Info.m_buildingAI as CommercialBuildingAI; switch (commercialBuildingAI.m_incomingResource) { case TransferManager.TransferReason.Goods: material = Localization.Get("PREGOODS") + Localization.Get("LUXURY_PRODUCTS"); break; case TransferManager.TransferReason.Food: material = Localization.Get("FOOD") + Localization.Get("LUXURY_PRODUCTS"); break; case TransferManager.TransferReason.Petrol: material = Localization.Get("PETROL"); break; case TransferManager.TransferReason.Lumber: material = Localization.Get("LUMBER"); break; case TransferManager.TransferReason.Logs: material = Localization.Get("LOG"); break; case TransferManager.TransferReason.Oil: material = Localization.Get("OIL"); break; case TransferManager.TransferReason.Ore: material = Localization.Get("ORE"); break; case TransferManager.TransferReason.Grain: material = Localization.Get("GRAIN_MEAT"); break; default: break; } break; case ItemClass.SubService.IndustrialForestry: case ItemClass.SubService.IndustrialFarming: case ItemClass.SubService.IndustrialOil: case ItemClass.SubService.IndustrialOre: switch (RealCityIndustrialBuildingAI.GetIncomingTransferReason((IndustrialBuildingAI)(data.Info.m_buildingAI), buildingID)) { case TransferManager.TransferReason.Grain: material = Localization.Get("GRAIN_MEAT"); break; case TransferManager.TransferReason.Logs: material = Localization.Get("LOG"); break; case TransferManager.TransferReason.Ore: material = Localization.Get("ORE"); break; case TransferManager.TransferReason.Oil: material = Localization.Get("OIL"); break; default: break; } break; case ItemClass.SubService.IndustrialGeneric: switch (RealCityIndustrialBuildingAI.GetIncomingTransferReason((IndustrialBuildingAI)(data.Info.m_buildingAI), buildingID)) { case TransferManager.TransferReason.Food: material = Localization.Get("FOOD"); break; case TransferManager.TransferReason.Lumber: material = Localization.Get("LUMBER"); break; case TransferManager.TransferReason.Petrol: material = Localization.Get("PETROL"); break; case TransferManager.TransferReason.Coal: material = Localization.Get("COAL"); break; default: break; } switch (RealCityIndustrialBuildingAI.GetSecondaryIncomingTransferReason((IndustrialBuildingAI)(data.Info.m_buildingAI), buildingID)) { case TransferManager.TransferReason.AnimalProducts: material += Localization.Get("ANIMALPRODUCTS"); break; case TransferManager.TransferReason.Flours: material += Localization.Get("FLOURS"); break; case TransferManager.TransferReason.Paper: material += Localization.Get("PAPER"); break; case TransferManager.TransferReason.PlanedTimber: material += Localization.Get("PLANEDTIMBER"); break; case TransferManager.TransferReason.Petroleum: material += Localization.Get("PETROLEUM"); break; case TransferManager.TransferReason.Plastics: material += Localization.Get("PLASTICS"); break; case TransferManager.TransferReason.Glass: material += Localization.Get("GLASS"); break; case TransferManager.TransferReason.Metals: material += Localization.Get("METALS"); break; default: break; } break; default: material = ""; break; } } } else { if (data.Info.m_buildingAI is IndustrialExtractorAI) { switch (data.Info.m_class.m_subService) { case ItemClass.SubService.IndustrialForestry: material = Localization.Get("LOG"); break; case ItemClass.SubService.IndustrialFarming: material = Localization.Get("GRAIN_MEAT"); break; case ItemClass.SubService.IndustrialOil: material = Localization.Get("OIL"); break; case ItemClass.SubService.IndustrialOre: material = Localization.Get("ORE"); break; default: material = ""; break; } } else { switch (data.Info.m_class.m_subService) { case ItemClass.SubService.IndustrialForestry: material = Localization.Get("LUMBER"); break; case ItemClass.SubService.IndustrialFarming: material = Localization.Get("FOOD"); break; case ItemClass.SubService.IndustrialOil: material = Localization.Get("PETROL"); break; case ItemClass.SubService.IndustrialOre: material = Localization.Get("COAL"); break; case ItemClass.SubService.IndustrialGeneric: material = Localization.Get("PREGOODS"); break; case ItemClass.SubService.CommercialHigh: case ItemClass.SubService.CommercialLow: case ItemClass.SubService.CommercialEco: case ItemClass.SubService.CommercialLeisure: case ItemClass.SubService.CommercialTourist: material = Localization.Get("GOODS"); break; default: material = ""; break; } } } return(material); }