From 0e74968587f12f6ad3dc77333724a959e0c8cc7e Mon Sep 17 00:00:00 2001 From: Sainan Date: Mon, 23 Dec 2024 06:43:16 +0100 Subject: [PATCH] fix: acquiring ships --- src/services/inventoryService.ts | 43 ++++++++++++++++++++++---------- src/services/shipService.ts | 7 ++++-- 2 files changed, 35 insertions(+), 15 deletions(-) diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts index cf43ca3d..2f1ddd10 100644 --- a/src/services/inventoryService.ts +++ b/src/services/inventoryService.ts @@ -41,6 +41,7 @@ import { ExportResources, ExportUpgrades } from "warframe-public-export-plus"; +import { createShip } from "./shipService"; export const createInventory = async ( accountOwnerId: Types.ObjectId, @@ -129,19 +130,35 @@ export const addItem = async ( } if (typeName in ExportResources) { const inventory = await getInventory(accountId); - const miscItemChanges = [ - { - ItemType: typeName, - ItemCount: quantity - } satisfies IMiscItem - ]; - addMiscItems(inventory, miscItemChanges); - await inventory.save(); - return { - InventoryChanges: { - MiscItems: miscItemChanges - } - }; + if (ExportResources[typeName].productCategory == "Ships") { + const oid = await createShip(new Types.ObjectId(accountId), typeName); + inventory.Ships.push(oid); + await inventory.save(); + return { + InventoryChanges: { + Ships: [ + { + ItemId: { $oid: oid }, + ItemType: typeName + } + ] + } + }; + } else { + const miscItemChanges = [ + { + ItemType: typeName, + ItemCount: quantity + } satisfies IMiscItem + ]; + addMiscItems(inventory, miscItemChanges); + await inventory.save(); + return { + InventoryChanges: { + MiscItems: miscItemChanges + } + }; + } } if (typeName in ExportCustoms) { return { diff --git a/src/services/shipService.ts b/src/services/shipService.ts index 5cd1202c..1f19fbd9 100644 --- a/src/services/shipService.ts +++ b/src/services/shipService.ts @@ -3,10 +3,13 @@ import { ILoadoutDatabase } from "@/src/types/saveLoadoutTypes"; import { logger } from "@/src/utils/logger"; import { Types } from "mongoose"; -export const createShip = async (accountOwnerId: Types.ObjectId) => { +export const createShip = async ( + accountOwnerId: Types.ObjectId, + typeName: string = "/Lotus/Types/Items/Ships/DefaultShip" +) => { try { const ship = new Ship({ - ItemType: "/Lotus/Types/Items/Ships/DefaultShip", + ItemType: typeName, ShipOwnerId: accountOwnerId }); const newShip = await ship.save();