// *********************************************************************** // Assembly : Game // Author : Kimch // Created : 2021-01-20 // Description : // Last Modified By : // Last Modified On : // *********************************************************************** // // // *********************************************************************** using TMPro; using UnityEngine; using UnityEngine.UI; namespace G.UI { /// /// /// public class EnergyActivityWidget : KUIWidget { #region Field #pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null [KUIFlag] TextMeshProUGUI _tmpTitle; [KUIFlag] TextMeshProUGUI _tmpTime; [KUIFlag] KUIList __listRewards; [KUIFlag] Button _btnReward; [KUIFlag] TextMeshProUGUI _tmpReward; [KUIFlag] GameObject __imgAd; #pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null private int _startTimestamp; private int _endTimestamp; private SmartCostWidget _smartCostWidget; #endregion #region Method public override void Refresh() { if (this.data is ActivityInfo activity) { __listRewards.Clear(); foreach (var reward in activity.rewardInfos) __listRewards.GetItem().SetItem(reward); _startTimestamp = activity.startTimestamp; _endTimestamp = activity.endTimestamp; var today = Launch.ServerNow; _tmpTime.text = $"活动时间:{today.AddSeconds(_startTimestamp).ToShortTimeString()}-{today.AddSeconds(_endTimestamp).ToShortTimeString()}"; UpdateView(); } } public void UpdateView() { if (this.data is ActivityInfo activity) { if (activity.status == 0) { int nowTS = Launch.TodaySeconds; if (nowTS < _startTimestamp) { _btnReward.interactable = false; _tmpReward.text = "还未开始"; __imgAd.SetActive(false); } else if (nowTS > _endTimestamp) { _btnReward.interactable = true; _tmpReward.text = "补领"; __imgAd.SetActive(true); _smartCostWidget.SetAdTicket(MoneyProxy.Instance.GetMoney(Item.Id.kAdTicket)); } else { _btnReward.interactable = true; _tmpReward.text = "领取"; __imgAd.SetActive(false); } } else { _btnReward.interactable = false; _tmpReward.text = "已领"; __imgAd.SetActive(false); } } } private void OnRewardBtnClick() { if (this.data is ActivityInfo activity) { if (activity.status != 0) return; int nowTS = Launch.TodaySeconds; if (nowTS < _startTimestamp) { } else if (nowTS > _endTimestamp) { ActivityProxy.Instance.freeEnergyActivity.GetRewards(activity.id, true, (error, message) => { if (error == 0) { RewardProxy.Instance.GetRewardWithUI(new Item.ItemInfo(Item.Id.kEnergy, 10), (err, mes) => { PostNotification(GlobalDefine.EVENT_MONEY_CHANGED); }); UpdateView(); } }); } else { ActivityProxy.Instance.freeEnergyActivity.GetRewards(activity.id, false, (error, message) => { if (error == 0) { RewardProxy.Instance.GetRewardWithUI(new Item.ItemInfo(Item.Id.kEnergy, 10), (err, mes) => { PostNotification(GlobalDefine.EVENT_MONEY_CHANGED); }); UpdateView(); } }); } } } #endregion #region Unity /// /// /// private void Awake() { SetViewData(); __listRewards.AddTemplate(true); _btnReward.onClick.AddListener(this.OnRewardBtnClick); _smartCostWidget = __imgAd.AddComponent(); } #endregion } }