//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, December 11, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using EnhancedUI.EnhancedScroller; namespace vnxbqy.UI { //赛季奖励 public class SeasonRewardWin : Window { [SerializeField] ScrollerController m_ScrollerController; CrossServerOneVsOneRewardModel m_CrossServerRewardModel; CrossServerOneVsOneRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel()); } } List SortList = new List(); #region Built-in protected override void BindController() { m_ScrollerController.OnRefreshCell += OnRefreshGridCell; SortList.Clear(); foreach (var key in crossServerRewardModel.SeasonRewardConfigDic.Keys) { SortList.Add(key); } } protected override void AddListeners() { } protected override void OnPreOpen() { crossServerRewardModel.GetSegmentReward(); IsInquireReward(); OnCreateGridLineCell(m_ScrollerController); m_ScrollerController.JumpIndex(JumpIndex()); } protected override void OnAfterOpen() { crossServerRewardModel.CrossRealmPKAwardStateUpdate += CrossRealmPKAwardStateUpdate; CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdatePlayerInfoEvent; } protected override void OnPreClose() { crossServerRewardModel.CrossRealmPKAwardStateUpdate -= CrossRealmPKAwardStateUpdate; CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdatePlayerInfoEvent; } protected override void OnAfterClose() { } private void CrossRealmPKAwardStateUpdate() { m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见 } private void UpdatePlayerInfoEvent() { m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见 } #endregion void OnCreateGridLineCell(ScrollerController gridCtrl) { gridCtrl.Refresh(); foreach (var key in crossServerRewardModel.SeasonRewardDic.AwardDic.Keys) { gridCtrl.AddCell(ScrollerDataType.Header, key); } for (int i = SortList.Count - 1; i >= 0; i--) { gridCtrl.AddCell(ScrollerDataType.Normal, SortList[i]); } gridCtrl.Restart(); } private void OnRefreshGridCell(ScrollerDataType type, CellView cell) { int Index = cell.index; SeasonRewardCell seasonRewardCell = cell.GetComponent(); seasonRewardCell.ScrollerDataTypAndId(type, Index); } private void IsInquireReward() { bool isbool = crossServerRewardModel.IsAwardState(CrossRealmPKAwardStateEnum.SeasonAwardState, -1); if (CrossServerOneVsOnePKSeason.Instance.SeasonState == 2 && !isbool) { crossServerRewardModel.ViewCrossPKBillboard(CrossServerOneVsOnePKSeason.Instance.ZoneID, CrossServerOneVsOnePKSeason.Instance.SeasonID); } } private int JumpIndex() { int Index = 0; if (CrossServerOneVsOnePKSeason.Instance.SeasonState != 2) { return Index; } int Number = 0; foreach (var key in crossServerRewardModel.SeasonRewardDic.AwardDic.Keys) { Number = key; } if (crossServerRewardModel.MyRank > -1 && crossServerRewardModel.MyRank < Number)//存在世界排名 { int Type = 0; foreach (var key in crossServerRewardModel.SeasonRewardDic.AwardDic.Keys) { if (crossServerRewardModel.MyRank < key) { Index = Type; return Index; } Type += 1; } } int Type1 = 3; for (int i = SortList.Count - 1; i >= 0; i--) { if (CrossServerOneVsOnePlayerInfo.Instance.DanLV == SortList[i]) { Index = Type1; return Index; } Type1 += 1; } return Index; } } }