From f695f9651746350f6b8c7e334b79c8e38dac942e Mon Sep 17 00:00:00 2001 From: Robert Paciorek Date: Mon, 28 Aug 2023 21:57:47 +0000 Subject: [PATCH] support for Math Blaster --- .../Common/AchievementController.cs | 6 ++-- src/Controllers/Common/ContentController.cs | 25 ++++++++++++++ src/Schema/TreasureChestData.cs | 33 +++++++++++++++++++ 3 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 src/Schema/TreasureChestData.cs diff --git a/src/Controllers/Common/AchievementController.cs b/src/Controllers/Common/AchievementController.cs index 3d69244..7f7cdc7 100644 --- a/src/Controllers/Common/AchievementController.cs +++ b/src/Controllers/Common/AchievementController.cs @@ -92,8 +92,8 @@ public class AchievementController : Controller { [HttpPost] [Produces("application/xml")] - [Route("AchievementWebService.asmx/GetUserAchievementInfo")] - public IActionResult GetUserAchievementInfo([FromForm] string apiToken) { // used by World Of Jumpstart + [Route("AchievementWebService.asmx/GetUserAchievementInfo")] // used by World Of Jumpstart + public IActionResult GetUserAchievementInfo([FromForm] Guid apiToken) { Viking? viking = ctx.Sessions.FirstOrDefault(x => x.ApiToken == apiToken).Viking; if (viking != null) { @@ -103,7 +103,7 @@ public class AchievementController : Controller { } return null; } - + [HttpPost] [Produces("application/xml")] [Route("AchievementWebService.asmx/GetAchievementsByUserID")] diff --git a/src/Controllers/Common/ContentController.cs b/src/Controllers/Common/ContentController.cs index 7b49315..6aefa1d 100644 --- a/src/Controllers/Common/ContentController.cs +++ b/src/Controllers/Common/ContentController.cs @@ -1284,6 +1284,7 @@ public class ContentController : Controller { [HttpPost] //[Produces("application/xml")] [Route("ContentWebService.asmx/GetDisplayNames")] // used by World Of Jumpstart + [Route("ContentWebService.asmx/GetDisplayNamesByCategoryID")] // used by Math Blaster public IActionResult GetDisplayNames() { // TODO: This is a placeholder return Ok(" 1 Aaliyah 1 2 Abby 2 3 Adrian 3 11 Karen 2 12 Luna 2 13 Tori 2 "); @@ -1711,6 +1712,30 @@ public class ContentController : Controller { return Ok(gameDataService.GetGameData(viking, gameId, isMultiplayer, difficulty, gameLevel, key, count, AscendingOrder, buddyFilter, DateTime.Parse(startDate, usCulture), DateTime.Parse(endDate, usCulture))); } + [HttpPost] + [Produces("application/xml")] + [Route("ContentWebService.asmx/GetPeriodicGameDataByGame")] // used by Math Blaster + public IActionResult GetPeriodicGameDataByGame() { + // TODO: This is a placeholder + return Ok(new GameDataSummary()); + } + + [HttpPost] + [Produces("application/xml")] + [Route("MissionWebService.asmx/GetTreasureChest")] // used by Math Blaster + public IActionResult GetTreasureChest() { + // TODO: This is a placeholder + return Ok(new TreasureChestData()); + } + + [HttpPost] + [Produces("application/xml")] + [Route("MissionWebService.asmx/GetWorldId")] // used by Math Blaster + public IActionResult GetWorldId() { + // TODO: This is a placeholder + return Ok(0); + } + private static RaisedPetData GetRaisedPetDataFromDragon (Dragon dragon, int? selectedDragonId = null) { if (selectedDragonId is null) selectedDragonId = dragon.Viking.SelectedDragonId; diff --git a/src/Schema/TreasureChestData.cs b/src/Schema/TreasureChestData.cs new file mode 100644 index 0000000..4ef3672 --- /dev/null +++ b/src/Schema/TreasureChestData.cs @@ -0,0 +1,33 @@ +using System.Xml.Serialization; + +namespace sodoff.Schema; + +[XmlRoot(ElementName = "TreasureChestData", Namespace = "")] +[Serializable] +public class TreasureChestData +{ + public int TreasureChestId; + + [XmlElement(ElementName = "StartDate", IsNullable = true)] + public string StartDate; + + [XmlElement(ElementName = "EndDate", IsNullable = true)] + public string EndDate; + + public string ServerTime; + + public float RespawnTime; + + public int ChestMin; + + public int ChestMax; + + [XmlElement(ElementName = "GameCurrencyMin", IsNullable = true)] + public int? GameCurrencyMin; + + [XmlElement(ElementName = "GameCurrencyMax", IsNullable = true)] + public int? GameCurrencyMax; + + [XmlElement(ElementName = "ItemId")] + public int[] ItemId; +}