private static bool IsPark(ref DistrictPark park)
 {
     return(DistrictPark.IsParkType(park.m_parkType) ||
            DistrictPark.IsCampusType(park.m_parkType) ||
            DistrictPark.IsAirportType(park.m_parkType) ||
            DistrictPark.IsIndustryType(park.m_parkType));
 }
Пример #2
0
 public static TLMConfigWarehouse.ConfigIndex ToConfigIndex(this DistrictPark park)
 {
     if (park.IsCampus)
     {
         return(TLMConfigWarehouse.ConfigIndex.CAMPUS_AREA_NAME_CONFIG);
     }
     if (park.IsIndustry)
     {
         return(TLMConfigWarehouse.ConfigIndex.INDUSTRIAL_AREA_NAME_CONFIG);
     }
     return(TLMConfigWarehouse.ConfigIndex.PARKAREA_NAME_CONFIG);
 }
        public static bool Prefix(ref DistrictPark __instance, ref float __result)
        {
            BuildingManager instance = Singleton <BuildingManager> .instance;

            if (instance.m_buildings.m_buffer[__instance.m_mainGate].m_flags.IsFlagSet(Building.Flags.Completed))
            {
                ushort         eventIndex     = instance.m_buildings.m_buffer[__instance.m_mainGate].m_eventIndex;
                AcademicYearAI academicYearAI = (AcademicYearAI)Singleton <EventManager> .instance.m_events.m_buffer[eventIndex].Info.m_eventAI;
                __result = academicYearAI.GetYearProgress(eventIndex, ref Singleton <EventManager> .instance.m_events.m_buffer[eventIndex]);
            }
            else
            {
                __result = 0;
            }
            return(false);
        }
Пример #4
0
        public static void Prefix(byte parkID)
        {
            //Mod.DebugLine($"DPIP-Pre: {__instance.m_parkProperties.m_industryLevelInfo[1].m_workerLevelupRequirement}");

            DistrictManager dm    = Singleton <DistrictManager> .instance;
            DistrictPark    dp    = dm.m_parks.m_buffer[parkID];
            uint            level = (uint)dp.m_parkLevel;

            //Debug.Log($"DPIP-Pre - Inst:{__instance}, IsPark:{__instance.IsPark} IsInd:{__instance.IsIndustry}, {(uint)__instance.m_parkLevel}({__instance.m_parkLevel}), Type:{__instance.m_parkType}  -  ";
            //Debug.Log($"DPIP-Pre - Inst:{dp}, IsInd:{dp.IsIndustry}, {level}({dp.m_parkLevel}), Type:{dp.m_parkType}");

            if (DistrictPark.IsIndustryType(dp.m_parkType))
            {
                if (initialised[level])
                {
                    return;
                }
                initialised[level] = true;
                //Debug.Log($"DPIP-Pre: {dm.m_properties.m_parkProperties.m_industryLevelInfo[level].m_workerLevelupRequirement}");
                dm.m_properties.m_parkProperties.m_industryLevelInfo[level].m_workerLevelupRequirement = RI_Data.GetMilestone(level);
            }
        }
        public static void CalculateVarsityExpenses(ref DistrictPark district, out ulong upkeep, out int coaching, out int cheerleading, out int policies, out ulong total)
        {
            upkeep   = district.FetchArenasUpkeep();
            coaching = district.CalculateCoachingStaffCost() / 100;
            int activeArenasCount = district.GetActiveArenasCount();

            cheerleading = district.m_cheerleadingBudget * activeArenasCount;
            policies     = 0;
            DistrictPolicies.Park parkPolicies = district.m_parkPolicies;
            if ((parkPolicies & DistrictPolicies.Park.FreeFanMerchandise) != 0)
            {
                policies += 180 * activeArenasCount;
            }
            if ((parkPolicies & DistrictPolicies.Park.VarsitySportsAds) != 0)
            {
                policies += 200 * activeArenasCount;
            }
            upkeep       /= MainDataStore.gameExpenseDivide;
            coaching     /= MainDataStore.gameExpenseDivide;
            cheerleading /= MainDataStore.gameExpenseDivide;
            policies     /= MainDataStore.gameExpenseDivide;
            total         = (ulong)((long)upkeep + coaching + cheerleading + policies);
        }
 public static TLMSpecialNamingClass GetNamingClass(this DistrictPark park) =>
 park.IsCampus ? TLMSpecialNamingClass.Campus
     : park.IsIndustry ? TLMSpecialNamingClass.Industrial
     : TLMSpecialNamingClass.ParkArea;
