using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class HolidayConsumeRebateCell : CellView { [SerializeField] Text m_Consume; [SerializeField] Slider m_ConsumeSlider; [SerializeField] Text m_ConsumeProgress; [SerializeField] RareItem[] m_RebateItems; [SerializeField] Button m_GetBtn; [SerializeField] Text m_GetBtnText; [SerializeField] UIEffect m_GetSfx; [SerializeField] Image m_GotSign; HolidayConsumeRebateModel model { get { return ModelCenter.Instance.GetModel(); } } public void Display(int _index) { OperationBase operationBase; if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.HolidayConsumeRebate, out operationBase)) { OperationConsumeRebate operation = operationBase as OperationConsumeRebate; if (model.displayIndex >= 0 && model.displayIndex < operation.rebates.Count) { var rebate = operation.rebates[model.displayIndex]; if (_index < rebate.rebateGrades.Count) { var rebateGrade = rebate.rebateGrades[_index]; m_Consume.text = rebateGrade.needGold.ToString(); var current = model.GetTotalConsume(); m_ConsumeSlider.value = Mathf.Min(1, (float)current / rebateGrade.needGold); m_ConsumeProgress.text = StringUtility.Contact(current, "/", rebateGrade.needGold); for (int i = 0; i < m_RebateItems.Length; i++) { if (i < rebateGrade.items.Count) { var itemDate = rebateGrade.items[i]; m_RebateItems[i].SetActive(true); ItemCellModel itemCell = new ItemCellModel(itemDate.itemId, true, (ulong)itemDate.count); m_RebateItems[i].Init(itemCell); m_RebateItems[i].button.RemoveAllListeners(); m_RebateItems[i].button.AddListener(() => { ItemTipUtility.Show(itemDate.itemId); }); } else { m_RebateItems[i].SetActive(false); } } bool got = model.IsRebateGot(model.displayIndex, _index); m_GetBtn.SetActive(!got); m_GetBtn.SetInteractable(m_GetBtnText, current >= rebateGrade.needGold && !got); m_GotSign.SetActive(got); m_GetSfx.SetActive(current >= rebateGrade.needGold && !got); m_GetBtn.RemoveAllListeners(); m_GetBtn.AddListener(() => { model.GotConsumeRebate(model.displayIndex, _index); }); } } } } } }