|
|
using System;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
//批量使用物品
|
public class ItemBatchUseWin : UIBase
|
{
|
[SerializeField] ItemCell itemCell;
|
[SerializeField] Text itemCntTxt;
|
[SerializeField] LongPressButton subBtn;
|
[SerializeField] LongPressButton addBtn;
|
[SerializeField] Text tipText;
|
[SerializeField] Button okBtn;
|
[SerializeField] Text titleText;
|
|
public static Func<long, string> ShowTextEvent;
|
public static int itemID;
|
long curUseCount;
|
long maxCount;
|
|
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()
|
{
|
var key = "UseItemTitle_" + itemID;
|
if (LanguageConfig.HasKey(key))
|
{
|
titleText.text = Language.Get(key);
|
}
|
else
|
{
|
titleText.text = Language.Get("UseItemDefault");
|
}
|
maxCount = PackManager.Instance.GetItemCountByID(PackType.Item, itemID);
|
curUseCount = maxCount > 0 ? 1 : 0;
|
itemCell.Init(new ItemCellModel(itemID, false, curUseCount));
|
itemCell.button.AddListener(() =>
|
{
|
ItemTipUtility.Show(itemID);
|
});
|
|
RefreshCount();
|
RefreshBtn();
|
}
|
|
protected override void OnPreClose()
|
{
|
}
|
|
|
|
|
void RefreshCount()
|
{
|
itemCntTxt.text = curUseCount + "/" + maxCount;
|
itemCell.countText.text = curUseCount.ToString();
|
if (ShowTextEvent != null)
|
{
|
tipText.text = ShowTextEvent(curUseCount);
|
}
|
else
|
{
|
tipText.text = "";
|
}
|
|
}
|
|
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 (ItemLogicUtility.CheckItemCount(PackType.Item, itemID, curUseCount, 2))
|
{
|
ItemLogicUtility.Instance.UseItem(PackManager.Instance.GetItemGUIDByID(itemID));
|
}
|
}
|
}
|