| | |
| | | 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)) |
| | | { |
| | |
| | | { |
| | | 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 |
| | | { |
| | |
| | | |
| | | } |
| | | |
| | | 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"); |
| | | } |
| | | } |
| | | |