//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, December 22, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using LitJson; namespace vnxbqy.UI { // boss复活活动伤害排行榜 public class BossRebornHurtRankWin : Window { [SerializeField] ScrollerController m_RankList; [SerializeField] Text MyValue; [SerializeField] Text MyRank; DungeonModel model { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_RankList.OnRefreshCell -= OnRefreshCell; m_RankList.OnRefreshCell += OnRefreshCell; } private void OnRefreshCell(ScrollerDataType type, CellView cell) { if (type != ScrollerDataType.Header) return; var hurtInfo = cell as BossRebornHurtRankCell; hurtInfo.Display(hurtInfo.index); } protected override void OnPreOpen() { SetMineInfo(0, 0); model.UpdateBossHurtRankEvent += RefreshRankList; ShowForm(); } private void ShowForm() { m_RankList.Refresh(); for (int i = 0; i < model.BossHurtRank.bossHurtInfo.Count; i++) { m_RankList.AddCell(ScrollerDataType.Header, i); } m_RankList.Restart(); SetMineInfo(model.BossHurtRank.hurtRankSelf, model.BossHurtRank.hurtValueSelf); } private void RefreshRankList() { int cellCnt = m_RankList.GetNumberOfCells(m_RankList.m_Scorller); if (cellCnt != model.BossHurtRank.bossHurtInfo.Count) { m_RankList.Refresh(); for (int i = 0; i < model.BossHurtRank.bossHurtInfo.Count; i++) { m_RankList.AddCell(ScrollerDataType.Header, i); } m_RankList.Restart(); return; } m_RankList.m_Scorller.RefreshActiveCellViews(); SetMineInfo(model.BossHurtRank.hurtRankSelf, model.BossHurtRank.hurtValueSelf); } protected override void OnAfterOpen() { if (PlayerMainDate.DemonJarDamageRankWinChange != null) PlayerMainDate.DemonJarDamageRankWinChange(); } protected override void OnPreClose() { model.UpdateBossHurtRankEvent -= ShowForm; } private void SetMineInfo(int rank, ulong hurt) { MyValue.text = UIHelper.ReplaceLargeNum(hurt); MyRank.text = rank == 0 ? Language.Get("L1045") : Language.Get("L1092", rank); } protected override void OnAfterClose() { if (PlayerMainDate.DemonJarDamageRankWinChange != null) PlayerMainDate.DemonJarDamageRankWinChange(); } protected override void LateUpdate() { base.LateUpdate(); if (GAMgr.Instance.GetBySID(model.BossHurtRank.npcObjID) == null) { if (WindowCenter.Instance.IsOpen()) { WindowCenter.Instance.Close(); } } } #endregion } }