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); }
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); }
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); } }
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; } }