public override string GetLocalizedStats(ushort buildingID, ref Building data)
        {
            int    electricityRate = this.GetElectricityRate(buildingID, ref data);
            string text            = LocaleFormatter.FormatGeneric("AIINFO_ELECTRICITY_PRODUCTION", new object[]
            {
                (electricityRate * 16 + 500) / 1000
            });

            if (this.m_resourceType == TransferManager.TransferReason.Coal)
            {
                text += Environment.NewLine;
                int resourceDuration = this.GetResourceDuration(buildingID, ref data);
                text += LocaleFormatter.FormatGeneric("AIINFO_COAL_STORED", new object[]
                {
                    resourceDuration
                });
            }
            else if (this.m_resourceType == TransferManager.TransferReason.Petrol)
            {
                text += Environment.NewLine;
                int resourceDuration2 = this.GetResourceDuration(buildingID, ref data);
                text += LocaleFormatter.FormatGeneric("AIINFO_OIL_STORED", new object[]
                {
                    resourceDuration2
                });
            }
            else if (this.m_resourceType == TransferManager.TransferReason.Grain)
            {
                text += Environment.NewLine;
                int resourceDuration3 = this.GetResourceDuration(buildingID, ref data);
                text += "Crops stored for " + resourceDuration3 + "weeks";
            }
            return(text);
        }
        public override string GetLocalizedTooltip()
        {
            string text = LocaleFormatter.FormatGeneric("AIINFO_WATER_CONSUMPTION", new object[]
            {
                this.GetWaterConsumption() * 16
            }) + Environment.NewLine + LocaleFormatter.FormatGeneric("AIINFO_ELECTRICITY_CONSUMPTION", new object[]
            {
                this.GetElectricityConsumption() * 16
            });

            if (this.m_waterConsumption > 0)
            {
                return(TooltipHelper.Append(base.GetLocalizedTooltip(), TooltipHelper.Format(new string[]
                {
                    LocaleFormatter.Info1,
                    text,
                    LocaleFormatter.Info2,
                    LocaleFormatter.FormatGeneric("AIINFO_WATER_INTAKE", new object[]
                    {
                        this.m_waterConsumption * 16 * m_consumption_multiplier
                    })
                })));
            }
            return(TooltipHelper.Append(base.GetLocalizedTooltip(), TooltipHelper.Format(new string[]
            {
                LocaleFormatter.Info1,
                text,
                LocaleFormatter.Info2,
                LocaleFormatter.FormatGeneric("AIINFO_WATER_OUTLET", new object[]
                {
                    this.m_waterConsumption * 16 * m_consumption_multiplier
                })
            })));
        }
Exemple #3
0
        static void Postfix(UIComponent comp, int sel)
        {
            try
            {
                if (ModConfig.Instance.Enabled)
                {
                    UISprite    m_AchNope    = comp.parent.Find <UISprite>("AchNope");
                    UIComponent m_Ach        = comp.parent.Find("Ach");
                    UIComponent m_AchAvLabel = comp.parent.Find("AchAvLabel");

                    m_AchNope.isVisible = false;
                    string tooltip = string.Empty;

                    tooltip  = Locale.Get("LOADPANEL_ACHSTATUS_ENABLED");
                    tooltip += "<color #50869a>";
                    if (Singleton <PluginManager> .instance.enabledModCountNoOverride > 0)
                    {
                        tooltip += Environment.NewLine;
                        tooltip += LocaleFormatter.FormatGeneric("LOADPANEL_ACHSTATUS_MODSACTIVE", Singleton <PluginManager> .instance.enabledModCount);
                    }
                    tooltip += "</color>";

                    m_Ach.tooltip        = tooltip;
                    m_AchAvLabel.tooltip = tooltip;
                }
            }
            catch (Exception e)
            {
                Debug.Log("[Achieve It!] LoadPanelPatch:Postfix -> Exception: " + e.Message);
            }
        }
        private static void WorkshopAdPanelSetModsString()
        {
            if (m_ModsButton == null)
            {
                try
                {
                    DebugUtils.Log("Getting MenuContainer");
                    var menuContainerObject = GameObject.Find("MenuContainer");
                    DebugUtils.Log("MenuContainer: " + menuContainerObject);
                    var menuContainer = menuContainerObject.GetComponent <UIPanel>();
                    DebugUtils.Log("Finding Mods Button");
                    m_ModsButton = menuContainer.Find <UIButton>("Mods");

                    if (m_ActiveSprite == null)
                    {
                        m_ActiveSprite = new GameObject("EA_ActiveSprite")
                        {
                            transform = { parent = m_ModsButton.transform }
                        }.AddComponent <UISprite>();
                        m_ActiveSprite.spriteName       = "ThumbnailTrophy";
                        m_ActiveSprite.size             = new Vector2(29f, 20f);
                        m_ActiveSprite.relativePosition = new Vector3(225f, 3f);
                    }
                }
                catch (Exception ex) { DebugUtils.Log(ex.Message); }
            }

            if (m_ModsButton != null && m_ActiveSprite == null)
            {
                try
                {
                    m_ActiveSprite = new GameObject("EA_ActiveSprite")
                    {
                        transform = { parent = m_ModsButton.transform }
                    }.AddComponent <UISprite>();
                    m_ActiveSprite.spriteName       = "ThumbnailTrophy";
                    m_ActiveSprite.size             = new Vector2(29f, 20f);
                    m_ActiveSprite.relativePosition = new Vector3(225f, 3f);
                }
                catch (Exception ex) { DebugUtils.Log(ex.Message); }
            }

            UpdateActiveModCount();

            var text = LocaleFormatter.FormatGeneric("MOD_ENABLED_STATUS", new object[] { m_ActiveModCount, Singleton <PluginManager> .instance.modCount });

            DebugUtils.Log(text);

            if (m_ModsButton != null)
            {
                m_ModsButton.text = text;
            }

            if (m_ActiveSprite != null)
            {
                m_ActiveSprite.isVisible = (m_ActiveModCount == 0 || m_ActiveModCount > Singleton <PluginManager> .instance.enabledModCount);
            }
        }
