//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, January 28, 2019 //-------------------------------------------------------- using System; using UnityEngine; using UnityEngine.UI; using vnxbqy.UI; using System.Collections.Generic; public class CrossServerQualifyingHallOfFameWin : ILWindow { ScrollerController scroller; Text worshipCnt; #region Built-in protected override void BindController() { scroller = proxy.GetWidgtEx("scroller"); worshipCnt = proxy.GetWidgtEx("worshipCnt"); } protected override void OnPreOpen() { scroller.OnRefreshCell += OnRefreshCell; CrossServerQualifyingModel.Instance.UpdateWorshipEvent += UpdateWorshipEvent; //CrossServerQualifyingModel.Instance.UpdateOffcialEvent += UpdateOffcialEvent; RoleParticularModel.OnRevPackage += OnPlayerCacheResultEvent; worshipCnt.text = string.Format("{0} {1}/{2}", Language.Get("CrossServerQualifying67"), CrossServerQualifyingModel.Instance.worshipCntToday, CrossServerQualifyingModel.Instance.worshipMaxCnt); } protected override void OnAfterOpen() { scroller.Refresh(); int index = 0; for (int i = 0; i < 8; i++) { var id = i + 1; if (CrossServerQualifyingModel.Instance.GetOfficialPlayer(id).PlayerID != 0) { scroller.AddCell(ScrollerDataType.Header, id); if (CrossServerQualifyingModel.Instance.rankOfficialDict[id].WorshipDouble == 1 && TimeUtility.ServerNow.Hour == 19) { index = i; } } } scroller.Restart(); scroller.m_Scorller.RefreshActiveCellViews(); scroller.JumpIndex(index); } protected override void OnPreClose() { scroller.OnRefreshCell -= OnRefreshCell; CrossServerQualifyingModel.Instance.UpdateWorshipEvent -= UpdateWorshipEvent; //CrossServerQualifyingModel.Instance.UpdateOffcialEvent -= UpdateOffcialEvent; RoleParticularModel.OnRevPackage -= OnPlayerCacheResultEvent; } #endregion void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell.GetILBehaviour(); _cell?.Display(cell.index); } void UpdateWorshipEvent() { worshipCnt.text = string.Format("{0} {1}/{2}", Language.Get("CrossServerQualifying67"), CrossServerQualifyingModel.Instance.worshipCntToday, CrossServerQualifyingModel.Instance.worshipMaxCnt); scroller.m_Scorller.RefreshActiveCellViews(); } void UpdateOffcialEvent() { scroller.m_Scorller.RefreshActiveCellViews(); } void OnPlayerCacheResultEvent(int viewType, int playerID, RoleParticularModel.ViewPlayerData data) { scroller.m_Scorller.RefreshActiveCellViews(); } }