using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class WashPointBatchUseWin : Window { #region 成员变量 [SerializeField] Text washPointDesText; [SerializeField] Slider _splitSlider; [SerializeField] Text _number; [SerializeField] Button _addBtn; [SerializeField] Button _reduceBtn; [SerializeField] Button _splitBtn; [SerializeField] Button _closeBtn; #endregion ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel()); } } PlayerPackModel _playerPack; PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel()); } } PlayerBuffDatas _buffModel; PlayerBuffDatas Buffmodel { get { return _buffModel ?? (_buffModel = ModelCenter.Instance.GetModel()); } } private ItemModel itemModel; #region Built-in protected override void BindController() { } protected override void AddListeners() { _splitSlider.onValueChanged.RemoveAllListeners(); _addBtn.onClick.RemoveAllListeners(); _reduceBtn.onClick.RemoveAllListeners(); _splitBtn.onClick.RemoveAllListeners(); _closeBtn.onClick.RemoveAllListeners(); _splitSlider.onValueChanged.AddListener( delegate { OnSplitValueChange(); } ); _addBtn.onClick.AddListener(OnClickAddBtn); _reduceBtn.onClick.AddListener(OnClickReduceBtn); _splitBtn.onClick.AddListener(OnClickBatchUseBtn); _closeBtn.onClick.AddListener(OnClickCloseBtn); } protected override void OnPreOpen() { //OpenBatchWin(itemInfoModel.CurItemModel); OpenBatchWin(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } #endregion private void OpenBatchWin() { itemModel = playerPack.GetItemModelByGUID(BatchUseModel.Instance.guid); if (itemModel == null) return; InitPanel(); } public void InitPanel() { ulong maxValue = 0; if (BatchUseModel.Instance.maxValue <= 0) { playerPack.IsReachUseLimit(itemModel.guid, out maxValue); } else { maxValue = (ulong)BatchUseModel.Instance.maxValue; } _splitSlider.minValue = 1; _splitSlider.maxValue = maxValue; _splitSlider.value = _splitSlider.minValue; _number.text = Mathf.Ceil(_splitSlider.value).ToString(); } private void RefreshWashPointDes() { if (itemModel == null) return; PlayerPropertyConfig propertyConfig = PlayerPropertyConfig.Get(BatchUseModel.Instance.extraPrams); float washPoint = itemModel.config.EffectValueA1 * Mathf.Ceil(_splitSlider.value); washPointDesText.text = Language.Get("KnapS145", Mathf.Ceil(_splitSlider.value), itemModel.config.ItemName,propertyConfig.Name,washPoint); } public void OnSplitValueChange() { _number.text = Mathf.Ceil(_splitSlider.value).ToString(); RefreshWashPointDes(); } public void OnClickAddBtn() { if (_splitSlider.value < _splitSlider.maxValue) { _splitSlider.value++; } RefreshWashPointDes(); } public void OnClickReduceBtn() { if (_splitSlider.value > _splitSlider.minValue) { _splitSlider.value--; } RefreshWashPointDes(); } public void OnClickBatchUseBtn() { if (itemModel == null) return; ItemLogicUtility.Instance.UseItem(itemModel.itemPlace, (ushort)Mathf.Ceil(_splitSlider.value), BatchUseModel.Instance.extraPrams); OnClickCloseBtn(); } public void OnClickCloseBtn() { Close(); } } }