using ET; using FairyGUI; using UI.ActivityMain; using UI.CommonGame; using System; using System.Collections.Generic; using static GFGGame.ShopSProxy; namespace GFGGame { public class ZGTHgiftDCTipsView : BaseWindow { //直购典藏弹窗 private UI_ZGTHgiftDCTipsUI _ui; private List zgthdcListCfg = new List(); private int indexSuit = 0; private int giftItemId = 0; private int giftShopId = 0; //创角时间 private long second_CreateRole = GameGlobal.zoneScene.GetComponent().GetCurrentRole().CreateTime; //折扣时间两天(豪秒) private long saleSecondNum = 172800000; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_ZGTHgiftDCTipsUI.PACKAGE_NAME; _ui = UI_ZGTHgiftDCTipsUI.Create(); this.viewCom = _ui.target; this.modal = true; this.viewCom.Center(); viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_Itemlist.itemRenderer = ListItemRender; _ui.m_btnCharge.target.onClick.Add(OnBtnGetClick); _ui.m_btnClose.onClick.Add(this.Hide); _ui.m_notTips.onClick.Add(OnClickTips); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.SHOP_BUY, UpdateBtn); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.SHOP_BUY, UpdateBtn); } protected override void OnShown() { base.OnShown(); zgthdcListCfg = EverydaySaleCfgArray.Instance.GetCfgsByactivityId(6001); indexSuit = ReturnDiscountTimeSuitIndex(); UpdateView(); var activityInfo = zgthdcListCfg[indexSuit]; if (activityInfo != null) { long timeSale = (second_CreateRole + (saleSecondNum * activityInfo.id)) - TimeHelper.ServerNow(); _ui.m_timeText.text = TimeUtil.FormattingTimeTo_DDHHmm(timeSale); } Timers.inst.Add(1, 0, UpdateTime); } protected async override void OnHide() { if (_ui.m_TipImg.visible) { await ActivitySProxy.SetTipsStatus(6001, 1, 1); } else { await ActivitySProxy.SetTipsStatus(6000, 0, 1); } Timers.inst.Remove(UpdateTime); base.OnHide(); } private async void OnBtnGetClick() { //修改直购逻辑,根据时间判断传入不用的直购id,是折扣还是现价 await ReqShopBuy(giftShopId); } private void UpdateBtn() { ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(giftShopId); var remainBuyNum = shopCfg.maxBuyNum - ShopDataManager.Instance.GetGoodsBuyNumById(shopCfg.id); if (remainBuyNum == 0) { //已售完 _ui.m_btnCharge.target.visible = false; } else { //未售完 _ui.m_btnCharge.target.visible = true; } } private void OnClickTips() { if (_ui.m_TipImg.visible == false) { _ui.m_TipImg.visible = true; } else { _ui.m_TipImg.visible = false; } } private void OnNumericChange(EventContext context) { } private void UpdateView() { //修改suitList,giftbagList,还需要根据时间判断折扣 var suitCfg = SuitCfgArray.Instance.GetCfg(zgthdcListCfg[indexSuit].SuitShow); ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(ActivityOpenCfgArray.Instance.GetCfg(6001).paramsArr[indexSuit]); giftItemId = shopCfg.itemId; giftShopId = shopCfg.id; ItemCfg item = ItemCfgArray.Instance.GetCfg(giftItemId); int discount = (int)(((double)shopCfg.originalPrice / (double)shopCfg.configPrice) * 100); _ui.m_suitIcon.url = string.Format("ui://ActivityMain/{0}", suitCfg.res); _ui.m_Itemlist.numItems = item.itemsArr.Length; _ui.m_txtName.text = suitCfg.name; _ui.m_btnCharge.target.GetChild("txtPrice").text = string.Format("{0}", shopCfg.configPrice.ToString()); _ui.m_btnCharge.target.GetChild("txtOriginalPrice").text = string.Format("{0}", shopCfg.originalPrice.ToString()); _ui.m_discountText.text = discount.ToString(); int buyNum = ShopDataManager.Instance.GetGoodsBuyNumById(shopCfg.id); if (shopCfg.maxBuyNum == 0 || buyNum < shopCfg.maxBuyNum) { _ui.m_btnCharge.target.visible = true; } else { _ui.m_btnCharge.target.visible = false; } //判断这个直购id是否购买是否显示按钮 if (false) { _ui.m_btnCharge.target.visible = false; } } private void ListItemRender(int index, GObject obj) { UI_ZGTHRewardItem item = UI_ZGTHRewardItem.Proxy(obj); ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(giftItemId); int id = itemCfg.itemsArr[index][0]; int count = itemCfg.itemsArr[index][1]; ItemData itemDate = ItemUtil.createItemData(id, count); ItemView itemView = new ItemView(item.m_item); itemView.SetData(itemDate); item.m_name.text = ItemCfgArray.Instance.GetCfg(itemCfg.itemsArr[index][0]).name; UI_ZGTHRewardItem.ProxyEnd(); } private int ReturnDiscountTimeSuitIndex() { int count = 0; long endTime; long startTime; foreach (var item in zgthdcListCfg) { endTime = TimeUtil.DateTimeToTimestamp(item.endTime); startTime = TimeUtil.DateTimeToTimestamp(item.openTime); if (startTime <= TimeHelper.ServerNow() && endTime > TimeHelper.ServerNow()) { indexSuit = count; return indexSuit; } count++; } return indexSuit; } private void UpdateTime(object param) { var activityInfo = zgthdcListCfg[indexSuit]; long timeSale = 0; if (activityInfo != null) { timeSale = (second_CreateRole + (saleSecondNum * activityInfo.id)) - TimeHelper.ServerNow(); } if (timeSale <= 0) { _ui.m_timeText.text = ""; _ui.m_btnCharge.target.visible = false; Timers.inst.Remove(UpdateTime); return; } _ui.m_timeText.text = TimeUtil.FormattingTimeTo_DDHHmm(timeSale); } } }