Exemple #5
0
 public override string GetLocalizedTooltip()
 {
     return(TooltipHelper.Append(base.GetLocalizedTooltip(), TooltipHelper.Format(new string[]
     {
         LocaleFormatter.Info2,
         LocaleFormatter.FormatGeneric("AIINFO_WATER_OUTLET", new object[]
         {
             0
         })
     })));
 }
 public override string GetLocalizedTooltip()
 {
     return(TooltipHelper.Format(new string[]
     {
         LocaleFormatter.Cost,
         LocaleFormatter.FormatCost(this.GetConstructionCost(), true),
         LocaleFormatter.Upkeep,
         LocaleFormatter.FormatUpkeep(this.GetMaintenanceCost(), true),
         LocaleFormatter.Speed,
         LocaleFormatter.FormatGeneric("AIINFO_SPEED", new object[]
         {
             15f
         })
     }));
 }
Exemple #7
0
        public override string GetLocalizedStats(ushort buildingID, ref Building data)
        {
            string str = string.Empty;

            if ((UnityEngine.Object) this.m_transportInfo != (UnityEngine.Object)null && this.m_maxVehicleCount != 0)
            {
                switch (this.m_transportInfo.m_transportType)
                {
                case TransportInfo.TransportType.Taxi:
                    int vehicleCount1 = this.GetVehicleCount(buildingID, ref data);
                    int num1          = (PlayerBuildingAI.GetProductionRate(100, Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class)) * this.m_maxVehicleCount + 99) / 100;
                    str += LocaleFormatter.FormatGeneric("AIINFO_TAXIDEPOT_VEHICLES", (object)vehicleCount1, (object)num1);
                    break;

                case TransportInfo.TransportType.Tram:
                    int vehicleCount2 = this.GetVehicleCount(buildingID, ref data);
                    int num2          = (PlayerBuildingAI.GetProductionRate(100, Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class)) * this.m_maxVehicleCount + 99) / 100;
                    str += LocaleFormatter.FormatGeneric("AIINFO_TRAMDEPOT_TRAMCOUNT", (object)vehicleCount2, (object)num2);
                    break;

                case TransportInfo.TransportType.Bus:
                    int vehicleCount3 = this.GetVehicleCount(buildingID, ref data);
                    int num3          = (PlayerBuildingAI.GetProductionRate(100, Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class)) * this.m_maxVehicleCount + 99) / 100;
                    str += LocaleFormatter.FormatGeneric("AIINFO_BUSDEPOT_BUSCOUNT", (object)vehicleCount3, (object)num3);
                    break;

                //begin mod
                case TransportInfo.TransportType.Metro:
                    int vehicleCount4 = this.GetVehicleCount(buildingID, ref data);
                    int num4          = (PlayerBuildingAI.GetProductionRate(100, Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class)) * this.m_maxVehicleCount + 99) / 100;
                    str += $"Metro trains in use: {vehicleCount4}";    // of {num4}";
                    break;

                case TransportInfo.TransportType.Train:
                    int vehicleCount5 = this.GetVehicleCount(buildingID, ref data);
                    int num5          = (PlayerBuildingAI.GetProductionRate(100, Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class)) * this.m_maxVehicleCount + 99) / 100;
                    str += $"Trains in use: {vehicleCount5}";    // of {num5}";
                    break;
                    //end mod
                }
            }
            return(str);
        }
        public override string GetLocalizedStats(ushort buildingID, ref Building data)
        {
            string text = string.Empty;

            if (this.m_waterConsumption > 0)
            {
                int num = this.GetWaterRate(buildingID, ref data) * 16 * m_consumption_multiplier;
                text += LocaleFormatter.FormatGeneric("AIINFO_WATER_INTAKE", new object[]
                {
                    num
                });
            }
            else
            {
                int num2 = -this.GetWaterRate(buildingID, ref data) * 16 * m_consumption_multiplier;
                text += LocaleFormatter.FormatGeneric("AIINFO_WATER_OUTLET", new object[] { num2 });
            }
            text += "\nStored water: " + (data.m_waterBuffer * m_bufferMultiplier) + " m³";
            text += "\nRunning at: " + (data.m_productionRate) + "%";
            return(text);
        }
Exemple #9
0
        public override string GetLocalizedStats(ushort buildingID, ref Building data)
        {
            if (!MarketBuffers.ContainsKey(buildingID))
            {
                AddMarketBufferToBuildingData(buildingID);
            }
            var    marketBuffer = MarketBuffers[buildingID];
            string str          = "";
            int    num;

            for (int i = 0; i < m_incomingResources.Length; i++)
            {
                string name = m_incomingResources[i].ToString();
                name = name.Replace("Grain", "Crops");
                name = name.Replace("Flours", "Flour");
                name = name.Replace("AnimalProducts", "Meat");
                num  = (int)(marketBuffer.amountSold2[i] * 10);
                str += name + " sold last week: " + num;
                str += Environment.NewLine;
            }
            str += Environment.NewLine;
            for (int i = 0; i < m_incomingResources.Length; i++)
            {
                string name = m_incomingResources[i].ToString();
                name = name.Replace("Grain", "Crops");
                name = name.Replace("Flours", "Flour");
                name = name.Replace("AnimalProducts", "Meat");
                num  = (int)(marketBuffer.inputAmountBuffer[i]);
                str += name + " stored in market: " + num + "/" + m_goodsCapacity;
                str += Environment.NewLine;
            }
            str += Environment.NewLine;
            MarketBuffers[buildingID] = marketBuffer;
            int finalExport = (int)data.m_finalExport;

            return(str + LocaleFormatter.FormatGeneric("AIINFO_TOURISTS", new object[]
            {
                finalExport
            }));
        }
