import CrewShips
This commit is contained in:
		
							parent
							
								
									fe9509b7f4
								
							
						
					
					
						commit
						c31b283809
					
				@ -42,7 +42,6 @@ import {
 | 
				
			|||||||
    ICrewShipCustomization,
 | 
					    ICrewShipCustomization,
 | 
				
			||||||
    ICrewShipWeapon,
 | 
					    ICrewShipWeapon,
 | 
				
			||||||
    ICrewShipMembersClient,
 | 
					    ICrewShipMembersClient,
 | 
				
			||||||
    ICrewShip,
 | 
					 | 
				
			||||||
    ICrewShipPilotWeapon,
 | 
					    ICrewShipPilotWeapon,
 | 
				
			||||||
    IShipExterior,
 | 
					    IShipExterior,
 | 
				
			||||||
    IHelminthFoodRecord,
 | 
					    IHelminthFoodRecord,
 | 
				
			||||||
@ -52,7 +51,8 @@ import {
 | 
				
			|||||||
    IDialogueGift,
 | 
					    IDialogueGift,
 | 
				
			||||||
    ICompletedDialogue,
 | 
					    ICompletedDialogue,
 | 
				
			||||||
    IDialogueClient,
 | 
					    IDialogueClient,
 | 
				
			||||||
    IUpgradeDatabase
 | 
					    IUpgradeDatabase,
 | 
				
			||||||
 | 
					    ICrewShipDatabase
 | 
				
			||||||
} from "../../types/inventoryTypes/inventoryTypes";
 | 
					} from "../../types/inventoryTypes/inventoryTypes";
 | 
				
			||||||
