Пример #1
0
    public void UpdateCycleText(int minutes, int hours, int currentCycle, int currentYear)
    {
        timeText.text = string.Format("{0:00}", hours) + ":" + string.Format("{0:00}", minutes) + " - " + currentCycle + "." + currentYear;
        Tooltip tt = timeText.GetComponent <Tooltip>();

        tt.ClearLines();
        tt.AddLocalizedLine(new Localization.Line("hud", "temporality", currentCycle.ToString(), currentYear.ToString()));
    }
Пример #2
0
    IEnumerator AddTooltipsWhenPossible(Tooltip tt, BlockScheme scheme)
    {
        yield return(new WaitUntil(delegate { return GameManager.instance.localization.GetLanguages().Count > 0; }));

        List <Tooltip.Entry> entries = Tooltip.GetBuildingTooltip(scheme);

        foreach (Tooltip.Entry entry in entries)
        {
            tt.AddLocalizedLine(entry);
        }
        yield return(true);
    }
Пример #3
0
    public void UpdateTooltip()
    {
        // Tooltip generation
        Tooltip tt = GetComponent <Tooltip>();

        tt.ClearLines();
        List <Tooltip.Entry> entries = Tooltip.GetBuildingTooltip(this);

        foreach (Tooltip.Entry entry in entries)
        {
            tt.AddLocalizedLine(entry);
        }
    }
Пример #4
0
    void UpdateTooltips()
    {
        string popName = loc.GetLineFromCategory("populationType", population.codeName);

        faceTooltip.ClearLines();
        faceTooltip.AddLocalizedLine(new Localization.Line("populationType", population.codeName));
        faceTooltip.AddLocalizedLine(
            new Localization.Line(
                "stats",
                "moodValue",
                popName,
                moodString.ToUpper()
                )
            );


        // Last mood affects
        faceTooltip.AddLocalizedLine(new Tooltip.Entry(Tooltip.entryType.LineBreak));
        faceTooltip.AddLocalizedLine(new Tooltip.Entry("moodEvolution", "moodAffect", Tooltip.informationType.Neutral)
        {
            formatters = new string[] { "b" }
        });

        List <CityManager.MoodAffect> toSkip = new List <CityManager.MoodAffect>()
        {
            CityManager.MoodAffect.none,
            CityManager.MoodAffect.habitationBuff
        };

        foreach (CityManager.MoodAffect affect in popMan.populations[population].lastMoodChange.GetKeys())
        {
            if (toSkip.Contains(affect))
            {
                continue;
            }

            float value = -Mathf.Round(popMan.populations[population].lastMoodChange.Get(affect));
            if (value != 0f)
            {
                faceTooltip.AddLocalizedLine(
                    new Tooltip.Entry(affect.ToString(), "moodAffect", value > 0f ? Tooltip.informationType.Positive : Tooltip.informationType.Negative, value.ToString("+0;-#"))
                    );
            }
        }


        // Mood modifiers
        faceTooltip.AddLocalizedLine(new Tooltip.Entry(Tooltip.entryType.LineBreak));
        foreach (MoodModifier moodMod in popMan.populations[population].moodModifiers)
        {
            if (moodMod.eventId <= 0)
            {
                continue;
            }

            Tooltip.informationType type = Tooltip.informationType.Positive;
            if (moodMod.amount < 0)
            {
                type = Tooltip.informationType.Negative;
            }

            faceTooltip.AddLocalizedLine(
                new Tooltip.Entry(
                    "event" + moodMod.eventId,
                    "eventTitle",
                    type
                    )
                );

            faceTooltip.AddLocalizedLine(
                new Tooltip.Entry(
                    "value",
                    "stats",
                    type,
                    moodMod.amount.ToString("+0;-#")
                    )
                );
        }

        faceTooltip.AddLocalizedLine(new Localization.Line("hud", "priority"));
        faceTooltip.AddLocalizedLine(new Localization.Line("hud", "holdDrag"));

        // Numbers on the left of the tab
        homelessTooltip.ClearLines();
        homelessTooltip.AddLocalizedLine(
            new Localization.Line(
                "stats",
                "homeless",
                popMan.GetHomelessCount(population).ToString(),
                popName
                )
            );

        inhabitantsTooltip.ClearLines();
        inhabitantsTooltip.AddLocalizedLine(
            new Localization.Line(
                "stats",
                "inhabitants",
                popMan.populations[population].citizens.Count.ToString(),
                popName
                )
            );
    }
Пример #5
0
    public void InitializeButtons()
    {
        Localization loc = GameManager.instance.localization;

        foreach (GameObject b in instantiatedButtons)
        {
            Destroy(b);
        }

        foreach (KeyValuePair <int, EventManager.GameAction> gameAction in gameEvent.choices)
        {
            GameObject button          = Instantiate(buttonExample, buttonExample.transform.parent);
            Button     buttonComponent = button.GetComponentInChildren <Button>();
            Text       txt             = button.GetComponentInChildren <Text>();
            Tooltip    tt = button.GetComponentInChildren <Tooltip>();

            txt.text           = loc.GetLineFromCategory("choice", "event" + gameEvent.id + "_" + gameAction.Key);
            tt.isFirstLineBold = false;

            List <EventManager.GameEffect> fxs = gameAction.Value.GetGameEffects();

            // Remove untranslatable actions like DECLARE_EVENT
            fxs.RemoveAll(o => skippedActions.Contains(o.intention));

            foreach (EventManager.GameEffect action in fxs)
            {
                if (action.intention.Length <= 0)
                {
                    continue;
                }
                tt.AddLocalizedLine(
                    new Tooltip.Entry(
                        action.intention,
                        "scriptAction",
                        action.ttColor,
                        action.parameters
                        )
                    );
            }
            if (fxs.Count <= 0)
            {
                tt.AddLocalizedLine(
                    new Localization.Line(
                        "scriptAction",
                        "none"
                        )
                    );
            }

            // On choice click
            buttonComponent.onClick.AddListener(delegate {
                try {
                    gameEvent.ExecuteChoice(gameAction.Key);
                }
                catch (System.Exception e) {
                    Logger.Error("Skipped event error : " + e.ToString() + ". This should NOT happen. Check the event syntax on.");
                }
                subWindow.SetActive(false);
                if (GameManager.instance.player.options.GetBool(Options.Option.animatedCitizens))
                {
                    displayer.Unstage();
                }
                try {
                    FindObjectOfType <TooltipGO>().Disable();
                }
                catch {
                    // Sometimes the tooltip destroys too early
                    // This is okay
                }
                GameManager.instance.UnPause();
                GetComponent <Image>().enabled = false;
                StopAllCoroutines();
            });

            instantiatedButtons.Add(button);

            button.SetActive(true);
        }
    }