From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XMainClient/XFriendsSearchView.cs | 297 +++++++++++++++++++++ 1 file changed, 297 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/XFriendsSearchView.cs (limited to 'Client/Assets/Scripts/XMainClient/XFriendsSearchView.cs') diff --git a/Client/Assets/Scripts/XMainClient/XFriendsSearchView.cs b/Client/Assets/Scripts/XMainClient/XFriendsSearchView.cs new file mode 100644 index 00000000..8f6058bf --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/XFriendsSearchView.cs @@ -0,0 +1,297 @@ +using System; +using System.Collections.Generic; +using KKSG; +using UILib; +using UnityEngine; +using XMainClient.UI; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class XFriendsSearchView : DlgBase + { + public override string fileName + { + get + { + return "GameSystem/FriendsSearchDlg"; + } + } + + public override int group + { + get + { + return 1; + } + } + + public override bool autoload + { + get + { + return true; + } + } + + private bool mIsListInited; + + private int m_RefreshCD; + + private uint mTimerID; + + private ulong m_AddFriendId = 0UL; + + private XFriendsDocument _doc = null; + + private List m_UIList = new List(); + + private XPlayerInfoChildView m_AddFriendListTempView; + + private XTimerMgr.AccurateElapsedEventHandler _onTimeCb = null; + + private RandomFriendWaitListRes _waitList; + + private List m_RandomFriendIndexSortList = new List(); + + protected override void Init() + { + this._doc = XDocuments.GetSpecificDocument(XFriendsDocument.uuID); + this.m_AddFriendListTempView = new XPlayerInfoChildView(); + this._onTimeCb = new XTimerMgr.AccurateElapsedEventHandler(this.OnTimer); + this.mIsListInited = false; + } + + public override void RegisterEvent() + { + base.uiBehaviour.m_Close.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnCloseClicked)); + base.uiBehaviour.m_Refresh.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnRefreshFriends)); + base.uiBehaviour.m_AddFriend.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnAddFriendDirect)); + } + + public void ShowBoard(RandomFriendWaitListRes waitList) + { + bool flag = !base.IsVisible(); + if (flag) + { + this._waitList = waitList; + this.SetVisibleWithAnimation(true, null); + } + } + + protected override void OnShow() + { + base.OnShow(); + XPlatformAbilityDocument.Doc.QueryQQVipInfo(); + bool flag = !this.mIsListInited; + if (flag) + { + base.uiBehaviour.m_FriendRandomListPool.FakeReturnAll(); + this.m_UIList.Clear(); + for (int i = 0; i < 4; i++) + { + GameObject gameObject = base.uiBehaviour.m_FriendRandomListPool.FetchGameObject(false); + gameObject.SetActive(false); + this.m_UIList.Add(gameObject); + gameObject.transform.localPosition = new Vector3(base.uiBehaviour.m_FriendRandomListPool.TplPos.x, base.uiBehaviour.m_FriendRandomListPool.TplPos.y - (float)(i * base.uiBehaviour.m_FriendRandomListPool.TplHeight), base.uiBehaviour.m_FriendRandomListPool.TplPos.z); + } + base.uiBehaviour.m_FriendRandomListPool.ActualReturnAll(false); + this.mIsListInited = true; + } + base.uiBehaviour.m_ScrollView.ResetPosition(); + this.m_RefreshCD = 0; + XSingleton.singleton.KillTimer(this.mTimerID); + this.mTimerID = 0u; + base.uiBehaviour.m_SearchName.SetText(""); + base.uiBehaviour.m_CountdownText.SetText(XStringDefineProxy.GetString("FRIEND_ADDDLG_NO_COUNTDOWN")); + this.OnRefreshRandomFriend(this._waitList); + } + + protected override void OnHide() + { + XSingleton.singleton.KillTimer(this.mTimerID); + this.mTimerID = 0u; + base.OnHide(); + } + + protected override void OnUnload() + { + this.m_AddFriendListTempView = null; + this._doc = null; + XSingleton.singleton.KillTimer(this.mTimerID); + this.mTimerID = 0u; + base.OnUnload(); + } + + public bool OnCloseClicked(IXUIButton sp) + { + this.SetVisibleWithAnimation(false, null); + DlgBase.singleton.RefreshUI(); + return true; + } + + public bool OnAddFriend(IXUIButton sp) + { + ulong id = sp.ID; + bool flag = id == XSingleton.singleton.XPlayerData.RoleID; + bool result; + if (flag) + { + XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("FRIENDS_NOT_ADD_SELF"), "fece00"); + result = true; + } + else + { + this.m_AddFriendId = id; + DlgBase.singleton.AddFriendById(id); + result = true; + } + return result; + } + + public void OnHeadClick(IXUISprite go) + { + ulong id = go.ID; + XCharacterCommonMenuDocument.ReqCharacterMenuInfo(id, false); + } + + public bool OnAddFriendDirect(IXUIButton sp) + { + string text = base.uiBehaviour.m_SearchName.GetText(); + bool flag = (text + string.Empty).Length <= 0; + bool result; + if (flag) + { + XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("FRIENDS_NAME_CANNOT_NULL"), "fece00"); + result = false; + } + else + { + DlgBase.singleton.AddFriendByName(text); + result = true; + } + return result; + } + + public bool OnRefreshFriends(IXUIButton sp) + { + bool flag = this.m_RefreshCD > 0; + if (flag) + { + XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("FRIENDS_REFRESH_CD_HINT"), "fece00"); + } + else + { + this.m_RefreshCD = XSingleton.singleton.RefreshAddListCD; + bool flag2 = this.m_RefreshCD > 0; + if (flag2) + { + XSingleton.singleton.KillTimer(this.mTimerID); + base.uiBehaviour.m_CountdownText.SetText(XStringDefineProxy.GetString("FRIEND_ADDDLG_COUNTDOWN_FMT", new object[] + { + this.m_RefreshCD + })); + this.mTimerID = XSingleton.singleton.SetTimerAccurate(1f, this._onTimeCb, null); + } + DlgBase.singleton.RandomFriend(); + } + return true; + } + + protected void OnTimer(object param, float delay) + { + IXUILabel countdownText = base.uiBehaviour.m_CountdownText; + string key = "FRIEND_ADDDLG_COUNTDOWN_FMT"; + object[] array = new object[1]; + int num = 0; + int num2 = this.m_RefreshCD - 1; + this.m_RefreshCD = num2; + array[num] = num2; + countdownText.SetText(XStringDefineProxy.GetString(key, array)); + bool flag = this.m_RefreshCD > 0; + if (flag) + { + this.mTimerID = XSingleton.singleton.SetTimerAccurate(1f, this._onTimeCb, null); + } + else + { + base.uiBehaviour.m_CountdownText.SetText(XStringDefineProxy.GetString("FRIEND_ADDDLG_NO_COUNTDOWN")); + } + } + + public void FriendAdded() + { + bool flag = !base.IsVisible(); + if (!flag) + { + List list = ListPool.Get(); + base.uiBehaviour.m_FriendRandomListPool.GetActiveList(list); + for (int i = 0; i < list.Count; i++) + { + IXUIButton ixuibutton = list[i].transform.Find("add").GetComponent("XUIButton") as IXUIButton; + bool flag2 = ixuibutton.ID == this.m_AddFriendId; + if (flag2) + { + ixuibutton.SetEnable(false, false); + } + } + ListPool.Release(list); + } + } + + private void SortRandomFriendByOnlineState(RandomFriendWaitListRes waitList) + { + this.m_RandomFriendIndexSortList.Clear(); + for (int i = 0; i < waitList.lastlogin.Count; i++) + { + bool flag = waitList.lastlogin[i] == 0u; + if (flag) + { + this.m_RandomFriendIndexSortList.Insert(0, i); + } + else + { + this.m_RandomFriendIndexSortList.Add(i); + } + } + } + + public void OnRefreshRandomFriend(RandomFriendWaitListRes waitList) + { + this.SortRandomFriendByOnlineState(waitList); + for (int i = 0; i < this.m_RandomFriendIndexSortList.Count; i++) + { + bool flag = i >= this.m_UIList.Count; + if (flag) + { + break; + } + int num = this.m_RandomFriendIndexSortList[i]; + GameObject gameObject = this.m_UIList[i]; + gameObject.SetActive(true); + XPlayerInfoChildView addFriendListTempView = this.m_AddFriendListTempView; + addFriendListTempView.FindFrom(gameObject.transform); + IXUIButton ixuibutton = gameObject.transform.Find("add").GetComponent("XUIButton") as IXUIButton; + bool flag2 = num < waitList.nickid.Count; + if (flag2) + { + addFriendListTempView.uidLab.SetText(waitList.nickid[num].ToString()); + } + addFriendListTempView.lbName.InputText = XSingleton.singleton.StringCombine(XTitleDocument.GetTitleWithFormat(waitList.titleid[num], waitList.name[num]), XRechargeDocument.GetVIPIconString(waitList.viplevel[num])); + addFriendListTempView.lbLevel.SetText(waitList.level[num].ToString()); + addFriendListTempView.lbPPT.SetText(waitList.powerpoint[num].ToString()); + addFriendListTempView.sprHead.SetSprite(XSingleton.singleton.GetProfHeadIcon2((int)waitList.profession[num])); + addFriendListTempView.SetGuildName(waitList.guildname[num]); + DlgBase.singleton.UpdateFriendOnlineState(gameObject.transform, (waitList.lastlogin[num] == 0u) ? 1u : 0u, waitList.lastlogin[num]); + ixuibutton.SetEnable(true, false); + ixuibutton.ID = waitList.roleid[num]; + ixuibutton.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnAddFriend)); + IXUISprite ixuisprite = gameObject.transform.GetComponent("XUISprite") as IXUISprite; + ixuisprite.ID = waitList.roleid[num]; + ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnHeadClick)); + } + base.uiBehaviour.m_ScrollView.ResetPosition(); + } + } +} -- cgit v1.1-26-g67d0