From df979ca476ad03b96e6e6c0bcfa3a1cbcb033683 Mon Sep 17 00:00:00 2001 From: Robert Paciorek Date: Mon, 10 Feb 2025 22:23:20 +0000 Subject: [PATCH] single xml file for all steps, MB missions, ... and config option to disable loading non SoD Data (used only for mission for now) --- README.md | 2 + src/Configuration/ApiServerConfig.cs | 2 + src/Controllers/Common/ContentController.cs | 8 +- src/Resources/missions/step_missions_mb.xml | 101 + .../missions/step_missions_steps.xml | 23706 ++++++++++++++++ src/Resources/missions/steps/1.xml | 62 - src/Resources/missions/steps/10.xml | 56 - src/Resources/missions/steps/100.xml | 66 - src/Resources/missions/steps/101.xml | 61 - src/Resources/missions/steps/102.xml | 65 - src/Resources/missions/steps/103.xml | 57 - src/Resources/missions/steps/104.xml | 61 - src/Resources/missions/steps/105.xml | 46 - src/Resources/missions/steps/106.xml | 52 - src/Resources/missions/steps/179.xml | 46 - src/Resources/missions/steps/2.xml | 56 - src/Resources/missions/steps/23.xml | 56 - src/Resources/missions/steps/24.xml | 56 - src/Resources/missions/steps/26.xml | 61 - src/Resources/missions/steps/27.xml | 100 - src/Resources/missions/steps/28.xml | 79 - src/Resources/missions/steps/29.xml | 84 - src/Resources/missions/steps/3.xml | 56 - src/Resources/missions/steps/30.xml | 84 - src/Resources/missions/steps/31.xml | 73 - src/Resources/missions/steps/32.xml | 84 - src/Resources/missions/steps/33.xml | 78 - src/Resources/missions/steps/34.xml | 61 - src/Resources/missions/steps/35.xml | 77 - src/Resources/missions/steps/36.xml | 74 - src/Resources/missions/steps/37.xml | 74 - src/Resources/missions/steps/38.xml | 70 - src/Resources/missions/steps/39.xml | 66 - src/Resources/missions/steps/4.xml | 56 - src/Resources/missions/steps/40.xml | 66 - src/Resources/missions/steps/41.xml | 72 - src/Resources/missions/steps/42.xml | 72 - src/Resources/missions/steps/43.xml | 66 - src/Resources/missions/steps/44.xml | 73 - src/Resources/missions/steps/45.xml | 71 - src/Resources/missions/steps/46.xml | 84 - src/Resources/missions/steps/47.xml | 66 - src/Resources/missions/steps/48.xml | 72 - src/Resources/missions/steps/49.xml | 61 - src/Resources/missions/steps/5.xml | 58 - src/Resources/missions/steps/50.xml | 66 - src/Resources/missions/steps/51.xml | 80 - src/Resources/missions/steps/52.xml | 90 - src/Resources/missions/steps/53.xml | 102 - src/Resources/missions/steps/54.xml | 63 - src/Resources/missions/steps/55.xml | 205 - src/Resources/missions/steps/56.xml | 67 - src/Resources/missions/steps/57.xml | 68 - src/Resources/missions/steps/58.xml | 56 - src/Resources/missions/steps/59.xml | 66 - src/Resources/missions/steps/6.xml | 60 - src/Resources/missions/steps/60.xml | 61 - src/Resources/missions/steps/61.xml | 148 - src/Resources/missions/steps/62.xml | 128 - src/Resources/missions/steps/63.xml | 61 - src/Resources/missions/steps/64.xml | 61 - src/Resources/missions/steps/65.xml | 65 - src/Resources/missions/steps/66.xml | 58 - src/Resources/missions/steps/67.xml | 66 - src/Resources/missions/steps/68.xml | 84 - src/Resources/missions/steps/69.xml | 84 - src/Resources/missions/steps/7.xml | 56 - src/Resources/missions/steps/70.xml | 77 - src/Resources/missions/steps/71.xml | 73 - src/Resources/missions/steps/72.xml | 83 - src/Resources/missions/steps/73.xml | 67 - src/Resources/missions/steps/74.xml | 77 - src/Resources/missions/steps/75.xml | 72 - src/Resources/missions/steps/76.xml | 72 - src/Resources/missions/steps/77.xml | 75 - src/Resources/missions/steps/78.xml | 83 - src/Resources/missions/steps/79.xml | 105 - src/Resources/missions/steps/8.xml | 62 - src/Resources/missions/steps/80.xml | 97 - src/Resources/missions/steps/81.xml | 102 - src/Resources/missions/steps/82.xml | 66 - src/Resources/missions/steps/83.xml | 67 - src/Resources/missions/steps/84.xml | 82 - src/Resources/missions/steps/85.xml | 87 - src/Resources/missions/steps/86.xml | 66 - src/Resources/missions/steps/87.xml | 66 - src/Resources/missions/steps/88.xml | 71 - src/Resources/missions/steps/89.xml | 66 - src/Resources/missions/steps/9.xml | 62 - src/Resources/missions/steps/90.xml | 70 - src/Resources/missions/steps/91.xml | 66 - src/Resources/missions/steps/92.xml | 105 - src/Resources/missions/steps/93.xml | 71 - src/Resources/missions/steps/94.xml | 71 - src/Resources/missions/steps/95.xml | 68 - src/Resources/missions/steps/96.xml | 68 - src/Resources/missions/steps/97.xml | 66 - src/Resources/missions/steps/98.xml | 66 - src/Resources/missions/steps/99.xml | 70 - src/Services/MissionStoreSingleton.cs | 42 +- src/appsettings.json | 3 + src/sodoff.csproj | 6 + 102 files changed, 23854 insertions(+), 6888 deletions(-) create mode 100644 src/Resources/missions/step_missions_mb.xml create mode 100644 src/Resources/missions/step_missions_steps.xml delete mode 100644 src/Resources/missions/steps/1.xml delete mode 100644 src/Resources/missions/steps/10.xml delete mode 100644 src/Resources/missions/steps/100.xml delete mode 100644 src/Resources/missions/steps/101.xml delete mode 100644 src/Resources/missions/steps/102.xml delete mode 100644 src/Resources/missions/steps/103.xml delete mode 100644 src/Resources/missions/steps/104.xml delete mode 100644 src/Resources/missions/steps/105.xml delete mode 100644 src/Resources/missions/steps/106.xml delete mode 100644 src/Resources/missions/steps/179.xml delete mode 100644 src/Resources/missions/steps/2.xml delete mode 100644 src/Resources/missions/steps/23.xml delete mode 100644 src/Resources/missions/steps/24.xml delete mode 100644 src/Resources/missions/steps/26.xml delete mode 100644 src/Resources/missions/steps/27.xml delete mode 100644 src/Resources/missions/steps/28.xml delete mode 100644 src/Resources/missions/steps/29.xml delete mode 100644 src/Resources/missions/steps/3.xml delete mode 100644 src/Resources/missions/steps/30.xml delete mode 100644 src/Resources/missions/steps/31.xml delete mode 100644 src/Resources/missions/steps/32.xml delete mode 100644 src/Resources/missions/steps/33.xml delete mode 100644 src/Resources/missions/steps/34.xml delete mode 100644 src/Resources/missions/steps/35.xml delete mode 100644 src/Resources/missions/steps/36.xml delete mode 100644 src/Resources/missions/steps/37.xml delete mode 100644 src/Resources/missions/steps/38.xml delete mode 100644 src/Resources/missions/steps/39.xml delete mode 100644 src/Resources/missions/steps/4.xml delete mode 100644 src/Resources/missions/steps/40.xml delete mode 100644 src/Resources/missions/steps/41.xml delete mode 100644 src/Resources/missions/steps/42.xml delete mode 100644 src/Resources/missions/steps/43.xml delete mode 100644 src/Resources/missions/steps/44.xml delete mode 100644 src/Resources/missions/steps/45.xml delete mode 100644 src/Resources/missions/steps/46.xml delete mode 100644 src/Resources/missions/steps/47.xml delete mode 100644 src/Resources/missions/steps/48.xml delete mode 100644 src/Resources/missions/steps/49.xml delete mode 100644 src/Resources/missions/steps/5.xml delete mode 100644 src/Resources/missions/steps/50.xml delete mode 100644 src/Resources/missions/steps/51.xml delete mode 100644 src/Resources/missions/steps/52.xml delete mode 100644 src/Resources/missions/steps/53.xml delete mode 100644 src/Resources/missions/steps/54.xml delete mode 100644 src/Resources/missions/steps/55.xml delete mode 100644 src/Resources/missions/steps/56.xml delete mode 100644 src/Resources/missions/steps/57.xml delete mode 100644 src/Resources/missions/steps/58.xml delete mode 100644 src/Resources/missions/steps/59.xml delete mode 100644 src/Resources/missions/steps/6.xml delete mode 100644 src/Resources/missions/steps/60.xml delete mode 100644 src/Resources/missions/steps/61.xml delete mode 100644 src/Resources/missions/steps/62.xml delete mode 100644 src/Resources/missions/steps/63.xml delete mode 100644 src/Resources/missions/steps/64.xml delete mode 100644 src/Resources/missions/steps/65.xml delete mode 100644 src/Resources/missions/steps/66.xml delete mode 100644 src/Resources/missions/steps/67.xml delete mode 100644 src/Resources/missions/steps/68.xml delete mode 100644 src/Resources/missions/steps/69.xml delete mode 100644 src/Resources/missions/steps/7.xml delete mode 100644 src/Resources/missions/steps/70.xml delete mode 100644 src/Resources/missions/steps/71.xml delete mode 100644 src/Resources/missions/steps/72.xml delete mode 100644 src/Resources/missions/steps/73.xml delete mode 100644 src/Resources/missions/steps/74.xml delete mode 100644 src/Resources/missions/steps/75.xml delete mode 100644 src/Resources/missions/steps/76.xml delete mode 100644 src/Resources/missions/steps/77.xml delete mode 100644 src/Resources/missions/steps/78.xml delete mode 100644 src/Resources/missions/steps/79.xml delete mode 100644 src/Resources/missions/steps/8.xml delete mode 100644 src/Resources/missions/steps/80.xml delete mode 100644 src/Resources/missions/steps/81.xml delete mode 100644 src/Resources/missions/steps/82.xml delete mode 100644 src/Resources/missions/steps/83.xml delete mode 100644 src/Resources/missions/steps/84.xml delete mode 100644 src/Resources/missions/steps/85.xml delete mode 100644 src/Resources/missions/steps/86.xml delete mode 100644 src/Resources/missions/steps/87.xml delete mode 100644 src/Resources/missions/steps/88.xml delete mode 100644 src/Resources/missions/steps/89.xml delete mode 100644 src/Resources/missions/steps/9.xml delete mode 100644 src/Resources/missions/steps/90.xml delete mode 100644 src/Resources/missions/steps/91.xml delete mode 100644 src/Resources/missions/steps/92.xml delete mode 100644 src/Resources/missions/steps/93.xml delete mode 100644 src/Resources/missions/steps/94.xml delete mode 100644 src/Resources/missions/steps/95.xml delete mode 100644 src/Resources/missions/steps/96.xml delete mode 100644 src/Resources/missions/steps/97.xml delete mode 100644 src/Resources/missions/steps/98.xml delete mode 100644 src/Resources/missions/steps/99.xml diff --git a/README.md b/README.md index 68b092f..afc55f1 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,8 @@ By default (modifiable in appsettings.json), files for version 2.5.0 and newer w A sample file is provided for `{PLATFORM} = WIN`, `{VERSION} = 3.31.0`. It assumes that the server address are `localhost:5000` (API) and `localhost:5001` (assets). +To use this server with games other than School of Dragons you need to change the `LoadNonSoDData` value in `appsettings.json` to `true`. + #### Asset Server Various settings for the asset server are customizable, with the key one being `ProviderURL`, which specifies the source for downloading assets in `partial` mode. By default, it's configured to use archive.org diff --git a/src/Configuration/ApiServerConfig.cs b/src/Configuration/ApiServerConfig.cs index 58b079b..958c3e8 100644 --- a/src/Configuration/ApiServerConfig.cs +++ b/src/Configuration/ApiServerConfig.cs @@ -5,6 +5,8 @@ public class ApiServerConfig { public string MMOAdress { get; set; } = "127.0.0.1"; public int MMOPort { get; set; } = 9933; public uint MMOSupportMinVersion { get; set; } = 0; + + public bool LoadNonSoDData { get; set; } = false; public DbProviders DbProvider { get; set; } = DbProviders.SQLite; public string DbPath { get; set; } = string.Empty; diff --git a/src/Controllers/Common/ContentController.cs b/src/Controllers/Common/ContentController.cs index 27063cb..ea98d23 100644 --- a/src/Controllers/Common/ContentController.cs +++ b/src/Controllers/Common/ContentController.cs @@ -15,6 +15,7 @@ public class ContentController : Controller { private readonly DBContext ctx; private KeyValueService keyValueService; private ItemService itemService; + private MissionStoreSingleton missionStore; private MissionService missionService; private RoomService roomService; private AchievementService achievementService; @@ -30,6 +31,7 @@ public class ContentController : Controller { DBContext ctx, KeyValueService keyValueService, ItemService itemService, + MissionStoreSingleton missionStore, MissionService missionService, RoomService roomService, AchievementService achievementService, @@ -43,6 +45,7 @@ public class ContentController : Controller { this.ctx = ctx; this.keyValueService = keyValueService; this.itemService = itemService; + this.missionStore = missionStore; this.missionService = missionService; this.roomService = roomService; this.achievementService = achievementService; @@ -2134,14 +2137,15 @@ public class ContentController : Controller { [Route("MissionWebService.asmx/GetMission")] // old ("step") missions - used by MB and WoJS lands public IActionResult GetMission([FromForm] int gameId, [FromForm] int type) { if (gameId == 1) return Ok(XmlUtil.ReadResourceXmlString("missions.step_missions_wojs_al")); + if (gameId == 5) return Ok(XmlUtil.ReadResourceXmlString("missions.step_missions_mb")); return Ok(); } [HttpPost] - // [Produces("application/xml")] + [Produces("application/xml")] [Route("MissionWebService.asmx/GetStep")] // old ("step") missions - used by MB and WoJS lands public IActionResult GetMissionStep([FromForm] int stepId) { - return Ok(System.IO.File.ReadAllText($"./Resources/missions/steps/{stepId}.xml")); + return Ok(missionStore.GetStep(stepId)); } [HttpPost] diff --git a/src/Resources/missions/step_missions_mb.xml b/src/Resources/missions/step_missions_mb.xml new file mode 100644 index 0000000..d3613a6 --- /dev/null +++ b/src/Resources/missions/step_missions_mb.xml @@ -0,0 +1,101 @@ + + + + 189 + Rescue a Larva + ADOPT A PET TO RAISE AND TRAIN. + + ADOPT A PET TO RAISE AND TRAIN. + -1 + + + 326 + 505 + + + + 213 + Larva Attachment + Play and Feed your larva + + Lets get emotionally attached to the larva + -1 + + DlgGCM213End + GC + RS_DATA/MBDirectedM213.unity3d + + + 350 + 529 + + + 351 + 530 + + + 354 + 533 + 534 + + + + 215 + MB Boy Visit Mutt Pod + Go to your Mutt Pod + + Visit Mutt Pod Boy + -1 + + DlgGCM215End + GC + RS_DATA/MBDirectedM215.unity3d + + + 358 + 539 + + + 360 + 541 + + + + 217 + MB Boy Visit Pod + Go to your Pod + + Visit Pod Boy + -1 + + DlgGCM217End + GC + RS_DATA/MBDirectedM217.unity3d + + + 366 + 547 + + + 368 + 549 + + + 370 + 551 + + + + 220 + MB Boy Play Hyperblast + Play Hyperblast + + Play Hyperblast Boy + -1 + + + 373 + 554 + + + \ No newline at end of file diff --git a/src/Resources/missions/step_missions_steps.xml b/src/Resources/missions/step_missions_steps.xml new file mode 100644 index 0000000..255dd96 --- /dev/null +++ b/src/Resources/missions/step_missions_steps.xml @@ -0,0 +1,23706 @@ + + + + 1 + + DlgFrankieS1Offer + NPCs.unity3d/PfFrankie + RS_DATA/DlgsAdventureM01S01.unity3d + + + DlgFrankieS1End + NPCs.unity3d/PfFrankie + RS_DATA/DlgsAdventureM01S01.unity3d + + -1 + + 1 + Visit + + GrpTiMis01St01 + TrainingIsland + + DlgEleanorT1Help + NPCs.unity3d/PfEleanor + RS_DATA/DlgsAdventureM01S01.unity3d + + + DlgPierreT1Help + NPCs.unity3d/PfPierre + RS_DATA/DlgsAdventureM01S01.unity3d + + 0 +