Example #1
0
    public void ShowLevels()
    {
        if (!ProgressManager.Instance.IsCategoryUnlocked(currentCategory))
        {
            return;
        }

        Category category = categories[currentCategory];

        //currentCategoryLevelsText.text = "Niveles - " + category.name_id;

        //selectedCategoryNameLocaliced.Arguments = new object[] { selectedLevelName };
        currentCategoryLevelsTextLocalized.StringReference = selectedCategoryNameLocaliced[currentCategory];
        currentCategoryLevelsTextLocalized.RefreshString();

        categoriesPanel.SetActive(false);
        levelsPanel.SetActive(true);

        currentCategoryPanel.SetActive(false);
        currentLevelPanel.SetActive(true);

        while (levelsParent.transform.childCount != 0)
        {
            DestroyImmediate(levelsParent.transform.GetChild(0).gameObject);
        }

        for (int i = 0; i < category.levels.Count; i++)
        {
            int       index     = i;
            LevelData levelData = category.levels[i];
            LevelCard levelCard = Instantiate(levelCardPrefab, levelsParent.transform);
            levelCard.ConfigureLevel(levelData, category, i + 1);
            if (ProgressManager.Instance.IsLevelUnlocked(currentCategory, i))
            {
                levelCard.button.onClick.AddListener(() =>
                {
                    currentLevel = index;

                    localizedLevelName.StringReference = levelData.levelNameLocalized;
                    localizedLevelName.RefreshString();

                    //levelName.text = levelData.levelName;
                    levelPreview.sprite = levelData.levelPreview;
                    levelCard.button.Select();
                });
                levelCard.button.onClick.Invoke();
            }
            else
            {
                levelCard.DeactivateCard();
            }
        }

        TraceScreenAccesed();
    }