// *********************************************************************** // Assembly : Game // Author : Kimch // Created : 2021-10-26 // Description : // Last Modified By : // Last Modified On : // *********************************************************************** // // // *********************************************************************** namespace G.UI { using TMPro; using UnityEngine.UI; /// /// /// partial class RmbShopWindow { class GiftItemWidget : KUIWidget { #region Field #pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null [KUIFlag] TextMeshProUGUI _tmpName; [KUIFlag] Button _btnBuy; [KUIFlag] KUIList __listProps; [KUIFlag] TextMeshProUGUI _tmpPricePointer; [KUIFlag] Image _imgMoneyIcon; [KUIFlag] TextMeshProUGUI _tmpBuy; [KUIFlag] KUIImage _imgPricePointer; #pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null #endregion #region Method public override void Refresh() { if (this.data is RmbShopProxy.GiftBoxInfo giftBoxInfo) { _tmpName.text = giftBoxInfo.name; if (giftBoxInfo.remainTimes > 0) { _btnBuy.interactable = true; if (giftBoxInfo.rmbPrice > 0) { _imgMoneyIcon.gameObject.SetActive(true); _tmpBuy.text = giftBoxInfo.rmbPrice.ToString(); } else { _imgMoneyIcon.gameObject.SetActive(false); _tmpBuy.text = "免费"; } } else { _imgMoneyIcon.gameObject.SetActive(false); _btnBuy.interactable = false; _tmpBuy.text = "已购买"; } if (!string.IsNullOrEmpty(giftBoxInfo.item.discount)) { _imgPricePointer.gameObject.SetActive(true); _imgPricePointer.ShowSprite(giftBoxInfo.item.discount); } else { _imgPricePointer.gameObject.SetActive(false); } __listProps.Clear(); var exchangeProps = giftBoxInfo.exchanges; if (exchangeProps != null) for (int i = 0; i < exchangeProps.Length; i++) { __listProps.GetItem().SetItem(exchangeProps[i]); } } } private void OnBuyBtnClick() { if (this.data is RmbShopProxy.GiftBoxInfo giftBoxInfo) { RmbShopProxy.Instance.BuyGiftBox(giftBoxInfo.id, (error, message) => { if (error == 0) GetWindow().RefreshGift(); //Refresh(); else ToastBox.ShowText(message); }); } SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND); } #endregion #region Unity /// /// /// private void Awake() { SetViewData(); __listProps.AddTemplate(true); _btnBuy.onClick.AddListener(this.OnBuyBtnClick); } #endregion } class GiftPanel : KUIWidget { [KUIFlag] KUIList __listGifts; GiftItemWidget _specialGift; public override void Refresh() { int giftType = 2; if ("daily".Equals(this.data)) { giftType = 2; } else { giftType = 3; } RefreshGift(giftType); } void RefreshGift(int giftType) { __listGifts.Clear(); var giftBoxInfos = RmbShopProxy.Instance.GetGiftBoxInfos(); if (giftBoxInfos != null) { foreach (var item in giftBoxInfos) { if (item.type == giftType) { if (item.item.extraFlag == 1) { _specialGift.SetData(item); } else if (item.isValid) { __listGifts.GetItem().SetData(item); } } } foreach (var item in giftBoxInfos) { if (item.type == giftType && item.remainTimes <= 0 && item.item.extraFlag != 1) { __listGifts.GetItem().SetData(item); } } } } private void Awake() { SetViewData(); __listGifts.AddTemplate(true); _specialGift = __listGifts.transform.Find("specialGift").gameObject.AddComponent(); } private void OnEnable() { if (this.data == null) SetData("daily"); } } } }