Exemple #10
0
        public static void Postfix(PowerPlantAI __instance, ushort buildingID, ref Building data, ref string __result)
        {
            int    electricityRate = __instance.GetElectricityRate(buildingID, ref data);
            string text            = LocaleFormatter.FormatGeneric("AIINFO_ELECTRICITY_PRODUCTION", new object[]
            {
                (electricityRate * 16 + 500) / 1000
            });

            text += Environment.NewLine;
            if (__instance.m_resourceType != TransferManager.TransferReason.None)
            {
                string name = __instance.m_resourceType.ToString();
                name = name.Replace("Grain", "Crops");
                name = name.Replace("Flours", "Flour");
                name = name.Replace("Metals", "Metal");
                name = name.Replace("Petroleum", "Petroleum");
                name = name.Replace("Logs", "Raw Forest Products");
                name = name.Replace("Lumber", "Zoned Forest Goods");
                int resourceDuration = __instance.GetResourceDuration(buildingID, ref data);
                text += name + " stored for " + resourceDuration + " weeks";
            }
            __result = text;
        }
Exemple #11
0
        public void RefreshData(bool updateColors, bool updateVisibility)
        {
            if (this.m_LineOperation == null || this.m_LineOperation.completedOrFailed)
            {
                TLMLineUtils.getLineActive(ref Singleton <TransportManager> .instance.m_lines.m_buffer[m_LineID], out bool dayActive, out bool nightActive);
                bool zeroed;
                unchecked
                {
                    zeroed = (Singleton <TransportManager> .instance.m_lines.m_buffer[m_LineID].m_flags & (TransportLine.Flags)TLMTransportLineFlags.ZERO_BUDGET_CURRENT) != 0;
                }
                if (!dayActive || !nightActive || zeroed)
                {
                    m_LineColor.normalBgSprite = zeroed ? "NoBudgetIcon" : dayActive ? "DayIcon" : nightActive ? "NightIcon" : "DisabledIcon";
                }
                else
                {
                    m_LineColor.normalBgSprite = "";
                }

                this.m_DayLine.isChecked        = (dayActive && !nightActive);
                this.m_NightLine.isChecked      = (nightActive && !dayActive);
                this.m_DayNightLine.isChecked   = (dayActive && nightActive);
                this.m_DisabledLine.isChecked   = (!dayActive && !nightActive);
                m_DisabledLine.relativePosition = new Vector3(730, 8);
            }
            else
            {
                m_LineColor.normalBgSprite = "DisabledIcon";
            }
            this.m_LineName.text = Singleton <TransportManager> .instance.GetLineName(this.m_LineID);

            m_LineNumber             = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_lineNumber;
            this.m_LineStops.text    = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].CountStops(this.m_LineID).ToString("N0");
            this.m_LineVehicles.text = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].CountVehicles(this.m_LineID).ToString("N0");
            uint prefix = 0;

            var tsd = Singleton <T> .instance.GetTSD();

            if (TLMConfigWarehouse.getCurrentConfigInt(tsd.toConfigIndex() | TLMConfigWarehouse.ConfigIndex.PREFIX) != (int)ModoNomenclatura.Nenhum)
            {
                prefix = Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_lineNumber / 1000u;
            }


            int averageCount  = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_passengers.m_residentPassengers.m_averageCount;
            int averageCount2 = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_passengers.m_touristPassengers.m_averageCount;

            this.m_LinePassengers.text = (averageCount + averageCount2).ToString("N0");

            this.m_LinePassengers.tooltip = string.Format("{0}", LocaleFormatter.FormatGeneric("TRANSPORT_LINE_PASSENGERS", new object[]
            {
                averageCount,
                averageCount2
            }));
            TLMLineUtils.setLineNumberCircleOnRef(lineID, m_LineNumberFormatted, 0.8f);
            m_LineColor.normalFgSprite = TLMLineUtils.getIconForLine(lineID);

            this.m_PassengerCount = averageCount + averageCount2;

            this.m_lineIncompleteWarning.isVisible = ((Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_flags & TransportLine.Flags.Complete) == TransportLine.Flags.None);

            if (updateColors)
            {
                this.m_LineColor.selectedColor = Singleton <TransportManager> .instance.GetLineColor(this.m_LineID);
            }
            if (updateVisibility)
            {
                this.m_LineIsVisible.isChecked = ((Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_flags & TransportLine.Flags.Hidden) == TransportLine.Flags.None);
            }


            if (tsd.hasVehicles())
            {
                TransportInfo info          = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].Info;
                float         overallBudget = Singleton <EconomyManager> .instance.GetBudget(info.m_class) / 100f;

                string vehTooltip = string.Format("{0} {1}", this.m_LineVehicles.text, Locale.Get("PUBLICTRANSPORT_VEHICLES"));
                this.m_LineVehicles.tooltip = vehTooltip;
                if (!TLMTransportLineExtension.instance.IsUsingCustomConfig(this.lineID) || !TLMTransportLineExtension.instance.IsUsingAbsoluteVehicleCount(this.lineID))
                {
                    this.m_lineBudgetLabel.text = string.Format("{0:0%}", TLMLineUtils.getEffectiveBugdet(lineID));//585+1/7 = frames/week
                    m_lineBudgetLabel.tooltip   = string.Format(Locale.Get("TLM_LINE_BUDGET_EXPLAIN_2"),
                                                                TLMConfigWarehouse.getNameForTransportType(tsd.toConfigIndex()),
                                                                overallBudget, Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_budget / 100f, TLMLineUtils.getEffectiveBugdet(lineID));
                    m_lineBudgetLabel.relativePosition = new Vector3(m_LineVehicles.relativePosition.x, 19, 0);
                    m_lineBudgetLabel.isVisible        = true;
                }
                else
                {
                    m_lineBudgetLabel.isVisible = false;
                }


                bool tlmPerHour = TLMLineUtils.isPerHourBudget(m_LineID);
                m_DayLine.isVisible           = !tlmPerHour;
                m_DayNightLine.isVisible      = !tlmPerHour;
                m_NightLine.isVisible         = !tlmPerHour;
                m_DisabledLine.isVisible      = !tlmPerHour;
                m_perHourBudgetInfo.isVisible = tlmPerHour;

                m_perHourBudgetInfo.relativePosition = new Vector3(615, 2);
            }
            else
            {
                m_DayLine.isVisible      = true;
                m_DayNightLine.isVisible = true;
                m_NightLine.isVisible    = true;
                m_DisabledLine.isVisible = true;
            }
        }
