using System.Text.RegularExpressions; using ET; using FairyGUI; using UI.League; using UnityEngine; namespace GFGGame { //联盟答题排行榜 public class LeagueAnswerRankView : BaseWindow { private UI_LeagueAnswerRankUI _ui; private int _myIndex = -1; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_LeagueAnswerRankUI.PACKAGE_NAME; _ui = UI_LeagueAnswerRankUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_btnClose.onClick.Add(Hide); _ui.m_c1.onChanged.Add(OnCtrlChange); _ui.m_list.itemRenderer = RenderListItem; } protected override void AddEventListener() { base.AddEventListener(); } protected override void OnShown() { base.OnShown(); _ui.m_c1.selectedIndex = 1; } protected override void OnHide() { base.OnHide(); _ui.m_c1.selectedIndex = 0; } protected override void RemoveEventListener() { base.RemoveEventListener(); } private async void OnCtrlChange() { if (_ui.m_c1.selectedIndex == 1) { if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) == LeagueQuestionStatus.End && LeagueDataManager.Instance.ListAnswerRankDatas[_ui.m_c1.selectedIndex].Count == 0 || LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) > LeagueQuestionStatus.End) { await LeagueSproxy.ReqGetAnswerRank(_ui.m_c1.selectedIndex); } UpdateView(); } else if (_ui.m_c1.selectedIndex == 2) { if (LeagueDataManager.Instance.ListAnswerRankDatas[_ui.m_c1.selectedIndex].Count == 0) { await LeagueSproxy.ReqGetAnswerRank(_ui.m_c1.selectedIndex); } UpdateView(); } } private void UpdateView() { _ui.m_list.numItems = LeagueDataManager.Instance.ListAnswerRankDatas[_ui.m_c1.selectedIndex].Count; } private void RenderListItem(int index, GObject obj) { UpdateItem(index, obj, false); } private void UpdateItem(int index, GObject obj, bool isMine) { LeagueAnswerData answerData = index < 0 ? null : LeagueDataManager.Instance.ListAnswerRankDatas[_ui.m_c1.selectedIndex][index]; UI_ListRankItem item = UI_ListRankItem.Proxy(obj); if (isMine) { RoleInfoManager.Instance.UpdateHeadWithLv(item.target, RoleDataManager.headId, RoleDataManager.headBorderId, RoleDataManager.lvl); } else { OtherRoleInfoData roleInfoData = LeagueDataManager.Instance.LeagueData.LeagueMemberDatas[answerData.RoleId].RoleInfo; RoleInfoManager.Instance.UpdateHeadWithLv(item.target, roleInfoData.headId, roleInfoData.headBorderId, roleInfoData.roleLv); } int rank = index + 1; item.m_txtRank.text = answerData == null ? "--" : rank.ToString(); item.m_c1.selectedIndex = answerData != null && rank <= 3 ? rank : 0; item.m_txtRank.text = string.Format("答对{0}题", answerData == null ? 0 : answerData.Num); UI_ListRankItem.ProxyEnd(); } } }