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(); } } protected override void BindController() { } protected override void AddListeners() { btnDesignatedTeam.SetListener(() => { WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); }); 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(); WindowCenter.Instance.Open(); } 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() { } }