Beispiel #1
0
    public void Initialize(int index)
    {
        level = PlayerData.GetLevelByIndex(index);
        if (level == null)
        {
            levelNumber.gameObject.SetActive(false);
            levelName.text      = "???";
            levelName.alignment = TextAlignmentOptions.Center;
            thumbnail.transform.parent.gameObject.SetActive(false);

            foreach (Image i in results)
            {
                i.transform.parent.gameObject.SetActive(false);
            }
        }
        else
        {
            levelNumber.gameObject.SetActive(true);
            levelNumber.text = level.levelNumber < 10 ? string.Format("#0{0}", level.levelNumber) : string.Format("#{0}", level.levelNumber);
            levelName.text   = level.name;
            thumbnail.gameObject.SetActive(true);
            thumbnail.sprite = level.thumbnail;

            switch (level.outcome)
            {
            case LevelOutcome.binary:
                for (int i = 0; i < results.Count; i += 2)
                {
                    if (level.resultsAchieved[i] == 1)
                    {
                        results[i].color = results[i].transform.parent.GetComponent <Image>().color;
                    }
                    else
                    {
                        results[i].color = Color.white;
                    }
                }

                results[1].transform.parent.gameObject.SetActive(false);
                break;

            case LevelOutcome.tertiary:
                for (int i = 0; i < results.Count; ++i)
                {
                    if (level.resultsAchieved[i] == 1)
                    {
                        results[i].color = results[i].transform.parent.GetComponent <Image>().color;
                    }
                    else
                    {
                        results[i].color = Color.white;
                    }
                }
                break;
            }
        }
    }
    public void Initialize(GalleryLevel level)
    {
        levelNum.text  = level.levelNumber < 10 ? string.Format("#0{0}", level.levelNumber) : string.Format("#{0}", level.levelNumber);
        levelName.text = level.name;

        for (int i = 0; i < results.Count; ++i)
        {
            if (level.resultsAchieved[i] == 1)
            {
                results[i].SetActive(true);
            }
            else
            {
                results[i].SetActive(false);
            }
        }
    }
    static void CompleteLevel(ResultType result, Level level)
    {
        int scene = SceneManager.GetActiveScene().buildIndex;

        if (!LevelsCompleted.ContainsKey(scene))
        {
            GalleryLevel gl = new GalleryLevel();
            gl.Initialize(level, SceneManager.GetSceneByBuildIndex(scene).name, scene);

            LevelsCompleted.Add(scene, gl);
        }
        LevelsCompleted[scene].resultsAchieved[(int)result] = 1;


        if (!GameManager.IsFromGallery() && !LevelsCompletedOnRun.ContainsKey(scene))
        {
            GalleryLevel gl = new GalleryLevel();
            gl.Initialize(level, SceneManager.GetSceneByBuildIndex(scene).name, scene);

            LevelsCompletedOnRun.Add(scene, gl);
            LevelsCompletedOnRun[scene].resultsAchieved[(int)result] = 1;
        }

        if (!OverallResults.ContainsKey(result))
        {
            OverallResults.Add(result, 0);
        }

        OverallResults[result] += 1;

        if (!ResultsByLevelType.ContainsKey(level.GetLevelType()))
        {
            List <int> data = new List <int>();
            data.Add(0);
            data.Add(0);
            data.Add(0);
            ResultsByLevelType.Add(level.GetLevelType(), data);
        }
        ResultsByLevelType[level.GetLevelType()][(int)result] += 1;
    }