|
|
using System;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
//批量使用物品
|
public class ItemBatchUseWin : UIBase
|
{
|
[SerializeField] ItemCell itemCell;
|
[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;
|
public static string btnName;
|
|
|
int useCnt;
|
long maxCnt;
|
protected override void InitComponent()
|
{
|
okBtn.AddListener(OnOK);
|
}
|
|
|
|
protected override void OnPreOpen()
|
{
|
useCnt = 1;
|
Display();
|
}
|
|
void Display()
|
{
|
|
var key = "UseItemTitle_" + itemID;
|
if (LanguageConfig.HasKey(key))
|
{
|
titleText.text = Language.Get(key);
|
}
|
else
|
{
|
titleText.text = Language.Get("UseItemDefault");
|
}
|
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);
|
});
|
|
|
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;
|
}
|
|
void OnSliderChange(int value)
|
{
|
useCnt = value;
|
itemCell.countText.text = UIHelper.ReplaceLargeNum(useCnt);
|
|
if (ShowTextEvent != null)
|
{
|
tipText.text = ShowTextEvent(useCnt);
|
}
|
else
|
{
|
tipText.text = "";
|
}
|
|
}
|
|
|
void OnOK()
|
{
|
CloseWindow();
|
if (useCnt == 0)
|
{
|
SysNotifyMgr.Instance.ShowTip("UseItem1");
|
return;
|
}
|
if (ItemLogicUtility.CheckItemCount(PackType.Item, itemID, useCnt, 1))
|
{
|
ItemLogicUtility.Instance.UseItem(PackManager.Instance.GetItemGUIDByID(itemID), useCnt);
|
}
|
|
SysNotifyMgr.Instance.ShowTip("UseOK");
|
}
|
}
|