using System; using UnityEngine; using UnityEngine.UI; using System.Collections.Generic; namespace vnxbqy.UI { public class CeremonyPeopleToHiWin : Window { [SerializeField] ScrollerController awardCtrl; [SerializeField] ScrollerController taskCtrl; [SerializeField] Text hiPointText; List taskConfigs; List awardConfigs; FairylandCeremonyModel ceremonyModel { get { return ModelCenter.Instance.GetModel(); } } int presentAwardIndex = 0; protected override void BindController() { awardCtrl.OnRefreshCell += RefreshAwardCell; taskCtrl.OnRefreshCell += RefreshTaskCell; } protected override void AddListeners() { } protected override void OnPreOpen() { ceremonyModel.RefreshHiAwardStateAct += CreateAwardCell; Init(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { ceremonyModel.RefreshHiAwardStateAct -= CreateAwardCell; } protected override void OnAfterClose() { } private void Init() { hiPointText.text = ceremonyModel.sumHiPoint.ToString(); ceremonyModel.IsPeopleAwardRecive(out presentAwardIndex); taskConfigs = ceremonyModel.GetPeoplePartTasklist(); awardConfigs = ceremonyModel.GetPeoplePartAwardlist(); CreateAwardCell(); CreateTaskCell(); taskCtrl.JumpIndex(0); awardCtrl.JumpIndex(presentAwardIndex - 1 < 0 ? 0 : presentAwardIndex - 1); } private void CreateTaskCell() { if (taskCtrl.GetNumberOfCells(taskCtrl.m_Scorller) > 0) { taskCtrl.m_Scorller.RefreshActiveCellViews(); } else { taskCtrl.Refresh(); for(int i = 0; i < taskConfigs.Count; i++) { taskCtrl.AddCell(ScrollerDataType.Header,i); } taskCtrl.Restart(); } } private void RefreshTaskCell(ScrollerDataType type, CellView cell) { ToHiTaskCell taskCell = cell.GetComponent(); if (taskCell == null) return; taskCell.Init(taskConfigs[cell.index]); } private void CreateAwardCell() { if (awardCtrl.GetNumberOfCells(awardCtrl.m_Scorller) > 0) { awardCtrl.m_Scorller.RefreshActiveCellViews(); } else { awardCtrl.Refresh(); for (int i = 0; i < awardConfigs.Count; i++) { awardCtrl.AddCell(ScrollerDataType.Header, i); } awardCtrl.Restart(); } } private void RefreshAwardCell(ScrollerDataType type, CellView cell) { ToHiAwardCell awardCell = cell.GetComponent(); if (awardCell == null) return; awardCell.Init(awardConfigs[cell.index]); } } }