using System.Collections.Generic; using UnityEngine; public class GuildRankWin : UIBase { [SerializeField] Transform empty; [SerializeField] GuildTop3Cell[] guildTop3Cells; [SerializeField] ScrollerController scroller; [SerializeField] TextEx rankText; [SerializeField] TextEx rankValueText; [SerializeField] ButtonEx serversBtn; GuildManager manager { get { return GuildManager.Instance; } } protected override void InitComponent() { serversBtn.AddListener(() => { UIHelper.ShowServersPanel(GuildManager.Instance.crossServerIDList); }); } protected override void OnPreOpen() { manager.OnRefreshFairyList += OnRefreshFairyList; scroller.OnRefreshCell += OnRefreshCell; manager.SendFindGuild(string.Empty, 0, manager.pageCnt); manager.ResetQueryParam(); Display(); } protected override void OnPreClose() { manager.OnRefreshFairyList -= OnRefreshFairyList; scroller.OnRefreshCell -= OnRefreshCell; } public void Display() { serversBtn.SetActive(GuildManager.Instance.zoneID != 0); ShowTop3(); CreateScroller(); ShowMyRank(); } void ReflashScroller() { if (GuildManager.Instance.pageIndexList.Count < 4) { empty.SetActive(true); scroller.SetActive(false); return; } empty.SetActive(false); scroller.SetActive(true); var startCount = scroller.GetCellTotalCount(); if (startCount > GuildManager.Instance.pageIndexList.Count - 3) { scroller.Refresh(); startCount = 0; } for (int i = startCount + 3; i < GuildManager.Instance.pageIndexList.Count; i++) { scroller.AddCell(ScrollerDataType.Header, i); } scroller.Restart(); } void CreateScroller() { if (GuildManager.Instance.pageIndexList.Count < 4) { empty.SetActive(true); scroller.SetActive(false); return; } empty.SetActive(false); scroller.SetActive(true); scroller.Refresh(); for (int i = 3; i < GuildManager.Instance.pageIndexList.Count; i++) { scroller.AddCell(ScrollerDataType.Header, i); } scroller.Restart(); } void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell.GetComponent(); _cell.Display(cell.index + 1); manager.ListenRankPage(cell.index); } void ShowTop3() { for (int i = 0; i < guildTop3Cells.Length; i++) { guildTop3Cells[i].Display(i + 1); } } void ShowMyRank() { int myFairyRank = manager.myFairyRank; rankText.text = Language.Get("GuildRank04", myFairyRank > 0 ? myFairyRank : Language.Get("L1045")); rankValueText.SetActive(PlayerDatas.Instance.fairyData.HasFairy && myFairyRank > 0); rankValueText.text = UIHelper.ReplaceLargeArtNum(PlayerDatas.Instance.fairyData.fairy.totalFightPower); } void OnRefreshFairyList() { ShowTop3(); ReflashScroller(); ShowMyRank(); } }