Exemple #12
0
        public void updateBidings()
        {
            ushort        lineID         = m_lineIdSelecionado.TransportLine;
            TransportLine tl             = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID];
            TransportInfo info           = tl.Info;
            int           turistas       = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID].m_passengers.m_touristPassengers.m_averageCount;
            int           residentes     = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID].m_passengers.m_residentPassengers.m_averageCount;
            int           residentesPorc = residentes;

            if (residentesPorc == 0)
            {
                residentesPorc = 1;
            }
            int criancas         = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID].m_passengers.m_childPassengers.m_averageCount;
            int adolescentes     = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID].m_passengers.m_teenPassengers.m_averageCount;
            int jovens           = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID].m_passengers.m_youngPassengers.m_averageCount;
            int adultos          = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID].m_passengers.m_adultPassengers.m_averageCount;
            int idosos           = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID].m_passengers.m_seniorPassengers.m_averageCount;
            int motoristas       = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)lineID].m_passengers.m_carOwningPassengers.m_averageCount;
            int veiculosLinha    = TLMLineUtils.GetVehiclesCount(lineID);
            int porcCriancas     = (criancas * 100 / residentesPorc);
            int porcAdolescentes = (adolescentes * 100 / residentesPorc);
            int porcJovens       = (jovens * 100 / residentesPorc);
            int porcAdultos      = (adultos * 100 / residentesPorc);
            int porcIdosos       = (idosos * 100 / residentesPorc);
            int soma             = porcCriancas + porcAdolescentes + porcJovens + porcAdultos + porcIdosos;

            if (soma != 0 && soma != 100)
            {
                porcAdultos = 100 - (porcCriancas + porcAdolescentes + porcJovens + porcIdosos);
            }
            agesPanel.SetValues(new int[]
            {
                porcCriancas,
                porcAdolescentes,
                porcJovens,
                porcAdultos,
                porcIdosos
            });
            passageirosEturistasLabel.text = LocaleFormatter.FormatGeneric("TRANSPORT_LINE_PASSENGERS", new object[]
            {
                residentes,
                turistas
            });

            int viagensSalvas      = 0;
            int coeficienteViagens = 0;

            if (residentes + turistas != 0)
            {
                coeficienteViagens += criancas * 0;
                coeficienteViagens += adolescentes * 5;
                coeficienteViagens += jovens * ((15 * residentes + 20 * turistas + (residentes + turistas >> 1)) / (residentes + turistas));
                coeficienteViagens += adultos * ((20 * residentes + 20 * turistas + (residentes + turistas >> 1)) / (residentes + turistas));
                coeficienteViagens += idosos * ((10 * residentes + 20 * turistas + (residentes + turistas >> 1)) / (residentes + turistas));
            }
            if (coeficienteViagens != 0)
            {
                viagensSalvas = (int)(((long)motoristas * 10000L + (long)(coeficienteViagens >> 1)) / (long)coeficienteViagens);
                viagensSalvas = Mathf.Clamp(viagensSalvas, 0, 100);
            }
            viagensEvitadasLabel.text = LocaleFormatter.FormatGeneric("TRANSPORT_LINE_TRIPSAVED", new object[] {
                viagensSalvas
            });

            if (daytimeChange != null && daytimeChange.completedOrFailed)
            {
                linearMap.redrawLine();
                daytimeChange = null;
            }
            else
            {
                linearMap.updateBidings();
            }


            //lines info
            int stopsCount = TLMLineUtils.GetStopsCount(lineID);

            if (lastStopsCount != stopsCount)
            {
                float totalSize = TLMLineUtils.GetLineLength(lineID);
                lineLenghtLabel.text = string.Format(Locale.Get("TLM_LENGHT_AND_STOPS"), totalSize, stopsCount);
                lastStopsCount       = stopsCount;
            }

            //estatisticas novas
            veiculosLinhaLabel.text = LocaleFormatter.FormatGeneric("TRANSPORT_LINE_VEHICLECOUNT", new object[] { veiculosLinha });

            uint prefix = 0;

            if (TLMConfigWarehouse.getCurrentConfigInt(TLMConfigWarehouse.getConfigIndexForTransportInfo(info) | TLMConfigWarehouse.ConfigIndex.PREFIX) != (int)ModoNomenclatura.Nenhum)
            {
                prefix = Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_lineNumber / 1000u;
            }

            float overallBudget = Singleton <EconomyManager> .instance.GetBudget(info.m_class) / 100f;

            float prefixMultiplier = TLMUtils.getExtensionFromConfigIndex(TLMCW.getConfigIndexForTransportInfo(info)).getBudgetMultiplierForHour(prefix, (int)Singleton <SimulationManager> .instance.m_currentDayTimeHour) / 100f;

            detailedStatsLabel.text    = string.Format("{0:0%}", overallBudget * prefixMultiplier);
            detailedStatsLabel.tooltip = string.Format(Locale.Get("TLM_LINE_BUDGET_EXPLAIN"),
                                                       TLMCW.getNameForTransportType(TLMCW.getConfigIndexForTransportInfo(info)),
                                                       TLMUtils.getStringOptionsForPrefix((ModoNomenclatura)TLMConfigWarehouse.getCurrentConfigInt(TLMConfigWarehouse.getConfigIndexForTransportInfo(info) | TLMConfigWarehouse.ConfigIndex.PREFIX), true)[prefix + 1],
                                                       overallBudget, prefixMultiplier,
                                                       overallBudget * prefixMultiplier);

            //bool isZeroed = ((int)tl.m_flags & (int)TLMTransportLineFlags.ZERO_BUDGET_SETTED) > 0;
            //lineTime.isVisible = !isZeroed;
            //if (isZeroed)
            //{
            //    lineTimeTitle.localeID = ("TLM_LINE_DISABLED_NO_BUDGET");
            //    lineTimeTitle.tooltipLocaleID = ("TLM_LINE_DISABLED_NO_BUDGET_DESC");
            //}
            //else
            //{
            //    lineTimeTitle.localeID = ("TRANSPORT_LINE_ACTIVITY");
            //    lineTimeTitle.tooltipLocaleID = ("");
            //}

            //generalDebugLabel.enabled = TransportLinesManagerMod.debugMode.value;
            //if (TransportLinesManagerMod.debugMode.value)
            //{
            //    string debugTxt = "!";
            //    var extraDatas = ExtraVehiclesStats.instance.getLineVehiclesData(lineID);
            //    if (extraDatas.Count == 0)
            //    {
            //        debugTxt = "none";
            //    }
            //    else
            //    {
            //        foreach (var item in extraDatas)
            //        {
            //            debugTxt += string.Format("BUS ID {0} - {1} Fill, {2} per lap ||", item.Key, item.Value.avgFill.ToString("0.00%"), string.Format("{0}d {1}h{2}m", item.Value.timeTakenLap.TotalDays, item.Value.timeTakenLap.Hours, item.Value.timeTakenLap.Minutes));
            //        }
            //    }

            //    generalDebugLabel.text = debugTxt;
            //}

            //			//custos da linha
            //			float costVehicles = 0;
            //			ushort nextVehId = tl.m_vehicles;
            //			while (nextVehId >0) {
            //				costVehicles += Singleton<VehicleManager>.instance.m_vehicles.m_buffer [(int)nextVehId].Info.GetMaintenanceCost () ;
            //				nextVehId = Singleton<VehicleManager>.instance.m_vehicles.m_buffer [(int)nextVehId].m_nextLineVehicle;
            //			}
            //			float costStops = 0;
            //			int a = tl.m_stops;
            //			for (int i = 0; i< stopsCount; i++) {
            //				costStops += Singleton<NetManager>.instance.m_nodes.m_buffer [(int)tl.GetStop (i)].Info.GetMaintenanceCost () ;
            //			}
            //			custosLabel.text = String.Format (costsFormat, costVehicles, costStops, costVehicles + costStops);
        }
