From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XMainClient/XActivityInviteDocument.cs | 188 +++++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/XActivityInviteDocument.cs (limited to 'Client/Assets/Scripts/XMainClient/XActivityInviteDocument.cs') diff --git a/Client/Assets/Scripts/XMainClient/XActivityInviteDocument.cs b/Client/Assets/Scripts/XMainClient/XActivityInviteDocument.cs new file mode 100644 index 00000000..21166163 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/XActivityInviteDocument.cs @@ -0,0 +1,188 @@ +using System; +using System.Collections.Generic; +using XMainClient.UI; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class XActivityInviteDocument : XDocComponent + { + public override uint ID + { + get + { + return XActivityInviteDocument.uuID; + } + } + + public static XActivityInviteDocument Doc + { + get + { + return XSingleton.singleton.Doc.GetXComponent(XActivityInviteDocument.uuID) as XActivityInviteDocument; + } + } + + public XActivityInviteDocument.OpType CurOpType { get; private set; } + + public new static readonly uint uuID = XSingleton.singleton.XHash("ActivityInviteDocument"); + + public int ShowType = -1; + + public Dictionary> MemberInfos = new Dictionary>(); + + public enum OpType + { + Send, + Invite + } + + public static void Execute(OnLoadedCallback callback = null) + { + } + + public override void OnAttachToHost(XObject host) + { + base.OnAttachToHost(host); + this.MemberInfos.Add(ActivityInviteTarget.Friend, new List()); + this.MemberInfos.Add(ActivityInviteTarget.Guild, new List()); + } + + protected override void EventSubscribe() + { + base.EventSubscribe(); + base.RegisterEvent(XEventDefine.XEvent_GuildMemberList, new XComponent.XEventHandler(this.OnGuildMemberChanged)); + base.RegisterEvent(XEventDefine.XEvent_FriendInfoChange, new XComponent.XEventHandler(this.OnFriendMemberChanged)); + base.RegisterEvent(XEventDefine.XEvent_FriendList, new XComponent.XEventHandler(this.OnFriendMemberChanged)); + } + + public override void OnDetachFromHost() + { + base.OnDetachFromHost(); + } + + protected override void OnReconnected(XReconnectedEventArgs arg) + { + } + + public override void OnEnterSceneFinally() + { + base.OnEnterSceneFinally(); + } + + public bool OnGuildMemberChanged(XEventArgs args) + { + XGuildMemberDocument specificDocument = XDocuments.GetSpecificDocument(XGuildMemberDocument.uuID); + List memberList = specificDocument.MemberList; + bool flag = this.MemberInfos.ContainsKey(ActivityInviteTarget.Guild); + if (flag) + { + this.MemberInfos[ActivityInviteTarget.Guild].Clear(); + } + else + { + this.MemberInfos[ActivityInviteTarget.Guild] = new List(); + } + List list = this.MemberInfos[ActivityInviteTarget.Guild]; + for (int i = 0; i < memberList.Count; i++) + { + XGuildMember xguildMember = memberList[i]; + bool flag2 = !xguildMember.isOnline && this.ShouldBeOnline(); + if (!flag2) + { + list.Add(new InviteMemberInfo + { + uid = xguildMember.uid, + name = xguildMember.name, + level = xguildMember.level, + ppt = xguildMember.ppt, + vip = xguildMember.vip, + profession = (uint)xguildMember.profession + }); + } + } + bool flag3 = DlgBase.singleton.IsVisible(); + if (flag3) + { + DlgBase.singleton.Refresh(ActivityInviteTarget.Guild); + } + return true; + } + + public bool OnFriendMemberChanged(XEventArgs args) + { + List friendData = DlgBase.singleton.GetFriendData(); + bool flag = this.MemberInfos.ContainsKey(ActivityInviteTarget.Friend); + if (flag) + { + this.MemberInfos[ActivityInviteTarget.Friend].Clear(); + } + else + { + this.MemberInfos[ActivityInviteTarget.Friend] = new List(); + } + List list = this.MemberInfos[ActivityInviteTarget.Friend]; + for (int i = 0; i < friendData.Count; i++) + { + XFriendData xfriendData = friendData[i]; + bool flag2 = xfriendData.online == 0u && this.ShouldBeOnline(); + if (!flag2) + { + list.Add(new InviteMemberInfo + { + uid = xfriendData.roleid, + name = xfriendData.name, + level = xfriendData.level, + ppt = xfriendData.powerpoint, + vip = xfriendData.viplevel, + guildname = xfriendData.guildname, + profession = xfriendData.profession, + degree = xfriendData.degreeAll + }); + } + } + list.Sort(new Comparison(this.SortDegree)); + bool flag3 = DlgBase.singleton.IsVisible(); + if (flag3) + { + DlgBase.singleton.Refresh(ActivityInviteTarget.Friend); + } + return true; + } + + private int SortDegree(InviteMemberInfo x, InviteMemberInfo y) + { + return (int)(y.degree - x.degree); + } + + private bool ShouldBeOnline() + { + XActivityInviteDocument.OpType curOpType = this.CurOpType; + return curOpType != XActivityInviteDocument.OpType.Send && (curOpType == XActivityInviteDocument.OpType.Invite || true); + } + + public void ShowActivityInviteView(int type, XActivityInviteDocument.OpType req) + { + this.ShowType = type; + bool flag = this.ShowType > 0; + if (flag) + { + this.CurOpType = req; + bool flag2 = !DlgBase.singleton.IsVisible(); + if (flag2) + { + DlgBase.singleton.SetVisibleWithAnimation(true, null); + } + } + } + + public void SendTargetReq() + { + } + + public void SendTargetReqSuccess() + { + } + } +} -- cgit v1.1-26-g67d0