From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XMainClient/Chat/ChatMemberList.cs | 187 +++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/Chat/ChatMemberList.cs (limited to 'Client/Assets/Scripts/XMainClient/Chat/ChatMemberList.cs') diff --git a/Client/Assets/Scripts/XMainClient/Chat/ChatMemberList.cs b/Client/Assets/Scripts/XMainClient/Chat/ChatMemberList.cs new file mode 100644 index 00000000..0cc9c80a --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/Chat/ChatMemberList.cs @@ -0,0 +1,187 @@ +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; + } + } +} -- cgit v1.1-26-g67d0