Exemple #13
0
        public void updateBidings()
        {
            BuildingInfo basicInfo = Singleton <BuildingManager> .instance.m_buildings.m_buffer[m_buildingIdSelecionado.Building].Info;
            DepotAI      basicAI   = basicInfo.GetAI() as DepotAI;

            if (basicAI == null)
            {
                closeDepotInfo(null, null);
                return;
            }

            TransportStationAI stationAI = basicInfo.GetAI() as TransportStationAI;
            HarborAI           harborAI  = basicInfo.GetAI() as HarborAI;


            vehiclesInUseLabel.text = LocaleFormatter.FormatGeneric("TRANSPORT_LINE_VEHICLECOUNT", new object[] { basicAI.GetVehicleCount(m_buildingIdSelecionado.Building, ref Singleton <BuildingManager> .instance.m_buildings.m_buffer[m_buildingIdSelecionado.Building]).ToString() });
            if (stationAI != null)
            {
                passengersLastWeek.isVisible = true;
                int passengerCount = stationAI.GetPassengerCount(m_buildingIdSelecionado.Building, ref Singleton <BuildingManager> .instance.m_buildings.m_buffer[m_buildingIdSelecionado.Building]);
                passengersLastWeek.text = LocaleFormatter.FormatGeneric("AIINFO_PASSENGERS_SERVICED", new object[] { passengerCount });
            }
            else
            {
                passengersLastWeek.isVisible = false;
            }

            upkeepCost.text = LocaleFormatter.FormatUpkeep(basicAI.GetResourceRate(m_buildingIdSelecionado.Building, ref Singleton <BuildingManager> .instance.m_buildings.m_buffer[(int)m_buildingIdSelecionado.Building], EconomyManager.Resource.Maintenance), false);

            uint num         = Singleton <BuildingManager> .instance.m_buildings.m_buffer[m_buildingIdSelecionado.Building].m_citizenUnits;
            int  num2        = 0;
            int  num3        = 0;
            int  unskill     = 0;
            int  oneSchool   = 0;
            int  twoSchool   = 0;
            int  threeSchool = 0;

            CitizenManager instance = Singleton <CitizenManager> .instance;

            while (num != 0u)
            {
                uint nextUnit = instance.m_units.m_buffer[(int)((UIntPtr)num)].m_nextUnit;
                if ((ushort)(instance.m_units.m_buffer[(int)((UIntPtr)num)].m_flags & CitizenUnit.Flags.Work) != 0)
                {
                    for (int i = 0; i < 5; i++)
                    {
                        uint citizen = instance.m_units.m_buffer[(int)((UIntPtr)num)].GetCitizen(i);
                        if (citizen != 0u && !instance.m_citizens.m_buffer[(int)((UIntPtr)citizen)].Dead && (instance.m_citizens.m_buffer[(int)((UIntPtr)citizen)].m_flags & Citizen.Flags.MovingIn) == Citizen.Flags.None)
                        {
                            num3++;
                            switch (instance.m_citizens.m_buffer[(int)((UIntPtr)citizen)].EducationLevel)
                            {
                            case Citizen.Education.Uneducated:
                                unskill++;
                                break;

                            case Citizen.Education.OneSchool:
                                oneSchool++;
                                break;

                            case Citizen.Education.TwoSchools:
                                twoSchool++;
                                break;

                            case Citizen.Education.ThreeSchools:
                                threeSchool++;
                                break;
                            }
                        }
                    }
                }
                num = nextUnit;
                if (++num2 > 524288)
                {
                    CODebugBase <LogChannel> .Error(LogChannel.Core, "Invalid list detected!\n" + Environment.StackTrace);

                    break;
                }
            }

            workerChart.SetValues(new int[] { unskill, oneSchool, twoSchool, threeSchool }, new int[] { basicAI.m_workPlaceCount0, basicAI.m_workPlaceCount1, basicAI.m_workPlaceCount2, basicAI.m_workPlaceCount3 });
        }
