|
- using System;
- using CIG.Translation;
- using CIGEnums;
- using SUISS.Core;
- using Tweening;
- using UnityEngine;
- using UnityEngine.UI;
-
- public class DailyRewardItem : MonoBehaviour
- {
- public void Display(DailyReward reward, int dayRepresenting, int currentDay)
- {
- this._dayRepresenting = dayRepresenting;
- this._currentDay = currentDay;
- this._dayText.LocalizedString = this.GetDayLabel();
- ILocalizedString localizedString = Localization.Integer(reward.Value);
- if (reward.Currency == "LevelUp")
- {
- this._rewardDisplayValueText.gameObject.SetActive(true);
- ILocalizedString localizedString2 = Localization.Format(Localization.Key("plus"), new ILocalizedString[]
- {
- localizedString
- });
- this._rewardDisplayValueText.LocalizedString = localizedString2;
- localizedString = localizedString2;
- }
- else
- {
- this._rewardDisplayValueText.gameObject.SetActive(false);
- }
- this._valueRewardText.LocalizedString = localizedString;
- this.ApplyItemStyle(this.GetItemStyleForCurrency(reward.Currency), (float)reward.Value);
- this.ApplyStateLook();
- }
-
- public Sprite GetCurrencyDisplaySprite()
- {
- return this._rewardDisplayImage.sprite;
- }
-
- public ILocalizedString GetCurrentValueDisplay()
- {
- return this._valueRewardText.LocalizedString;
- }
-
- private void ApplyStateLook()
- {
- this._raysActiveTweener.Stop();
- DailyRewardItem.ItemState state = this.GetState();
- if (state != DailyRewardItem.ItemState.Collected)
- {
- if (state == DailyRewardItem.ItemState.Inactive || state == DailyRewardItem.ItemState.Active)
- {
- this._achievedImageObject.SetActive(false);
- Graphic panelImage = this._panelImage;
- Material material = SingletonMonobehaviour<MaterialAssetCollection>.Instance.GetAsset(MaterialType.UIClip);
- this._rewardDisplayImage.material = material;
- material = material;
- this._raysImage.material = material;
- panelImage.material = material;
- Graphic panelImage2 = this._panelImage;
- Color color = Color.white;
- this._rewardDisplayImage.color = color;
- panelImage2.color = color;
- }
- }
- else
- {
- this._achievedImageObject.SetActive(true);
- Graphic panelImage3 = this._panelImage;
- Material material = SingletonMonobehaviour<MaterialAssetCollection>.Instance.GetAsset(MaterialType.UIClipGreyscale);
- this._rewardDisplayImage.material = material;
- material = material;
- this._raysImage.material = material;
- panelImage3.material = material;
- Graphic panelImage4 = this._panelImage;
- Color color = new Color(0.9f, 0.9f, 0.9f);
- this._rewardDisplayImage.color = color;
- color = color;
- this._raysImage.color = color;
- panelImage4.color = color;
- }
- if (state == DailyRewardItem.ItemState.Active)
- {
- this._raysActiveTweener.Play();
- }
- }
-
- private void ApplyItemStyle(DailyRewardItem.ItemStyle itemStyle, float amountCurrency)
- {
- DailyRewardItem.ItemStyle.CurrencyValueTresholdItem item = itemStyle.GetItem(amountCurrency);
- this._rewardDisplayImage.sprite = item.CurrencySprite;
- this._panelImage.sprite = itemStyle.PanelSprite;
- this._rewardImageHolder.transform.localPosition = item.PlacementLocation;
- this._raysImage.color = itemStyle.RayColorTint;
- }
-
- private DailyRewardItem.ItemState GetState()
- {
- return (this._dayRepresenting != this._currentDay) ? ((this._dayRepresenting >= this._currentDay) ? DailyRewardItem.ItemState.Inactive : DailyRewardItem.ItemState.Collected) : DailyRewardItem.ItemState.Active;
- }
-
- private ILocalizedString GetDayLabel()
- {
- switch (this.GetState())
- {
- case DailyRewardItem.ItemState.Collected:
- case DailyRewardItem.ItemState.Inactive:
- return Localization.Format(Localization.Key("day_x"), new ILocalizedString[]
- {
- Localization.Integer(this._dayRepresenting + 1)
- });
- case DailyRewardItem.ItemState.Active:
- return Localization.Key("today");
- default:
- return Localization.EmptyLocalizedString;
- }
- }
-
- private DailyRewardItem.ItemStyle GetItemStyleForCurrency(string currency)
- {
- if (currency != null)
- {
- if (currency == "Cash")
- {
- return this._cashItemStyle;
- }
- if (currency == "Gold")
- {
- return this._goldItemStyle;
- }
- if (currency == "XP")
- {
- return this._xpItemStyle;
- }
- if (currency == "LevelUp")
- {
- return this._levelItemStyle;
- }
- }
- UnityEngine.Debug.LogErrorFormat("[DayRewardItem]: No ItemStyle found for currency {0}! Returning levelItemStyle as default", new object[]
- {
- currency
- });
- return this._levelItemStyle;
- }
-
- [Header("Linking")]
- [SerializeField]
- private LocalizedText _dayText;
-
- [SerializeField]
- private LocalizedText _valueRewardText;
-
- [SerializeField]
- private RectTransform _rewardImageHolder;
-
- [SerializeField]
- private Image _rewardDisplayImage;
-
- [SerializeField]
- private LocalizedText _rewardDisplayValueText;
-
- [SerializeField]
- private Image _panelImage;
-
- [SerializeField]
- private Image _raysImage;
-
- [SerializeField]
- private Tweener _raysActiveTweener;
-
- [SerializeField]
- private GameObject _achievedImageObject;
-
- [Header("Reward Assets")]
- [SerializeField]
- private DailyRewardItem.ItemStyle _xpItemStyle;
-
- [SerializeField]
- private DailyRewardItem.ItemStyle _cashItemStyle;
-
- [SerializeField]
- private DailyRewardItem.ItemStyle _goldItemStyle;
-
- [SerializeField]
- private DailyRewardItem.ItemStyle _levelItemStyle;
-
- private int _dayRepresenting;
-
- private int _currentDay;
-
- public enum ItemState
- {
- Collected,
- Active,
- Inactive
- }
-
- [Serializable]
- public class ItemStyle
- {
- public Sprite PanelSprite
- {
- get
- {
- return this._panelSprite;
- }
- }
-
- public Color RayColorTint
- {
- get
- {
- return this._rayColorTint;
- }
- }
-
- public DailyRewardItem.ItemStyle.CurrencyValueTresholdItem GetItem(float value)
- {
- Array.Sort<DailyRewardItem.ItemStyle.CurrencyValueTresholdItem>(this._currencySpriteData, (DailyRewardItem.ItemStyle.CurrencyValueTresholdItem a, DailyRewardItem.ItemStyle.CurrencyValueTresholdItem b) => (int)(b.MinValueForSprite - a.MinValueForSprite));
- int i = 0;
- int num = this._currencySpriteData.Length;
- while (i < num)
- {
- if (value >= this._currencySpriteData[i].MinValueForSprite)
- {
- return this._currencySpriteData[i];
- }
- i++;
- }
- if (this._currencySpriteData.Length > 0)
- {
- return this._currencySpriteData[0];
- }
- return default(DailyRewardItem.ItemStyle.CurrencyValueTresholdItem);
- }
-
- [SerializeField]
- private Sprite _panelSprite;
-
- [SerializeField]
- private Color _rayColorTint = Color.white;
-
- [SerializeField]
- private DailyRewardItem.ItemStyle.CurrencyValueTresholdItem[] _currencySpriteData;
-
- [Serializable]
- public struct CurrencyValueTresholdItem
- {
- public Sprite CurrencySprite;
-
- public Vector2 PlacementLocation;
-
- public float MinValueForSprite;
- }
- }
- }
|