yyl
1 天以前 bcd1dcef07dc129d68539ca2d562c5df53007f36
Main/System/ItemTip/ItemBatchUseWin.cs
@@ -8,29 +8,38 @@
public class ItemBatchUseWin : UIBase
{
    [SerializeField] ItemCell itemCell;
    [SerializeField] Text itemCntTxt;
    [SerializeField] LongPressButton subBtn;
    [SerializeField] LongPressButton addBtn;
    [SerializeField] Text nameText;
    [SerializeField] Text countText;
    [SerializeField] Text descText;
    [SerializeField] SliderPanel sliderPanel;
    [SerializeField] Text tipText;
    [SerializeField] Button okBtn;
    [SerializeField] Text btnNameText;
    [SerializeField] Text titleText;
    public static Func<long, string> ShowTextEvent;
    public static int itemID;
    long curUseCount;
    long maxCount;
    public static string btnName;
    int useCnt;
    long maxCnt;
    protected override void InitComponent()
    {
        addBtn.SetListener(OnClickPlus);
        addBtn.onPress.AddListener(OnClickPlus);
        subBtn.SetListener(OnClickReduce);
        subBtn.onPress.AddListener(OnClickReduce);
        okBtn.AddListener(OnOK);
    }
    protected override void OnPreOpen()
    {
        useCnt = 1;
        Display();
    }
    void Display()
    {
        var key = "UseItemTitle_" + itemID;
        if (LanguageConfig.HasKey(key))
        {
@@ -40,32 +49,36 @@
        {
            titleText.text = Language.Get("UseItemDefault");
        }
        maxCount = PackManager.Instance.GetItemCountByID(PackType.Item, itemID);
        curUseCount = maxCount > 0 ? 1 : 0;
        itemCell.Init(new ItemCellModel(itemID, false, curUseCount));
        maxCnt = PackManager.Instance.GetItemCountByID(PackType.Item, itemID);
        useCnt = maxCnt > 0 ? 1 : 0;
        itemCell.Init(new ItemCellModel(itemID, false, useCnt));
        itemCell.button.AddListener(() =>
        {
            ItemTipUtility.Show(itemID);
        });
        RefreshCount();
        RefreshBtn();
        var itemConfig = ItemConfig.Get(itemID);
        nameText.text = itemConfig.ItemName;
        countText.text = Language.Get("storename12", maxCnt);
        descText.text = itemConfig.Description;
        OnSliderChange(useCnt);
        sliderPanel.Init((value) => { OnSliderChange(value); }, (int)maxCnt);
        btnNameText.text = btnName;
    }
    protected override void OnPreClose()
    void OnSliderChange(int value)
    {
    }
        useCnt = value;
        itemCell.countText.text = UIHelper.ReplaceLargeNum(useCnt);
    void RefreshCount()
    {
        itemCntTxt.text = curUseCount + "/" + maxCount;
        itemCell.countText.text = curUseCount.ToString();
        if (ShowTextEvent != null)
        {
            tipText.text = ShowTextEvent(curUseCount);
            tipText.text = ShowTextEvent(useCnt);
        }
        else
        {
@@ -74,66 +87,21 @@
    }
    void RefreshBtn()
    {
        if (curUseCount >= maxCount)
        {
            addBtn.interactable = false;
            addBtn.SetColorful(null, false);
        }
        else
        {
            addBtn.interactable = true;
            addBtn.SetColorful(null, true);
        }
        if (curUseCount == 0)
        {
            subBtn.interactable = false;
            subBtn.SetColorful(null, false);
        }
        else
        {
            subBtn.interactable = true;
            subBtn.SetColorful(null, true);
        }
    }
    void OnClickPlus()
    {
        if (curUseCount >= maxCount)
        {
            curUseCount = maxCount;
            return;
        }
        curUseCount++;
        RefreshCount();
        RefreshBtn();
    }
    void OnClickReduce()
    {
        if (curUseCount == 0)
            return;
        curUseCount--;
        RefreshCount();
        RefreshBtn();
    }
    void OnOK()
    {
        CloseWindow();
        if (curUseCount == 0)
        if (useCnt == 0)
        {
            SysNotifyMgr.Instance.ShowTip("UseItem1");
            return;
        }
        if (ItemLogicUtility.CheckItemCount(PackType.Item, itemID, curUseCount, 2))
        if (ItemLogicUtility.CheckItemCount(PackType.Item, itemID, useCnt, 1))
        {
            ItemLogicUtility.Instance.UseItem(PackManager.Instance.GetItemGUIDByID(itemID), (int)curUseCount);
            ItemLogicUtility.Instance.UseItem(PackManager.Instance.GetItemGUIDByID(itemID), useCnt);
        }
        SysNotifyMgr.Instance.ShowTip("UseOK");
    }
}