private void GetUIKeyInput()
    {
        if (Input.GetKeyDown(KeyCode.I))
        {
            UI_GameScene gameSceneUI = Managers.UI.SceneUI as UI_GameScene;
            UI_Inventory invenUI     = gameSceneUI.InvenUI;

            if (invenUI.gameObject.activeSelf)
            {
                invenUI.gameObject.SetActive(false);
            }
            else
            {
                invenUI.gameObject.SetActive(true);
                invenUI.RefreshUI();
            }
        }

        if (Input.GetKeyDown(KeyCode.C))
        {
            UI_GameScene gameSceneUI = Managers.UI.SceneUI as UI_GameScene;
            UI_Stat      statUI      = gameSceneUI.StatUi;

            if (statUI.gameObject.activeSelf)
            {
                statUI.gameObject.SetActive(false);
            }
            else
            {
                statUI.gameObject.SetActive(true);
                statUI.RefreshUI();
            }
        }
    }
Пример #2
0
    private void UpdateStat(GameObject go)
    {
        UI_Stat stat = go.GetComponent <UI_Stat>();

        // Initialize card if not done yet
        stat.Name.text   = stat.nameText;
        stat.Actual.text = stat.actualText;
        stat.Target.text = stat.targetText;
    }
Пример #3
0
    // =======================================
    // ========== PRIVATE FUNCTIONS ==========
    // =======================================
    private void computeDebrief()
    {
        computeDebriefInformations = true;
        int note      = 0;
        int totalNote = 0;

        // DETAILS
        if (manager.won)
        {
            manager.details.text       = Global.data.currentLevelWinDescription;
            manager.gameOverTitle.text = "VICTOIRE !";
        }
        else
        {
            manager.details.text       = Global.data.currentLevelLostDescription;
            manager.gameOverTitle.text = "Défaite ...";
        }

        // ========== STATISTICS ==========
        foreach (PairEStatTrackedEntityInt targetStat in Global.data.targetStats)
        {
            totalNote++;

            // I. First, add all expexted stat from the level
            GameObject go = Utility.clone(manager.Stat_Prefab, manager.statisticsScrollView);
            go.transform.localScale       = new Vector3(1, 1, 1);
            go.transform.localPosition    = new Vector3(0, 0, 0);
            go.transform.localEulerAngles = new Vector3(0, 0, 0);

            UI_Stat stat   = go.GetComponent <UI_Stat>();
            int     target = targetStat.b;
            int     actual = 0;

            for (int i = 0; i < Global.data.trackedEntities.Count; i++)
            {
                PairEStatTrackedEntityInt actualStat = Global.data.trackedEntities[i];
                if (actualStat.a == targetStat.a)
                {
                    actual = actualStat.b;
                    Global.data.trackedEntities.RemoveAt(i);
                    break;
                }
            }

            // Set stat's text
            stat.nameText   = targetStat.a.ToString();
            stat.targetText = target.ToString();
            stat.actualText = actual.ToString();

            // Set stat's color
            if (actual < target)
            {
                note++;
                stat.Actual.color = Color.blue;
            }
            else if (actual == target)
            {
                note++;
                stat.Actual.color = Color.green;
            }
            else
            {
                stat.Actual.color = Color.red;
            }
        }

        // II. Second, add all unexpected stat
        for (int i = 0; i < Global.data.trackedEntities.Count; i++)
        {
            PairEStatTrackedEntityInt actualStat = Global.data.trackedEntities[i];

            if (actualStat.b > 0)
            {
                GameObject go = Utility.clone(manager.Stat_Prefab, manager.statisticsScrollView);
                go.transform.localScale       = new Vector3(1, 1, 1);
                go.transform.localPosition    = new Vector3(0, 0, 0);
                go.transform.localEulerAngles = new Vector3(0, 0, 0);

                UI_Stat stat = go.GetComponent <UI_Stat>();

                stat.nameText     = actualStat.a.ToString();
                stat.targetText   = 0.ToString();
                stat.actualText   = actualStat.b.ToString();
                stat.Actual.color = Color.green;

                note--;
            }
        }

        manager.note      = note;
        manager.totalNote = totalNote;

        manager.noteText.text = manager.note.ToString() + " / " + manager.totalNote.ToString();

        // UNLOCKABLES
        foreach (GameObject go in Global.data.currentLevelCardRewards)
        {
            if (go != null)
            {
                GameObject clone = Utility.clone(go, manager.cardsUnlockableScrollView);
                clone.transform.localScale                 = new Vector3(1, 1, 1);
                clone.transform.localPosition              = new Vector3(0, 0, 0);
                clone.transform.localEulerAngles           = new Vector3(0, 0, 0);
                clone.GetComponent <Button>().interactable = manager.won;
            }
        }

        foreach (EGalleryModel model in Global.data.currentLevelGalleryModelRewards)
        {
            GameObject go = Utility.clone(manager.Text_ContentSizeFitter_Prefab, manager.galleryModelsUnlockableScrollView);
            go.transform.localScale        = new Vector3(1, 1, 1);
            go.transform.localPosition     = new Vector3(0, 0, 0);
            go.transform.localEulerAngles  = new Vector3(0, 0, 0);
            go.GetComponent <Text>().text  = "Modèle " + model.ToString();
            go.GetComponent <Text>().color = (manager.won && manager.note == manager.totalNote) ? Color.green : Color.red;
        }
    }