From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- Client/Assets/Scripts/XMainClient/XRaceDocument.cs | 240 +++++++++++++++++++++ 1 file changed, 240 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/XRaceDocument.cs (limited to 'Client/Assets/Scripts/XMainClient/XRaceDocument.cs') diff --git a/Client/Assets/Scripts/XMainClient/XRaceDocument.cs b/Client/Assets/Scripts/XMainClient/XRaceDocument.cs new file mode 100644 index 00000000..96d1ca0e --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/XRaceDocument.cs @@ -0,0 +1,240 @@ +using System; +using System.Text; +using KKSG; +using XMainClient.UI; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class XRaceDocument : XDocComponent + { + public override uint ID + { + get + { + return XRaceDocument.uuID; + } + } + + public static XRaceDocument Doc + { + get + { + return XSingleton.singleton.Doc.GetXComponent(XRaceDocument.uuID) as XRaceDocument; + } + } + + public new static readonly uint uuID = XSingleton.singleton.XHash("XRaceDocument"); + + public static XTableAsyncLoader AsyncLoader = new XTableAsyncLoader(); + + private static Horse _HorseTable = new Horse(); + + public RaceBattleHandler RaceHandler = null; + + public override void OnAttachToHost(XObject host) + { + base.OnAttachToHost(host); + } + + public override void OnEnterSceneFinally() + { + } + + public static void Execute(OnLoadedCallback callback = null) + { + XRaceDocument.AsyncLoader.AddTask("Table/Horse", XRaceDocument._HorseTable, false); + XRaceDocument.AsyncLoader.Execute(callback); + } + + public static Horse.RowData GetHorseRace(uint sceneId) + { + return XRaceDocument._HorseTable.GetBysceneid(sceneId); + } + + public override void Update(float fDeltaT) + { + base.Update(fDeltaT); + } + + protected override void OnReconnected(XReconnectedEventArgs arg) + { + bool flag = XSingleton.singleton.SceneType == SceneType.SCENE_HORSE_RACE || XSingleton.singleton.SceneType == SceneType.SCENE_WEEKEND4V4_HORSERACING; + if (flag) + { + this.ReqRaceAllInfo(); + this.ReqDoodadItemList(); + } + } + + public void ReqRaceAllInfo() + { + RpcC2G_HorseReConnect rpc = new RpcC2G_HorseReConnect(); + XSingleton.singleton.Send(rpc); + } + + public void ReqDoodadItemList() + { + RpcC2G_DoodadItemAllSkillReq rpc = new RpcC2G_DoodadItemAllSkillReq(); + XSingleton.singleton.Send(rpc); + } + + public void RefreshAllInfo(HorseReConnectRes oRes) + { + this.RefreshRank(oRes.rank); + this.RaceComplete(oRes.selfarrive); + this.RaceEndLeftTime(oRes.otherreach); + } + + public void RefreshRank(HorseRank data) + { + bool flag = this.RaceHandler != null && data != null; + if (flag) + { + bool rankSpecified = data.rankSpecified; + if (rankSpecified) + { + this.RaceHandler.RefreshRank(data.rank); + } + bool turnsSpecified = data.turnsSpecified; + if (turnsSpecified) + { + this.RaceHandler.RefreshLap(data.turns); + } + } + } + + public void RefreshTime(HorseCountDownTime data) + { + bool flag = this.RaceHandler != null && data != null; + if (flag) + { + bool timeSpecified = data.timeSpecified; + if (timeSpecified) + { + this.RaceHandler.RefreshTime(data.time / 1000f); + } + } + } + + public void RaceComplete(HorseFinal data) + { + bool flag = this.RaceHandler != null && data != null; + if (flag) + { + bool rankSpecified = data.rankSpecified; + if (rankSpecified) + { + this.RaceHandler.RefreshRank(data.rank); + this.RaceHandler.ShowRank(data.rank); + } + bool turnsSpecified = data.turnsSpecified; + if (turnsSpecified) + { + this.RaceHandler.RefreshLap(data.turns); + } + bool timeSpecified = data.timeSpecified; + if (timeSpecified) + { + this.RaceHandler.RefreshTime(data.time); + } + this.RaceHandler.RaceEnd(); + } + } + + public void RaceEndLeftTime(HorseAnimation data) + { + bool flag = this.RaceHandler != null && data != null; + if (flag) + { + bool timeSpecified = data.timeSpecified; + if (timeSpecified) + { + this.RaceHandler.ShowEndLeftTime(data.time / 1000f); + } + } + } + + public void UseDoodad(ItemBuffOpArg oArg, ItemBuffOpRes oRes) + { + bool flag = this.RaceHandler != null; + if (flag) + { + bool flag2 = oArg.indexSpecified && oArg.op == 3u; + if (flag2) + { + this.RaceHandler.UseDoodad(oArg.index); + } + } + } + + public void AddInfo(DoodadItemUseNtf data) + { + bool flag = DlgBase.singleton.m_BattleShowInfoHandler == null; + if (!flag) + { + XEntity entity = XSingleton.singleton.GetEntity(data.roleid); + BuffTable.RowData buffData = XSingleton.singleton.GetBuffData((int)data.buffid, 1); + bool flag2 = entity == null; + if (flag2) + { + XSingleton.singleton.AddErrorLog(string.Format("entity not found: {0}", data.roleid), null, null, null, null, null); + } + else + { + bool flag3 = buffData == null; + if (flag3) + { + XSingleton.singleton.AddErrorLog(string.Format("RaceAddInfo: Buff data not found: [{0} {1}]", data.buffid, 1), null, null, null, null, null); + } + else + { + bool flag4 = data.roleid == XSingleton.singleton.XPlayerData.RoleID; + string arg; + if (flag4) + { + arg = BattleShowInfoHandler.blue; + } + else + { + arg = BattleShowInfoHandler.red; + } + StringBuilder stringBuilder = new StringBuilder(); + bool flag5 = false; + for (int i = 0; i < buffData.BuffName.Length; i++) + { + bool flag6 = buffData.BuffName[i] == '['; + if (flag6) + { + flag5 = true; + } + bool flag7 = buffData.BuffName[i] == ')'; + if (flag7) + { + flag5 = false; + } + bool flag8 = flag5; + if (flag8) + { + stringBuilder.Append(buffData.BuffName[i]); + } + bool flag9 = buffData.BuffName[i] == '('; + if (flag9) + { + flag5 = true; + } + bool flag10 = buffData.BuffName[i] == ']'; + if (flag10) + { + flag5 = false; + } + } + string newInfo = string.Format(XSingleton.singleton.GetString("RACE_GAME_INFO"), arg, entity.Name, stringBuilder.ToString()); + DlgBase.singleton.m_BattleShowInfoHandler.AddInfo(newInfo); + } + } + } + } + } +} -- cgit v1.1-26-g67d0