battle event rewards support

* fix RedeemMysteryBoxItems for support gems and coins from boxes
* add missing battle event fail achievement
This commit is contained in:
Robert Paciorek 2024-01-23 01:11:50 +00:00
parent 36d009dc3a
commit 4e792658d8
2 changed files with 52 additions and 3 deletions

View File

@ -831,11 +831,31 @@ public class ContentController : Controller {
} }
--invItem.Quantity; --invItem.Quantity;
// get real item id (from box) add it to inventory // get real item id (from box)
Gender gender = XmlUtil.DeserializeXml<AvatarData>(viking.AvatarSerialized).GenderType; Gender gender = XmlUtil.DeserializeXml<AvatarData>(viking.AvatarSerialized).GenderType;
itemService.OpenBox(req.ItemID, gender, out int newItemId, out int quantity); itemService.OpenBox(req.ItemID, gender, out int newItemId, out int quantity);
ItemData newItem = itemService.GetItem(newItemId); 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 // prepare list of possible rewards for response
List<ItemData> prizeItems = new List<ItemData>(); List<ItemData> prizeItems = new List<ItemData>();
@ -853,7 +873,8 @@ public class ContentController : Controller {
ItemID = req.ItemID, ItemID = req.ItemID,
PrizeItemID = newItem.ItemID, PrizeItemID = newItem.ItemID,
MysteryPrizeItems = prizeItems, MysteryPrizeItems = prizeItems,
}} }},
UserGameCurrency = achievementService.GetUserCurrency(viking)
}); });
} }

View File

@ -353,6 +353,32 @@
</AR> </AR>
</AchievementsIdInfo> </AchievementsIdInfo>
<AchievementsIdInfo> <AchievementsIdInfo>
<!-- battle event fail -->
<AID>203528</AID>
<AR>
<p>6</p>
<a>1</a>
<t>1</t>
<r>2251</r>
<ii>12343</ii>
</AR>
<AR>
<p>12</p>
<a>50</a>
<t>1</t>
<r>7683</r>
<ii>0</ii>
</AR>
<AR>
<p>8</p>
<a>50</a>
<t>1</t>
<r>7683</r>
<ii>0</ii>
</AR>
</AchievementsIdInfo>
<AchievementsIdInfo>
<!-- battle event gold -->
<AID>203529</AID> <AID>203529</AID>
<AR> <AR>
<p>12</p> <p>12</p>
@ -391,6 +417,7 @@
</AR> </AR>
</AchievementsIdInfo> </AchievementsIdInfo>
<AchievementsIdInfo> <AchievementsIdInfo>
<!-- battle event silver -->
<AID>203530</AID> <AID>203530</AID>
<AR> <AR>
<p>12</p> <p>12</p>
@ -415,6 +442,7 @@
</AR> </AR>
</AchievementsIdInfo> </AchievementsIdInfo>
<AchievementsIdInfo> <AchievementsIdInfo>
<!-- battle event bronze -->
<AID>203531</AID> <AID>203531</AID>
<AR> <AR>
<p>12</p> <p>12</p>