CrewShipWeapon is now Equipment
This commit is contained in:
parent
3fcd5719e0
commit
0b372bc6d3
@ -76,7 +76,6 @@ import {
|
||||
IIncentiveState,
|
||||
ISongChallenge,
|
||||
ILibraryPersonalProgress,
|
||||
ICrewShipWeaponDatabase,
|
||||
IRecentVendorPurchaseDatabase,
|
||||
IVendorPurchaseHistoryEntryDatabase,
|
||||
IVendorPurchaseHistoryEntryClient,
|
||||
@ -1118,30 +1117,6 @@ const alignmentSchema = new Schema<IAlignment>(
|
||||
{ _id: false }
|
||||
);
|
||||
|
||||
const crewShipWeaponSchema2 = new Schema<ICrewShipWeaponDatabase>(
|
||||
{
|
||||
ItemType: String,
|
||||
Configs: { type: [ItemConfigSchema], default: undefined },
|
||||
UpgradeVer: { type: Number, default: undefined },
|
||||
UpgradeType: { type: Number, default: undefined },
|
||||
UpgradeFingerprint: { type: String, default: undefined },
|
||||
IsNew: { type: Boolean, default: undefined }
|
||||
},
|
||||
{ id: false }
|
||||
);
|
||||
|
||||
crewShipWeaponSchema2.virtual("ItemId").get(function () {
|
||||
return { $oid: this._id.toString() } satisfies IOid;
|
||||
});
|
||||
|
||||
crewShipWeaponSchema2.set("toJSON", {
|
||||
virtuals: true,
|
||||
transform(_document, returnedObject) {
|
||||
delete returnedObject._id;
|
||||
delete returnedObject.__v;
|
||||
}
|
||||
});
|
||||
|
||||
const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
|
||||
{
|
||||
accountOwnerId: Schema.Types.ObjectId,
|
||||
@ -1264,9 +1239,9 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
|
||||
|
||||
//Default RailJack
|
||||
CrewShipAmmo: [typeCountSchema],
|
||||
CrewShipWeapons: [crewShipWeaponSchema2],
|
||||
CrewShipWeapons: [EquipmentSchema],
|
||||
CrewShipWeaponSkins: [upgradeSchema],
|
||||
CrewShipSalvagedWeapons: [crewShipWeaponSchema2],
|
||||
CrewShipSalvagedWeapons: [EquipmentSchema],
|
||||
CrewShipSalvagedWeaponSkins: [upgradeSchema],
|
||||
|
||||
//RailJack Crew
|
||||
@ -1529,9 +1504,7 @@ export type InventoryDocumentProps = {
|
||||
WeaponSkins: Types.DocumentArray<IWeaponSkinDatabase>;
|
||||
QuestKeys: Types.DocumentArray<IQuestKeyDatabase>;
|
||||
Drones: Types.DocumentArray<IDroneDatabase>;
|
||||
CrewShipWeapons: Types.DocumentArray<ICrewShipWeaponDatabase>;
|
||||
CrewShipWeaponSkins: Types.DocumentArray<IUpgradeDatabase>;
|
||||
CrewShipSalvagedWeapons: Types.DocumentArray<ICrewShipWeaponDatabase>;
|
||||
CrewShipSalvagedWeaponsSkins: Types.DocumentArray<IUpgradeDatabase>;
|
||||
} & { [K in TEquipmentKey]: Types.DocumentArray<IEquipmentDatabase> };
|
||||
|
||||
|
@ -12,8 +12,6 @@ import {
|
||||
ICrewShipMemberDatabase,
|
||||
ICrewShipMembersClient,
|
||||
ICrewShipMembersDatabase,
|
||||
ICrewShipWeaponClient,
|
||||
ICrewShipWeaponDatabase,
|
||||
IDialogueClient,
|
||||
IDialogueDatabase,
|
||||
IDialogueHistoryClient,
|
||||
@ -69,22 +67,6 @@ const convertEquipment = (client: IEquipmentClient): IEquipmentDatabase => {
|
||||
};
|
||||
};
|
||||
|
||||
const convertCrewShipWeapon = (client: ICrewShipWeaponClient): ICrewShipWeaponDatabase => {
|
||||
const { ItemId, ...rest } = client;
|
||||
return {
|
||||
...rest,
|
||||
_id: new Types.ObjectId(ItemId.$oid),
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
Configs: client.Configs
|
||||
? client.Configs.map(obj =>
|
||||
Object.fromEntries(
|
||||
Object.entries(obj).filter(([_, value]) => !Array.isArray(value) || value.length > 0)
|
||||
)
|
||||
)
|
||||
: []
|
||||
};
|
||||
};
|
||||
|
||||
const convertWeaponSkin = (client: IWeaponSkinClient): IWeaponSkinDatabase => {
|
||||
const { ItemId, ...rest } = client;
|
||||
return {
|
||||
@ -203,11 +185,6 @@ export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<
|
||||
replaceArray<IUpgradeDatabase>(db[key], client[key].map(convertUpgrade));
|
||||
}
|
||||
}
|
||||
for (const key of ["CrewShipWeapons", "CrewShipSalvagedWeapons"] as const) {
|
||||
if (client[key] !== undefined) {
|
||||
replaceArray<ICrewShipWeaponDatabase>(db[key], client[key].map(convertCrewShipWeapon));
|
||||
}
|
||||
}
|
||||
for (const key of [
|
||||
"RawUpgrades",
|
||||
"MiscItems",
|
||||
|
@ -25,8 +25,7 @@ import {
|
||||
ILibraryDailyTaskInfo,
|
||||
ICalendarProgress,
|
||||
IDroneClient,
|
||||
IUpgradeClient,
|
||||
ICrewShipWeaponClient
|
||||
IUpgradeClient
|
||||
} from "@/src/types/inventoryTypes/inventoryTypes";
|
||||
import { IGenericUpdate, IUpdateNodeIntrosResponse } from "../types/genericUpdate";
|
||||
import {
|
||||
@ -454,7 +453,7 @@ export const addItem = async (
|
||||
if (typeName in ExportRailjackWeapons) {
|
||||
return {
|
||||
InventoryChanges: {
|
||||
...addCrewShipWeapon(inventory, typeName),
|
||||
...addEquipment(inventory, ExportRailjackWeapons[typeName].productCategory, typeName),
|
||||
...occupySlot(inventory, InventorySlot.RJ_COMPONENT_AND_ARMAMENTS, premiumPurchase)
|
||||
}
|
||||
};
|
||||
@ -1006,20 +1005,6 @@ export const addSkin = (
|
||||
return inventoryChanges;
|
||||
};
|
||||
|
||||
const addCrewShipWeapon = (
|
||||
inventory: TInventoryDatabaseDocument,
|
||||
typeName: string,
|
||||
inventoryChanges: IInventoryChanges = {}
|
||||
): IInventoryChanges => {
|
||||
const index = inventory.CrewShipWeapons.push({ ItemType: typeName, _id: new Types.ObjectId() }) - 1;
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
inventoryChanges.CrewShipWeapons ??= [];
|
||||
(inventoryChanges.CrewShipWeapons as ICrewShipWeaponClient[]).push(
|
||||
inventory.CrewShipWeapons[index].toJSON<ICrewShipWeaponClient>()
|
||||
);
|
||||
return inventoryChanges;
|
||||
};
|
||||
|
||||
const addCrewShipWeaponSkin = (
|
||||
inventory: TInventoryDatabaseDocument,
|
||||
typeName: string,
|
||||
|
@ -30,9 +30,7 @@ export interface IInventoryDatabase
|
||||
| "Ships"
|
||||
| "WeaponSkins"
|
||||
| "Upgrades"
|
||||
| "CrewShipWeapons"
|
||||
| "CrewShipWeaponSkins"
|
||||
| "CrewShipSalvagedWeapons"
|
||||
| "CrewShipSalvagedWeaponSkins"
|
||||
| "AdultOperatorLoadOuts"
|
||||
| "OperatorLoadOuts"
|
||||
@ -60,9 +58,7 @@ export interface IInventoryDatabase
|
||||
Ships: Types.ObjectId[];
|
||||
WeaponSkins: IWeaponSkinDatabase[];
|
||||
Upgrades: IUpgradeDatabase[];
|
||||
CrewShipWeapons: ICrewShipWeaponDatabase[];
|
||||
CrewShipWeaponSkins: IUpgradeDatabase[];
|
||||
CrewShipSalvagedWeapons: ICrewShipWeaponDatabase[];
|
||||
CrewShipSalvagedWeaponSkins: IUpgradeDatabase[];
|
||||
AdultOperatorLoadOuts: IOperatorConfigDatabase[];
|
||||
OperatorLoadOuts: IOperatorConfigDatabase[];
|
||||
@ -114,7 +110,9 @@ export const equipmentKeys = [
|
||||
"DataKnives",
|
||||
"MechSuits",
|
||||
"CrewShipHarnesses",
|
||||
"KubrowPets"
|
||||
"KubrowPets",
|
||||
"CrewShipWeapons",
|
||||
"CrewShipSalvagedWeapons"
|
||||
] as const;
|
||||
|
||||
export type TEquipmentKey = (typeof equipmentKeys)[number];
|
||||
@ -299,9 +297,7 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
|
||||
PersonalTechProjects: IPersonalTechProject[];
|
||||
PlayerSkills: IPlayerSkills;
|
||||
CrewShipAmmo: ITypeCount[];
|
||||
CrewShipWeapons: ICrewShipWeaponClient[];
|
||||
CrewShipWeaponSkins: IUpgradeClient[];
|
||||
CrewShipSalvagedWeapons: ICrewShipWeaponClient[];
|
||||
CrewShipSalvagedWeaponSkins: IUpgradeClient[];
|
||||
TradeBannedUntil?: IMongoDate;
|
||||
PlayedParkourTutorial: boolean;
|
||||
@ -538,21 +534,6 @@ export interface ICrewShipWeapon {
|
||||
PORT_GUNS: ICrewShipPortGuns;
|
||||
}
|
||||
|
||||
// inventory.CrewShipWeapons
|
||||
export interface ICrewShipWeaponDatabase {
|
||||
ItemType: string;
|
||||
Configs?: IItemConfig[];
|
||||
UpgradeVer?: number;
|
||||
UpgradeType?: string;
|
||||
UpgradeFingerprint?: string;
|
||||
IsNew?: boolean;
|
||||
_id: Types.ObjectId;
|
||||
}
|
||||
|
||||
export interface ICrewShipWeaponClient extends Omit<ICrewShipWeaponDatabase, "_Id"> {
|
||||
ItemId: IOid;
|
||||
}
|
||||
|
||||
export interface ICrewShipPilotWeapon {
|
||||
PRIMARY_A: IEquipmentSelection;
|
||||
SECONDARY_A: IEquipmentSelection;
|
||||
|
Loading…
x
Reference in New Issue
Block a user