using System.Collections.Generic; using UnityEngine; public class HeroFatesFastPutPreviewWin : UIBase { [SerializeField] ScrollerController scroller; [SerializeField] ButtonEx btnClose; [SerializeField] ButtonEx btnOk; HeroFatesManager manager { get { return HeroFatesManager.Instance; } } protected override void InitComponent() { btnClose.SetListener(CloseWindow); btnOk.SetListener(() => { manager.FastAddList(putPreviewHeroList); CloseWindow(); }); } protected override void OnPreOpen() { scroller.OnRefreshCell += OnRefreshCell; manager.OnUpdateHeroFatesInfoEvent += OnUpdateHeroFatesInfo; CreateScoller(); } protected override void OnPreClose() { scroller.OnRefreshCell -= OnRefreshCell; manager.OnUpdateHeroFatesInfoEvent -= OnUpdateHeroFatesInfo; } private void OnUpdateHeroFatesInfo() { RefeshScoller(); } List putPreviewHeroList = new List(); private void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell.GetComponent(); _cell?.Display(cell.index, putPreviewHeroList); } void CreateScoller() { scroller.Refresh(); putPreviewHeroList = manager.GetPutPreviewHeroList(manager.chooseHeroFatesId); if (!putPreviewHeroList.IsNullOrEmpty()) { int rowCount = Mathf.CeilToInt((float)putPreviewHeroList.Count / manager.rowCountMax); for (int i = 0; i < rowCount; i++) { scroller.AddCell(ScrollerDataType.Header, i); } } scroller.Restart(); } void RefeshScoller() { scroller.m_Scorller.RefreshActiveCellViews(); } }