Ejemplo n.º 1
0
    public void SetMenuLevels(int chapterNumber)
    {
        ResetScreenshots();

        int nbCompleted = 0;
        int totalLevels = 0;

        List <Level> levels = GameManager.Instance.Saves[GameManager.Instance.CurrentSave].Chapters[chapterNumber].GetLevels();

        foreach (Level l in levels)
        {
            if (l.Completed)
            {
                nbCompleted++;
            }
            totalLevels++;
        }

        //SetMenuLevelInfo(0, screenshots[0]);
        LevelButtonInfosArray levelButtonInfosArray = null;

        if (chapterNumber < levelButtonInfosMatrix.Length)
        {
            levelButtonInfosArray = levelButtonInfosMatrix[chapterNumber];
        }

        int nbLevelSpawned = 0;

        for (int i = 0; i < totalLevels; i++) // Create the levels buttons
        {
            if (i == 0 || (levels[i].IsCheckpoint && levels[i - 1].Completed))
            {
                int localLevelIndex = i;
                //TODO : aller chercher le bon srceenshot
                LevelScreenshot spawnedScreenshot = Instantiate(levelScreenshotPrefab, levelScreenshotsParent.transform).GetComponent <LevelScreenshot>();
                SetMenuLevelInfo(i, spawnedScreenshot);
                spawnedScreenshot.GetComponent <Button>().onClick.AddListener(delegate
                {
                    LevelButtonClicked(new LoadingChapterInfo(localLevelIndex), spawnedScreenshot);
                });
                spawnedScreenshot.LevelId    = localLevelIndex;
                spawnedScreenshot.levelIndex = nbLevelSpawned;
                spawnedScreenshot.GetComponent <RectTransform>().localPosition = new Vector3(nbLevelSpawned * distanceBetweenScreenshots, 0, 0);

                if (levelButtonInfosArray != null && nbLevelSpawned < levelButtonInfosArray.infos.Length)
                {
                    LevelButtonInfos levelButtonInfos = levelButtonInfosArray.infos[nbLevelSpawned];
                    spawnedScreenshot.screenshot.sprite = levelButtonInfos.image;
                }

                screenshots.Add(spawnedScreenshot);
                nbLevelSpawned++;
            }
        }
        EventSystem.current.SetSelectedGameObject(screenshots[0].gameObject);
    }