import operator/drifter loadouts

This commit is contained in:
Sainan 2025-01-20 07:18:35 +01:00
parent 2c77336e0c
commit 6d9c934619
3 changed files with 27 additions and 5 deletions

View File

@ -62,7 +62,6 @@ import {
IOperatorConfigDatabase, IOperatorConfigDatabase,
IPolarity, IPolarity,
IEquipmentDatabase, IEquipmentDatabase,
IOperatorConfigClient,
IArchonCrystalUpgrade IArchonCrystalUpgrade
} from "@/src/types/inventoryTypes/commonInventoryTypes"; } from "@/src/types/inventoryTypes/commonInventoryTypes";
import { toMongoDate, toOid } from "@/src/helpers/inventoryHelpers"; import { toMongoDate, toOid } from "@/src/helpers/inventoryHelpers";
@ -1167,9 +1166,9 @@ type InventoryDocumentProps = {
Upgrades: Types.DocumentArray<IUpgradeDatabase>; Upgrades: Types.DocumentArray<IUpgradeDatabase>;
MiscItems: Types.DocumentArray<IMiscItem>; MiscItems: Types.DocumentArray<IMiscItem>;
Boosters: Types.DocumentArray<IBooster>; Boosters: Types.DocumentArray<IBooster>;
OperatorLoadOuts: Types.DocumentArray<IOperatorConfigClient>; OperatorLoadOuts: Types.DocumentArray<IOperatorConfigDatabase>;
SpecialItems: Types.DocumentArray<IEquipmentDatabase>; SpecialItems: Types.DocumentArray<IEquipmentDatabase>;
AdultOperatorLoadOuts: Types.DocumentArray<IOperatorConfigClient>; //TODO: this should still contain _id AdultOperatorLoadOuts: Types.DocumentArray<IOperatorConfigDatabase>;
MechSuits: Types.DocumentArray<IEquipmentDatabase>; MechSuits: Types.DocumentArray<IEquipmentDatabase>;
Scoops: Types.DocumentArray<IEquipmentDatabase>; Scoops: Types.DocumentArray<IEquipmentDatabase>;
DataKnives: Types.DocumentArray<IEquipmentDatabase>; DataKnives: Types.DocumentArray<IEquipmentDatabase>;

View File

@ -1,5 +1,10 @@
import { Types } from "mongoose"; import { Types } from "mongoose";
import { IEquipmentClient, IEquipmentDatabase } from "../types/inventoryTypes/commonInventoryTypes"; import {
IEquipmentClient,
IEquipmentDatabase,
IOperatorConfigClient,
IOperatorConfigDatabase
} from "../types/inventoryTypes/commonInventoryTypes";
import { IMongoDate } from "../types/commonTypes"; import { IMongoDate } from "../types/commonTypes";
import { import {
equipmentKeys, equipmentKeys,
@ -49,6 +54,14 @@ const convertUpgrade = (client: IUpgradeClient): IUpgradeDatabase => {
}; };
}; };
const convertOperatorConfig = (client: IOperatorConfigClient): IOperatorConfigDatabase => {
const { ItemId, ...rest } = client;
return {
...rest,
_id: new Types.ObjectId(client.ItemId.$oid)
};
};
const replaceArray = <T>(arr: T[], replacement: T[]): void => { const replaceArray = <T>(arr: T[], replacement: T[]): void => {
arr.splice(0, arr.length); arr.splice(0, arr.length);
replacement.forEach(x => { replacement.forEach(x => {
@ -73,6 +86,11 @@ export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<
if (client.Upgrades) { if (client.Upgrades) {
replaceArray<IUpgradeDatabase>(db.Upgrades, client.Upgrades.map(convertUpgrade)); replaceArray<IUpgradeDatabase>(db.Upgrades, client.Upgrades.map(convertUpgrade));
} }
for (const key of ["OperatorLoadOuts", "AdultOperatorLoadOuts"] as const) {
if (client[key]) {
replaceArray<IOperatorConfigDatabase>(db[key], client[key].map(convertOperatorConfig));
}
}
for (const key of [ for (const key of [
"SuitBin", "SuitBin",
"WeaponBin", "WeaponBin",

View File

@ -8,7 +8,8 @@ import {
IOperatorConfigClient, IOperatorConfigClient,
IEquipmentSelection, IEquipmentSelection,
IEquipmentDatabase, IEquipmentDatabase,
IEquipmentClient IEquipmentClient,
IOperatorConfigDatabase
} from "@/src/types/inventoryTypes/commonInventoryTypes"; } from "@/src/types/inventoryTypes/commonInventoryTypes";
export interface IInventoryDatabase export interface IInventoryDatabase
@ -27,6 +28,8 @@ export interface IInventoryDatabase
| "Upgrades" | "Upgrades"
| "CrewShipSalvagedWeaponSkins" | "CrewShipSalvagedWeaponSkins"
| "CrewShipWeaponSkins" | "CrewShipWeaponSkins"
| "OperatorLoadOuts"
| "AdultOperatorLoadOuts"
| TEquipmentKey | TEquipmentKey
> { > {
accountOwnerId: Types.ObjectId; accountOwnerId: Types.ObjectId;
@ -43,6 +46,8 @@ export interface IInventoryDatabase
Upgrades: IUpgradeDatabase[]; Upgrades: IUpgradeDatabase[];
CrewShipSalvagedWeaponSkins: IUpgradeDatabase[]; CrewShipSalvagedWeaponSkins: IUpgradeDatabase[];
CrewShipWeaponSkins: IUpgradeDatabase[]; CrewShipWeaponSkins: IUpgradeDatabase[];
OperatorLoadOuts: IOperatorConfigDatabase[];
AdultOperatorLoadOuts: IOperatorConfigDatabase[];
Suits: IEquipmentDatabase[]; Suits: IEquipmentDatabase[];
LongGuns: IEquipmentDatabase[]; LongGuns: IEquipmentDatabase[];