using System.Linq; using UnityEngine; namespace vnxbqy.UI { public class FairySiegeBattleReportAtkWin : Window { [SerializeField] ScrollerController scrAtk; FairySiegeActModel model { get { return ModelCenter.Instance.GetModel(); } } #region Build-in protected override void AddListeners() { } protected override void BindController() { } protected override void OnPreOpen() { scrAtk.OnRefreshCell += OnRefreshAtkCell; model.UpdateFamilyGCZBatReportEvent += OnUpdateFamilyGCZBatReportEvent; } protected override void OnPreClose() { scrAtk.OnRefreshCell -= OnRefreshAtkCell; model.UpdateFamilyGCZBatReportEvent -= OnUpdateFamilyGCZBatReportEvent; } private void OnUpdateFamilyGCZBatReportEvent() { CreateAtkScroller(); } protected override void OnAfterOpen() { CreateAtkScroller(); } protected override void OnAfterClose() { } #endregion private void OnRefreshAtkCell(ScrollerDataType type, CellView cell) { var _cell = cell.GetComponent(); _cell?.Display(cell.index, cell); } private void CreateAtkScroller() { scrAtk.Refresh(); if (model.batReportAtkDict.TryGetValue(model.nowBatReportFamilyID, out var dict)) { var list = dict.Keys.ToList(); list.Sort((x, y) => { ulong hurtValueX = dict[x]; ulong hurtValueY = dict[y]; if (hurtValueX != hurtValueY) { return hurtValueY.CompareTo(hurtValueX); } return 0; }); for (int i = 0; i < list.Count; i++) { int tagFamilyID = (int)list[i]; CellInfo cellInfo = new CellInfo(); cellInfo.infoInt1 = tagFamilyID; scrAtk.AddCell(ScrollerDataType.Header, i, cellInfo); } } scrAtk.Restart(); } } }