From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XMainClient/PersonalCareerView.cs | 406 +++++++++++++++++++++ 1 file changed, 406 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/PersonalCareerView.cs (limited to 'Client/Assets/Scripts/XMainClient/PersonalCareerView.cs') diff --git a/Client/Assets/Scripts/XMainClient/PersonalCareerView.cs b/Client/Assets/Scripts/XMainClient/PersonalCareerView.cs new file mode 100644 index 00000000..cd4ce3b7 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/PersonalCareerView.cs @@ -0,0 +1,406 @@ +using System; +using System.Collections.Generic; +using KKSG; +using UILib; +using UnityEngine; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class PersonalCareerView : DlgBase + { + public override string fileName + { + get + { + return "GameSystem/PersonalCareer/PersonalCareer"; + } + } + + public override int layer + { + get + { + return 1; + } + } + + public override int group + { + get + { + return 1; + } + } + + public override bool autoload + { + get + { + return true; + } + } + + public override bool hideMainMenu + { + get + { + return true; + } + } + + public override bool fullscreenui + { + get + { + return true; + } + } + + public override bool pushstack + { + get + { + return true; + } + } + + public override int sysid + { + get + { + return XFastEnumIntEqualityComparer.ToInt(XSysDefine.XSys_Personal_Career); + } + } + + private XPersonalCareerDocument doc = null; + + private Dictionary m_AllTabs = new Dictionary(); + + private PersonalCareerView.CareerTab m_CurrentTab; + + private PersonalCareerView.CareerTab m_PrefabTab = PersonalCareerView.CareerTab.NONE; + + public CareerHomepageHandler HomepageHandler = null; + + public CareerPVPDataHandler PVPHandler = null; + + public CareerTrophyHandler TrophyHandler = null; + + public ulong roleId = 0UL; + + private ulong param1 = 1UL; + + public enum CareerTab + { + NONE, + Homepage, + PVPInfo, + Trophy, + MAX + } + + protected override void Init() + { + this.doc = XDocuments.GetSpecificDocument(XPersonalCareerDocument.uuID); + this.m_AllTabs.Clear(); + base.uiBehaviour.m_TabPool.FakeReturnAll(); + for (int i = 1; i <= XPersonalCareerDocument.CareerTable.Table.Length; i++) + { + GameObject gameObject = base.uiBehaviour.m_TabPool.FetchGameObject(false); + gameObject.transform.localPosition = new Vector3(0f, (float)(-(float)base.uiBehaviour.m_TabPool.TplHeight * (i - 1)), 0f) + base.uiBehaviour.m_TabPool.TplPos; + Career.RowData career = XPersonalCareerDocument.GetCareer(i); + IXUILabel ixuilabel = gameObject.transform.Find("Bg/TextLabel").GetComponent("XUILabel") as IXUILabel; + ixuilabel.SetText(career.TabName); + ixuilabel = (gameObject.transform.Find("Bg/Selected/TextLabel").GetComponent("XUILabel") as IXUILabel); + ixuilabel.SetText(career.TabName); + IXUICheckBox ixuicheckBox = gameObject.transform.Find("Bg").GetComponent("XUICheckBox") as IXUICheckBox; + ixuicheckBox.ID = (ulong)((long)career.ID); + ixuicheckBox.RegisterOnCheckEventHandler(new CheckBoxOnCheckEventHandler(this._CheckBoxChanged)); + this.m_AllTabs.Add((PersonalCareerView.CareerTab)career.ID, ixuicheckBox); + } + base.uiBehaviour.m_TabPool.ActualReturnAll(false); + } + + private bool _CheckBoxChanged(IXUICheckBox iXUICheckBox) + { + bool flag = !iXUICheckBox.bChecked; + bool result; + if (flag) + { + result = true; + } + else + { + this.OnTabChanged((PersonalCareerView.CareerTab)iXUICheckBox.ID); + result = true; + } + return result; + } + + public override void RegisterEvent() + { + base.uiBehaviour.m_Close.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnCloseClicked)); + } + + public bool OnCloseClicked(IXUIButton btn) + { + this.SetVisibleWithAnimation(false, null); + return true; + } + + protected override void OnShow() + { + base.OnShow(); + this.CloseAllTab(); + bool flag = this.m_PrefabTab == PersonalCareerView.CareerTab.NONE; + if (flag) + { + Career.RowData career = XPersonalCareerDocument.GetCareer(1); + this.m_PrefabTab = (PersonalCareerView.CareerTab)career.ID; + } + this.OnTabChanged(this.m_PrefabTab); + } + + protected override void OnHide() + { + this.roleId = 0UL; + this.doc.HasData.Clear(); + this.m_PrefabTab = PersonalCareerView.CareerTab.NONE; + base.OnHide(); + } + + protected override void OnUnload() + { + DlgHandlerBase.EnsureUnload(ref this.HomepageHandler); + DlgHandlerBase.EnsureUnload(ref this.PVPHandler); + DlgHandlerBase.EnsureUnload(ref this.TrophyHandler); + base.OnUnload(); + } + + private void CloseAllTab() + { + bool flag = this.HomepageHandler != null && this.HomepageHandler.IsVisible(); + if (flag) + { + this.HomepageHandler.SetVisible(false); + } + bool flag2 = this.PVPHandler != null && this.PVPHandler.IsVisible(); + if (flag2) + { + this.PVPHandler.SetVisible(false); + } + bool flag3 = this.TrophyHandler != null && this.TrophyHandler.IsVisible(); + if (flag3) + { + this.TrophyHandler.SetVisible(false); + } + } + + public void OnTabChanged(PersonalCareerView.CareerTab handler) + { + XSingleton.singleton.AddGreenLog("Tab:" + handler.ToString(), null, null, null, null, null); + this.m_CurrentTab = handler; + IXUICheckBox ixuicheckBox; + bool flag = this.m_AllTabs.TryGetValue(handler, out ixuicheckBox); + if (flag) + { + ixuicheckBox.bChecked = true; + } + else + { + XSingleton.singleton.AddErrorLog("No Default Tabs", null, null, null, null, null); + } + PersonalCarrerReqType type = PersonalCarrerReqType.PCRT_HOME_PAGE; + switch (this.m_CurrentTab) + { + case PersonalCareerView.CareerTab.Homepage: + { + bool flag2 = this.HomepageHandler == null; + if (flag2) + { + DlgHandlerBase.EnsureCreate(ref this.HomepageHandler, base.uiBehaviour.transform, true, this); + this.HomepageHandler.SetVisible(false); + } + type = PersonalCarrerReqType.PCRT_HOME_PAGE; + break; + } + case PersonalCareerView.CareerTab.PVPInfo: + { + bool flag3 = this.PVPHandler == null; + if (flag3) + { + DlgHandlerBase.EnsureCreate(ref this.PVPHandler, base.uiBehaviour.transform, true, this); + this.PVPHandler.SetVisible(false); + } + type = PersonalCarrerReqType.PCRT_PVP_PKINFO; + break; + } + case PersonalCareerView.CareerTab.Trophy: + { + bool flag4 = this.TrophyHandler == null; + if (flag4) + { + DlgHandlerBase.EnsureCreate(ref this.TrophyHandler, base.uiBehaviour.transform, true, this); + this.TrophyHandler.SetVisible(false); + } + type = PersonalCarrerReqType.PCRT_TROPHY; + break; + } + } + bool flag5 = this.IsHasData(type); + if (flag5) + { + this.OpenTab(this.m_CurrentTab); + } + else + { + this.doc.ReqGetCareer(type, this.roleId); + } + } + + public bool IsHasData(PersonalCarrerReqType type) + { + bool flag2; + bool flag = this.doc.HasData.TryGetValue(type, out flag2) && flag2; + bool result; + if (flag) + { + XSingleton.singleton.AddLog(type + " HasData", null, null, null, null, null, XDebugColor.XDebug_None); + result = true; + } + else + { + result = false; + } + return result; + } + + public void SetCareer(PersonalCareerArg oArg, PersonalCareerRes oRes) + { + switch (oArg.quest_type) + { + case PersonalCarrerReqType.PCRT_HOME_PAGE: + this.OpenTab(PersonalCareerView.CareerTab.Homepage); + this.doc.HasData[oArg.quest_type] = true; + this.HomepageHandler.SetData(oRes.home_page); + break; + case PersonalCarrerReqType.PCRT_PVP_PKINFO: + this.OpenTab(PersonalCareerView.CareerTab.PVPInfo); + this.doc.HasData[oArg.quest_type] = true; + this.PVPHandler.SetData(oRes.pvp_info); + break; + case PersonalCarrerReqType.PCRT_TROPHY: + this.OpenTab(PersonalCareerView.CareerTab.Trophy); + this.doc.HasData[oArg.quest_type] = true; + this.TrophyHandler.SetData(oRes.trophy_data); + break; + } + } + + public void OpenTab(PersonalCareerView.CareerTab tab) + { + this.CloseAllTab(); + switch (tab) + { + case PersonalCareerView.CareerTab.Homepage: + this.HomepageHandler.SetVisible(true); + break; + case PersonalCareerView.CareerTab.PVPInfo: + this.PVPHandler.SetVisible(true); + break; + case PersonalCareerView.CareerTab.Trophy: + this.TrophyHandler.SetVisible(true); + this.TrophyHandler.RefreshList(false); + break; + } + } + + public void OpenOtherPush(List param) + { + for (int i = 0; i < param.Count; i++) + { + XSingleton.singleton.AddGreenLog(string.Concat(new object[] + { + "param", + i, + ":", + param[i] + }), null, null, null, null, null); + } + bool flag = param.Count < 2; + if (!flag) + { + this.roleId = ((param[0] == XSingleton.singleton.XPlayerData.RoleID) ? 0UL : param[0]); + this.m_PrefabTab = (PersonalCareerView.CareerTab)param[1]; + this.SetVisibleWithAnimation(true, null); + bool flag2 = this.m_PrefabTab == PersonalCareerView.CareerTab.PVPInfo; + if (flag2) + { + int index = 0; + bool flag3 = param.Count > 2; + if (flag3) + { + index = (int)param[2]; + } + this.PVPHandler.OnTabChanged(index); + } + } + } + + public void ShareClick() + { + bool flag = this.roleId > 0UL; + if (!flag) + { + XSingleton.singleton.AddGreenLog("ShareClick", null, null, null, null, null); + XSingleton.singleton.SendStatisticToServer(ShareOpType.Share, DragonShareType.ShowGlory); + XSingleton.singleton.StartExternalScreenShotView(null); + } + } + + public void PushClick(ulong p1 = 0UL) + { + bool flag = this.roleId > 0UL; + if (!flag) + { + XSingleton.singleton.AddGreenLog("PushClick", null, null, null, null, null); + this.param1 = p1; + DlgBase.singleton.DoOpenChatWindow(null); + XInvitationDocument specificDocument = XDocuments.GetSpecificDocument(XInvitationDocument.uuID); + DlgBase.singleton.RegistLinkSend(specificDocument.GetOpenSysLinkString(this.GetNotice(), new object[0]), new Action(this.OnChatSend)); + DlgBase.singleton.SetVisibleWithAnimation(false, null); + } + } + + private void OnChatSend() + { + XInvitationDocument specificDocument = XDocuments.GetSpecificDocument(XInvitationDocument.uuID); + specificDocument.SendOpenSysInvitation(this.GetNotice(), new ulong[] + { + XSingleton.singleton.XPlayerData.RoleID, + (ulong)((long)XFastEnumIntEqualityComparer.ToInt(this.m_CurrentTab)), + this.param1 + }); + } + + private NoticeType GetNotice() + { + NoticeType result = NoticeType.NT_OPENSYS_CAREER_MAIN; + switch (this.m_CurrentTab) + { + case PersonalCareerView.CareerTab.Homepage: + result = NoticeType.NT_OPENSYS_CAREER_MAIN; + break; + case PersonalCareerView.CareerTab.PVPInfo: + result = NoticeType.NT_OPENSYS_CAREER_PVP; + break; + case PersonalCareerView.CareerTab.Trophy: + result = NoticeType.NT_OPENSYS_CAREER_Trophy; + break; + } + return result; + } + } +} -- cgit v1.1-26-g67d0