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() { _myIndex = -1; if (_ui.m_c1.selectedIndex == 1) { if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) >= LeagueQuestionStatus.End && !LeagueDataManager.Instance.ListAnswerRankDatas.ContainsKey(_ui.m_c1.selectedIndex)) { await LeagueSproxy.ReqGetAnswerRank(_ui.m_c1.selectedIndex); } UpdateView(); } else if (_ui.m_c1.selectedIndex == 2) { if (!LeagueDataManager.Instance.ListAnswerRankDatas.ContainsKey(_ui.m_c1.selectedIndex)) { await LeagueSproxy.ReqGetAnswerRank(_ui.m_c1.selectedIndex); } UpdateView(); } } private void UpdateView() { if (LeagueDataManager.Instance.ListAnswerRankDatas.ContainsKey(_ui.m_c1.selectedIndex)) _ui.m_list.numItems = LeagueDataManager.Instance.ListAnswerRankDatas[_ui.m_c1.selectedIndex].Count; UpdateItem(_myIndex, _ui.m_comMine.target, true); } 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 : UI_ListRankItem item = UI_ListRankItem.Proxy(obj); if (isMine) { answerData = index >= 0 ? LeagueDataManager.Instance.ListAnswerRankDatas[_ui.m_c1.selectedIndex][index] : null; RoleInfoManager.Instance.UpdateHeadWithLv(item.m_comHead, RoleDataManager.headId, RoleDataManager.headBorderId, RoleDataManager.lvl); item.m_txtName.text = RoleDataManager.roleName; } else { answerData = LeagueDataManager.Instance.ListAnswerRankDatas[_ui.m_c1.selectedIndex][index]; OtherRoleInfoData roleInfoData = LeagueDataManager.Instance.GetMemberRoleInfo(answerData.RoleId); RoleInfoManager.Instance.UpdateHeadWithLv(item.m_comHead, roleInfoData.headId, roleInfoData.headBorderId, roleInfoData.roleLv); item.m_txtName.text = answerData == null ? "--" : roleInfoData.roleName; if (answerData.RoleId == RoleDataManager.roleId) _myIndex = index; } // int rank = index + 1; item.m_txtRank.text = answerData == null ? "--" : (index + 1).ToString(); item.m_c1.selectedIndex = answerData != null && index <= 3 ? index : 3; item.m_txtContent.SetVar("value", answerData == null ? "0" : answerData.Num.ToString()).FlushVars(); UI_ListRankItem.ProxyEnd(); } } }