using System.Collections.Generic; using UnityEngine; public class ArenaChallengeWin : UIBase { [SerializeField] ArenaChallengeVoucher voucher; [SerializeField] ButtonEx btnRefresh; [SerializeField] TextEx txtFightPoint; [SerializeField] ImageEx imgMoneyIcon; [SerializeField] TextEx txtMoneyCount; [SerializeField] ScrollerController scrollerController; protected override void InitComponent() { base.InitComponent(); btnRefresh.SetListener(() => { // 货币不足 if (!UIHelper.CheckMoneyCount(ArenaManager.Instance.currencyType, ArenaManager.Instance.currencyValue, 1)) return; ArenaManager.Instance.SendArenaMatch(true); }); } protected override void OnPreOpen() { base.OnPreOpen(); scrollerController.OnRefreshCell += OnRefreshCell; ArenaManager.Instance.OnArenaMatchListEvent += OnArenaMatchListEvent; PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh; Display(); } protected override void OnPreClose() { base.OnPreClose(); scrollerController.OnRefreshCell -= OnRefreshCell; ArenaManager.Instance.OnArenaMatchListEvent -= OnArenaMatchListEvent; PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh; } private void PlayerDataRefresh(PlayerDataType type) { if (type != PlayerDataType.ChallengeVoucher) return; Display(); } private void OnArenaMatchListEvent() { Display(); } private void CreateScroller() { scrollerController.Refresh(); List list = ArenaManager.Instance.matchInfoList; if (!list.IsNullOrEmpty()) { for (int i = 0; i < list.Count; i++) { scrollerController.AddCell(ScrollerDataType.Header, i); } } scrollerController.Restart(); } void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell.GetComponent(); _cell?.Display(cell.index); } void Display() { CreateScroller(); voucher.Display(); txtFightPoint.text = UIHelper.ReplaceLargeArtNum(PlayerDatas.Instance.baseData.FightPower); imgMoneyIcon.SetIconWithMoneyType(ArenaManager.Instance.currencyType); txtMoneyCount.text = UIHelper.ShowUseMoney(ArenaManager.Instance.currencyType, ArenaManager.Instance.currencyValue); } }