From 4e792658d87cf0d85bd6baf91822d6b5eaa638fd Mon Sep 17 00:00:00 2001 From: Robert Paciorek Date: Tue, 23 Jan 2024 01:11:50 +0000 Subject: [PATCH] battle event rewards support * fix RedeemMysteryBoxItems for support gems and coins from boxes * add missing battle event fail achievement --- src/Controllers/Common/ContentController.cs | 27 +++++++++++++++++--- src/Resources/achievementsids.xml | 28 +++++++++++++++++++++ 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/src/Controllers/Common/ContentController.cs b/src/Controllers/Common/ContentController.cs index 9561035..f19af1e 100644 --- a/src/Controllers/Common/ContentController.cs +++ b/src/Controllers/Common/ContentController.cs @@ -831,11 +831,31 @@ public class ContentController : Controller { } --invItem.Quantity; - // get real item id (from box) add it to inventory + // get real item id (from box) Gender gender = XmlUtil.DeserializeXml(viking.AvatarSerialized).GenderType; itemService.OpenBox(req.ItemID, gender, out int newItemId, out int quantity); ItemData newItem = itemService.GetItem(newItemId); - CommonInventoryResponseItem newInvItem = inventoryService.AddItemToInventoryAndGetResponse(viking, newItem.ItemID, quantity); + CommonInventoryResponseItem newInvItem; + + // check if it is gems or coins bundle + if (itemService.IsGemBundle(newItem.ItemID, out int gems)) { + achievementService.AddAchievementPoints(viking, AchievementPointTypes.CashCurrency, gems); + newInvItem = new CommonInventoryResponseItem { + CommonInventoryID = 0, + ItemID = newItem.ItemID, + Quantity = 1 + }; + } else if (itemService.IsCoinBundle(newItem.ItemID, out int coins)) { + achievementService.AddAchievementPoints(viking, AchievementPointTypes.GameCurrency, coins); + newInvItem = new CommonInventoryResponseItem { + CommonInventoryID = 0, + ItemID = newItem.ItemID, + Quantity = 1 + }; + // if not, add item to inventory + } else { + newInvItem = inventoryService.AddItemToInventoryAndGetResponse(viking, newItem.ItemID, quantity); + } // prepare list of possible rewards for response List prizeItems = new List(); @@ -853,7 +873,8 @@ public class ContentController : Controller { ItemID = req.ItemID, PrizeItemID = newItem.ItemID, MysteryPrizeItems = prizeItems, - }} + }}, + UserGameCurrency = achievementService.GetUserCurrency(viking) }); } diff --git a/src/Resources/achievementsids.xml b/src/Resources/achievementsids.xml index 6536f94..ddda557 100644 --- a/src/Resources/achievementsids.xml +++ b/src/Resources/achievementsids.xml @@ -353,6 +353,32 @@ + + 203528 + +

6

+ 1 + 1 + 2251 + 12343 +
+ +

12

+ 50 + 1 + 7683 + 0 +
+ +

8

+ 50 + 1 + 7683 + 0 +
+
+ + 203529

12

@@ -391,6 +417,7 @@
+ 203530

12

@@ -415,6 +442,7 @@
+ 203531

12