|  | @@ -1,5 +1,4 @@
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -using System;
 | 
	
		
			
				|  |  | +using System;
 | 
	
		
			
				|  |  |  using System.Collections.Generic;
 | 
	
		
			
				|  |  |  using ET;
 | 
	
		
			
				|  |  |  using FairyGUI;
 | 
	
	
		
			
				|  | @@ -13,7 +12,8 @@ namespace GFGGame
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |          private UI_GiftBoxSelectorUI _ui;
 | 
	
		
			
				|  |  |          private int _itemId;
 | 
	
		
			
				|  |  | -        private long _count;
 | 
	
		
			
				|  |  | +        private int _count;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          public override void Dispose()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              base.Dispose();
 | 
	
	
		
			
				|  | @@ -35,93 +35,78 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              this.viewCom.Center();
 | 
	
		
			
				|  |  |              this.modal = true;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            _ui.m_.target.onClick.Add(OnBtnAddClick);
 | 
	
		
			
				|  |  | -            _ui.m_btnMinus.target.onClick.Add(OnBtnMinusClick);
 | 
	
		
			
				|  |  | -            _ui.m_btnMax.target.onClick.Add(OnBtnMaxClick);
 | 
	
		
			
				|  |  | -            _ui.m_btnConfirm.onClick.Add(OnBtnConfirmClick);
 | 
	
		
			
				|  |  | -            _ui.m_btnCancle.onClick.Add(OnBtnCancleClick);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +            _ui.m_btnCancel.onClick.Add(OnBtnCancelClick);
 | 
	
		
			
				|  |  | +            _ui.m_list.SetVirtual();
 | 
	
		
			
				|  |  | +            _ui.m_list.itemRenderer = ListItemRender;
 | 
	
		
			
				|  |  | +            _ui.m_list.onClickItem.Add(OnListSelectorItemClick);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          protected override void AddEventListener()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              base.AddEventListener();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          protected override void OnShown()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              base.OnShown();
 | 
	
		
			
				|  |  |              _itemId = (int)this.viewData;
 | 
	
		
			
				|  |  | -            _count = 1;
 | 
	
		
			
				|  |  | +            _count = (int)ItemDataManager.GetItemNum(_itemId);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              UpdateView();
 | 
	
		
			
				|  |  | -            UpdateUseView();
 | 
	
		
			
				|  |  | +            UpdateList();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          protected override void OnHide()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  | +            if (_ui.m_list.numItems > 0)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                _ui.m_list.ScrollToView(0);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            _ui.m_list.numItems = 0;
 | 
	
		
			
				|  |  |              base.OnHide();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          protected override void RemoveEventListener()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              base.RemoveEventListener();
 | 
	
		
			
				|  |  | -            // EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, UpdateList);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          private void UpdateView()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_itemId);
 | 
	
		
			
				|  |  | -            _ui.m_txtName.text = itemCfg.name;
 | 
	
		
			
				|  |  | -            _ui.m_txtOwned.SetVar("count", "" + ItemDataManager.GetItemNum(itemCfg.id)).FlushVars();
 | 
	
		
			
				|  |  | -            _ui.m_txtDesc.text = string.IsNullOrEmpty(itemCfg.desc) ? "暂无描述" : itemCfg.desc;
 | 
	
		
			
				|  |  |              _ui.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg);
 | 
	
		
			
				|  |  | -            RarityIconController.UpdateRarityIcon(_ui.m_loaRarity, itemCfg.id, false);
 | 
	
		
			
				|  |  | -            _ui.m_loaRarity.visible = itemCfg.itemType == ConstItemType.DRESS_UP;
 | 
	
		
			
				|  |  | -            _ui.m_txtExchangeCount.visible = false;
 | 
	
		
			
				|  |  | -            _ui.m_comCost.target.visible = false;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +            _ui.m_txtName.text = itemCfg.name;
 | 
	
		
			
				|  |  | +            _ui.m_txtTotalNum.text = $"已拥有:{_count}";
 | 
	
		
			
				|  |  | +            _ui.m_txtItemDes.text = string.IsNullOrEmpty(itemCfg.desc) ? "暂无描述" : itemCfg.desc;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private void UpdateUseView()
 | 
	
		
			
				|  |  | +        private void UpdateList()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  | -            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_itemId);
 | 
	
		
			
				|  |  | -            _ui.m_txtCostCount.text = _count.ToString();
 | 
	
		
			
				|  |  | -            _ui.m_btnMinus.m_c1.selectedIndex = _count == 1 ? 1 : 0;
 | 
	
		
			
				|  |  | -            _ui.m_btnMinus.target.touchable = _count == 1 ? false : true;
 | 
	
		
			
				|  |  | -            long hasCount = ItemDataManager.GetItemNum(_itemId);
 | 
	
		
			
				|  |  | -            _ui.m_btnAdd.m_c1.selectedIndex = _count == hasCount ? 1 : 0;
 | 
	
		
			
				|  |  | -            _ui.m_btnAdd.target.touchable = _count == hasCount ? false : true;
 | 
	
		
			
				|  |  | -            _ui.m_btnMax.m_c1.selectedIndex = _count == hasCount ? 1 : 0;
 | 
	
		
			
				|  |  | -            _ui.m_btnMax.target.touchable = _count == hasCount ? false : true;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            _ui.m_txtShow.text = "选择使用数量";
 | 
	
		
			
				|  |  | -            _ui.m_txtTips.text = string.Format("是否使用{0}个{1}?", _count, itemCfg.name);
 | 
	
		
			
				|  |  | +            _ui.m_list.numItems = _count;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private void OnBtnAddClick()
 | 
	
		
			
				|  |  | -        {
 | 
	
		
			
				|  |  | -            _count++;
 | 
	
		
			
				|  |  | -            long hasCount = ItemDataManager.GetItemNum(_itemId);
 | 
	
		
			
				|  |  | -            _count = Math.Min(hasCount, _count);
 | 
	
		
			
				|  |  | -            UpdateUseView();
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        private void OnBtnMinusClick()
 | 
	
		
			
				|  |  | +        private void ListItemRender(int index, GObject obj)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  | -            _count--;
 | 
	
		
			
				|  |  | -            _count = Math.Max(1, _count);
 | 
	
		
			
				|  |  | -            UpdateUseView();
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        private void OnBtnMaxClick()
 | 
	
		
			
				|  |  | -        {
 | 
	
		
			
				|  |  | -            _count = ItemDataManager.GetItemNum(_itemId);
 | 
	
		
			
				|  |  | -            UpdateUseView();
 | 
	
		
			
				|  |  | +            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_itemId);
 | 
	
		
			
				|  |  | +            UI_ListSelectorItem uiItemChild = UI_ListSelectorItem.Proxy(obj);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            int[] itemChildArr = itemCfg.itemsArr[index];
 | 
	
		
			
				|  |  | +            ItemCfg itemCfgChild = ItemCfgArray.Instance.GetCfg(itemChildArr[0]);
 | 
	
		
			
				|  |  | +            uiItemChild.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfgChild);
 | 
	
		
			
				|  |  | +            uiItemChild.m_comItemNumBag.m_txtNum.text = itemChildArr[1].ToString();
 | 
	
		
			
				|  |  | +            uiItemChild.target.data = itemCfgChild;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        private void OnBtnConfirmClick()
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        private void OnListSelectorItemClick(EventContext context)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  | -            ItemProxy.ReqUseItem(_itemId, _count).Coroutine();
 | 
	
		
			
				|  |  | -            this.Hide();
 | 
	
		
			
				|  |  | +            GComponent comItem = (context.data as GComponent);
 | 
	
		
			
				|  |  | +            ItemCfg itemCfg = comItem.data as ItemCfg;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            //弹出物品详细描述框
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        private void OnBtnCancleClick()
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        private void OnBtnCancelClick()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              this.Hide();
 | 
	
		
			
				|  |  |          }
 |