diff --git a/src/models/inventoryModels/inventoryModel.ts b/src/models/inventoryModels/inventoryModel.ts index a2e9b4b7..7904a12f 100644 --- a/src/models/inventoryModels/inventoryModel.ts +++ b/src/models/inventoryModels/inventoryModel.ts @@ -81,7 +81,8 @@ import { IVendorPurchaseHistoryEntryClient, INemesisDatabase, INemesisClient, - IInfNode + IInfNode, + IDiscoveredMarker } from "../../types/inventoryTypes/inventoryTypes"; import { IOid } from "../../types/commonTypes"; import { @@ -377,6 +378,14 @@ droneSchema.set("toJSON", { } }); +const discoveredMarkerSchema = new Schema( + { + tag: String, + discoveryState: [Number] + }, + { _id: false } +); + const challengeProgressSchema = new Schema( { Progress: Number, @@ -1334,7 +1343,7 @@ const inventorySchema = new Schema( ActiveAvatarImageType: { type: String, default: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageDefault" }, // open location store like EidolonPlainsDiscoverable or OrbVallisCaveDiscoverable - DiscoveredMarkers: [Schema.Types.Mixed], + DiscoveredMarkers: [discoveredMarkerSchema], //Open location mission like "JobId" + "StageCompletions" CompletedJobs: [Schema.Types.Mixed], diff --git a/src/services/missionInventoryUpdateService.ts b/src/services/missionInventoryUpdateService.ts index d8b1cc32..ef66afbf 100644 --- a/src/services/missionInventoryUpdateService.ts +++ b/src/services/missionInventoryUpdateService.ts @@ -359,6 +359,17 @@ export const addMissionInventoryUpdates = async ( } break; } + case "DiscoveredMarkers": { + for (const clientMarker of value) { + const dbMarker = inventory.DiscoveredMarkers.find(x => x.tag == clientMarker.tag); + if (dbMarker) { + dbMarker.discoveryState = clientMarker.discoveryState; + } else { + inventory.DiscoveredMarkers.push(clientMarker); + } + } + break; + } default: // Equipment XP updates if (equipmentKeys.includes(key as TEquipmentKey)) { diff --git a/src/types/requestTypes.ts b/src/types/requestTypes.ts index b61c99da..25158f20 100644 --- a/src/types/requestTypes.ts +++ b/src/types/requestTypes.ts @@ -16,7 +16,8 @@ import { IQuestKeyDatabase, ILoreFragmentScan, IUpgradeClient, - ICollectibleEntry + ICollectibleEntry, + IDiscoveredMarker } from "./inventoryTypes/inventoryTypes"; export interface IAffiliationChange { @@ -106,6 +107,7 @@ export type IMissionInventoryUpdateRequest = { NumExtraRewards: number; Count: number; }[]; + DiscoveredMarkers?: IDiscoveredMarker[]; } & { [K in TEquipmentKey]?: IEquipmentClient[]; };