Пример #1
0
        private void OnSongButtonCickCallback(string songID)
        {
            Debug.LogWarning($"[ShopMenuHandler] Clicked on song with ID: {songID}");

            SongShopStatus songStatus = userContext.GetSongStatus(songID);

            bool animateCurrencyCounter = false;

            switch (songStatus)
            {
            case SongShopStatus.Unlocked:     //Play song
                playSongEventSO.RaiseEvent(songID);
                break;

            case SongShopStatus.CanPurchase:     //Purchase song
                animateCurrencyCounter = true;
                purchaseSongEventSO.RaiseEvent(songID);
                break;

            case SongShopStatus.NotEnoughCurrency:     //Nothing
                //Play sound. Should be done directly in button handler?
                break;
            }

            UpdateUI(animateCurrencyCounter);
        }
Пример #2
0
        public void UpdateUI(SongShopStatus songStatus)
        {
            this.songStatus = songStatus;

            //TODO Show/Hide Lock icon or similar in son info panel

            //This basically updates the button status,
            //as song info is static and will never change
            shopButton.UpdateUI(songStatus);
        }
Пример #3
0
        public void UpdateUI(bool animateCounter = false)
        {
            if (!animateCounter)
            {
                currencyScoreUpdater.UpdateScore(userContext.CurrencyAmount);
            }
            else
            {
                currencyScoreUpdater.UpdateScoreAnimated(userContext.prevCurrencyAmount, userContext.CurrencyAmount);
            }

            foreach (var songItemPair in shopItemsDictionary)
            {
                SongData       songData   = songItemPair.Key;
                SongShopStatus songStatus = userContext.GetSongStatus(songData.Id);
                shopItemsDictionary[songData].UpdateUI(songStatus);
            }
        }
Пример #4
0
        public void UpdateUI(SongShopStatus songStatus)
        {
            //Maybe move this to another method, UpdateStatus
            this.songStatus = songStatus;

            switch (songStatus)
            {
            case SongShopStatus.Unlocked:
                buttonBorder.color = UnlockedColor;
                UpdateButtonContent(true);
                break;

            case SongShopStatus.NotEnoughCurrency:
                buttonBorder.color = NotEnoughMoneyColor;
                UpdateButtonContent(false);
                break;

            case SongShopStatus.CanPurchase:
                buttonBorder.color = CanPurchaseColor;
                UpdateButtonContent(false);
                break;
            }
        }