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

View File

@ -1,5 +1,10 @@
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 {
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 => {
arr.splice(0, arr.length);
replacement.forEach(x => {
@ -73,6 +86,11 @@ export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<
if (client.Upgrades) {
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 [
"SuitBin",
"WeaponBin",

View File

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