Esempio n. 1
0
        public PlayerSkinConfig GetNextUnlockable()
        {
            int nearestDifference = 100000;

            PlayerSkinConfig nextUnlockableSkin = null;

            for (int i = 0; i < playerSkinConfigs.Length; i++)
            {
                PlayerSkinConfig playerSkinConfig = playerSkinConfigs[i];

                if (playerSkinConfig.IsUnlocked)
                {
                    continue;
                }

                // If there's a locked skin which we can purchase, return this one
                if (playerSkinConfig.Price < coinsTracker.TotalCoinsCollected)
                {
                    return(playerSkinConfig);
                }

                int difference = playerSkinConfig.Price - coinsTracker.TotalCoinsCollected;

                if (difference < nearestDifference)
                {
                    nextUnlockableSkin = playerSkinConfig;
                    nearestDifference  = difference;
                }
            }

            return(nextUnlockableSkin);
        }
Esempio n. 2
0
        public void Show(PlayerSkinConfig playerSkinConfig, bool isSelected, bool disableButtons = false)
        {
            this.playerSkinConfig = playerSkinConfig;

            skinImage.sprite = playerSkinConfig.Sprite;
            lockImage.gameObject.SetActive(!playerSkinConfig.IsUnlocked && !disableButtons);
            selectedImage.gameObject.SetActive(isSelected);

            if (disableButtons)
            {
                selectButton.enabled = false;
                unlockButton.enabled = false;
                return;
            }

            selectButton.enabled = true;
            unlockButton.enabled = true;

            selectButton.onClick.AddListener(OnSelectButtonPressed);
            unlockButton.onClick.AddListener(OnUnlockButtonPressed);
        }