From a0b293685dcc6b21f5498eb238a79d36e4a03c8b Mon Sep 17 00:00:00 2001 From: WhoTao <36767025+0kolya0@users.noreply.github.com> Date: Tue, 28 May 2024 14:59:20 +0300 Subject: [PATCH 1/2] temp fix: Add XP for SpaceSuits (#233) --- src/models/inventoryModels/inventoryModel.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/models/inventoryModels/inventoryModel.ts b/src/models/inventoryModels/inventoryModel.ts index fdb3a636..14a13bdf 100644 --- a/src/models/inventoryModels/inventoryModel.ts +++ b/src/models/inventoryModels/inventoryModel.ts @@ -321,7 +321,13 @@ const GenericItemSchema = new Schema( { ItemType: String, Configs: [ItemConfigSchema], - UpgradeVer: Number //this is probably just __v + UpgradeVer: Number, + XP: Number, + Features: Number, + Polarity: [polaritySchema], + Polarized: Number, + ModSlotPurchases: Number, + CustomizationSlotPurchases: Number }, { id: false } ); -- 2.47.2 From 391231e11d51db22443841f7789c7a5d02a05cc3 Mon Sep 17 00:00:00 2001 From: Sainan Date: Wed, 29 May 2024 07:33:40 +0200 Subject: [PATCH 2/2] feat: implement selling/dissolving of mods --- src/controllers/api/sellController.ts | 15 +++++++++++++-- src/models/inventoryModels/inventoryModel.ts | 2 ++ src/services/inventoryService.ts | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/controllers/api/sellController.ts b/src/controllers/api/sellController.ts index 0eb9fc46..b240475b 100644 --- a/src/controllers/api/sellController.ts +++ b/src/controllers/api/sellController.ts @@ -1,7 +1,7 @@ import { RequestHandler } from "express"; import { ISellRequest } from "@/src/types/sellTypes"; import { getAccountIdForRequest } from "@/src/services/loginService"; -import { getInventory } from "@/src/services/inventoryService"; +import { getInventory, addMods } from "@/src/services/inventoryService"; export const sellController: RequestHandler = async (req, res) => { const payload: ISellRequest = JSON.parse(req.body.toString()); @@ -43,7 +43,18 @@ export const sellController: RequestHandler = async (req, res) => { // Note: sellItem.String is a uniqueName in this case } if (payload.Items.Upgrades) { - // TODO + payload.Items.Upgrades.forEach(sellItem => { + if (sellItem.Count == 0) { + inventory.Upgrades.pull({ _id: sellItem.String }); + } else { + addMods(inventory, [ + { + ItemType: sellItem.String, + ItemCount: sellItem.Count * -1 + } + ]); + } + }); } await inventory.save(); diff --git a/src/models/inventoryModels/inventoryModel.ts b/src/models/inventoryModels/inventoryModel.ts index fdb3a636..7801464f 100644 --- a/src/models/inventoryModels/inventoryModel.ts +++ b/src/models/inventoryModels/inventoryModel.ts @@ -2,6 +2,7 @@ import { Model, Schema, Types, model } from "mongoose"; import { IFlavourItem, IRawUpgrade, + ICrewShipSalvagedWeaponSkin, IMiscItem, IInventoryDatabase, IBooster, @@ -995,6 +996,7 @@ type InventoryDocumentProps = { Melee: Types.DocumentArray; FlavourItems: Types.DocumentArray; RawUpgrades: Types.DocumentArray; + Upgrades: Types.DocumentArray; MiscItems: Types.DocumentArray; Boosters: Types.DocumentArray; OperatorLoadOuts: Types.DocumentArray; diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts index 550cbc62..bc10e555 100644 --- a/src/services/inventoryService.ts +++ b/src/services/inventoryService.ts @@ -276,7 +276,7 @@ export const addRecipes = (inventory: IInventoryDatabaseDocument, itemsArray: IT }); }; -const addMods = (inventory: IInventoryDatabaseDocument, itemsArray: IRawUpgrade[] | undefined) => { +export const addMods = (inventory: IInventoryDatabaseDocument, itemsArray: IRawUpgrade[] | undefined) => { const { RawUpgrades } = inventory; itemsArray?.forEach(({ ItemType, ItemCount }) => { const itemIndex = RawUpgrades.findIndex(i => i.ItemType === ItemType); -- 2.47.2