Пример #7
0
        public static void AddExportAmountFish(this DistrictPark districtPark, TransferManager.TransferReason material, int amount)
        {
            switch (material)
            {
            case TransferManager.TransferReason.AnimalProducts:
                m_animalProductsData.m_tempExport = m_animalProductsData.m_tempExport + (uint)amount;
                break;

            case TransferManager.TransferReason.Flours:
                m_floursData.m_tempExport = m_floursData.m_tempExport + (uint)amount;
                break;

            case TransferManager.TransferReason.Paper:
                m_paperData.m_tempExport = m_paperData.m_tempExport + (uint)amount;
                break;

            case TransferManager.TransferReason.PlanedTimber:
                m_planedTimberData.m_tempExport = m_planedTimberData.m_tempExport + (uint)amount;
                break;

            case TransferManager.TransferReason.Petroleum:
                m_petroleumData.m_tempExport = m_petroleumData.m_tempExport + (uint)amount;
                break;

            case TransferManager.TransferReason.Plastics:
                m_plasticsData.m_tempExport = m_plasticsData.m_tempExport + (uint)amount;
                break;

            case TransferManager.TransferReason.Glass:
                m_glassData.m_tempExport = m_glassData.m_tempExport + (uint)amount;
                break;

            case TransferManager.TransferReason.Metals:
                m_metalsData.m_tempExport = m_metalsData.m_tempExport + (uint)amount;
                break;

            case TransferManager.TransferReason.LuxuryProducts:
                m_luxuryProductsData.m_tempExport = m_luxuryProductsData.m_tempExport + (uint)amount;
                break;

            case TransferManager.TransferReason.Fish:
                m_fishData.m_tempExport = m_fishData.m_tempExport + (uint)amount;
                break;

            default:
                switch (material)
                {
                case TransferManager.TransferReason.Oil:
                    m_oilData.m_tempExport = m_oilData.m_tempExport + (uint)amount;
                    break;

                case TransferManager.TransferReason.Ore:
                    m_oreData.m_tempExport = m_oreData.m_tempExport + (uint)amount;
                    break;

                case TransferManager.TransferReason.Logs:
                    m_logsData.m_tempExport = m_logsData.m_tempExport + (uint)amount;
                    break;

                case TransferManager.TransferReason.Grain:
                    m_grainData.m_tempExport = m_grainData.m_tempExport + (uint)amount;
                    break;
                }
                break;
            }
        }
Пример #8
0
        public static void AddBufferStatusFish(this DistrictPark districtPark, TransferManager.TransferReason material, int amount, int incoming, int capacity)
        {
            switch (material)
            {
            case TransferManager.TransferReason.AnimalProducts:
                m_animalProductsData.Add(amount, incoming, capacity);
                break;

            case TransferManager.TransferReason.Flours:
                m_floursData.Add(amount, incoming, capacity);
                break;

            case TransferManager.TransferReason.Paper:
                m_paperData.Add(amount, incoming, capacity);
                break;

            case TransferManager.TransferReason.PlanedTimber:
                m_planedTimberData.Add(amount, incoming, capacity);
                break;

            case TransferManager.TransferReason.Petroleum:
                m_petroleumData.Add(amount, incoming, capacity);
                break;

            case TransferManager.TransferReason.Plastics:
                m_plasticsData.Add(amount, incoming, capacity);
                break;

            case TransferManager.TransferReason.Glass:
                m_glassData.Add(amount, incoming, capacity);
                break;

            case TransferManager.TransferReason.Metals:
                m_metalsData.Add(amount, incoming, capacity);
                break;

            case TransferManager.TransferReason.LuxuryProducts:
                m_luxuryProductsData.Add(amount, incoming, capacity);
                break;

            case TransferManager.TransferReason.Fish:
                m_fishData.Add(amount, incoming, capacity);
                break;

            default:
                switch (material)
                {
                case TransferManager.TransferReason.Oil:
                    m_oilData.Add(amount, incoming, capacity);
                    break;

                case TransferManager.TransferReason.Ore:
                    m_oreData.Add(amount, incoming, capacity);
                    break;

                case TransferManager.TransferReason.Logs:
                    m_logsData.Add(amount, incoming, capacity);
                    break;

                case TransferManager.TransferReason.Grain:
                    m_grainData.Add(amount, incoming, capacity);
                    break;
                }
                break;
            }
        }