using UnityEngine;
|
using UnityEngine.UI;
|
using vnxbqy.UI;
|
|
public class CrossServerGodBattleFieldAssortInfoWin : Window
|
{
|
[SerializeField] ButtonEx btnDesignatedTeam;
|
[SerializeField] Button btnOnlyServerGroupIDLeader;
|
[SerializeField] Image imgOnlyServerGroupIDLeader;
|
[SerializeField] ScrollerController scroller;
|
[SerializeField] TextEx txtWait;
|
[SerializeField] TextEx txtNoCell;
|
CrossServerGodBattleFieldAssortModel model { get { return ModelCenter.Instance.GetModel<CrossServerGodBattleFieldAssortModel>(); } }
|
protected override void BindController()
|
{
|
|
}
|
|
protected override void AddListeners()
|
{
|
btnDesignatedTeam.SetListener(() =>
|
{
|
WindowCenter.Instance.Close<CrossServerGodBattleFieldAssortInfoWin>();
|
WindowCenter.Instance.Open<CrossServerGodBattleFieldAssortSearchWin>();
|
});
|
|
btnOnlyServerGroupIDLeader.SetListener(() =>
|
{
|
model.ClearTeamTypeList();
|
Display();
|
scroller.Refresh();
|
scroller.Restart();
|
txtWait.SetActive(true);
|
txtNoCell.SetActive(false);
|
model.isOnlyServerGroupIDLeader = !model.isOnlyServerGroupIDLeader;
|
model.IDLimitType = model.isOnlyServerGroupIDLeader ? (uint)2 : (uint)0;
|
SendPack();
|
});
|
|
}
|
|
protected override void OnPreOpen()
|
{
|
model.SendQueryFuncTeam(model.FuncMapID, 0, 0, model.QueryCount, 1, model.isOnlyServerGroupIDLeader ? (byte)2 : (byte)0);
|
scroller.OnRefreshCell += OnRefreshCell;
|
model.UpdateTeamInfoEvent += OnUpdateTeamInfoEvent;
|
model.UpdateFindInfoEvent += OnUpdateFindInfoEvent;
|
model.UpdateTeamDissolveEvent += OnUpdateTeamDissolveEvent;
|
model.AddScrollerEvent += OnAddScrollerEvent;
|
int scrollerCount = scroller.GetNumberOfCells(scroller.m_Scorller);
|
txtWait.SetActive(scrollerCount <= 0);
|
txtNoCell.SetActive(false);
|
Display();
|
}
|
|
private void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell as CrossServerGodBattleFieldAssortInfoCell;
|
_cell.Display(_cell.index, cell);
|
}
|
|
void CreateScroller()
|
{
|
var showList = model.GetShowList();
|
if (showList == null)
|
return;
|
scroller.Refresh();
|
for (int i = 0; i < showList.Count; i++)
|
{
|
var teamID = showList[i];
|
CellInfo cellInfo = new CellInfo();
|
cellInfo.infoInt1 = (int)teamID;
|
scroller.AddCell(ScrollerDataType.Header, i, cellInfo);
|
}
|
scroller.Restart();
|
}
|
|
|
void OnRefreshRank(int type)
|
{
|
|
}
|
|
void Display()
|
{
|
imgOnlyServerGroupIDLeader.SetActive(model.isOnlyServerGroupIDLeader);
|
|
}
|
|
protected override void OnAfterOpen()
|
{
|
//CreateScroller();
|
txtWait.SetActive(false);
|
int scrollerCount = scroller.GetNumberOfCells(scroller.m_Scorller);
|
txtWait.SetActive(scrollerCount <= 0);
|
}
|
|
private void OnUpdateTeamInfoEvent()
|
{
|
bool isHaveTeam = model.TryGetPlayerTeamInfo(out bool isCaptain, out uint teamID, out AssortTeamInfo teamInfo);
|
if (isHaveTeam)
|
{
|
WindowCenter.Instance.Close<CrossServerGodBattleFieldAssortInfoWin>();
|
WindowCenter.Instance.Open<CrossServerGodBattleFieldAssortWin>();
|
}
|
else
|
{
|
Display();
|
scroller.m_Scorller.RefreshActiveCellViews();
|
txtWait.SetActive(false);
|
int scrollerCount = scroller.GetNumberOfCells(scroller.m_Scorller);
|
txtNoCell.SetActive(scrollerCount <= 0);
|
}
|
}
|
private void OnUpdateFindInfoEvent()
|
{
|
Display();
|
CreateScroller();
|
txtWait.SetActive(false);
|
int scrollerCount = scroller.GetNumberOfCells(scroller.m_Scorller);
|
txtNoCell.SetActive(scrollerCount <= 0);
|
}
|
|
protected override void OnPreClose()
|
{
|
scroller.OnRefreshCell -= OnRefreshCell;
|
model.UpdateTeamInfoEvent -= OnUpdateTeamInfoEvent;
|
model.UpdateFindInfoEvent -= OnUpdateFindInfoEvent;
|
model.UpdateTeamDissolveEvent -= OnUpdateTeamDissolveEvent;
|
model.AddScrollerEvent -= OnAddScrollerEvent;
|
model.ClearTeamTypeList();
|
scroller.Refresh();
|
scroller.Restart();
|
}
|
|
void OnUpdateTeamDissolveEvent()
|
{
|
Display();
|
CreateScroller();
|
txtWait.SetActive(false);
|
int scrollerCount = scroller.GetNumberOfCells(scroller.m_Scorller);
|
txtNoCell.SetActive(scrollerCount <= 0);
|
}
|
|
void OnAddScrollerEvent()
|
{
|
var showList = model.GetShowList();
|
if (showList == null)
|
return;
|
int scrollerCount = scroller.GetNumberOfCells(scroller.m_Scorller);
|
int diff = showList.Count - scrollerCount;
|
if (diff > 0)
|
{
|
for (int i = 0; i < diff; i++)
|
{
|
var teamID = showList[scrollerCount + i];
|
CellInfo cellInfo = new CellInfo();
|
cellInfo.infoInt1 = (int)teamID;
|
scroller.AddCell(ScrollerDataType.Header, scrollerCount + i, cellInfo);
|
}
|
}
|
scroller.Restart();
|
}
|
|
void SendPack()
|
{
|
model.SendQueryFuncTeam(model.FuncMapID, 0, 0, model.QueryCount, 1, model.isOnlyServerGroupIDLeader ? (byte)2 : (byte)0);
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
}
|