From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Assets/Scripts/XMainClient/XLoginRewardView.cs | 468 +++++++++++++++++++++ 1 file changed, 468 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/XLoginRewardView.cs (limited to 'Client/Assets/Scripts/XMainClient/XLoginRewardView.cs') diff --git a/Client/Assets/Scripts/XMainClient/XLoginRewardView.cs b/Client/Assets/Scripts/XMainClient/XLoginRewardView.cs new file mode 100644 index 00000000..9ea3383f --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/XLoginRewardView.cs @@ -0,0 +1,468 @@ +using System; +using System.Collections.Generic; +using KKSG; +using UILib; +using UnityEngine; +using XMainClient.UI; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class XLoginRewardView : DlgHandlerBase + { + protected override string FileName + { + get + { + return "GameSystem/Welfare/LoginFrame"; + } + } + + public XUIPool m_LoginItemPool = new XUIPool(XSingleton.singleton.m_uiTool); + + private List m_LoginItemList = new List(); + + private XLoginRewardDocument _doc = null; + + private XWelfareDocument _welfDoc = null; + + private GameObject criticalConfirmPanel; + + private IXUIButton criticalConfirmOK; + + private XFx criticalEffect; + + private GameObject inputBlocker; + + private IXUIScrollView itemListPanel; + + private GameObject m_TQTips; + + private GameObject m_Fx; + + private GameObject m_QQVipIcon; + + private GameObject m_QQSVipIcon; + + private IXUILabelSymbol m_QQVipTip; + + private GameObject m_QQGameCenter; + + private GameObject m_WXGameCenter; + + private static readonly int COLUMN = 5; + + protected override void Init() + { + base.Init(); + this._doc = XDocuments.GetSpecificDocument(XLoginRewardDocument.uuID); + this._doc.View = this; + this._welfDoc = XDocuments.GetSpecificDocument(XWelfareDocument.uuID); + this.m_LoginItemPool.SetupPool(base.PanelObject.transform.Find("Panel").gameObject, base.PanelObject.transform.Find("Panel/LoginTpl").gameObject, 30u, false); + this.criticalConfirmPanel = base.PanelObject.transform.Find("CriticalConfirm").gameObject; + this.criticalConfirmOK = (this.criticalConfirmPanel.transform.Find("P/OK").GetComponent("XUIButton") as IXUIButton); + this.criticalEffect = XSingleton.singleton.CreateFx("Effects/FX_Particle/UIfx/UI_gorgeous", null, true); + this.inputBlocker = base.PanelObject.transform.Find("InputBlocker").gameObject; + this.itemListPanel = (base.PanelObject.transform.Find("Panel").GetComponent("XUIScrollView") as IXUIScrollView); + this.m_TQTips = base.PanelObject.transform.Find("P/T2").gameObject; + this.m_Fx = base.PanelObject.transform.Find("effect").gameObject; + this.m_Fx.SetActive(false); + this.m_QQVipIcon = base.PanelObject.transform.Find("QQVIPTS/QQVIP").gameObject; + this.m_QQSVipIcon = base.PanelObject.transform.Find("QQVIPTS/QQSVIP").gameObject; + this.m_QQVipTip = (base.PanelObject.transform.Find("QQVIPTS").GetComponent("XUILabelSymbol") as IXUILabelSymbol); + this.m_QQGameCenter = base.PanelObject.transform.Find("QQ").gameObject; + this.m_WXGameCenter = base.PanelObject.transform.Find("Wechat").gameObject; + } + + public override void RegisterEvent() + { + base.RegisterEvent(); + this.criticalConfirmOK.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnCriticalBtnOKClicked)); + } + + protected override void OnShow() + { + base.OnShow(); + this.criticalConfirmPanel.SetActive(false); + this.inputBlocker.SetActive(false); + this.m_TQTips.SetActive(this._welfDoc.IsOwnMemberPrivilege(MemberPrivilege.KingdomPrivilege_Commerce)); + this.RefreshPage(); + this.RefreshPlatformAbilityInfo(); + } + + protected override void OnHide() + { + base.OnHide(); + this.m_Fx.SetActive(false); + } + + public void ShowTQFx() + { + this.m_Fx.SetActive(false); + this.m_Fx.SetActive(true); + } + + private void RefreshPlatformAbilityInfo() + { + this.RefreshQQVipInfo(); + this.RefreshQQWXGameCenterInfo(); + } + + private void RefreshQQVipInfo() + { + QQVipInfoClient qqvipInfo = XPlatformAbilityDocument.Doc.QQVipInfo; + bool flag = XSingleton.singleton.Channel == XAuthorizationChannel.XAuthorization_QQ && XSingleton.singleton.IsSystemOpened(XSysDefine.XSys_QQVIP) && qqvipInfo != null; + if (flag) + { + this.m_QQVipTip.SetVisible(qqvipInfo.is_svip || qqvipInfo.is_vip); + SeqList seqList = qqvipInfo.is_svip ? XSingleton.singleton.GetSequenceList("QQSVipSignIn", true) : XSingleton.singleton.GetSequenceList("QQVipSignIn", true); + bool flag2 = seqList.Count > 0; + if (flag2) + { + int itemID = seqList[0, 0]; + int num = seqList[0, 1]; + string @string = XStringDefineProxy.GetString(qqvipInfo.is_svip ? "QQVIP_LOGIN_SVIP_TIP" : "QQVIP_LOGIN_VIP_TIP"); + string inputText = XSingleton.singleton.StringCombine(@string, XLabelSymbolHelper.FormatImage(itemID), num.ToString()); + this.m_QQVipTip.InputText = inputText; + } + this.m_QQVipIcon.SetActive(qqvipInfo.is_vip && !qqvipInfo.is_svip); + this.m_QQSVipIcon.SetActive(qqvipInfo.is_svip); + } + else + { + this.m_QQVipTip.SetVisible(false); + this.m_QQVipIcon.SetActive(false); + this.m_QQSVipIcon.SetActive(false); + } + } + + private void RefreshQQWXGameCenterInfo() + { + StartUpType launchTypeServerInfo = XSingleton.singleton.GetLaunchTypeServerInfo(); + bool flag = XSingleton.singleton.Channel == XAuthorizationChannel.XAuthorization_QQ && XSingleton.singleton.IsSystemOpened(XSysDefine.XSys_Platform_StartPrivilege) && launchTypeServerInfo == StartUpType.StartUp_QQ; + if (flag) + { + string[] andSeparateValue = XSingleton.singleton.GetAndSeparateValue("QQGameCenterSingnIn", XGlobalConfig.AllSeparators); + IXUILabelSymbol ixuilabelSymbol = this.m_QQGameCenter.transform.Find("T").GetComponent("XUILabelSymbol") as IXUILabelSymbol; + string text = XSingleton.singleton.GetString("GAMECENTER_SIGN_IN_QQ"); + for (int i = 0; i < andSeparateValue.Length; i += 2) + { + bool flag2 = i + 1 < andSeparateValue.Length; + if (flag2) + { + text = XSingleton.singleton.StringCombine(text, XLabelSymbolHelper.FormatImage(int.Parse(andSeparateValue[i])), andSeparateValue[i + 1]); + } + } + ixuilabelSymbol.InputText = text; + this.m_QQGameCenter.SetActive(true); + bool flag3 = this.m_QQVipTip.IsVisible(); + if (flag3) + { + IXUILabel ixuilabel = this.m_QQVipTip.gameObject.transform.GetComponent("XUILabel") as IXUILabel; + Vector3 localPosition = this.m_QQVipTip.gameObject.transform.localPosition; + this.m_QQGameCenter.transform.localPosition = new Vector3(localPosition.x + (float)ixuilabel.spriteWidth + 20f, localPosition.y, localPosition.z); + } + } + else + { + this.m_QQGameCenter.SetActive(false); + } + bool flag4 = XSingleton.singleton.Channel == XAuthorizationChannel.XAuthorization_WeChat && XSingleton.singleton.IsSystemOpened(XSysDefine.XSys_Platform_StartPrivilege) && launchTypeServerInfo == StartUpType.StartUp_WX; + if (flag4) + { + string[] andSeparateValue2 = XSingleton.singleton.GetAndSeparateValue("WXGameCenterSingnIn", XGlobalConfig.SequenceSeparator); + IXUILabel ixuilabel2 = this.m_WXGameCenter.transform.Find("T").GetComponent("XUILabel") as IXUILabel; + bool flag5 = andSeparateValue2.Length == 2; + if (flag5) + { + ixuilabel2.SetText(XStringDefineProxy.GetString("GAMECENTER_SIGN_IN_WX", new object[] + { + andSeparateValue2[1], + XSingleton.singleton.ChooseProfString(XBagDocument.GetItemConf(int.Parse(andSeparateValue2[0])).ItemName, 0u) + })); + } + this.m_WXGameCenter.SetActive(true); + } + else + { + this.m_WXGameCenter.SetActive(false); + } + } + + public override void OnUnload() + { + bool flag = this._doc != null; + if (flag) + { + this._doc.View = null; + } + base.OnUnload(); + } + + public void RefreshPage() + { + List itemIDs = this._doc.ItemIDs; + List itemCounts = this._doc.ItemCounts; + int num = Math.Max(itemIDs.Count, this.m_LoginItemList.Count); + for (int i = this.m_LoginItemList.Count; i < num; i++) + { + GameObject gameObject = this.m_LoginItemPool.FetchGameObject(false); + this.m_LoginItemList.Add(gameObject); + IXUISprite ixuisprite = gameObject.transform.Find("Bg/Item/Icon").GetComponent("XUISprite") as IXUISprite; + ixuisprite.ID = (ulong)((long)i); + ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnItemClicked)); + } + num = Math.Min(itemIDs.Count, this.m_LoginItemList.Count); + for (int j = this.m_LoginItemList.Count - 1; j >= num; j--) + { + GameObject go = this.m_LoginItemList[j]; + this.m_LoginItemList.RemoveAt(j); + this.m_LoginItemPool.ReturnInstance(go, false); + } + for (int k = 0; k < itemIDs.Count; k++) + { + uint itemID = itemIDs[k]; + uint itemCount = itemCounts[k]; + GameObject gameObject2 = this.m_LoginItemList[k]; + this._updateItemBasicInfo(gameObject2, itemID, itemCount, k); + gameObject2.transform.localPosition = new Vector3(this.m_LoginItemPool.TplPos.x + (float)(k % XLoginRewardView.COLUMN * this.m_LoginItemPool.TplWidth), this.m_LoginItemPool.TplPos.y - (float)(k / XLoginRewardView.COLUMN * this.m_LoginItemPool.TplHeight), this.m_LoginItemPool.TplPos.z); + } + float num2 = 1f; + bool flag = itemIDs.Count > XLoginRewardView.COLUMN; + if (flag) + { + num2 = (float)((itemIDs.Count - 1) / XLoginRewardView.COLUMN); + } + float num3 = (float)((ulong)this._doc.DayChecked / (ulong)((long)XLoginRewardView.COLUMN)); + float position = num3 / num2; + this.itemListPanel.SetPosition(position); + uint dayChecked = this._doc.DayChecked; + bool flag2 = (ulong)dayChecked < (ulong)((long)this.m_LoginItemList.Count); + if (flag2) + { + IXUITweenTool ixuitweenTool = base.PanelObject.transform.Find("SignPlayTween").GetComponent("XUIPlayTween") as IXUITweenTool; + GameObject gameObject3 = this.m_LoginItemList[(int)dayChecked].transform.Find("Signed").gameObject; + ixuitweenTool.SetTargetGameObject(gameObject3); + } + this.RefreshStates(); + } + + public void RefreshStates() + { + uint dayChecked = this._doc.DayChecked; + uint dayCanCheck = this._doc.DayCanCheck; + bool todaySigned = this._doc.IsTodayChecked(); + GameObject gameObject = base.PanelObject.transform.Find("Check").gameObject; + bool flag = dayChecked >= dayCanCheck; + if (flag) + { + gameObject.SetActive(false); + } + else + { + gameObject.SetActive(true); + IXUIButton ixuibutton = base.PanelObject.transform.Find("Check").GetComponent("XUIButton") as IXUIButton; + ixuibutton.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnCheckClicked)); + GameObject gameObject2 = base.PanelObject.transform.Find("Check/RedPoint").gameObject; + GameObject gameObject3 = base.PanelObject.transform.Find("Check/T").gameObject; + GameObject gameObject4 = base.PanelObject.transform.Find("Check/Cost").gameObject; + bool flag2 = this._doc.IsTodayChecked(); + if (flag2) + { + int replenishCost = (int)this._doc.GetReplenishCost(); + IXUILabel ixuilabel = base.PanelObject.transform.Find("Check/Cost").GetComponent("XUILabel") as IXUILabel; + ixuilabel.SetText(replenishCost.ToString()); + gameObject3.SetActive(false); + gameObject4.SetActive(true); + gameObject2.SetActive(false); + } + else + { + gameObject3.SetActive(true); + gameObject4.SetActive(false); + gameObject2.SetActive(true); + } + } + for (int i = 0; i < this.m_LoginItemList.Count; i++) + { + GameObject go = this.m_LoginItemList[i]; + this._updateItemState(go, i, dayChecked, dayCanCheck, todaySigned); + } + } + + private void _canResign(GameObject go, bool can) + { + GameObject gameObject = go.transform.Find("ReSign").gameObject; + if (can) + { + gameObject.SetActive(true); + } + else + { + gameObject.SetActive(false); + } + } + + private void _updateItemState(GameObject go, int index, uint daychecked, uint daycancheck, bool todaySigned) + { + GameObject gameObject = go.transform.Find("Cover").gameObject; + GameObject gameObject2 = go.transform.Find("Signed").gameObject; + IXUISprite ixuisprite = go.transform.Find("Bg").GetComponent("XUISprite") as IXUISprite; + GameObject gameObject3 = go.transform.Find("RedPoint").gameObject; + gameObject3.SetActive(false); + bool flag = (long)index < (long)((ulong)daychecked); + if (flag) + { + gameObject.SetActive(true); + gameObject2.SetActive(true); + this._canResign(go, false); + ixuisprite.SetSprite("kz_lan"); + } + else + { + gameObject.SetActive(false); + gameObject2.SetActive(false); + bool flag2 = (long)index == (long)((ulong)daychecked) && daychecked < daycancheck; + if (flag2) + { + ixuisprite.SetSprite("kz_lan2"); + } + else + { + ixuisprite.SetSprite("kz_lan"); + } + bool flag3 = (long)index < (long)((ulong)daycancheck); + if (flag3) + { + bool flag4 = (long)index == (long)((ulong)daychecked) && !todaySigned; + if (flag4) + { + this._canResign(go, false); + } + else + { + this._canResign(go, true); + } + } + else + { + this._canResign(go, false); + } + } + } + + private void _updateItemBasicInfo(GameObject go, uint itemID, uint itemCount, int index) + { + GameObject gameObject = go.transform.Find("Bg/Item").gameObject; + IXUISprite ixuisprite = go.transform.Find("TQ").GetComponent("XUISprite") as IXUISprite; + IXUILabel ixuilabel = go.transform.Find("TQ/Text").GetComponent("XUILabel") as IXUILabel; + bool flag = (this._doc.DoubleTQ & 1 << index + 1) != 0; + ixuisprite.SetVisible(flag); + bool flag2 = flag; + if (flag2) + { + ixuisprite.SetVisible(true); + } + else + { + ixuisprite.SetVisible(false); + } + XSingleton.singleton.normalItemDrawer.DrawItem(gameObject, (int)itemID, (int)itemCount, false); + } + + private bool OnCheckClicked(IXUIButton iSp) + { + uint dayChecked = this._doc.DayChecked; + uint dayCanCheck = this._doc.DayCanCheck; + bool flag = dayChecked < dayCanCheck; + if (flag) + { + bool flag2 = this._doc.IsTodayChecked(); + if (flag2) + { + int replenishCost = (int)this._doc.GetReplenishCost(); + XSingleton.singleton.ShowModalDialog(XStringDefineProxy.GetString("LOGINREWARD_RESIGN_CONFIRM", new object[] + { + XLabelSymbolHelper.FormatCostWithIcon(replenishCost, ItemEnum.DRAGON_COIN) + }), XStringDefineProxy.GetString("COMMON_OK"), XStringDefineProxy.GetString("COMMON_CANCEL"), new ButtonClickEventHandler(this.OnResignBtnOKClicked)); + } + else + { + this._doc.ReqCheckin(); + GameObject gameObject = base.PanelObject.transform.Find("Check/RedPoint").gameObject; + gameObject.SetActive(false); + } + } + return true; + } + + private void OnItemClicked(IXUISprite iSp) + { + uint dayChecked = this._doc.DayChecked; + uint dayCanCheck = this._doc.DayCanCheck; + bool flag = iSp.ID >= (ulong)dayChecked; + if (flag) + { + List itemIDs = this._doc.ItemIDs; + int num = (int)iSp.ID; + bool flag2 = num >= itemIDs.Count; + if (!flag2) + { + int itemID = (int)itemIDs[num]; + XSingleton.singleton.ShowTooltipDialog(itemID, iSp, 0u); + } + } + } + + private bool OnResignBtnOKClicked(IXUIButton btn) + { + XSingleton.singleton.CloseModalDlg(); + this._doc.ReqCheckin(); + return true; + } + + public void SignTweenPlay() + { + IXUITweenTool ixuitweenTool = base.PanelObject.transform.Find("SignPlayTween").GetComponent("XUIPlayTween") as IXUITweenTool; + ixuitweenTool.PlayTween(true, -1f); + uint dayChecked = this._doc.DayChecked; + bool flag = (ulong)dayChecked < (ulong)((long)this.m_LoginItemList.Count); + if (flag) + { + GameObject gameObject = this.m_LoginItemList[(int)dayChecked].transform.Find("Signed").gameObject; + ixuitweenTool.SetTargetGameObject(gameObject); + } + } + + private bool OnCriticalBtnOKClicked(IXUIButton btn) + { + this.criticalConfirmPanel.SetActive(false); + this.inputBlocker.SetActive(false); + return true; + } + + public void ShowCritical() + { + IXUILabel ixuilabel = this.criticalConfirmPanel.transform.Find("P/Times0").GetComponent("XUILabel") as IXUILabel; + IXUILabel ixuilabel2 = this.criticalConfirmPanel.transform.Find("P/Times1").GetComponent("XUILabel") as IXUILabel; + GameObject gameObject = this.criticalConfirmPanel.transform.Find("P/Item").gameObject; + XSingleton.singleton.normalItemDrawer.DrawItem(gameObject, (int)this._doc.ItemIDs[(int)(this._doc.DayChecked - 1u)], (int)this._doc.ItemCounts[(int)(this._doc.DayChecked - 1u)], true); + ixuilabel.SetText(this._doc.Bonus.ToString()); + ixuilabel2.SetText(this._doc.Bonus.ToString()); + this.PlayCritical(); + } + + public void PlayCritical() + { + this.inputBlocker.SetActive(true); + this.criticalEffect.Play(Vector3.zero, Quaternion.identity, Vector3.one, 1f); + XSingleton.singleton.PlayUISound("Audio/UI/yanhua", true, AudioChannel.Action); + XSingleton.singleton.SetTimer(1f, new XTimerMgr.ElapsedEventHandler(this._OnFinishPlayCriticalFx), null); + } + + private void _OnFinishPlayCriticalFx(object o = null) + { + this.criticalConfirmPanel.SetActive(true); + } + } +} -- cgit v1.1-26-g67d0