From d62785a883d19e4af4cca8713ee8132f08119dc7 Mon Sep 17 00:00:00 2001 From: Sainan Date: Thu, 9 May 2024 01:07:14 +0200 Subject: [PATCH] feat: implement polarization (forma) (#173) --- src/controllers/api/upgradesController.ts | 15 +++++++++++++++ src/types/inventoryTypes/inventoryTypes.ts | 4 +++- src/types/requestTypes.ts | 3 ++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/controllers/api/upgradesController.ts b/src/controllers/api/upgradesController.ts index a3dc72d2..cfc2907e 100644 --- a/src/controllers/api/upgradesController.ts +++ b/src/controllers/api/upgradesController.ts @@ -1,5 +1,6 @@ import { RequestHandler } from "express"; import { IUpgradesRequest } from "@/src/types/requestTypes"; +import { IPolarity } from "@/src/types/inventoryTypes/commonInventoryTypes"; import { IGenericItemDatabase, IMiscItem, TGenericItemKey } from "@/src/types/inventoryTypes/inventoryTypes"; import { addMiscItems, getInventory } from "@/src/services/inventoryService"; @@ -42,6 +43,20 @@ export const upgradesController: RequestHandler = async (req, res) => { if (item._id.toString() == payload.ItemId.$oid) { item.Features ??= 0; item.Features |= 32; + } + } + break; + case "/Lotus/Types/Items/MiscItems/Forma": + for (const item of inventory[payload.ItemCategory as TGenericItemKey] as IGenericItemDatabase[]) { + if (item._id.toString() == payload.ItemId.$oid) { + item.XP = 0; + item.Polarity ??= []; + item.Polarity.push({ + Slot: operation.PolarizeSlot, + Value: operation.PolarizeValue + } satisfies IPolarity); + item.Polarized ??= 0; + item.Polarized += 1; break; } } diff --git a/src/types/inventoryTypes/inventoryTypes.ts b/src/types/inventoryTypes/inventoryTypes.ts index 5fce938b..66d27010 100644 --- a/src/types/inventoryTypes/inventoryTypes.ts +++ b/src/types/inventoryTypes/inventoryTypes.ts @@ -91,7 +91,9 @@ export interface IGenericItem { Configs: IItemConfig[]; UpgradeVer: number; ItemId: IOid; - Features?: number; //space suit has this + Features?: number; + Polarity?: IPolarity[]; + Polarized?: number; } export interface IGenericItemDatabase extends Omit { diff --git a/src/types/requestTypes.ts b/src/types/requestTypes.ts index dc99d658..c58217f0 100644 --- a/src/types/requestTypes.ts +++ b/src/types/requestTypes.ts @@ -1,4 +1,5 @@ import { IOid } from "./commonTypes"; +import { FocusSchool } from "@/src/types/inventoryTypes/commonInventoryTypes"; import { IBooster, IChallengeProgress, @@ -78,6 +79,6 @@ export interface IUpgradeOperation { OperationType: string; UpgradeRequirement: string; // uniqueName of item being consumed PolarizeSlot: number; - PolarizeValue: string; // polarity + PolarizeValue: FocusSchool; PolarityRemap: {}[]; }