private void Awake() {
        Transform levelContainer = transform.Find("LevelContainer");

        foreach (Transform levelTransform in levelContainer) {
            LevelNumberSO levelNumberSO = levelTransform.GetComponent<LevelNumberSOHolder>().levelNumberSO;

            if (unlockAllLevels || LevelProgression.IsLevelUnlocked(levelNumberSO)) {
                // Level Unlocked
                levelTransform.GetComponent<Button>().enabled = true;

                levelTransform.Find("Star_1").gameObject.SetActive(true);
                levelTransform.Find("Star_2").gameObject.SetActive(true);
                levelTransform.Find("Star_3").gameObject.SetActive(true);

                levelTransform.Find("Star_1").GetComponent<Image>().color = starUnachievedColor;
                levelTransform.Find("Star_2").GetComponent<Image>().color = starUnachievedColor;
                levelTransform.Find("Star_3").GetComponent<Image>().color = starUnachievedColor;

                LevelProgression.LevelStars levelStars = LevelProgression.GetLevelStars(levelNumberSO);
                switch (levelStars) {
                    case LevelProgression.LevelStars._0:
                        levelTransform.Find("Star_1").gameObject.SetActive(false);
                        levelTransform.Find("Star_2").gameObject.SetActive(false);
                        levelTransform.Find("Star_3").gameObject.SetActive(false);
                        break;

                    case LevelProgression.LevelStars._1:
                        levelTransform.Find("Star_1").GetComponent<Image>().color = starAchievedColor;
                        break;
                    case LevelProgression.LevelStars._2:
                        levelTransform.Find("Star_1").GetComponent<Image>().color = starAchievedColor;
                        levelTransform.Find("Star_2").GetComponent<Image>().color = starAchievedColor;
                        break;
                    case LevelProgression.LevelStars._3:
                        levelTransform.Find("Star_1").GetComponent<Image>().color = starAchievedColor;
                        levelTransform.Find("Star_2").GetComponent<Image>().color = starAchievedColor;
                        levelTransform.Find("Star_3").GetComponent<Image>().color = starAchievedColor;
                        break;
                }
            } else {
                // Level Locked
                levelTransform.GetComponent<Button>().enabled = false;
                levelTransform.GetComponent<Image>().color = levelLockedColor;

                levelTransform.Find("Star_1").gameObject.SetActive(false);
                levelTransform.Find("Star_2").gameObject.SetActive(false);
                levelTransform.Find("Star_3").gameObject.SetActive(false);
            }
        }

        transform.Find("LockUnlockAllBtn").Find("Text").GetComponent<TextMeshProUGUI>().text = (unlockAllLevels ? "LOCK" : "UNLOCK") + " ALL LEVELS";
    }
Пример #2
0
    private void Match3_OnWin(object sender, System.EventArgs e)
    {
        winLoseTransform.gameObject.SetActive(true);
        winLoseTransform.Find("Text").GetComponent <TextMeshProUGUI>().text = "<color=#1ACC23>YOU WIN!</color>";

        LevelProgression.LevelStars levelStars = LevelProgression.LevelStars._1;

        LevelNumberSO levelNumberSO = match3.GetLevelNumberSO();
        LevelSO       levelSO       = match3.GetLevelSO();

        Debug.Log("GetUsedMoveCount:  " + match3.GetUsedMoveCount());
        switch (levelSO.goalType)
        {
        case LevelSO.GoalType.Score:
            if (match3.GetUsedMoveCount() <= levelSO.stars3Goal)
            {
                levelStars = LevelProgression.LevelStars._3;
            }
            else
            {
                if (match3.GetUsedMoveCount() <= levelSO.stars2Goal)
                {
                    levelStars = LevelProgression.LevelStars._2;
                }
            }
            break;

        case LevelSO.GoalType.Glass:
            if (match3.GetUsedMoveCount() <= levelSO.stars3Goal)
            {
                levelStars = LevelProgression.LevelStars._3;
            }
            else
            {
                if (match3.GetUsedMoveCount() <= levelSO.stars2Goal)
                {
                    levelStars = LevelProgression.LevelStars._2;
                }
            }
            break;
        }

        winLoseTransform.Find("Star_1").GetComponent <Image>().color = starUnachievedColor;
        winLoseTransform.Find("Star_2").GetComponent <Image>().color = starUnachievedColor;
        winLoseTransform.Find("Star_3").GetComponent <Image>().color = starUnachievedColor;

        switch (levelStars)
        {
        case LevelProgression.LevelStars._0:
            winLoseTransform.Find("Star_1").gameObject.SetActive(false);
            winLoseTransform.Find("Star_2").gameObject.SetActive(false);
            winLoseTransform.Find("Star_3").gameObject.SetActive(false);
            break;

        case LevelProgression.LevelStars._1:
            winLoseTransform.Find("Star_1").GetComponent <Image>().color = starAchievedColor;
            break;

        case LevelProgression.LevelStars._2:
            winLoseTransform.Find("Star_1").GetComponent <Image>().color = starAchievedColor;
            winLoseTransform.Find("Star_2").GetComponent <Image>().color = starAchievedColor;
            break;

        case LevelProgression.LevelStars._3:
            winLoseTransform.Find("Star_1").GetComponent <Image>().color = starAchievedColor;
            winLoseTransform.Find("Star_2").GetComponent <Image>().color = starAchievedColor;
            winLoseTransform.Find("Star_3").GetComponent <Image>().color = starAchievedColor;
            break;
        }

        LevelProgression.SetLevelStars(match3.GetLevelNumberSO(), levelStars);
    }