From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../XMainClient/UI/FriendsWeddingHandler.cs | 477 +++++++++++++++++++++ 1 file changed, 477 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/UI/FriendsWeddingHandler.cs (limited to 'Client/Assets/Scripts/XMainClient/UI/FriendsWeddingHandler.cs') diff --git a/Client/Assets/Scripts/XMainClient/UI/FriendsWeddingHandler.cs b/Client/Assets/Scripts/XMainClient/UI/FriendsWeddingHandler.cs new file mode 100644 index 00000000..044e5baa --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/FriendsWeddingHandler.cs @@ -0,0 +1,477 @@ +using System; +using KKSG; +using UILib; +using UnityEngine; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient.UI +{ + internal class FriendsWeddingHandler : DlgHandlerBase + { + protected override string FileName + { + get + { + return "GameSystem/Wedding/FriendsWeddingFrame"; + } + } + + private XWeddingDocument m_doc = XWeddingDocument.Doc; + + private IUIDummy[] m_Snapshots = new IUIDummy[XWeddingDocument.MaxAvata]; + + private float m_fCoolTime = 0.5f; + + private float m_fLastClickBtnTime = 0f; + + private GameObject m_emptyGo; + + private GameObject m_obtainedGo; + + private IXUIButton m_gotoBtn; + + private IXUILabel m_noPartnerTips; + + private IXUILabel m_ruleLab; + + private XUIPool m_emptyItemPool = new XUIPool(XSingleton.singleton.m_uiTool); + + private IXUIButton m_ShopBtn; + + private IXUIButton m_livenessBtn; + + private IXUIButton m_levelBtn; + + private IXUILabel m_levelText; + + private IXUIButton m_weddingTeamBtn; + + private IXUILabel m_buffName; + + private XUIPool m_itemPool = new XUIPool(XSingleton.singleton.m_uiTool); + + private IXUILabel m_CloseValue; + + private GameObject m_CloseValueMax; + + private IXUIButton m_CloseValueHelp; + + private IXUIProgress m_CloseValueProgress; + + private GameObject m_CloseValueHelpPanel; + + private IXUIButton m_HelpClose; + + private IXUILabel m_HelpContent; + + private IXUILabel m_LoverLevel; + + private IXUIButton m_LoverPrivilegeBtn; + + private IXUIButton m_LoverPrivilegeClose; + + private GameObject m_PrivilegeFrame; + + private FriendsWeddingPrivilegeHandler m_PrivilegeHandler; + + protected override void Init() + { + base.Init(); + this.m_doc.View = this; + this.m_emptyGo = base.PanelObject.transform.Find("Bg/Empty").gameObject; + this.m_obtainedGo = base.PanelObject.transform.Find("Bg/Obtained").gameObject; + Transform transform = this.m_emptyGo.transform.Find("PartnerPrior/Grid"); + this.m_emptyItemPool.SetupPool(transform.gameObject, transform.Find("Tpl").gameObject, 3u, false); + this.m_gotoBtn = (this.m_emptyGo.transform.Find("ButtonR").GetComponent("XUIButton") as IXUIButton); + this.m_noPartnerTips = (this.m_emptyGo.transform.Find("T").GetComponent("XUILabel") as IXUILabel); + this.m_ruleLab = (this.m_emptyGo.transform.Find("RulePanel/RuleLab").GetComponent("XUILabel") as IXUILabel); + this.m_weddingTeamBtn = (this.m_emptyGo.transform.Find("Buttonf").GetComponent("XUIButton") as IXUIButton); + this.m_livenessBtn = (this.m_obtainedGo.transform.Find("LivenessBtn").GetComponent("XUIButton") as IXUIButton); + this.m_levelBtn = (this.m_obtainedGo.transform.Find("BreakupBtn").GetComponent("XUIButton") as IXUIButton); + this.m_levelText = (this.m_levelBtn.gameObject.transform.Find("T").GetComponent("XUILabel") as IXUILabel); + this.m_ShopBtn = (this.m_obtainedGo.transform.Find("BtnShop").GetComponent("XUIButton") as IXUIButton); + transform = this.m_obtainedGo.transform.Find("ModleParent"); + this.m_itemPool.SetupPool(transform.gameObject, transform.Find("Tpl").gameObject, 4u, false); + this.m_buffName = (base.PanelObject.transform.Find("Bg/Obtained/FriendBonusFrame/Active/Buff").GetComponent("XUILabel") as IXUILabel); + this.m_CloseValueMax = this.m_obtainedGo.transform.Find("LoverDetail/Progress/Max").gameObject; + this.m_CloseValue = (this.m_obtainedGo.transform.Find("LoverDetail/Progress/Exp").GetComponent("XUILabel") as IXUILabel); + this.m_CloseValueHelp = (this.m_obtainedGo.transform.Find("LoverDetail/Help").GetComponent("XUIButton") as IXUIButton); + this.m_CloseValueProgress = (this.m_obtainedGo.transform.Find("LoverDetail/Progress").GetComponent("XUIProgress") as IXUIProgress); + this.m_LoverLevel = (this.m_obtainedGo.transform.Find("LoverDetail/Level/Value").GetComponent("XUILabel") as IXUILabel); + this.m_LoverPrivilegeBtn = (this.m_obtainedGo.transform.Find("LoverDetail/Go").GetComponent("XUIButton") as IXUIButton); + this.m_CloseValueHelpPanel = this.m_obtainedGo.transform.Find("Help").gameObject; + this.m_CloseValueHelpPanel.SetActive(false); + this.m_HelpClose = (this.m_obtainedGo.transform.Find("Help/Close").GetComponent("XUIButton") as IXUIButton); + this.m_HelpContent = (this.m_obtainedGo.transform.Find("Help/Content").GetComponent("XUILabel") as IXUILabel); + this.m_LoverPrivilegeClose = (this.m_obtainedGo.transform.Find("Privilege/Close").GetComponent("XUIButton") as IXUIButton); + this.m_PrivilegeFrame = this.m_obtainedGo.transform.Find("Privilege").gameObject; + DlgHandlerBase.EnsureCreate(ref this.m_PrivilegeHandler, this.m_PrivilegeFrame, null, false); + } + + public override void RegisterEvent() + { + base.RegisterEvent(); + this.m_gotoBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnClickGoToBtn)); + this.m_weddingTeamBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnWeddingTeamBtn)); + this.m_livenessBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnClickLivenessBtn)); + this.m_levelBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnClickLevelBtn)); + this.m_ShopBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnShopClick)); + this.m_CloseValueHelp.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnCloseValueHelpBtnClicked)); + this.m_LoverPrivilegeBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnPrivilegeBtnClicked)); + this.m_HelpClose.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnHelpCloseBtnClicked)); + this.m_LoverPrivilegeClose.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnPrivilegeCloseClicked)); + } + + protected override void OnShow() + { + base.OnShow(); + base.Alloc3DAvatarPool("FriendsWeddingHandler", 1); + this.m_doc.ReqPartnerDetailInfo(); + this.m_ShopBtn.gameObject.SetActive(XSingleton.singleton.IsSystemOpened(XSysDefine.XSys_Mall_WeddingLover)); + this.m_HelpContent.SetText(XSingleton.singleton.ReplaceReturn(XSingleton.singleton.GetString("WeddingLoverCloseHelp"))); + this.CheckMarriageLevelUp(); + } + + protected override void OnHide() + { + base.Return3DAvatarPool(); + base.OnHide(); + } + + public override void StackRefresh() + { + base.StackRefresh(); + base.Alloc3DAvatarPool("FriendsWeddingHandler", 1); + } + + public override void OnUnload() + { + base.Return3DAvatarPool(); + this.m_doc.View = null; + DlgHandlerBase.EnsureUnload(ref this.m_PrivilegeHandler); + this.m_PrivilegeHandler = null; + base.OnUnload(); + } + + private void FillContent() + { + this.m_emptyGo.SetActive(false); + this.m_obtainedGo.SetActive(false); + bool flag = this.m_doc.PartnerList.Count == 0; + if (flag) + { + this.FillNoPartner(); + } + else + { + this.m_doc.ReqPartnerDetailInfo(); + } + } + + public void RefreshUi() + { + this.m_emptyGo.SetActive(false); + this.m_obtainedGo.SetActive(false); + bool flag = this.m_doc.PartnerList.Count == 0; + if (flag) + { + this.FillNoPartner(); + } + else + { + this.FillHadPartner(); + } + } + + private void FillNoPartner() + { + this.m_emptyGo.SetActive(true); + this.m_emptyItemPool.ReturnAll(false); + string[] array = XSingleton.singleton.GetString("WeddingWelfare").Split(new char[] + { + '|' + }); + for (int i = 0; i < array.Length; i++) + { + GameObject gameObject = this.m_emptyItemPool.FetchGameObject(false); + gameObject.SetActive(true); + gameObject.transform.localPosition = new Vector3(0f, (float)(-(float)i * this.m_emptyItemPool.TplHeight), 0f); + IXUILabel ixuilabel = gameObject.transform.Find("Tip").GetComponent("XUILabel") as IXUILabel; + ixuilabel.SetText(XSingleton.singleton.ReplaceReturn(array[i])); + } + this.m_ruleLab.SetText(XSingleton.singleton.ReplaceReturn(XSingleton.singleton.GetString("WeddingRule"))); + this.m_noPartnerTips.SetText(XSingleton.singleton.GetString("NoWeddingTips")); + } + + private void FillHadPartner() + { + this.m_obtainedGo.SetActive(true); + this.RefreshUIRedPoint(); + this.m_itemPool.ReturnAll(false); + int num = 0; + for (int i = 0; i < this.m_doc.PartnerList.Count; i++) + { + GameObject gameObject = this.m_itemPool.FetchGameObject(false); + gameObject.SetActive(true); + gameObject.transform.localPosition = new Vector3((float)(this.m_itemPool.TplWidth * num), 0f, 0f); + this.FillAvataItem(gameObject, this.m_doc.PartnerList[i], num); + num++; + } + base.Return3DAvatarPool(); + base.Alloc3DAvatarPool("PartnerMainHandler", 1); + int j = this.m_doc.PartnerList.Count; + int num2 = this.m_Snapshots.Length; + while (j < num2) + { + this.m_Snapshots[j] = null; + j++; + } + this.RefreshAvataData(); + XExpeditionDocument specificDocument = XDocuments.GetSpecificDocument(XExpeditionDocument.uuID); + int dayCount = specificDocument.GetDayCount(TeamLevelType.TeamLevelWedding, null); + int dayMaxCount = specificDocument.GetDayMaxCount(TeamLevelType.TeamLevelWedding, null); + this.m_levelText.SetText(XStringDefineProxy.GetString("WeddingLevel", new object[] + { + dayCount, + dayMaxCount + })); + WeddingType myWeddingType = XWeddingDocument.Doc.GetMyWeddingType(); + string[] array = null; + WeddingType weddingType = myWeddingType; + if (weddingType != WeddingType.WeddingType_Normal) + { + if (weddingType == WeddingType.WeddingType_Luxury) + { + array = XSingleton.singleton.GetAndSeparateValue("PartnerSkill2", XGlobalConfig.SequenceSeparator); + } + } + else + { + array = XSingleton.singleton.GetAndSeparateValue("PartnerSkill", XGlobalConfig.SequenceSeparator); + } + bool flag = array != null && array.Length == 2; + if (flag) + { + BuffTable.RowData buffData = XSingleton.singleton.GetBuffData(int.Parse(array[0]), int.Parse(array[1])); + bool flag2 = buffData != null; + if (flag2) + { + this.m_buffName.SetText(buffData.BuffName); + } + } + this.RefreshMarriageLevelValue(); + } + + private void FillAvataItem(GameObject go, RoleOutLookBrief partner, int count) + { + bool flag = partner == null || go == null || partner == null; + if (!flag) + { + IXUISprite ixuisprite = go.transform.Find("ProfIcon").GetComponent("XUISprite") as IXUISprite; + ixuisprite.SetSprite(XSingleton.singleton.GetProfIcon((int)((int)partner.profession % 10))); + IXUILabel ixuilabel = go.transform.Find("Name").GetComponent("XUILabel") as IXUILabel; + ixuilabel.SetText(partner.name); + ixuilabel = (go.transform.Find("Level").GetComponent("XUILabel") as IXUILabel); + ixuilabel.SetText(partner.level.ToString()); + ixuilabel = (go.transform.Find("Battlepoint").GetComponent("XUILabel") as IXUILabel); + ixuilabel.SetText(partner.ppt.ToString()); + ixuisprite = (go.transform.Find("Bg/BgSmall").GetComponent("XUISprite") as IXUISprite); + ixuisprite.ID = partner.roleid; + ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnClickavata)); + this.m_Snapshots[count] = (go.transform.Find("Snapshot").GetComponent("UIDummy") as IUIDummy); + } + } + + private void RefreshAvataData() + { + int num = 0; + for (int i = 0; i < this.m_doc.PartnerList.Count; i++) + { + bool flag = num >= XWeddingDocument.MaxAvata; + if (flag) + { + break; + } + bool flag2 = this.m_Snapshots[num] != null; + if (flag2) + { + XDummy xdummy = XSingleton.singleton.CreateCommonRoleDummy(this.m_dummPool, this.m_doc.PartnerList[i].roleid, (uint)XFastEnumIntEqualityComparer.ToInt(this.m_doc.PartnerList[i].profession), this.m_doc.PartnerList[i].outlook, this.m_Snapshots[num], null); + num++; + } + } + } + + public void RefreshUIRedPoint() + { + this.m_livenessBtn.gameObject.transform.Find("RedPoint").gameObject.SetActive(this.m_doc.IsHadLivenessRedPoint); + } + + public void CheckMarriageLevelUp() + { + bool flag = this.m_doc.MarriageLevelUp > 0; + if (flag) + { + MarriageLevel.RowData byLevel = XWeddingDocument.MarriageLevelTable.GetByLevel(this.m_doc.MarriageLevelUp); + bool flag2 = byLevel != null; + if (flag2) + { + bool flag3 = byLevel.PrerogativeID != 0u || byLevel.PrivilegeBuffs[0] > 0u; + if (flag3) + { + DlgBase.singleton.SetVisible(true, true); + } + } + } + } + + public void RefreshMarriageLevelValue() + { + bool flag = this.m_doc.MarriageLevel != null; + if (flag) + { + int key = this.m_doc.MarriageLevel.marriageLevel + 1; + MarriageLevel.RowData byLevel = XWeddingDocument.MarriageLevelTable.GetByLevel(key); + bool flag2 = byLevel != null; + if (flag2) + { + this.m_CloseValueMax.SetActive(false); + this.m_CloseValue.gameObject.SetActive(true); + this.m_CloseValue.SetText(string.Format("{0}/{1}", this.m_doc.MarriageLevel.marriageLevelValue, byLevel.NeedIntimacyValue)); + this.m_CloseValueProgress.value = ((byLevel.NeedIntimacyValue == 0) ? 1f : ((float)this.m_doc.MarriageLevel.marriageLevelValue / (float)byLevel.NeedIntimacyValue)); + } + else + { + this.m_CloseValueMax.SetActive(true); + this.m_CloseValue.gameObject.SetActive(false); + this.m_CloseValueProgress.value = 1f; + } + this.m_LoverLevel.SetText(string.Format("{0}/{1}", this.m_doc.MarriageLevel.marriageLevel, XWeddingDocument.MaxMarriageLevel)); + } + } + + private bool OnClickGoToBtn(IXUIButton btn) + { + bool flag = this.SetButtonCool(this.m_fCoolTime); + bool result; + if (flag) + { + result = true; + } + else + { + XSingleton.singleton.CloseAllUI(); + uint num = 0u; + XNpcInfo npcInfo = XSingleton.singleton.NpcInfo; + for (int i = 0; i < npcInfo.Table.Length; i++) + { + bool flag2 = npcInfo.Table[i].LinkSystem == 702; + if (flag2) + { + num = npcInfo.Table[i].ID; + break; + } + } + bool flag3 = num == 0u; + if (flag3) + { + XSingleton.singleton.AddErrorLog("had not find partner npc", null, null, null, null, null); + result = true; + } + else + { + XSingleton.singleton.LastNpc = XSingleton.singleton.GetNpc(num); + result = true; + } + } + return result; + } + + private bool OnWeddingTeamBtn(IXUIButton btn) + { + XTeamDocument specificDocument = XDocuments.GetSpecificDocument(XTeamDocument.uuID); + specificDocument.SetAndMatch(XSingleton.singleton.GetInt("WeddingTeamLevel")); + return true; + } + + private bool OnClickLivenessBtn(IXUIButton btn) + { + bool flag = this.SetButtonCool(this.m_fCoolTime); + bool result; + if (flag) + { + result = true; + } + else + { + DlgBase.singleton.SetVisibleWithAnimation(true, null); + result = true; + } + return result; + } + + private bool OnClickLevelBtn(IXUIButton btn) + { + XTeamDocument specificDocument = XDocuments.GetSpecificDocument(XTeamDocument.uuID); + specificDocument.SetAndMatch(XSingleton.singleton.GetInt("WeddingLevel")); + return true; + } + + private void OnClickavata(IXUISprite sp) + { + bool flag = sp == null; + if (!flag) + { + ulong id = sp.ID; + XCharacterCommonMenuDocument.ReqCharacterMenuInfo(id, false); + } + } + + private bool SetButtonCool(float time) + { + float num = Time.realtimeSinceStartup - this.m_fLastClickBtnTime; + bool flag = num < time; + bool result; + if (flag) + { + result = true; + } + else + { + this.m_fLastClickBtnTime = Time.realtimeSinceStartup; + result = false; + } + return result; + } + + private bool OnShopClick(IXUIButton btn) + { + DlgBase.singleton.ShowShopSystem(XSysDefine.XSys_Mall_WeddingLover, 0UL); + return true; + } + + private bool OnCloseValueHelpBtnClicked(IXUIButton btn) + { + this.m_CloseValueHelpPanel.SetActive(true); + return true; + } + + private bool OnHelpCloseBtnClicked(IXUIButton btn) + { + this.m_CloseValueHelpPanel.SetActive(false); + return true; + } + + private bool OnPrivilegeCloseClicked(IXUIButton btn) + { + this.m_PrivilegeHandler.SetVisible(false); + return false; + } + + private bool OnPrivilegeBtnClicked(IXUIButton btn) + { + this.m_PrivilegeHandler.SetVisible(true); + return true; + } + } +} -- cgit v1.1-26-g67d0