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; PackModel _playerPack; PackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel()); } } #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.GetItemByGuid(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.guid, (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.AppendColor(TextColType.Green,StringUtility.Contact("+", Language.Get("ItemOverdue103", addHour)),true); s = StringUtility.Contact(s, addHourStr); return s; } } }