add missionSchema

This commit is contained in:
Sainan 2025-02-05 19:04:42 +01:00
parent 1c82b90033
commit 0dd4cec541
3 changed files with 16 additions and 4 deletions

View File

@ -25,6 +25,7 @@ import {
ISettings, ISettings,
IInfestedFoundryDatabase, IInfestedFoundryDatabase,
IHelminthResource, IHelminthResource,
IMissionDatabase,
IConsumedSuit, IConsumedSuit,
IQuestStage, IQuestStage,
IQuestKeyDatabase, IQuestKeyDatabase,
@ -482,6 +483,15 @@ const helminthResourceSchema = new Schema<IHelminthResource>(
{ _id: false } { _id: false }
); );
const missionSchema = new Schema<IMissionDatabase>(
{
Tag: String,
Completes: { type: Number, default: 0 },
Tier: { type: Number, required: false }
},
{ _id: false }
);
const questProgressSchema = new Schema<IQuestStage>( const questProgressSchema = new Schema<IQuestStage>(
{ {
c: Number, c: Number,
@ -1010,7 +1020,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
CrewShipSalvagedWeapons: [Schema.Types.Mixed], CrewShipSalvagedWeapons: [Schema.Types.Mixed],
//Complete Mission\Quests //Complete Mission\Quests
Missions: [Schema.Types.Mixed], Missions: [missionSchema],
QuestKeys: [questKeysSchema], QuestKeys: [questKeysSchema],
ActiveQuest: { type: String, default: "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain" }, //TODO: check after mission starting gear ActiveQuest: { type: String, default: "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain" }, //TODO: check after mission starting gear
//item like DojoKey or Boss missions key //item like DojoKey or Boss missions key

View File

@ -1090,7 +1090,6 @@ export const addMissionComplete = (inventory: TInventoryDatabaseDocument, { Tag,
if (itemIndex !== -1) { if (itemIndex !== -1) {
Missions[itemIndex].Completes += Completes; Missions[itemIndex].Completes += Completes;
inventory.markModified(`Missions.${itemIndex}.Completes`);
} else { } else {
Missions.push({ Tag, Completes }); Missions.push({ Tag, Completes });
} }

View File

@ -753,10 +753,13 @@ export interface ILotusCustomization extends IItemConfig {
Persona: string; Persona: string;
} }
export interface IMission { export interface IMissionDatabase {
Tag: string;
Completes: number; Completes: number;
Tier?: number; Tier?: number;
Tag: string; }
export interface IMission extends IMissionDatabase {
RewardsCooldownTime?: IMongoDate; RewardsCooldownTime?: IMongoDate;
} }