using System.Collections.Generic; using UnityEngine; public class HeroReturnGiftWin : UIBase { [SerializeField] ButtonEx closeButton; [SerializeField] ImageEx bgImage; [SerializeField] ImageEx heroImage; [SerializeField] ScrollerController scroller; [SerializeField] TextEx timeText; HeroReturnManager manager => HeroReturnManager.Instance; StoreModel storeModel => StoreModel.Instance; protected override void InitComponent() { closeButton.SetListener(CloseWindow); } protected override void OnPreOpen() { scroller.OnRefreshCell += OnRefreshCell; GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; RechargeManager.Instance.rechargeCountEvent += OnRechargeCountEvent; storeModel.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent; int heroID = manager.GetFirstHeroId(); var artConfig = ActHeroReturnArtConfig.Get(heroID); if (artConfig == null) return; bgImage.SetSprite(StringUtility.Concat("HeroReturnGiftBG_", heroID.ToString())); heroImage.SetNativeSize(); heroImage.SetSprite(StringUtility.Concat("HeroReturnGiftHero_", heroID.ToString())); heroImage.SetNativeSize(); OnSecondEvent(); CreateGiftScroller(); } protected override void OnPreClose() { scroller.OnRefreshCell -= OnRefreshCell; GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent; RechargeManager.Instance.rechargeCountEvent -= OnRechargeCountEvent; storeModel.RefreshBuyShopLimitEvent -= RefreshBuyShopLimitEvent; } private void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell.GetComponent(); _cell?.Display(cell.index, giftItems); } private void OnSecondEvent() { manager.GetActTimeStr(timeText); } private void OnRechargeCountEvent(int obj) { RefreshAll(); } private void RefreshBuyShopLimitEvent() { RefreshAll(); } List giftItems; private void CreateGiftScroller() { giftItems = manager.GetGiftItemList(true); scroller.Refresh(); if (!giftItems.IsNullOrEmpty()) { for (int i = 0; i < giftItems.Count; i++) { scroller.AddCell(ScrollerDataType.Header, i); } } scroller.Restart(); } void RefreshAll() { scroller.m_Scorller.RefreshActiveCellViews(); } }