Exemplo n.º 1
0
    public static void LoadLevel(LevelNumberSO levelNumberSO)
    {
        loadLevelNumberSO = levelNumberSO;
        loadLevelSO       = loadLevelNumberSO.levelSO;

        SceneManager.LoadScene("GameScene_Match3");
    }
    public static void Load(string saveString)
    {
        SaveData saveData = JsonUtility.FromJson <SaveData>(saveString);

        foreach (SaveData.LevelSaveSingle levelSaveSingle in saveData.levelSaveSingleList)
        {
            LevelNumberSO levelNumberSO = GetLevelNumberSO(levelSaveSingle.levelNumber);
            levelNumberStarsDic[levelNumberSO] = levelSaveSingle.levelStars;
        }
    }
    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";
    }
    private static int GetLevelNumberIndex(LevelNumberSO levelNumberSO)
    {
        for (int i = 0; i < Match3Assets.Instance.levelNumberSOList.Count; i++)
        {
            if (Match3Assets.Instance.levelNumberSOList[i] == levelNumberSO)
            {
                return(i);
            }
        }

        Debug.LogError("Cannot find Level Number Index!");
        return(-1);
    }
    public static bool IsLevelUnlocked(LevelNumberSO levelNumberSO)
    {
        int levelIndex = GetLevelNumberIndex(levelNumberSO);

        if (levelIndex == 0)
        {
            // First level
            return(true);
        }
        else
        {
            // Not first level, is previous one done?
            LevelNumberSO previousLevelNumberSO = Match3Assets.Instance.levelNumberSOList[levelIndex - 1];
            if (GetLevelStars(previousLevelNumberSO) != LevelStars._0)
            {
                return(true);
            }
        }

        return(false);
    }
 public static LevelStars GetLevelStars(LevelNumberSO levelNumberSO)
 {
     return(levelNumberStarsDic[levelNumberSO]);
 }
 public static void SetLevelStars(LevelNumberSO levelNumberSO, LevelStars levelStars)
 {
     levelNumberStarsDic[levelNumberSO] = levelStars;
     SaveSystem.Save();
 }
Exemplo n.º 8
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);
    }
 public void LoadLevel(LevelNumberSO levelNumberSO) {
     Match3.LoadLevel(levelNumberSO);
 }