import { IOid } from "../../types/commonTypes";
 | 
					import { IOid } from "../../types/commonTypes";
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
@ -694,7 +694,7 @@ crewShipMembersSchema.set("toJSON", {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const crewShipSchema = new Schema<ICrewShip>({
 | 
					const crewShipSchema = new Schema<ICrewShipDatabase>({
 | 
				
			||||||
    ItemType: { type: String, required: true },
 | 
					    ItemType: { type: String, required: true },
 | 
				
			||||||
    Configs: { type: [ItemConfigSchema], default: [] },
 | 
					    Configs: { type: [ItemConfigSchema], default: [] },
 | 
				
			||||||
    Weapon: { type: crewShipWeaponSchema, default: undefined },
 | 
					    Weapon: { type: crewShipWeaponSchema, default: undefined },
 | 
				
			||||||
@ -1184,7 +1184,7 @@ type InventoryDocumentProps = {
 | 
				
			|||||||
    Hoverboards: Types.DocumentArray<IEquipmentDatabase>;
 | 
					    Hoverboards: Types.DocumentArray<IEquipmentDatabase>;
 | 
				
			||||||
    MoaPets: Types.DocumentArray<IEquipmentDatabase>;
 | 
					    MoaPets: Types.DocumentArray<IEquipmentDatabase>;
 | 
				
			||||||
    WeaponSkins: Types.DocumentArray<IWeaponSkinDatabase>;
 | 
					    WeaponSkins: Types.DocumentArray<IWeaponSkinDatabase>;
 | 
				
			||||||
    CrewShips: Types.DocumentArray<ICrewShip>;
 | 
					    CrewShips: Types.DocumentArray<ICrewShipDatabase>;
 | 
				
			||||||
    CrewShipHarnesses: Types.DocumentArray<IEquipmentDatabase>;
 | 
					    CrewShipHarnesses: Types.DocumentArray<IEquipmentDatabase>;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -8,6 +8,10 @@ import {
 | 
				
			|||||||
import { IMongoDate } from "../types/commonTypes";
 | 
					import { IMongoDate } from "../types/commonTypes";
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
    equipmentKeys,
 | 
					    equipmentKeys,
 | 
				
			||||||
 | 
					    ICrewShipClient,
 | 
				
			||||||
 | 
					    ICrewShipDatabase,
 | 
				
			||||||
 | 
					    ICrewShipMembersClient,
 | 
				
			||||||
 | 
					    ICrewShipMembersDatabase,
 | 
				
			||||||
    IDialogueClient,
 | 
					    IDialogueClient,
 | 
				
			||||||
    IDialogueDatabase,
 | 
					    IDialogueDatabase,
 | 
				
			||||||
    IDialogueHistoryClient,
 | 
					    IDialogueHistoryClient,
 | 
				
			||||||
@ -81,6 +85,23 @@ const replaceSlots = (db: ISlots, client: ISlots): void => {
 | 
				
			|||||||
    db.Slots = client.Slots;
 | 
					    db.Slots = client.Slots;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const convertCrewShipMembers = (client: ICrewShipMembersClient): ICrewShipMembersDatabase => {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					        SLOT_A: client.SLOT_A ? new Types.ObjectId(client.SLOT_A.ItemId.$oid) : undefined,
 | 
				
			||||||
 | 
					        SLOT_B: client.SLOT_B ? new Types.ObjectId(client.SLOT_B.ItemId.$oid) : undefined,
 | 
				
			||||||
 | 
					        SLOT_C: client.SLOT_C ? new Types.ObjectId(client.SLOT_C.ItemId.$oid) : undefined
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const convertCrewShip = (client: ICrewShipClient): ICrewShipDatabase => {
 | 
				
			||||||
 | 
					    const { ItemId, ...rest } = client;
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					        ...rest,
 | 
				
			||||||
 | 
					        _id: new Types.ObjectId(ItemId.$oid),
 | 
				
			||||||
 | 
					        CrewMembers: client.CrewMembers ? convertCrewShipMembers(client.CrewMembers) : undefined
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const convertInfestedFoundry = (client: IInfestedFoundryClient): IInfestedFoundryDatabase => {
 | 
					const convertInfestedFoundry = (client: IInfestedFoundryClient): IInfestedFoundryDatabase => {
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
        ...client,
 | 
					        ...client,
 | 
				
			||||||
@ -192,6 +213,9 @@ export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<
 | 
				
			|||||||
    if (client.FocusUpgrades) {
 | 
					    if (client.FocusUpgrades) {
 | 
				
			||||||
        db.FocusUpgrades = client.FocusUpgrades;
 | 
					        db.FocusUpgrades = client.FocusUpgrades;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (client.CrewShips) {
 | 
				
			||||||
 | 
					        replaceArray<ICrewShipDatabase>(db.CrewShips, client.CrewShips.map(convertCrewShip));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    if (client.InfestedFoundry) {
 | 
					    if (client.InfestedFoundry) {
 | 
				
			||||||
        db.InfestedFoundry = convertInfestedFoundry(client.InfestedFoundry);
 | 
					        db.InfestedFoundry = convertInfestedFoundry(client.InfestedFoundry);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -30,6 +30,7 @@ export interface IInventoryDatabase
 | 
				
			|||||||
        | "CrewShipWeaponSkins"
 | 
					        | "CrewShipWeaponSkins"
 | 
				
			||||||
        | "OperatorLoadOuts"
 | 
					        | "OperatorLoadOuts"
 | 
				
			||||||
        | "AdultOperatorLoadOuts"
 | 
					        | "AdultOperatorLoadOuts"
 | 
				
			||||||
 | 
					        | "CrewShips"
 | 
				
			||||||
        | "InfestedFoundry"
 | 
					        | "InfestedFoundry"
 | 
				
			||||||
        | "DialogueHistory"
 | 
					        | "DialogueHistory"
 | 
				
			||||||
        | TEquipmentKey
 | 
					        | TEquipmentKey
 | 
				
			||||||
@ -50,6 +51,7 @@ export interface IInventoryDatabase
 | 
				
			|||||||
    CrewShipWeaponSkins: IUpgradeDatabase[];
 | 
					    CrewShipWeaponSkins: IUpgradeDatabase[];
 | 
				
			||||||
    OperatorLoadOuts: IOperatorConfigDatabase[];
 | 
					    OperatorLoadOuts: IOperatorConfigDatabase[];
 | 
				
			||||||
    AdultOperatorLoadOuts: IOperatorConfigDatabase[];
 | 
					    AdultOperatorLoadOuts: IOperatorConfigDatabase[];
 | 
				
			||||||
 | 
					    CrewShips: ICrewShipDatabase[];
 | 
				
			||||||
    InfestedFoundry?: IInfestedFoundryDatabase;
 | 
					    InfestedFoundry?: IInfestedFoundryDatabase;
 | 
				
			||||||
    DialogueHistory?: IDialogueHistoryDatabase;
 | 
					    DialogueHistory?: IDialogueHistoryDatabase;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -292,7 +294,7 @@ export interface IInventoryClient extends IDailyAffiliations {
 | 
				
			|||||||
    LastNemesisAllySpawnTime?: IMongoDate;
 | 
					    LastNemesisAllySpawnTime?: IMongoDate;
 | 
				
			||||||
    Settings: ISettings;
 | 
					    Settings: ISettings;
 | 
				
			||||||
    PersonalTechProjects: IPersonalTechProject[];
 | 
					    PersonalTechProjects: IPersonalTechProject[];
 | 
				
			||||||
    CrewShips: ICrewShip[];
 | 
					    CrewShips: ICrewShipClient[];
 | 
				
			||||||
    PlayerSkills: IPlayerSkills;
 | 
					    PlayerSkills: IPlayerSkills;
 | 
				
			||||||
    CrewShipAmmo: IConsumable[];
 | 
					    CrewShipAmmo: IConsumable[];
 | 
				
			||||||
    CrewShipSalvagedWeaponSkins: IUpgradeClient[];
 | 
					    CrewShipSalvagedWeaponSkins: IUpgradeClient[];
 | 
				
			||||||
@ -452,7 +454,7 @@ export interface IUpgradeDatabase extends Omit<IUpgradeClient, "ItemId"> {
 | 
				
			|||||||
    _id: Types.ObjectId;
 | 
					    _id: Types.ObjectId;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface ICrewShip {
 | 
					export interface ICrewShipClient {
 | 
				
			||||||
    ItemType: string;
 | 
					    ItemType: string;
 | 
				
			||||||
    Configs: IItemConfig[];
 | 
					    Configs: IItemConfig[];
 | 
				
			||||||
    Weapon?: ICrewShipWeapon;
 | 
					    Weapon?: ICrewShipWeapon;
 | 
				
			||||||
@ -461,6 +463,10 @@ export interface ICrewShip {
 | 
				
			|||||||
    RailjackImage?: IFlavourItem;
 | 
					    RailjackImage?: IFlavourItem;
 | 
				
			||||||
    CrewMembers?: ICrewShipMembersClient;
 | 
					    CrewMembers?: ICrewShipMembersClient;
 | 
				
			||||||
    ItemId: IOid;
 | 
					    ItemId: IOid;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface ICrewShipDatabase extends Omit<ICrewShipClient, "CrewMembers" | "ItemId"> {
 | 
				
			||||||
 | 
					    CrewMembers?: ICrewShipMembersDatabase;
 | 
				
			||||||
    _id: Types.ObjectId;
 | 
					    _id: Types.ObjectId;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user