Exemple #14
0
        public override string GetLocalizedStats(ushort buildingID, ref Building data)
        {
            string text = string.Empty;

            if ((UnityEngine.Object) this.m_transportInfo != (UnityEngine.Object)null && this.m_maxVehicleCount != 0)
            {
                switch (this.m_transportInfo.m_transportType)
                {
                case TransportInfo.TransportType.Bus:
                case TransportInfo.TransportType.TouristBus:
                {
                    int vehicleCount = this.GetVehicleCount(buildingID, ref data);
                    int budget       = Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class);

                    int productionRate = PlayerBuildingAI.GetProductionRate(100, budget);
                    int num            = (productionRate * this.m_maxVehicleCount + 99) / 100;
                    text += LocaleFormatter.FormatGeneric("AIINFO_BUSDEPOT_BUSCOUNT", new object[]
                        {
                            vehicleCount,
                            num
                        });
                    break;
                }

                case TransportInfo.TransportType.Ship:
                    if (this.m_transportInfo.m_vehicleType == VehicleInfo.VehicleType.Ferry)
                    {
                        int vehicleCount2 = this.GetVehicleCount(buildingID, ref data);
                        int budget2       = Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class);

                        int productionRate2 = PlayerBuildingAI.GetProductionRate(100, budget2);
                        int num2            = (productionRate2 * this.m_maxVehicleCount + 99) / 100;
                        text += LocaleFormatter.FormatGeneric("AIINFO_FERRYDEPOT_FERRYCOUNT", new object[]
                        {
                            vehicleCount2,
                            num2
                        });
                    }
                    break;

                case TransportInfo.TransportType.Airplane:
                    if (this.m_transportInfo.m_vehicleType == VehicleInfo.VehicleType.Blimp)
                    {
                        int vehicleCount3 = this.GetVehicleCount(buildingID, ref data);
                        int budget3       = Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class);

                        int productionRate3 = PlayerBuildingAI.GetProductionRate(100, budget3);
                        int num3            = (productionRate3 * this.m_maxVehicleCount + 99) / 100;
                        text += LocaleFormatter.FormatGeneric("AIINFO_BLIMPDEPOT_BLIMPCOUNT", new object[]
                        {
                            vehicleCount3,
                            num3
                        });
                    }
                    break;

                case TransportInfo.TransportType.Taxi:
                {
                    int vehicleCount4 = this.GetVehicleCount(buildingID, ref data);
                    int budget4       = Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class);

                    int productionRate4 = PlayerBuildingAI.GetProductionRate(100, budget4);
                    int num4            = (productionRate4 * this.m_maxVehicleCount + 99) / 100;
                    text += LocaleFormatter.FormatGeneric("AIINFO_TAXIDEPOT_VEHICLES", new object[]
                        {
                            vehicleCount4,
                            num4
                        });
                    break;
                }

                case TransportInfo.TransportType.Tram:
                {
                    int vehicleCount5 = this.GetVehicleCount(buildingID, ref data);
                    int budget5       = Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class);

                    int productionRate5 = PlayerBuildingAI.GetProductionRate(100, budget5);
                    int num5            = (productionRate5 * this.m_maxVehicleCount + 99) / 100;
                    text += LocaleFormatter.FormatGeneric("AIINFO_TRAMDEPOT_TRAMCOUNT", new object[]
                        {
                            vehicleCount5,
                            num5
                        });
                    break;
                }

                //begin mod
                case TransportInfo.TransportType.Metro:
                {
                    int vehicleCount6 = this.GetVehicleCount(buildingID, ref data);
                    int budget6       = Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class);

                    int productionRate6 = PlayerBuildingAI.GetProductionRate(100, budget6);
                    int num6            = (productionRate6 * this.m_maxVehicleCount + 99) / 100;
                    text += LocaleFormatter.FormatGeneric("AIINFO_TRAMDEPOT_TRAMCOUNT", new object[]
                        {
                            vehicleCount6,
                            num6
                        }).Replace("Tram", "Metro");
                    break;
                }

                case TransportInfo.TransportType.Train:
                {
                    int vehicleCount7 = this.GetVehicleCount(buildingID, ref data);
                    int budget7       = Singleton <EconomyManager> .instance.GetBudget(this.m_info.m_class);

                    int productionRate7 = PlayerBuildingAI.GetProductionRate(100, budget7);
                    int num7            = (productionRate7 * this.m_maxVehicleCount + 99) / 100;
                    text += LocaleFormatter.FormatGeneric("AIINFO_TRAMDEPOT_TRAMCOUNT", new object[]
                        {
                            vehicleCount7,
                            num7
                        }).Replace("Tram", "Train");
                    break;
                    //end mod
                }
                }
            }
            return(text);
        }
        public void RefreshData(bool colors, bool visible)
        {
            if (Singleton <TransportManager> .exists)
            {
                bool isRowVisible;

                if (this.m_LineOperation == null || this.m_LineOperation.completedOrFailed)
                {
                    //this.m_DayLine.isVisible = (!isZeroed);
                    //this.m_NightLine.isVisible = (!isZeroed);
                    //this.m_DayNightLine.isVisible = (!isZeroed);
                    //this.m_DisabledLine.isVisible = (!isZeroed);
                    //this.m_noBudgetWarn.isVisible = (isZeroed);

                    bool isZeroed;
                    bool dayActive;
                    bool nightActive;

                    TLMLineUtils.getLineActive(ref Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID], out dayActive, out nightActive, out isZeroed);
                    if (!isZeroed)
                    {
                        if (!dayActive || !nightActive)
                        {
                            m_LineColor.normalBgSprite = dayActive ? "DayIcon" : nightActive ? "NightIcon" : "DisabledIcon";
                        }
                        else
                        {
                            m_LineColor.normalBgSprite = "";
                        }
                    }
                    else
                    {
                        m_LineColor.normalBgSprite = "NoBudgetIcon";
                        //m_noBudgetWarn.relativePosition = new Vector3(615, 2);
                    }
                    this.m_DayLine.isChecked        = (dayActive && !nightActive);
                    this.m_NightLine.isChecked      = (nightActive && !dayActive);
                    this.m_DayNightLine.isChecked   = (dayActive && nightActive);
                    this.m_DisabledLine.isChecked   = (!dayActive && !nightActive);
                    m_DisabledLine.relativePosition = new Vector3(730, 8);
                    isRowVisible = TLMPublicTransportDetailPanel.instance.isActivityVisible(dayActive, nightActive) && TLMPublicTransportDetailPanel.instance.isOnCurrentPrefixFilter(m_LineNumber);
                }
                else
                {
                    m_LineColor.normalBgSprite = "DisabledIcon";
                    isRowVisible = TLMPublicTransportDetailPanel.instance.isActivityVisible(false, false) && TLMPublicTransportDetailPanel.instance.isOnCurrentPrefixFilter(m_LineNumber);
                }
                if (!isRowVisible)
                {
                    GetComponent <UIComponent>().isVisible = false;
                    return;
                }
                GetComponent <UIComponent>().isVisible = true;
                this.m_LineName.text = Singleton <TransportManager> .instance.GetLineName(this.m_LineID);

                m_LineNumber             = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_lineNumber;
                this.m_LineStops.text    = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].CountStops(this.m_LineID).ToString("N0");
                this.m_LineVehicles.text = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].CountVehicles(this.m_LineID).ToString("N0");
                uint          prefix = 0;
                TransportInfo info   = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].Info;
                if (TLMConfigWarehouse.getCurrentConfigInt(TLMConfigWarehouse.getConfigIndexForTransportInfo(info) | TLMConfigWarehouse.ConfigIndex.PREFIX) != (int)ModoNomenclatura.Nenhum)
                {
                    prefix = Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_lineNumber / 1000u;
                }

                float overallBudget = Singleton <EconomyManager> .instance.GetBudget(info.m_class) / 100f;

                float prefixMultiplier = TLMUtils.getExtensionFromConfigIndex(TLMCW.getConfigIndexForTransportInfo(info)).getBudgetMultiplierForHour(prefix, (int)Singleton <SimulationManager> .instance.m_currentDayTimeHour) / 100f;

                this.m_budgetEffective.text = string.Format("{0:0%}", overallBudget * prefixMultiplier);//585+1/7 = frames/week

                string vehTooltip = string.Format("{0} {1}", this.m_LineVehicles.text, Locale.Get("PUBLICTRANSPORT_VEHICLES"));


                this.m_LineVehicles.tooltip = vehTooltip;


                int averageCount  = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_passengers.m_residentPassengers.m_averageCount;
                int averageCount2 = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_passengers.m_touristPassengers.m_averageCount;
                this.m_LinePassengers.text = (averageCount + averageCount2).ToString("N0");


                //   this.m_LineEarnings.text = string.Format("~₡ {0:0.00}", (averageCount + averageCount2) / 50f);
                //    m_LineEarnings.relativePosition = m_LinePassengers.relativePosition + new Vector3(0, 20, 0);


                this.m_LinePassengers.tooltip = string.Format("{0}", LocaleFormatter.FormatGeneric("TRANSPORT_LINE_PASSENGERS", new object[]
                {
                    averageCount,
                    averageCount2
                }));
                ModoNomenclatura prefixMode;
                Separador        sep;
                ModoNomenclatura suffix;
                ModoNomenclatura nonPrefix;
                bool             zerosEsquerda;
                bool             invertPrefixSuffix;
                string           bgSprite;
                TLMLineUtils.getLineNamingParameters(lineID, out prefixMode, out sep, out suffix, out nonPrefix, out zerosEsquerda, out invertPrefixSuffix, out bgSprite);
                TLMLineUtils.setLineNumberCircleOnRef(lineNumber, prefixMode, sep, suffix, nonPrefix, zerosEsquerda, m_LineNumberFormatted, invertPrefixSuffix, 0.8f);
                m_LineColor.normalFgSprite = bgSprite;

                m_budgetEffective.tooltip = string.Format(Locale.Get("TLM_LINE_BUDGET_EXPLAIN"), TLMCW.getNameForTransportType(TLMCW.getConfigIndexForTransportInfo(info)), TLMUtils.getStringOptionsForPrefix(prefixMode, true)[prefix + 1], overallBudget, prefixMultiplier, overallBudget * prefixMultiplier);

                this.m_PassengerCount = averageCount + averageCount2;
                if (colors)
                {
                    this.m_LineColor.selectedColor = Singleton <TransportManager> .instance.GetLineColor(this.m_LineID);
                }
                if (visible)
                {
                    this.m_LineIsVisible.isChecked = ((Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_flags & TransportLine.Flags.Hidden) == TransportLine.Flags.None);
                }


                m_budgetEffective.relativePosition = new Vector3(m_LineVehicles.relativePosition.x, 19, 0);
            }
        }
