From 90ac5080059ba091b34ad91fb788ee2efa8c3a8c Mon Sep 17 00:00:00 2001 From: Sainan Date: Wed, 8 May 2024 19:32:06 +0200 Subject: [PATCH] feat: implement XPInfo --- src/services/inventoryService.ts | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts index 43675663..5a8e916e 100644 --- a/src/services/inventoryService.ts +++ b/src/services/inventoryService.ts @@ -201,12 +201,27 @@ const addGearExpByCategory = ( const category = inventory[categoryName]; gearArray?.forEach(({ ItemId, XP }) => { - const itemIndex = ItemId ? category.findIndex(item => item._id?.equals(ItemId.$oid)) : -1; - const item = category[itemIndex]; + if (!XP) { + return; + } - if (itemIndex !== -1 && item.XP != undefined) { - item.XP += XP || 0; + const itemIndex = ItemId ? category.findIndex(item => item._id?.equals(ItemId.$oid)) : -1; + if (itemIndex !== -1) { + const item = category[itemIndex]; + item.XP ??= 0; + item.XP += XP; inventory.markModified(`${categoryName}.${itemIndex}.XP`); + + const xpinfoIndex = inventory.XPInfo.findIndex(x => x.ItemType == item.ItemType); + if (xpinfoIndex !== -1) { + const xpinfo = inventory.XPInfo[xpinfoIndex]; + xpinfo.XP += XP; + } else { + inventory.XPInfo.push({ + ItemType: item.ItemType, + XP: XP + }); + } } }); };