using System.Collections.Generic;  
 | 
using System.Linq;  
 | 
using UnityEngine;  
 | 
using UnityEngine.UI;  
 | 
  
 | 
public class ChooseItemsWin : UIBase  
 | 
{  
 | 
    [SerializeField] ItemCell itemCell;  
 | 
    [SerializeField] Text nameText;  
 | 
    [SerializeField] Text descText;  
 | 
    [SerializeField] ScrollerController scroller;  
 | 
    [SerializeField] Button openButton;  
 | 
    [SerializeField] Text txtChooseNum;  
 | 
    [SerializeField] CellView _InitCell;  
 | 
  
 | 
    string guid;  
 | 
    int itemID;  
 | 
    int itemCount;  
 | 
    int[][] selectArray;  
 | 
    protected override void InitComponent()  
 | 
    {  
 | 
        openButton.AddListener(() =>  
 | 
        {  
 | 
            if (BoxGetItemModel.Instance.TrySendUse())  
 | 
            {   
 | 
                CloseWindow();  
 | 
            }  
 | 
        });  
 | 
    }  
 | 
  
 | 
    protected override void Start()  
 | 
    {  
 | 
        _InitCell.cellIdentifier = _InitCell.cellIdentifier + this.GetInstanceID().ToString();  
 | 
    }  
 | 
  
 | 
  
 | 
    protected override void OnPreOpen()  
 | 
    {  
 | 
        BoxGetItemModel.Instance.countChangeAction += OnCountChangeAction;  
 | 
        scroller.OnRefreshCell += OnRefreshCell;  
 | 
        itemID = ItemTipUtility.mainTipData.baseInfo.itemId;  
 | 
        itemCount = ItemTipUtility.mainTipData.baseInfo.count;  
 | 
        guid = ItemTipUtility.mainTipData.guid;  
 | 
        InitItemsData();  
 | 
  
 | 
        itemCell.Init(new ItemCellModel(itemID, false, itemCount));  
 | 
        var itemConfig = ItemConfig.Get(itemID);  
 | 
        nameText.text = itemConfig.ItemName;  
 | 
        descText.text = itemConfig.Description;  
 | 
  
 | 
        if (string.IsNullOrEmpty(guid))  
 | 
        {  
 | 
            //预览  
 | 
            openButton.SetActive(false);  
 | 
        }  
 | 
        else  
 | 
        {  
 | 
            BoxGetItemModel.Instance.ClearAll();  
 | 
            openButton.SetActive(true);  
 | 
        }  
 | 
  
 | 
        int nowChooseItemCount = BoxGetItemModel.Instance.GetNowChooseItemCount();  
 | 
        txtChooseNum.text = Language.Get("L1100", Language.Get("L1107"),  
 | 
        UIHelper.AppendColor(TextColType.DarkGreen, $"{nowChooseItemCount}/{itemCount}"));  
 | 
          
 | 
        CreateScroller();  
 | 
    }  
 | 
  
 | 
    protected override void OnPreClose()  
 | 
    {  
 | 
        scroller.OnRefreshCell -= OnRefreshCell;  
 | 
    }  
 | 
  
 | 
    void CreateScroller()  
 | 
    {  
 | 
        scroller.Refresh();  
 | 
        for (int i = 0; i < selectArray.Length; i++)  
 | 
        {  
 | 
            scroller.AddCell(ScrollerDataType.Header, i);  
 | 
        }  
 | 
        scroller.Restart();  
 | 
    }  
 | 
  
 | 
  
 | 
    void OnRefreshCell(ScrollerDataType type, CellView cell)  
 | 
    {  
 | 
  
 | 
        var _cell = cell as ChooseItemsCell;  
 | 
        _cell.Display(selectArray[cell.index], guid);  
 | 
    }  
 | 
  
 | 
  
 | 
  
 | 
    void InitItemsData()  
 | 
    {  
 | 
        selectArray = BoxGetItemModel.Instance.GetSelectItemsByID(itemID);  
 | 
    }  
 | 
  
 | 
  
 | 
  
 | 
    private void OnCountChangeAction()  
 | 
    {  
 | 
        int nowChooseItemCount = BoxGetItemModel.Instance.GetNowChooseItemCount();  
 | 
        txtChooseNum.text = Language.Get("L1100", Language.Get("L1107"),  
 | 
        UIHelper.AppendColor(TextColType.DarkGreen, $"{nowChooseItemCount}/{itemCount}"));  
 | 
    }  
 | 
  
 | 
  
 | 
  
 | 
}  
 | 
  
 | 
  
 |