feat: handle DiscoveredMarkers in missionInventoryUpdate #1339

Merged
Sainan merged 1 commits from discovered-markers into main 2025-03-27 03:32:51 -07:00
3 changed files with 25 additions and 3 deletions

View File

@ -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<IDiscoveredMarker>(
{
tag: String,
discoveryState: [Number]
},
{ _id: false }
);
const challengeProgressSchema = new Schema<IChallengeProgress>(
{
Progress: Number,
@ -1334,7 +1343,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
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],

View File

@ -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)) {

View File

@ -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[];
};