using UI.Store; using UI.CommonGame; using UI.ActivityMain; using FairyGUI; using System.Collections.Generic; using ET; using static GFGGame.ShopSProxy; namespace GFGGame { public class StoreZGDCView : BaseWindow { //直购典藏-商城 private UI_StoreZGDCUI _ui; private ValueBarController _valueBarController; private List _shopCfgs; private List giftBagList = new List(); private int indexSuit = 0; private int indexItem = 0; private int muem2; private List listIndex = new List(); private List originalIdList = new List() { 50001, 50002, 50003, 50004 }; private Dictionary discountDic = new Dictionary(); public override void Dispose() { if (_valueBarController != null) { _valueBarController.Dispose(); _valueBarController = null; } if (_ui != null) { _ui.Dispose(); } _ui = null; base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_StoreZGDCUI.PACKAGE_NAME; _ui = UI_StoreZGDCUI.Create(); this.viewCom = _ui.target; isfullScreen = true; this.clickBlankToClose = false; this.bringToFontOnClick = false; _valueBarController = new ValueBarController(_ui.m_valueBar); _ui.m_listCom.m_list.itemRenderer = ListItemRender; _ui.m_suitList.itemRenderer = ListItemSuitRender; _ui.m_suitList.SetVirtualAndLoop(); _ui.m_suitList.scrollPane.decelerationRate = 0.9f; } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.SHOP_BUY, UpdateView); EventAgent.AddEventListener(ConstMessage.NUMERIC_CHANGE, OnNumericChange); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.SHOP_BUY, UpdateView); EventAgent.RemoveEventListener(ConstMessage.NUMERIC_CHANGE, OnNumericChange); } protected override void OnShown() { base.OnShown(); _valueBarController.OnShown(); muem2 = (int)this.viewData; AddgiftBagID(); UpdateDic(); UpdateView(); Timers.inst.Add(5, 0, UpdateListSuit); Timers.inst.Add(1, 0, UpdateTime); } protected override void OnHide() { Timers.inst.Remove(UpdateListSuit); Timers.inst.Remove(UpdateTime); giftBagList.Clear(); discountDic.Clear(); listIndex.Clear(); base.OnHide(); ShopViewManager.Instance.ClearItemEff(); _valueBarController.OnHide(); } private async void OnBtnGetClick() { } private void OnClickLeft() { indexSuit--; UpdateView(); } private void OnClickRight() { indexSuit++; UpdateView(); } private void OnNumericChange(EventContext context) { } private void AddgiftBagID() { for(int i=0;i< ActivityOpenCfgArray.Instance.GetCfg(6001).paramsArr.Length;i++) { giftBagList.Add(ActivityOpenCfgArray.Instance.GetCfg(6001).paramsArr[i]); } for (int i = 0; i < ActivityOpenCfgArray.Instance.GetCfg(6002).paramsArr.Length; i++) { giftBagList.Add(ActivityOpenCfgArray.Instance.GetCfg(6002).paramsArr[i]); } } private void UpdateView() { ShopViewManager.Instance.ClearItemEff(); _shopCfgs = ShopCfgArray.Instance.GetCfgsBymenu1Andmenu2(102, muem2); _shopCfgs = ShopDataManager.Instance.RemoveNotOpenCfg(_shopCfgs); _shopCfgs = ShopDataManager.Instance.SortShopGoodsCfgs(_shopCfgs); //UpdateShopCfg(); _ui.m_listCom.m_list.numItems = _shopCfgs.Count; _ui.m_suitList.numItems = giftBagList.Count; } private void ListItemRender(int index, GObject obj) { ShopCfg shopCfg = _shopCfgs[index]; ShopViewManager.Instance.UptadeItem(obj, shopCfg); } private void ListItemSuitRender(int index, GObject obj) { UI_StoreZGTHitem item = UI_StoreZGTHitem.Proxy(obj); var suitCfg = SuitCfgArray.Instance.GetCfg(EverydaySaleCfgArray.Instance.dataArray[index].SuitShow); ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(giftBagList[index]); int discount = (int)(((double)shopCfg.originalPrice / (double)shopCfg.configPrice) * 100); item.m_suitIcon.url = string.Format("ui://Store/{0}", suitCfg.res); item.m_txtName.text = suitCfg.name; ////判断是否在折扣时间内,是否显示 if (IsDisountTime(EverydaySaleCfgArray.Instance.dataArray[index])) { //不在 item.m_DiscountGroud.visible = false; item.m_timeText.visible = false; item.m_btnCharge.GetChild("title").text = string.Format("{0}元/购买", shopCfg.originalPrice.ToString()); } else { //在 //_ui.m_btnCharge.GetChild("title").text = string.Format("{0}元/购买", shopCfg.configPrice.ToString()); item.m_discountText.text = string.Format("{0}", discount.ToString()); item.m_DiscountGroud.visible = true; item.m_timeText.visible = true; long endTime = TimeUtil.DateTimeToTimestamp(EverydaySaleCfgArray.Instance.dataArray[index].endTime); var leftTime = endTime - TimeHelper.ServerNow(); item.m_timeText.text = TimeUtil.FormattingTimeTo_DDHHmm(leftTime); } if(suitCfg.rarity == 5) { item.m_tyDesc.visible = true; } else { item.m_tyDesc.visible = false; } UI_StoreZGTHitem.ProxyEnd(); } private void UpdateListSuit(object param) { int itemIndex = _ui.m_suitList.ChildIndexToItemIndex(0) + 1; indexItem = itemIndex - 1; itemIndex = itemIndex == _ui.m_suitList.numItems ? 0 : itemIndex; _ui.m_suitList.scrollPane.ScrollRight(0.8f, true); } private int GetDiscountTimeID() { //判断当前indexSuit是否在折扣时间内,根据配置表返回不同的直购id return 0;//activityInfo.StartTime <= TimeHelper.ServerNow() && activityInfo.EndTime > TimeHelper.ServerNow(); } private bool IsDisountTime(EverydaySaleCfg item) { long endTime; long startTime; endTime = TimeUtil.DateTimeToTimestamp(item.endTime); startTime = TimeUtil.DateTimeToTimestamp(item.openTime); if (startTime <= TimeHelper.ServerNow() && endTime > TimeHelper.ServerNow()) { return false; } return true; } private void UpdateTime(object param) { var activityInfo = EverydaySaleCfgArray.Instance.dataArray[indexItem]; long endTime = 0; if (activityInfo != null) { endTime = TimeUtil.DateTimeToTimestamp(activityInfo.endTime); } int index = _ui.m_suitList.GetFirstChildInView(); GObject itemobj = _ui.m_suitList.GetChildAt(index%3); UI_StoreZGTHitem item = UI_StoreZGTHitem.Proxy(itemobj); var leftTime = endTime - TimeHelper.ServerNow(); if (leftTime <= 0) { item.m_timeText.text = ""; item.m_DiscountGroud.visible = false; } else { item.m_timeText.text = TimeUtil.FormattingTimeTo_DDHHmm(leftTime); } UI_StoreZGTHitem.ProxyEnd(); } private void ReturnDiscountTimeSuitIndex() { int count = 0; long endTime; long startTime; foreach (var item in EverydaySaleCfgArray.Instance.dataArray) { endTime = TimeUtil.DateTimeToTimestamp(item.endTime); startTime = TimeUtil.DateTimeToTimestamp(item.openTime); if (startTime <= TimeHelper.ServerNow() && endTime > TimeHelper.ServerNow()) { listIndex.Add(count); } count++; } } private void UpdateDic() { for(int i =0;i TimeHelper.ServerNow() || endTime < TimeHelper.ServerNow()) { for(int j =0;j<_shopCfgs.Count;j++) { if(_shopCfgs[j].id == giftBagList[i]) { int id = _shopCfgs[j].id; id = discountDic[id]; _shopCfgs[j] = ShopCfgArray.Instance.GetCfg(id); } } } } } } }