From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XMainClient/XDragonCrusadeDocument.cs | 181 +++++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/XDragonCrusadeDocument.cs (limited to 'Client/Assets/Scripts/XMainClient/XDragonCrusadeDocument.cs') diff --git a/Client/Assets/Scripts/XMainClient/XDragonCrusadeDocument.cs b/Client/Assets/Scripts/XMainClient/XDragonCrusadeDocument.cs new file mode 100644 index 00000000..7d28ee43 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/XDragonCrusadeDocument.cs @@ -0,0 +1,181 @@ +using System; +using System.Collections.Generic; +using KKSG; +using XMainClient.UI; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class XDragonCrusadeDocument : XDocComponent + { + public override uint ID + { + get + { + return XDragonCrusadeDocument.uuID; + } + } + + public new static readonly uint uuID = XSingleton.singleton.XHash("XDragonCrusadeDocument"); + + public static bool QuitFromCrusade = false; + + public static XTableAsyncLoader AsyncLoader = new XTableAsyncLoader(); + + private static DragonExpList mDragonExpList = new DragonExpList(); + + public static List _DragonCrusageGateDataInfo = new List(); + + public static Dictionary SectonChapterMax = new Dictionary(); + + public DERankRes oResRank; + + public int leftChanllageCnt; + + public static DERankChangePara mDERankChangePara; + + protected override void OnReconnected(XReconnectedEventArgs arg) + { + } + + public override void OnGamePause(bool pause) + { + base.OnGamePause(pause); + } + + public override void OnEnterScene() + { + base.OnEnterScene(); + } + + public override void OnEnterSceneFinally() + { + bool flag = XDragonCrusadeDocument.QuitFromCrusade && XSingleton.singleton.CurrentStage.Stage == EXStage.Hall; + if (flag) + { + XDragonCrusadeDocument.QuitFromCrusade = false; + } + } + + public static void Execute(OnLoadedCallback callback = null) + { + XDragonCrusadeDocument.AsyncLoader.AddTask("Table/DragonExpList", XDragonCrusadeDocument.mDragonExpList, false); + XDragonCrusadeDocument.AsyncLoader.Execute(callback); + } + + public static void OnTableLoaded() + { + for (int i = 0; i < XDragonCrusadeDocument.mDragonExpList.Table.Length; i++) + { + DragonCrusageGateData dragonCrusageGateData = new DragonCrusageGateData(); + dragonCrusageGateData.SceneID = XDragonCrusadeDocument.mDragonExpList.Table[i].SceneID; + dragonCrusageGateData.expData = XDragonCrusadeDocument.mDragonExpList.Table[i]; + dragonCrusageGateData.sceneData = XSingleton.singleton.GetSceneData(dragonCrusageGateData.SceneID); + dragonCrusageGateData.Chapter = dragonCrusageGateData.expData.ChapterID[0]; + bool flag = !XDragonCrusadeDocument.SectonChapterMax.ContainsKey(dragonCrusageGateData.expData.ChapterID[0]); + if (flag) + { + XDragonCrusadeDocument.SectonChapterMax[dragonCrusageGateData.expData.ChapterID[0]] = dragonCrusageGateData.expData.ChapterID[1]; + } + else + { + bool flag2 = dragonCrusageGateData.expData.ChapterID[1] > XDragonCrusadeDocument.SectonChapterMax[dragonCrusageGateData.expData.ChapterID[0]]; + if (flag2) + { + XDragonCrusadeDocument.SectonChapterMax[dragonCrusageGateData.expData.ChapterID[0]] = dragonCrusageGateData.expData.ChapterID[1]; + } + } + XDragonCrusadeDocument._DragonCrusageGateDataInfo.Add(dragonCrusageGateData); + } + } + + public string GetChapter(uint sceneID) + { + for (int i = 0; i < XDragonCrusadeDocument._DragonCrusageGateDataInfo.Count; i++) + { + DragonCrusageGateData dragonCrusageGateData = XDragonCrusadeDocument._DragonCrusageGateDataInfo[i]; + bool flag = dragonCrusageGateData.SceneID == sceneID; + if (flag) + { + return string.Concat(new object[] + { + dragonCrusageGateData.expData.ChapterID[0].ToString(), + "-", + dragonCrusageGateData.expData.ChapterID[1], + " ", + dragonCrusageGateData.sceneData.Comment + }); + } + } + return sceneID + " Not Found Chapter"; + } + + public void ReadyOpen() + { + this.DEProgressReq(); + this.DERankReq(); + } + + public void DEProgressReq() + { + RpcC2G_DEProgressReq rpc = new RpcC2G_DEProgressReq(); + XSingleton.singleton.Send(rpc); + } + + public void OnDEProgressReq(DEProgressRes oRes) + { + bool flag = oRes == null; + if (!flag) + { + this.leftChanllageCnt = oRes.leftcount; + for (int i = 0; i < XDragonCrusadeDocument._DragonCrusageGateDataInfo.Count; i++) + { + DragonCrusageGateData dragonCrusageGateData = XDragonCrusadeDocument._DragonCrusageGateDataInfo[i]; + for (int j = 0; j < oRes.allpro.Count; j++) + { + DEProgress deprogress = oRes.allpro[j]; + bool flag2 = deprogress.sceneID == dragonCrusageGateData.SceneID; + if (flag2) + { + dragonCrusageGateData.deProgress = deprogress; + dragonCrusageGateData.leftcount = oRes.leftcount; + dragonCrusageGateData.allcount = oRes.allcount; + dragonCrusageGateData.SealLevel = oRes.serverseallevel; + break; + } + } + } + bool flag3 = DlgBase.singleton.IsLoaded(); + if (flag3) + { + DlgBase.singleton.RefreshProgressFromNet(); + } + } + } + + public void DERankReq() + { + RpcC2M_DERankReq rpc = new RpcC2M_DERankReq(); + XSingleton.singleton.Send(rpc); + } + + public void OnDERankReq(DERankRes oRes) + { + this.oResRank = oRes; + DlgBase.singleton.SetVisible(true, true); + DlgBase.singleton.RefreshProgressSync(new Action(this.RefreshProgressSyncDone)); + } + + private void RefreshProgressSyncDone(bool done) + { + DlgBase.singleton.RefreshRank(this.oResRank); + } + + public void OnNotifyResult(DERankChangePara data) + { + XDragonCrusadeDocument.mDERankChangePara = data; + DlgBase.singleton.UpdateHint(data); + } + } +} -- cgit v1.1-26-g67d0