using System.Collections.Generic; using System.Linq; using UnityEngine; public class DailySpecialsWeekGiftWin : UIBase { readonly int payType = 21; [SerializeField] ScrollerController scroller; DailySpecialsManager manager { get { return DailySpecialsManager.Instance; } } RechargeManager rechargeManager { get { return RechargeManager.Instance; } } protected override void OnPreOpen() { scroller.OnRefreshCell += OnRefreshCell; rechargeManager.rechargeCountEvent += OnRechargeCountEvent; CreateScroller(); } private void OnRechargeCountEvent(int obj) { CreateScroller(); } protected override void OnPreClose() { scroller.OnRefreshCell -= OnRefreshCell; rechargeManager.rechargeCountEvent -= OnRechargeCountEvent; StoreModel.Instance.selectStoreFuncType = StoreFunc.Normal; } void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell.GetComponent(); _cell.Display(cell.index, ctgIDList); } List ctgIDList = null; void CreateScroller() { if (ctgIDList.IsNullOrEmpty()) { ctgIDList = RechargeManager.Instance.GetCTGIDListByType(payType); } if (!ctgIDList.IsNullOrEmpty()) { ctgIDList = ctgIDList .OrderBy(ctgId => manager.IsWeekGiftBuy(ctgId)) .ThenBy(ctgId => CTGConfig.HasKey(ctgId) ? CTGConfig.Get(ctgId).SortNum : int.MaxValue) .ThenBy(ctgId => ctgId) .ToList(); scroller.Refresh(); for (int i = 0; i < ctgIDList.Count; i++) { scroller.AddCell(ScrollerDataType.Header, i); } scroller.Restart(); } } }