From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../UI/XWelfareKingdomPrivilegeHandler.cs | 288 +++++++++++++++++++++ 1 file changed, 288 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/UI/XWelfareKingdomPrivilegeHandler.cs (limited to 'Client/Assets/Scripts/XMainClient/UI/XWelfareKingdomPrivilegeHandler.cs') diff --git a/Client/Assets/Scripts/XMainClient/UI/XWelfareKingdomPrivilegeHandler.cs b/Client/Assets/Scripts/XMainClient/UI/XWelfareKingdomPrivilegeHandler.cs new file mode 100644 index 00000000..208d4da0 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/XWelfareKingdomPrivilegeHandler.cs @@ -0,0 +1,288 @@ +using System; +using System.Collections.Generic; +using System.Text; +using KKSG; +using UILib; +using UnityEngine; +using XMainClient.UI.UICommon; +using XUpdater; +using XUtliPoolLib; + +namespace XMainClient.UI +{ + internal class XWelfareKingdomPrivilegeHandler : DlgHandlerBase + { + protected override string FileName + { + get + { + return "GameSystem/Welfare/KingdomPrivilege"; + } + } + + private XUIPool m_PrivilegeTypePool = new XUIPool(XSingleton.singleton.m_uiTool); + + private IXUIList m_PrivilegeTypeList; + + private List m_LeftTimeLabel = new List(); + + private List m_LeftTime = new List(); + + private uint _CDToken = 0u; + + protected override void Init() + { + base.Init(); + Transform transform = base.PanelObject.transform.Find("ListType/Grid/Tpl"); + this.m_PrivilegeTypePool.SetupPool(transform.parent.parent.gameObject, transform.gameObject, 3u, false); + this.m_PrivilegeTypeList = (base.PanelObject.transform.Find("ListType/Grid").GetComponent("XUIList") as IXUIList); + } + + protected override void OnHide() + { + base.OnHide(); + XSingleton.singleton.KillTimer(this._CDToken); + XSingleton.singleton.DestroyTextureInActivePool(this.m_PrivilegeTypePool, "Icon"); + } + + public override void RefreshData() + { + XWelfareDocument specificDocument = XDocuments.GetSpecificDocument(XWelfareDocument.uuID); + PayMemberTable payMemberTable = XWelfareDocument.PayMemberTable; + List payMemeberInfo = specificDocument.PayMemeberInfo; + this.m_LeftTimeLabel.Clear(); + this.m_LeftTime.Clear(); + bool flag = payMemeberInfo == null; + if (!flag) + { + this.m_PrivilegeTypePool.FakeReturnAll(); + for (int i = 0; i < payMemberTable.Table.Length; i++) + { + int systemID = payMemberTable.Table[i].SystemID; + int id = payMemberTable.Table[i].ID; + bool flag2 = XSingleton.singleton.IsSystemOpen(systemID); + if (flag2) + { + GameObject gameObject = this.m_PrivilegeTypePool.FetchGameObject(false); + gameObject.transform.parent = this.m_PrivilegeTypeList.gameObject.transform; + gameObject.transform.localScale = Vector3.one; + bool flag3 = false; + for (int j = 0; j < payMemeberInfo.Count; j++) + { + bool flag4 = id == payMemeberInfo[j].ID; + if (flag4) + { + flag3 = true; + this.SetBaseInfo(gameObject, payMemberTable.Table[i], payMemeberInfo[j]); + } + } + bool flag5 = !flag3; + if (flag5) + { + this.SetBaseInfo(gameObject, payMemberTable.Table[i], null); + } + } + } + this.m_PrivilegeTypeList.Refresh(); + this.m_PrivilegeTypePool.ActualReturnAll(false); + XSingleton.singleton.KillTimer(this._CDToken); + this._CDToken = XSingleton.singleton.SetTimer(1f, new XTimerMgr.ElapsedEventHandler(this.LeftTimeUpdate), null); + } + } + + private void SetBaseInfo(GameObject item, PayMemberTable.RowData baseInfo, PayMember info) + { + float num = (float)baseInfo.Price / 100f; + IXUILabel ixuilabel = item.transform.Find("Title").GetComponent("XUILabel") as IXUILabel; + ixuilabel.SetText(baseInfo.Name); + XWelfareDocument specificDocument = XDocuments.GetSpecificDocument(XWelfareDocument.uuID); + IXUISprite ixuisprite = item.transform.Find("TqIcon").GetComponent("XUISprite") as IXUISprite; + ixuisprite.SetSprite(specificDocument.GetMemberPrivilegeIcon((MemberPrivilege)baseInfo.ID)); + IXUITexture ixuitexture = item.transform.Find("Icon").GetComponent("XUITexture") as IXUITexture; + ixuitexture.SetTexturePath(baseInfo.Icon); + IXUILabel ixuilabel2 = item.transform.Find("Value").GetComponent("XUILabel") as IXUILabel; + ixuilabel2.SetText(XStringDefineProxy.GetString("PAY_KINGDOM_VALUE", new object[] + { + baseInfo.Value[1], + XSingleton.singleton.ChooseProfString(XBagDocument.GetItemConf((int)baseInfo.Value[0]).ItemName, 0u) + })); + IXUILabel ixuilabel3 = item.transform.Find("Detail/DetailDesc").GetComponent("XUILabel") as IXUILabel; + string[] array = baseInfo.Desc.Split(new char[] + { + '|' + }); + int num2 = 3; + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < array.Length; i++) + { + bool flag = i < num2; + if (flag) + { + stringBuilder.Append(array[i]); + } + else + { + bool flag2 = i == num2; + if (flag2) + { + stringBuilder.Append("......"); + break; + } + } + bool flag3 = i != array.Length - 1 && i != num2; + if (flag3) + { + stringBuilder.Append("\n"); + } + } + ixuilabel3.SetText(stringBuilder.ToString()); + IXUIButton ixuibutton = item.transform.Find("Btn").GetComponent("XUIButton") as IXUIButton; + IXUILabel ixuilabel4 = item.transform.Find("LeftTime").GetComponent("XUILabel") as IXUILabel; + IXUILabel ixuilabel5 = item.transform.Find("Btn/T").GetComponent("XUILabel") as IXUILabel; + this.m_LeftTimeLabel.Add(ixuilabel4); + bool flag4 = info != null; + if (flag4) + { + this.m_LeftTime.Add(info.ExpireTime); + this.SetLeftTime(ixuilabel4, info.ExpireTime); + ixuilabel5.SetText((info.ExpireTime > 0) ? XSingleton.singleton.GetString("PAY_KINGDOM_BUY_AGAIN") : baseInfo.Tip); + int @int = XSingleton.singleton.GetInt("WelfareMemberPrivilegeRenewDays"); + bool visible = info.ExpireTime <= 86400 * @int; + ixuibutton.SetVisible(visible); + } + else + { + ixuilabel4.SetVisible(false); + ixuilabel5.SetText(baseInfo.Tip); + this.m_LeftTime.Add(0); + ixuibutton.SetVisible(true); + } + ixuibutton.ID = (ulong)((long)baseInfo.ID); + ixuibutton.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnBuyBtnClicked)); + IXUISprite ixuisprite2 = item.transform.Find("Bg").GetComponent("XUISprite") as IXUISprite; + ixuisprite2.ID = (ulong)((long)baseInfo.ID); + ixuisprite2.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnDetailBtnClicked)); + } + + private void SetLeftTime(IXUILabel leftTime, int time) + { + leftTime.SetVisible(time > 0); + bool flag = time > 86400; + if (flag) + { + int num = time / 86400; + leftTime.SetText(string.Format("{0}{1}", XStringDefineProxy.GetString("PAY_KINGDOM_LEFTTIME", new object[] + { + num + }), XSingleton.singleton.GetString("DAY_DUARATION"))); + } + else + { + leftTime.SetText(XStringDefineProxy.GetString("PAY_KINGDOM_LEFTTIME", new object[] + { + XSingleton.singleton.TimeFormatString(time, 3, 3, 4, false, true) + })); + } + } + + private void LeftTimeUpdate(object o) + { + for (int i = 0; i < this.m_LeftTime.Count; i++) + { + bool flag = this.m_LeftTime[i] > 0; + if (flag) + { + List leftTime = this.m_LeftTime; + int index = i; + int num = leftTime[index]; + leftTime[index] = num - 1; + int @int = XSingleton.singleton.GetInt("WelfareMemberPrivilegeRenewDays"); + bool flag2 = this.m_LeftTime[i] == 0 || this.m_LeftTime[i] == 86400 * @int; + if (flag2) + { + XWelfareDocument specificDocument = XDocuments.GetSpecificDocument(XWelfareDocument.uuID); + specificDocument.ReqPayAllInfo(); + } + } + bool flag3 = i < this.m_LeftTimeLabel.Count; + if (flag3) + { + this.SetLeftTime(this.m_LeftTimeLabel[i], this.m_LeftTime[i]); + } + } + XSingleton.singleton.KillTimer(this._CDToken); + this._CDToken = XSingleton.singleton.SetTimer(1f, new XTimerMgr.ElapsedEventHandler(this.LeftTimeUpdate), null); + } + + private bool OnBuyBtnClicked(IXUIButton btn) + { + int num = (int)btn.ID; + XWelfareDocument specificDocument = XDocuments.GetSpecificDocument(XWelfareDocument.uuID); + PayMemberTable payMemberTable = XWelfareDocument.PayMemberTable; + List payMemeberInfo = specificDocument.PayMemeberInfo; + bool flag = payMemeberInfo == null; + bool result; + if (flag) + { + result = false; + } + else + { + for (int i = 0; i < payMemberTable.Table.Length; i++) + { + int id = payMemberTable.Table[i].ID; + bool flag2 = id == num; + if (flag2) + { + for (int j = 0; j < payMemeberInfo.Count; j++) + { + bool flag3 = id == payMemeberInfo[j].ID; + if (flag3) + { + bool flag4 = payMemeberInfo[j].ExpireTime > 0; + if (flag4) + { + DlgBase.singleton.Show(payMemberTable.Table[i], false, 0); + return true; + } + } + } + XRechargeDocument specificDocument2 = XDocuments.GetSpecificDocument(XRechargeDocument.uuID); + bool flag5 = XSingleton.singleton.XPlatform.Platfrom() == XPlatformType.Android; + if (flag5) + { + specificDocument2.SDKSubscribe(payMemberTable.Table[i].Price, 1, payMemberTable.Table[i].ServiceCode, payMemberTable.Table[i].Name, payMemberTable.Table[i].ParamID, PayParamType.PAY_PARAM_MEMBER); + } + else + { + bool flag6 = XSingleton.singleton.XPlatform.Platfrom() == XPlatformType.IOS; + if (flag6) + { + specificDocument2.SDKSubscribe(payMemberTable.Table[i].Price, payMemberTable.Table[i].Days, payMemberTable.Table[i].ServiceCode, payMemberTable.Table[i].Name, payMemberTable.Table[i].ParamID, PayParamType.PAY_PARAM_MEMBER); + } + } + return true; + } + } + result = true; + } + return result; + } + + private void OnDetailBtnClicked(IXUISprite sp) + { + int num = (int)sp.ID; + PayMemberTable payMemberTable = XWelfareDocument.PayMemberTable; + for (int i = 0; i < payMemberTable.Table.Length; i++) + { + int id = payMemberTable.Table[i].ID; + bool flag = id == num; + if (flag) + { + DlgBase.singleton.ShowDetail(payMemberTable.Table[i], true); + break; + } + } + } + } +} -- cgit v1.1-26-g67d0