コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }