using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class FairySiegeBaseDonateUseItemWin : Window { int itemId; [SerializeField] Button btnAdd; [SerializeField] Button btnClose; [SerializeField] Button btnReduce; [SerializeField] Button btnUse; [SerializeField] ItemCell itemCell; [SerializeField] Slider splitSlider; [SerializeField] TextEx txtCount; [SerializeField] RichText txtInfo; [SerializeField] TextEx txtName; [SerializeField] Text txtNumber; FairySiegeActModel model { get { return ModelCenter.Instance.GetModel(); } } PackModel packModel { get { return ModelCenter.Instance.GetModel(); } } protected override void AddListeners() { btnUse.SetListener(() => { var hasCount = packModel.GetItemCountByID(PackType.Item, itemId); if (hasCount <= 0) { SysNotifyMgr.Instance.ShowTip("LianQiAct02"); return; } model.nowContiributionType = 1; model.nowContributionCount = (int)splitSlider.value; CloseClick(); model.SendContribution(1, (uint)splitSlider.value); }); btnClose.SetListener(() => { CloseClick(); }); btnAdd.SetListener(() => { var hasCount = packModel.GetItemCountByID(PackType.Item, itemId); if (hasCount <= 0) { SysNotifyMgr.Instance.ShowTip("LianQiAct02"); return; } if (splitSlider.value < splitSlider.maxValue) { splitSlider.value++; } }); btnReduce.SetListener(() => { var hasCount = packModel.GetItemCountByID(PackType.Item, itemId); if (hasCount <= 0) { SysNotifyMgr.Instance.ShowTip("LianQiAct02"); return; } if (splitSlider.value > splitSlider.minValue) { splitSlider.value--; } }); splitSlider.SetListener(value => { OnSplitValueChange(); }); } protected override void BindController() { } protected override void OnAfterClose() { } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnPreOpen() { Display(); } public void OnSplitValueChange() { txtNumber.text = Mathf.Ceil(splitSlider.value).ToString(); } private void Display() { txtCount.SetActive(false); itemId = model.highDonateItemId; if (!ItemConfig.Has(itemId)) return; var itemConfig = ItemConfig.Get(itemId); var hasCount = packModel.GetItemCountByID(PackType.Item, itemId); var itemData = new ItemCellModel(itemId, false, (ulong)hasCount); itemCell.Init(itemData); itemCell.countText.SetActive(true); itemCell.countText.text = hasCount.ToString(); txtName.text = itemConfig.ItemName; txtInfo.text = itemConfig.Description; splitSlider.maxValue = hasCount; splitSlider.minValue = hasCount > 0 ? 1 : 0; splitSlider.value = hasCount > 0 ? hasCount : splitSlider.minValue; txtNumber.text = Mathf.Ceil(splitSlider.value).ToString(); } } }