Beispiel #1
0
    /// <summary>
    /// This function is used to turn all of the buttons green before the current buttons.
    /// This will visually show that the levels have been completed in the past.
    /// This should be used in conjunction with a saved file.
    /// </summary>
    /// <param name="group"></param>
    private void UpdateButtons(SugarButton group)
    {
        Transform trans = group._currentGroup.transform;
        int       size  = Mathf.Clamp(group._currentButtonIndex, 0, trans.childCount);

        for (int i = 0; i < size; i++)
        {
            Button but = trans.GetChild(i).GetComponent <Button>();

            ColorBlock block = but.colors;
            block.disabledColor = Color.green;
            but.colors          = block;
        }
    }
Beispiel #2
0
    private PlayerInfoScript info;                                      // A reference to the PlayerInfoScript singleton
    #endregion

    private void Start()
    {
        //Get all of the references in the game
        _buttonPanel      = GameObject.Find("Buttons");
        _allPanels        = GameObject.Find("SugarPanels");
        _backButton       = GameObject.Find("BackButton");
        _selectionPanel   = GameObject.Find("Selection");
        _skillsPanel      = GameObject.Find("SkillsPanel");
        _mainMenuPanel    = GameObject.Find("MainMenu");
        _achievementPanel = GameObject.Find("AchievementsPanel");
        _leftArrow.SetActive(false);

        _xpSlider = tempLevel.transform.parent.transform.Find("Fill").GetChild(0).GetComponent <Image>();

        _allPanels.SetActive(false);
        _selectionPanel.SetActive(false);
        _skillsPanel.SetActive(false);
        _achievementPanel.SetActive(false);

        info                 = PlayerInfoScript.instance;
        tempCoins.text       = info.GetCoinCount().ToString("00000000");
        _xpSlider.fillAmount = info.GetPercentageToNextLevel();
        tempLevel.text       = "" + info.GetLevel();
        UpdatePowers(info.GetLevel());

        _currentLevels = _mainMenuPanel;

        int size = _allPanels.transform.childCount;

        //Loop through the sugar groups panels
        for (int i = 0; i < size; i++)
        {
            SugarButton group = new SugarButton();
            Transform   panel = _allPanels.transform.GetChild(i).GetChild(0);

            _allPanels.transform.GetChild(i).GetComponent <ScrollRect>().verticalNormalizedPosition = 1; //Automatically scroll to the top
            group.init(panel.gameObject, PlayerInfoScript.instance.GetLevelInSugarGroup(i));             //Init the sugar group

            buttonGroups.Add(group);

            //Update the titles
            Transform child = panel.parent.Find("Text");

            if (group._currentButton)
            {
                group._currentButton.onClick.AddListener(() => PlayLevel(_currentSelection)); //Set the current button to be active
                group._currentButton.interactable = true;
                child.GetComponent <Text>().text  = buttonGroups[i]._name + " - " + (buttonGroups[i]._currentButtonIndex) + "/" + buttonGroups[i]._buttonCount;
            }
            else
            {
                child.GetComponent <Text>().text = buttonGroups[i]._name + " - " + (buttonGroups[i]._buttonCount) + "/" + buttonGroups[i]._buttonCount;
            }

            //Update the buttons to be at the location last saved (Future: From the save file)
            UpdateButtons(buttonGroups[i]);



            panel.parent.gameObject.SetActive(false);
        }

        //Settings for the "map" selection animations
        _selectionOffset = -_selectionPanel.transform.GetChild(0).GetComponent <RectTransform>().sizeDelta.x / buttonGroups.Count;
        _targetLocation  = -_selectionPanel.transform.GetChild(0).GetChild(0).GetComponent <RectTransform>().anchoredPosition.x;
    }