From 9544786e5c4659f1666187af86cf2dffb26d43aa Mon Sep 17 00:00:00 2001 From: Sainan Date: Fri, 3 Jan 2025 07:04:21 +0100 Subject: [PATCH] chore: add spacesuit to freestanding inventory --- src/services/inventoryService.ts | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts index e6155aed..9e1e7944 100644 --- a/src/services/inventoryService.ts +++ b/src/services/inventoryService.ts @@ -229,16 +229,18 @@ export const addItem = async ( }; } case "Archwing": { - const spaceSuit = await addSpaceSuit(typeName, accountId); + const inventory = await getInventory(accountId); + const inventoryChanges = addSpaceSuit(inventory, typeName); + await inventory.save(); await updateSlots(accountId, InventorySlot.SPACESUITS, 0, 1); return { InventoryChanges: { + ...inventoryChanges, SpaceSuitBin: { count: 1, platinum: 0, Slots: -1 - }, - SpaceSuits: [spaceSuit] + } } }; } @@ -460,11 +462,17 @@ export const addSpecialItem = ( ); }; -export const addSpaceSuit = async (spacesuitName: string, accountId: string): Promise => { - const inventory = await getInventory(accountId); - const suitIndex = inventory.SpaceSuits.push({ ItemType: spacesuitName, Configs: [], UpgradeVer: 101, XP: 0 }); - const changedInventory = await inventory.save(); - return changedInventory.SpaceSuits[suitIndex - 1].toJSON(); +export const addSpaceSuit = ( + inventory: TInventoryDatabaseDocument, + spacesuitName: string, + inventoryChanges: IInventoryChanges = {} +): IInventoryChanges => { + const suitIndex = inventory.SpaceSuits.push({ ItemType: spacesuitName, Configs: [], UpgradeVer: 101, XP: 0 }) - 1; + inventoryChanges.SpaceSuits ??= []; + (inventoryChanges.SpaceSuits as IEquipmentClient[]).push( + inventory.SpaceSuits[suitIndex - 1].toJSON() + ); + return inventoryChanges; }; export const updateSlots = async (