using System;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
public class OfflineHangUpUseWin : Window
|
{
|
[SerializeField] Slider _batchUseSlider;
|
[SerializeField] Text _number;
|
[SerializeField] Button _addBtn;
|
[SerializeField] Button _reduceBtn;
|
[SerializeField] Button _useBtn;
|
[SerializeField] Button _closeBtn;
|
[SerializeField] Text offlineText;
|
private ItemModel itemModel;
|
PlayerPackModel _playerPack;
|
PlayerPackModel playerPack
|
{
|
get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); }
|
}
|
#region Built-in
|
protected override void BindController()
|
{
|
|
}
|
|
protected override void AddListeners()
|
{
|
_addBtn.onClick.AddListener(OnClickAddBtn);
|
_reduceBtn.onClick.AddListener(OnClickReduceBtn);
|
_useBtn.onClick.AddListener(OnClickBatchUseBtn);
|
_closeBtn.onClick.AddListener(CloseClick);
|
_batchUseSlider.onValueChanged.AddListener(delegate
|
{
|
OnUseValueChange();
|
});
|
}
|
|
protected override void OnPreOpen()
|
{
|
Display();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
|
}
|
protected override void OnAfterClose()
|
{
|
|
}
|
#endregion
|
|
public void Display()
|
{
|
itemModel = playerPack.GetItemModelByGUID(BatchUseModel.Instance.offlineGuid);
|
if (itemModel == null) return;
|
|
int maxOfflineNum = ItemOperateUtility.Instance.GetOfflineMaxNum(itemModel);
|
_batchUseSlider.maxValue = maxOfflineNum;
|
_batchUseSlider.minValue = 1;
|
_batchUseSlider.value = _batchUseSlider.minValue;
|
OnUseValueChange();
|
}
|
|
public void OnUseValueChange()
|
{
|
_number.text = Mathf.Ceil(_batchUseSlider.value).ToString();
|
UpdateOfflineTime();
|
}
|
|
public void UpdateOfflineTime()
|
{
|
if (itemModel == null) return;
|
offlineText.text = GetOfflinePluginTime();
|
}
|
|
public void OnClickAddBtn()
|
{
|
if (_batchUseSlider.value < _batchUseSlider.maxValue)
|
{
|
_batchUseSlider.value++;
|
}
|
}
|
|
public void OnClickReduceBtn()
|
{
|
if (_batchUseSlider.value > _batchUseSlider.minValue)
|
{
|
_batchUseSlider.value--;
|
}
|
}
|
|
public void OnClickBatchUseBtn()
|
{
|
if (itemModel == null)
|
return;
|
bool isMax = ItemOperateUtility.Instance.CheckIsMaxOfflineTime((int)Mathf.Ceil(_batchUseSlider.value), itemModel);
|
if(!isMax)
|
{
|
ItemOperateUtility.Instance.UseItem(itemModel.itemPlace, (int)Mathf.Ceil(_batchUseSlider.value));
|
}
|
CloseClick();
|
}
|
|
public string GetOfflinePluginTime()
|
{
|
TimeSpan timeSpan = TimeSpan.FromSeconds(HangUpSetModel.Instance.offlinePluginTime);
|
string s = "";
|
if (timeSpan.Hours > 0)
|
{
|
s = Language.Get("ItemOverdue103", timeSpan.Hours);
|
}
|
if (timeSpan.Minutes > 0)
|
{
|
s = StringUtility.Contact(s, Language.Get("ItemOverdue104", timeSpan.Minutes));
|
}
|
|
if (s == "")
|
{
|
s = Language.Get("ItemOverdue104", 0);
|
}
|
|
int addHour = (itemModel.config.EffectValueA1 / 3600)* (int)Mathf.Ceil(_batchUseSlider.value);
|
string addHourStr = UIHelper.AppendStringColor(TextColType.Green,StringUtility.Contact("+", Language.Get("ItemOverdue103", addHour)),true);
|
s = StringUtility.Contact(s, addHourStr);
|
return s;
|
}
|
|
}
|
}
|