From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XMainClient/XPKInvitationView.cs | 251 +++++++++++++++++++++ 1 file changed, 251 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/XPKInvitationView.cs (limited to 'Client/Assets/Scripts/XMainClient/XPKInvitationView.cs') diff --git a/Client/Assets/Scripts/XMainClient/XPKInvitationView.cs b/Client/Assets/Scripts/XMainClient/XPKInvitationView.cs new file mode 100644 index 00000000..79d1f298 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/XPKInvitationView.cs @@ -0,0 +1,251 @@ +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 XPKInvitationView : DlgBase + { + public override string fileName + { + get + { + return "GameSystem/pkdlg"; + } + } + + public override bool autoload + { + get + { + return true; + } + } + + private XPKInvitationDocument _Doc; + + private uint _CDToken = 0u; + + private List m_TimeLabelList = new List(); + + private List m_TimeInvID = new List(); + + private Dictionary m_TimeDic = new Dictionary(); + + protected override void Init() + { + base.Init(); + this._Doc = XDocuments.GetSpecificDocument(XPKInvitationDocument.uuID); + } + + protected override void OnHide() + { + base.OnHide(); + XSingleton.singleton.KillTimer(this._CDToken); + bool flag = false; + for (int i = 0; i < this._Doc.AllInvitation.Count; i++) + { + bool flag2 = this._Doc.AllInvitation[i].ctime > 0u; + if (flag2) + { + flag = true; + break; + } + } + bool flag3 = !flag; + if (flag3) + { + this._Doc.InvitationCount = 0u; + } + } + + public override void RegisterEvent() + { + base.RegisterEvent(); + base.uiBehaviour.m_Close.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnCloseBtnClicked)); + base.uiBehaviour.m_WrapContent.RegisterItemUpdateEventHandler(new WrapItemUpdateEventHandler(this.OnWrapContentUpdate)); + base.uiBehaviour.m_IgnoreAll.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnIgnoreAllClicked)); + base.uiBehaviour.m_Help.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnHelpBtnClicked)); + } + + protected override void OnShow() + { + base.OnShow(); + base.uiBehaviour.m_WrapContent.SetVisible(false); + this.m_TimeLabelList.Clear(); + this.m_TimeInvID.Clear(); + this.m_TimeDic.Clear(); + this._Doc.ReqAllPKInvitation(); + } + + public void StartTimer() + { + bool flag = !base.IsVisible(); + if (!flag) + { + for (int i = 0; i < this._Doc.AllInvitation.Count; i++) + { + this.m_TimeDic[this._Doc.AllInvitation[i].invID] = this._Doc.AllInvitation[i].ctime; + } + XSingleton.singleton.KillTimer(this._CDToken); + this._CDToken = XSingleton.singleton.SetTimer(1f, new XTimerMgr.ElapsedEventHandler(this.LeftTimeUpdate), null); + } + } + + private void LeftTimeUpdate(object o) + { + for (int i = 0; i < this._Doc.AllInvitation.Count; i++) + { + bool flag = this._Doc.AllInvitation[i].ctime > 0u; + if (flag) + { + InvFightRoleBrief invFightRoleBrief = this._Doc.AllInvitation[i]; + uint ctime = invFightRoleBrief.ctime; + invFightRoleBrief.ctime = ctime - 1u; + } + this.m_TimeDic[this._Doc.AllInvitation[i].invID] = this._Doc.AllInvitation[i].ctime; + int num = this.m_TimeInvID.IndexOf(this._Doc.AllInvitation[i].invID); + bool flag2 = num >= 0 && num < this.m_TimeLabelList.Count; + if (flag2) + { + IXUILabel ixuilabel = this.m_TimeLabelList[num]; + bool flag3 = ixuilabel.IsVisible(); + if (flag3) + { + bool flag4 = this._Doc.AllInvitation[i].ctime > 0u; + if (flag4) + { + ixuilabel.SetText(string.Format("{0}{1}", this._Doc.AllInvitation[i].ctime, XSingleton.singleton.GetString("SECOND_DUARATION"))); + } + else + { + ixuilabel.SetText(XSingleton.singleton.GetString("PK_TIME_END")); + } + } + } + } + XSingleton.singleton.KillTimer(this._CDToken); + this._CDToken = XSingleton.singleton.SetTimer(1f, new XTimerMgr.ElapsedEventHandler(this.LeftTimeUpdate), null); + } + + public void RefreshList() + { + bool flag = !base.IsVisible(); + if (!flag) + { + base.uiBehaviour.m_WrapContent.SetVisible(true); + base.uiBehaviour.m_WrapContent.SetContentCount(this._Doc.AllInvitation.Count, false); + } + } + + private void OnWrapContentUpdate(Transform t, int index) + { + List allInvitation = this._Doc.AllInvitation; + bool flag = index >= allInvitation.Count; + if (!flag) + { + this.SetInvitationInfo(t, allInvitation[index]); + } + } + + private void SetInvitationInfo(Transform t, InvFightRoleBrief info) + { + bool flag = info == null; + if (!flag) + { + IXUISprite ixuisprite = t.Find("head").GetComponent("XUISprite") as IXUISprite; + IXUILabelSymbol ixuilabelSymbol = t.Find("Name").GetComponent("XUILabelSymbol") as IXUILabelSymbol; + IXUILabel ixuilabel = t.Find("Level").GetComponent("XUILabel") as IXUILabel; + IXUILabel ixuilabel2 = t.Find("Position").GetComponent("XUILabel") as IXUILabel; + IXUILabel ixuilabel3 = t.Find("time").GetComponent("XUILabel") as IXUILabel; + IXUIButton ixuibutton = t.Find("yesBtn").GetComponent("XUIButton") as IXUIButton; + IXUIButton ixuibutton2 = t.Find("noBtn").GetComponent("XUIButton") as IXUIButton; + GameObject gameObject = t.Find("qqLaunch").gameObject; + GameObject gameObject2 = t.Find("wxLaunch").gameObject; + ixuisprite.SetSprite(XSingleton.singleton.GetProfHeadIcon2((int)info.profession)); + ixuilabelSymbol.InputText = XTitleDocument.GetTitleWithFormat(info.title, info.name); + ixuilabel.SetText(info.level.ToString()); + ixuilabel2.SetText(XSingleton.singleton.GetProfName((int)info.profession)); + gameObject.SetActive(XSingleton.singleton.Channel == XAuthorizationChannel.XAuthorization_QQ && info.isplatfriend); + gameObject2.SetActive(XSingleton.singleton.Channel == XAuthorizationChannel.XAuthorization_WeChat && info.isplatfriend); + ixuibutton.ID = info.invID; + ixuibutton2.ID = info.invID; + ixuibutton.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnAcceptBtnClicked)); + ixuibutton2.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnRejectBtnClicked)); + int num = this.m_TimeLabelList.IndexOf(ixuilabel3); + bool flag2 = num >= 0 && num < this.m_TimeInvID.Count; + if (flag2) + { + this.m_TimeInvID[num] = info.invID; + } + else + { + this.m_TimeLabelList.Add(ixuilabel3); + this.m_TimeInvID.Add(info.invID); + } + uint num2; + bool flag3 = this.m_TimeDic.TryGetValue(info.invID, out num2); + if (flag3) + { + bool flag4 = num2 > 0u; + if (flag4) + { + ixuilabel3.SetText(string.Format("{0}{1}", num2, XSingleton.singleton.GetString("SECOND_DUARATION"))); + } + else + { + ixuilabel3.SetText(XSingleton.singleton.GetString("PK_TIME_END")); + } + } + } + } + + private bool OnAcceptBtnClicked(IXUIButton btn) + { + uint num; + bool flag = this.m_TimeDic.TryGetValue(btn.ID, out num); + if (flag) + { + bool flag2 = num > 0u; + if (flag2) + { + this._Doc.AcceptInvitation(btn.ID); + } + else + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("PK_TIME_END_TIP"), "fece00"); + } + } + return true; + } + + private bool OnRejectBtnClicked(IXUIButton btn) + { + this._Doc.RejectInvitation(btn.ID); + return true; + } + + private bool OnIgnoreAllClicked(IXUIButton btn) + { + this._Doc.IgnoreAllInvitation(); + return true; + } + + private bool OnHelpBtnClicked(IXUIButton btn) + { + DlgBase.singleton.ShowHelp(XSysDefine.XSys_PK); + return true; + } + + private bool OnCloseBtnClicked(IXUIButton btn) + { + this.SetVisibleWithAnimation(false, null); + return true; + } + } +} -- cgit v1.1-26-g67d0