Exemple #16
0
        public void RefreshData(bool colors, bool visible)
        {
            if (Singleton <TransportManager> .exists)
            {
                bool isRowVisible;

                if (this.m_LineOperation == null || this.m_LineOperation.completedOrFailed)
                {
                    //this.m_DayLine.isVisible = (!isZeroed);
                    //this.m_NightLine.isVisible = (!isZeroed);
                    //this.m_DayNightLine.isVisible = (!isZeroed);
                    //this.m_DisabledLine.isVisible = (!isZeroed);
                    //this.m_noBudgetWarn.isVisible = (isZeroed);


                    TLMLineUtils.getLineActive(ref Singleton <TransportManager> .instance.m_lines.m_buffer[m_LineID], out bool dayActive, out bool nightActive);
                    bool zeroed;
                    unchecked
                    {
                        zeroed = (Singleton <TransportManager> .instance.m_lines.m_buffer[m_LineID].m_flags & (TransportLine.Flags)TLMTransportLineFlags.ZERO_BUDGET_CURRENT) != 0;
                    }
                    if (!dayActive || !nightActive || zeroed)
                    {
                        m_LineColor.normalBgSprite = zeroed ? "NoBudgetIcon" : dayActive ? "DayIcon" : nightActive ? "NightIcon" : "DisabledIcon";
                    }
                    else
                    {
                        m_LineColor.normalBgSprite = "";
                    }

                    this.m_DayLine.isChecked        = (dayActive && !nightActive);
                    this.m_NightLine.isChecked      = (nightActive && !dayActive);
                    this.m_DayNightLine.isChecked   = (dayActive && nightActive);
                    this.m_DisabledLine.isChecked   = (!dayActive && !nightActive);
                    m_DisabledLine.relativePosition = new Vector3(730, 8);
                    isRowVisible = TLMPublicTransportDetailPanel.instance.isActivityVisible(dayActive, nightActive) && TLMPublicTransportDetailPanel.instance.isOnCurrentPrefixFilter(m_LineNumber);
                }
                else
                {
                    m_LineColor.normalBgSprite = "DisabledIcon";
                    isRowVisible = TLMPublicTransportDetailPanel.instance.isActivityVisible(false, false) && TLMPublicTransportDetailPanel.instance.isOnCurrentPrefixFilter(m_LineNumber);
                }
                if (!isRowVisible)
                {
                    GetComponent <UIComponent>().isVisible = false;
                    return;
                }
                GetComponent <UIComponent>().isVisible = true;
                this.m_LineName.text = Singleton <TransportManager> .instance.GetLineName(this.m_LineID);

                m_LineNumber             = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_lineNumber;
                this.m_LineStops.text    = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].CountStops(this.m_LineID).ToString("N0");
                this.m_LineVehicles.text = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].CountVehicles(this.m_LineID).ToString("N0");
                uint          prefix = 0;
                TransportInfo info   = Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].Info;
                if (TLMConfigWarehouse.getCurrentConfigInt(TLMConfigWarehouse.getConfigIndexForTransportInfo(info) | TLMConfigWarehouse.ConfigIndex.PREFIX) != (int)ModoNomenclatura.Nenhum)
                {
                    prefix = Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_lineNumber / 1000u;
                }

                float overallBudget = Singleton <EconomyManager> .instance.GetBudget(info.m_class) / 100f;

                this.m_lineBudgetLabel.text = string.Format("{0:0%}", TLMLineUtils.getEffectiveBugdet(lineID));//585+1/7 = frames/week

                string vehTooltip = string.Format("{0} {1}", this.m_LineVehicles.text, Locale.Get("PUBLICTRANSPORT_VEHICLES"));


                this.m_LineVehicles.tooltip = vehTooltip;


                int averageCount  = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_passengers.m_residentPassengers.m_averageCount;
                int averageCount2 = (int)Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_passengers.m_touristPassengers.m_averageCount;
                this.m_LinePassengers.text = (averageCount + averageCount2).ToString("N0");


                //   this.m_LineEarnings.text = string.Format("~₡ {0:0.00}", (averageCount + averageCount2) / 50f);
                //    m_LineEarnings.relativePosition = m_LinePassengers.relativePosition + new Vector3(0, 20, 0);


                this.m_LinePassengers.tooltip = string.Format("{0}", LocaleFormatter.FormatGeneric("TRANSPORT_LINE_PASSENGERS", new object[]
                {
                    averageCount,
                    averageCount2
                }));
                TLMLineUtils.setLineNumberCircleOnRef(lineID, m_LineNumberFormatted, 0.8f);
                m_LineColor.normalFgSprite = TLMLineUtils.getIconForLine(lineID);

                m_lineBudgetLabel.tooltip = string.Format(Locale.Get("TLM_LINE_BUDGET_EXPLAIN_2"),
                                                          TLMCW.getNameForTransportType(TLMCW.getConfigIndexForTransportInfo(info)),
                                                          overallBudget, Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_budget / 100f, TLMLineUtils.getEffectiveBugdet(lineID));

                this.m_PassengerCount = averageCount + averageCount2;

                this.m_lineIncompleteWarning.isVisible = ((Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_flags & TransportLine.Flags.Complete) == TransportLine.Flags.None);
                if (colors)
                {
                    this.m_LineColor.selectedColor = Singleton <TransportManager> .instance.GetLineColor(this.m_LineID);
                }
                if (visible)
                {
                    this.m_LineIsVisible.isChecked = ((Singleton <TransportManager> .instance.m_lines.m_buffer[(int)this.m_LineID].m_flags & TransportLine.Flags.Hidden) == TransportLine.Flags.None);
                }


                m_lineBudgetLabel.relativePosition = new Vector3(m_LineVehicles.relativePosition.x, 19, 0);

                bool tlmPerHour = TLMLineUtils.isPerHourBudget(m_LineID);
                m_DayLine.isVisible           = !tlmPerHour;
                m_DayNightLine.isVisible      = !tlmPerHour;
                m_NightLine.isVisible         = !tlmPerHour;
                m_DisabledLine.isVisible      = !tlmPerHour;
                m_perHourBudgetInfo.isVisible = tlmPerHour;

                m_perHourBudgetInfo.relativePosition = new Vector3(615, 2);
            }
        }