//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, July 23, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; namespace vnxbqy.UI { public class DayGoods : MonoBehaviour { [SerializeField] LimitedTimeItemInfo[] m_Items; [SerializeField] Text m_BuyLimitCnt; //限购 [SerializeField] Button m_Buy; [SerializeField] Text m_BuyText; //免费 货币 充值额度 [SerializeField] Image m_SellOut; [SerializeField] Image m_MustBuy; [SerializeField] Image m_OnSale; //打折 [SerializeField] Text m_OnSaleText; //打折 StoreModel storeModel { get { return ModelCenter.Instance.GetModel(); } } DayPackageItemClassModel dayPackageItemModel { get { return ModelCenter.Instance.GetModel(); } } VipModel vipModel { get { return ModelCenter.Instance.GetModel(); } } float m_time = 0; public void Display(int goodsID) { string title; DayPackageItemClassModel.DayGift goods; if (dayPackageItemModel.selectIndex == 0) { goods = dayPackageItemModel.m_RechargeDict[goodsID]; } else if(dayPackageItemModel.selectIndex == 1) { goods = dayPackageItemModel.m_WeekRechargeDict[goodsID]; } else { goods = dayPackageItemModel.m_MonthRechargeDict[goodsID]; } m_OnSale.SetActive(goods.onSalePer != 0); m_OnSaleText.text = goods.onSalePer + "%"; if (goodsID == 0) { title = Language.Get("DayGoods_0"); } else { title = Language.Get("DayGoods_1", UIHelper.GetMoneyFormat(goods.money)); } m_BuyLimitCnt.text = Language.Get("LimitGiftCnt", goods.buyCountLimit - goods.getCount); m_Buy.SetActive(goods.getCount < goods.buyCountLimit); m_SellOut.SetActive(goods.getCount >= goods.buyCountLimit); for (int i = 0; i < m_Items.Length; i++) { if (i >= goods.items.Count) { m_Items[i].SetActive(false); continue; } m_Items[i].SetActive(true); var itemID = goods.items[i][0]; var ItemCell = m_Items[i].Item_Cell; var Item = ItemConfig.Get(itemID); ItemCellModel cellModel = new ItemCellModel(itemID, true, (ulong)goods.items[i][1]); ItemCell.Init(cellModel); ItemCell.button.RemoveAllListeners(); ItemCell.button.AddListener(() => { ItemTipUtility.Show(itemID); }); } int moneyType = 0; int.TryParse(goods.orderInfo, out moneyType); m_MustBuy.SetActive(goods.money == 0); var onSaleImg = m_Buy.FindComponent("Image", "saleImage") as Image; onSaleImg?.SetActive(false); if (goods.money == 0) { m_BuyText.text = Language.Get("Z2014"); } else if (moneyType != 0) { m_BuyText.text = goods.money + RichTextMsgReplaceConfig.GetRichReplace("MONEY", moneyType); } else { m_BuyText.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat(goods.money)); onSaleImg.SetActiveIL(PlayerDatas.Instance.baseData.IsActive90Off); } m_Buy.SetListener(() => { if (goodsID == 0) { dayPackageItemModel.RequestReward(); } else if (moneyType != 0) { storeModel.SendBuyShopItem(StoreConfig.Get(goodsID - 100000000), 1); } else { m_Buy.interactable = false; vipModel.OpenFreePlat(title, goods.money, goods.orderInfo); } }); } private void Update() { if (m_Buy.interactable == false) { m_time += Time.deltaTime; int showTime = (int)(3 - m_time); if (showTime <= 0) { m_Buy.interactable = true; m_Buy.SetColorful(m_BuyText, true); m_time = 0; } else { m_Buy.SetColorful(m_BuyText, false); } } } } }