diff --git a/src/models/inventoryModels/inventoryModel.ts b/src/models/inventoryModels/inventoryModel.ts index 7904a12f..88cf0877 100644 --- a/src/models/inventoryModels/inventoryModel.ts +++ b/src/models/inventoryModels/inventoryModel.ts @@ -82,7 +82,8 @@ import { INemesisDatabase, INemesisClient, IInfNode, - IDiscoveredMarker + IDiscoveredMarker, + IWeeklyMission } from "../../types/inventoryTypes/inventoryTypes"; import { IOid } from "../../types/commonTypes"; import { @@ -445,6 +446,18 @@ kubrowPetEggSchema.set("toJSON", { } }); +const weeklyMissionSchema = new Schema( + { + MissionIndex: Number, + CompletedMission: Boolean, + JobManifest: String, + Challenges: [String], + ChallengesReset: Boolean, + WeekCount: Number + }, + { _id: false } +); + const affiliationsSchema = new Schema( { Initiated: Boolean, @@ -452,6 +465,7 @@ const affiliationsSchema = new Schema( Title: Number, FreeFavorsEarned: { type: [Number], default: undefined }, FreeFavorsUsed: { type: [Number], default: undefined }, + WeeklyMissions: { type: [weeklyMissionSchema], default: undefined }, Tag: String }, { _id: false } diff --git a/src/services/questService.ts b/src/services/questService.ts index a9629339..fccc22fb 100644 --- a/src/services/questService.ts +++ b/src/services/questService.ts @@ -60,6 +60,23 @@ export const updateQuestKey = async ( inventoryChanges = await addItems(inventory as TInventoryDatabaseDocument, questCompletionItems); } inventory.ActiveQuest = ""; + + if (questKeyUpdate[0].ItemType == "/Lotus/Types/Keys/NewWarQuest/NewWarQuestKeyChain") { + inventory.Affiliations.push({ + Title: 1, + Standing: 1, + WeeklyMissions: [ + { + MissionIndex: 0, + CompletedMission: false, + JobManifest: "/Lotus/Syndicates/Kahl/KahlJobManifestVersionThree", + WeekCount: 0, + Challenges: [] + } + ], + Tag: "KahlSyndicate" + }); + } } return inventoryChanges; }; diff --git a/src/types/inventoryTypes/inventoryTypes.ts b/src/types/inventoryTypes/inventoryTypes.ts index 7e18be4d..b92e7e5b 100644 --- a/src/types/inventoryTypes/inventoryTypes.ts +++ b/src/types/inventoryTypes/inventoryTypes.ts @@ -354,9 +354,19 @@ export interface IAffiliation { Title?: number; FreeFavorsEarned?: number[]; FreeFavorsUsed?: number[]; + WeeklyMissions?: IWeeklyMission[]; // Kahl Tag: string; } +export interface IWeeklyMission { + MissionIndex: number; + CompletedMission: boolean; + JobManifest: string; + Challenges: string[]; + ChallengesReset?: boolean; + WeekCount: number; +} + export interface IAlignment { Wisdom: number; Alignment: number;