using System; using System.Collections.Generic; using UILib; using UnityEngine; using XMainClient.UI; using XMainClient.UI.UICommon; using XUtliPoolLib; namespace XMainClient { internal class ChatMemberList : DlgBase { public override string fileName { get { return "GameSystem/ChatMemberList"; } } public override bool autoload { get { return true; } } public override bool isHideChat { get { return false; } } private List players; protected override void Init() { base.Init(); } public override void RegisterEvent() { base.uiBehaviour.m_wrap.RegisterItemUpdateEventHandler(new WrapItemUpdateEventHandler(this.WrapContentItemUpdated)); base.uiBehaviour.m_sprClose.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnCloseClick)); } protected override void OnShow() { base.OnShow(); base.uiBehaviour.m_scroll.ResetPosition(); GroupChatDocument specificDocument = XDocuments.GetSpecificDocument(GroupChatDocument.uuID); specificDocument.ReqGetGroupInfo(DlgBase.singleton.ChatGroupId); } public void Refresh() { GroupChatDocument specificDocument = XDocuments.GetSpecificDocument(GroupChatDocument.uuID); bool flag = specificDocument.players != null; if (flag) { CGroupPlayerInfo[] array = new CGroupPlayerInfo[specificDocument.players.Count]; specificDocument.players.CopyTo(array); this.SelectByState(array); base.uiBehaviour.m_wrap.SetContentCount(this.players.Count, false); } } private void SelectByState(CGroupPlayerInfo[] pp) { bool flag = this.players == null; if (flag) { this.players = new List(); } else { this.players.Clear(); } int i = 0; int num = pp.Length; while (i < num) { bool flag2 = pp[i].degree < 0; if (flag2) { bool flag3 = pp[i].roleid != XSingleton.singleton.XPlayerData.RoleID; if (flag3) { this.players.Add(pp[i]); } } i++; } } private void OnCloseClick(IXUISprite spr) { this.SetVisible(false, true); } private void WrapContentItemUpdated(Transform t, int index) { bool flag = this.players == null || this.players[index] == null; if (!flag) { IXUISprite ixuisprite = t.Find("head").GetComponent("XUISprite") as IXUISprite; IXUILabel ixuilabel = t.Find("level").GetComponent("XUILabel") as IXUILabel; IXUILabel ixuilabel2 = t.Find("UID").GetComponent("XUILabel") as IXUILabel; IXUILabel ixuilabel3 = t.Find("PPT").GetComponent("XUILabel") as IXUILabel; IXUILabelSymbol ixuilabelSymbol = t.Find("name").GetComponent("XUILabelSymbol") as IXUILabelSymbol; IXUISprite ixuisprite2 = t.Find("Btn_chat").GetComponent("XUISprite") as IXUISprite; IXUISprite ixuisprite3 = t.Find("add").GetComponent("XUISprite") as IXUISprite; IXUILabel ixuilabel4 = t.Find("guild").GetComponent("XUILabel") as IXUILabel; IXUISprite ixuisprite4 = t.Find("ProfIcon").GetComponent("XUISprite") as IXUISprite; int profession = (int)this.players[index].profession; ixuisprite4.spriteName = XSingleton.singleton.GetProfIcon(profession); ixuisprite.spriteName = XSingleton.singleton.GetProfHeadIcon2(profession); ixuisprite2.ID = this.players[index].roleid; ixuisprite3.ID = this.players[index].roleid; string text = this.players[index].guild; bool flag2 = string.IsNullOrEmpty(text); if (flag2) { text = XStringDefineProxy.GetString("NONE"); } ixuilabel4.SetText(text); ixuisprite2.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnChatClick)); ixuisprite3.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnFriendClick)); bool flag3 = DlgBase.singleton.IsMyFriend(this.players[index].roleid); ixuisprite3.SetVisible(!flag3); ixuilabel.SetText(this.players[index].level.ToString()); ixuilabel3.SetText(this.players[index].ppt.ToString()); ixuilabelSymbol.InputText = this.players[index].rolename; ixuilabel2.SetText(this.players[index].uid.ToString()); } } private void OnChatClick(IXUISprite spr) { this.SetVisible(false, true); bool flag = !XSingleton.singleton.IsSystemOpened(XSysDefine.XSys_Friends); if (flag) { int sysid = XFastEnumIntEqualityComparer.ToInt(XSysDefine.XSys_Friends); int sysOpenLevel = XSingleton.singleton.GetSysOpenLevel(sysid); XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("EXPEDITION_REQUIRED_LEVEL", new object[] { sysOpenLevel }) + XSingleton.singleton.GetSysName(sysid), "fece00"); } else { CGroupPlayerInfo player = this.GetPlayer(spr.ID); DlgBase.singleton.SetPlayerInfo(spr.ID, player.rolename, player.setid, player.ppt, player.profession); DlgBase.singleton.PrivateChat(null); } } private void OnFriendClick(IXUISprite spr) { ulong id = spr.ID; DlgBase.singleton.AddFriendById(id); } private CGroupPlayerInfo GetPlayer(ulong roleid) { bool flag = this.players != null; if (flag) { foreach (CGroupPlayerInfo cgroupPlayerInfo in this.players) { bool flag2 = cgroupPlayerInfo.roleid == roleid; if (flag2) { //List.Enumerator enumerator; //return enumerator.Current; return cgroupPlayerInfo; } } } return null; } } }