//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Monday, May 20, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.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() - drugUseLimit.eatTimes);
|
}
|
|
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 isAddReikiPoint = false;
|
var config = ItemConfig.Get(itemId);
|
if (config != null && config.Effect1 == 200)
|
{
|
isAddReikiPoint = true;
|
}
|
|
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;
|
}
|
}
|
}
|
|
if (isAddReikiPoint)
|
{
|
ModelCenter.Instance.GetModel<ReikiRootModel>().reikiPointPromoteSymbol = true;
|
}
|
|
CloseImmediately();
|
}
|
}
|
|
}
|
|
|
|
|