| New file |
| | |
| | | //--------------------------------------------------------
|
| | | // [Author]: 第二世界
|
| | | // [ Date ]: Monday, May 20, 2019
|
| | | //--------------------------------------------------------
|
| | |
|
| | | using System;
|
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | | using UnityEngine;
|
| | | using UnityEngine.UI;
|
| | |
|
| | | namespace Snxxz.UI {
|
| | |
|
| | | public class AlchemyDrugBatchUseWin : Window
|
| | | {
|
| | | [SerializeField] ItemCell m_Item;
|
| | | [SerializeField] Text m_ItemName;
|
| | | [SerializeField] Slider m_SplitSlider;
|
| | | [SerializeField] Text m_Number;
|
| | | [SerializeField] Button m_AddBtn;
|
| | | [SerializeField] Button m_ReduceBtn;
|
| | | [SerializeField] Button m_SplitBtn;
|
| | | [SerializeField] Button m_CloseBtn;
|
| | |
|
| | | public static int itemId = 0;
|
| | |
|
| | | PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
| | | AlchemyModel model { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } }
|
| | | #region Built-in
|
| | | protected override void BindController()
|
| | | {
|
| | | }
|
| | |
|
| | | protected override void AddListeners()
|
| | | {
|
| | | m_SplitSlider.SetListener((float value) => { OnValueChange(); });
|
| | | m_AddBtn.SetListener(OnClickAddBtn);
|
| | | m_ReduceBtn.SetListener(OnClickReduceBtn);
|
| | | m_SplitBtn.SetListener(OnClickBatchUseBtn);
|
| | | m_CloseBtn.SetListener(CloseClick);
|
| | | }
|
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | Display();
|
| | | }
|
| | |
|
| | | protected override void OnAfterOpen()
|
| | | {
|
| | | }
|
| | |
|
| | | protected override void OnPreClose()
|
| | | {
|
| | | }
|
| | |
|
| | | protected override void OnAfterClose()
|
| | | {
|
| | | }
|
| | | #endregion
|
| | |
|
| | | void Display()
|
| | | {
|
| | | var config = ItemConfig.Get(itemId);
|
| | |
|
| | | var itemCount = packModel.GetItemCountByID(PackType.Item, itemId);
|
| | |
|
| | | int maxValue = itemCount;
|
| | |
|
| | | AlchemyDrugUseLimit drugUseLimit;
|
| | | if (model.TryGetAlchemyUseLimit(itemId, out drugUseLimit))
|
| | | {
|
| | | maxValue = Mathf.Min(itemCount, drugUseLimit.GetUseLimit());
|
| | | }
|
| | |
|
| | | var itemData = new ItemCellModel(itemId, true, (ulong)maxValue);
|
| | | m_Item.Init(itemData);
|
| | | m_Item.countText.text = maxValue.ToString();
|
| | | m_ItemName.text = config.ItemName;
|
| | | m_ItemName.color = UIHelper.GetUIColor(config.ItemColor, true);
|
| | | m_SplitSlider.minValue = 1;
|
| | | m_SplitSlider.maxValue = maxValue;
|
| | | m_SplitSlider.value = maxValue;
|
| | | m_Number.text = Mathf.Ceil(m_SplitSlider.value).ToString();
|
| | | }
|
| | |
|
| | | public void OnValueChange()
|
| | | {
|
| | | m_Number.text = Mathf.Ceil(m_SplitSlider.value).ToString();
|
| | | }
|
| | |
|
| | | public void OnClickAddBtn()
|
| | | {
|
| | | if (m_SplitSlider.value < m_SplitSlider.maxValue)
|
| | | {
|
| | | m_SplitSlider.value++;
|
| | | }
|
| | | }
|
| | |
|
| | | public void OnClickReduceBtn()
|
| | | {
|
| | | if (m_SplitSlider.value > m_SplitSlider.minValue)
|
| | | {
|
| | | m_SplitSlider.value--;
|
| | | }
|
| | | }
|
| | |
|
| | | public void OnClickBatchUseBtn()
|
| | | {
|
| | | var count = (int)Mathf.Ceil(m_SplitSlider.value);
|
| | |
|
| | | var items = packModel.GetItemsById(PackType.Item, itemId);
|
| | | if (items != null)
|
| | | {
|
| | | for (int i = 0; i < items.Count; i++)
|
| | | {
|
| | | var item = items[i];
|
| | | if (count >= item.count)
|
| | | {
|
| | | ItemOperateUtility.Instance.UseItem(item.guid, item.count);
|
| | | count -= item.count;
|
| | | }
|
| | | else
|
| | | {
|
| | | if (count > 0)
|
| | | {
|
| | | ItemOperateUtility.Instance.UseItem(item.guid, count);
|
| | | }
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | CloseImmediately();
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|