using System.Collections.Generic; using UnityEngine; public class ArenaRecordWin : UIBase { [SerializeField] ArenaChallengeVoucher voucher; [SerializeField] TextEx txtFightPoint; [SerializeField] ScrollerController scrollerController; [SerializeField] Transform transNoRecord; protected override void InitComponent() { base.InitComponent(); } protected override void OnPreOpen() { base.OnPreOpen(); scrollerController.OnRefreshCell += OnRefreshCell; ArenaManager.Instance.OnArenaMatchListEvent += OnArenaMatchListEvent; PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh; ArenaManager.Instance.OnUpdateGameRecInfo += OnUpdateGameRecInfo; GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; transNoRecord.SetActive(false); Display(); } protected override void OnPreClose() { base.OnPreClose(); scrollerController.OnRefreshCell -= OnRefreshCell; ArenaManager.Instance.OnArenaMatchListEvent -= OnArenaMatchListEvent; PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh; ArenaManager.Instance.OnUpdateGameRecInfo -= OnUpdateGameRecInfo; GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent; } private void OnSecondEvent() { scrollerController.m_Scorller.RefreshActiveCellViews(); } private void OnUpdateGameRecInfo() { Display(); } private void PlayerDataRefresh(PlayerDataType type) { if (type != PlayerDataType.ChallengeVoucher) return; Display(); } private void OnArenaMatchListEvent() { Display(); } void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell.GetComponent(); _cell?.Display(cell.index); } private void CreateScroller() { scrollerController.Refresh(); uint playerID = PlayerDatas.Instance.baseData.PlayerID; ArenaManager.Instance.TryGetSortedArenaGameRecList(playerID, out List sortedList); if (!sortedList.IsNullOrEmpty()) { transNoRecord.SetActive(false); for (int i = 0; i < sortedList.Count; i++) { scrollerController.AddCell(ScrollerDataType.Header, i); } } scrollerController.Restart(); } void Display() { CreateScroller(); voucher.Display(); txtFightPoint.text = UIHelper.ReplaceLargeArtNum(PlayerDatas.Instance.baseData.FightPower); } }