using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using vnxbqy.UI;
|
|
//竞技场,记录UI
|
public class ArenaRankWin : ILWindow
|
{
|
Button Btn_Close;
|
Text m_MyRank;
|
ScrollerController m_RankListController;
|
private int PreIndex = 0;
|
#region Built-in
|
protected override void BindController()
|
{
|
Btn_Close = proxy.GetWidgtEx<Button>("Img_Close");
|
m_MyRank = proxy.GetWidgtEx<Text>("Txt_MyRank");
|
m_RankListController = proxy.GetWidgtEx<ScrollerController>("Scroller");
|
}
|
|
protected override void AddListeners()
|
{
|
Btn_Close.SetListener(() =>
|
{
|
WindowCenter.Instance.CloseIL<ArenaRankWin>();
|
});
|
|
m_RankListController.OnRefreshCell += OnRefreshCell;
|
|
}
|
|
protected override void OnPreOpen()
|
{
|
ArenaRankModel.Instance.onRankRefresh += DisplayRanks;
|
Open();
|
}
|
|
protected override void OnPreClose()
|
{
|
ArenaRankModel.Instance.ClearSearchData();
|
ArenaRankModel.Instance.onRankRefresh -= DisplayRanks;
|
}
|
protected override void OnAfterOpen()
|
{
|
}
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
void Open()
|
{
|
//m_RankListController.Refresh();
|
PreIndex = 0;
|
ArenaRankModel.Instance.SendArenaWatchBillboard(0, 0, 50);
|
UpdateMyRank();
|
int count = m_RankListController.GetNumberOfCells(m_RankListController.m_Scorller);
|
if(count > 0)
|
m_RankListController.JumpIndex(0);
|
}
|
void DisplayRanks(int type,int mySelf)
|
{
|
if (type != ArenaModel.Instance.RankType)
|
return;
|
if( mySelf == 1)
|
{
|
UpdateMyRank();
|
return;
|
}
|
|
int count = m_RankListController.GetNumberOfCells(m_RankListController.m_Scorller);
|
//分页查询,只增加不减少
|
int diff = ArenaRankModel.Instance.TryGetRankCount(ArenaModel.Instance.RankType) - count;
|
if (diff > 0)
|
{
|
for (int i = 0; i < diff; i++)
|
m_RankListController.AddCell(ScrollerDataType.Header, count + i);
|
}
|
UpdateMyRank();
|
m_RankListController.Restart();
|
}
|
void UpdateMyRank()
|
{
|
int rank = ArenaRankModel.Instance.GetMyRank(ArenaModel.Instance.RankType);
|
if (rank <= 0)
|
{
|
m_MyRank.text = Language.Get("L1045");
|
}
|
else
|
{
|
m_MyRank.text = Language.Get("L1092", rank);
|
}
|
}
|
|
private void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var Record = cell.GetILBehaviour<ArenaRankCell>();
|
Record.Display(cell.index);
|
//int startIndex = ArenaRankModel.Instance.TryGetRankCount(ArenaModel.Instance.RankType);
|
|
//是否是从上向下滑动
|
if (cell.index %50 == 25 && PreIndex < cell.index)
|
{
|
uint startIndex = (uint)(50 * (cell.index / 50 + 1));
|
ArenaRankModel.Instance.SendArenaWatchBillboard(startIndex , 0, 50);
|
}
|
PreIndex = cell.index;
|
}
|
|
|
}
|