feat: track EudicoHeists in CompletedJobChains #1531
@ -1414,7 +1414,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
|
|||||||
|
|
||||||
//https://warframe.fandom.com/wiki/Heist
|
//https://warframe.fandom.com/wiki/Heist
|
||||||
//ProfitTaker(1-4) Example:"LocationTag": "EudicoHeists", "Jobs":Mission name
|
//ProfitTaker(1-4) Example:"LocationTag": "EudicoHeists", "Jobs":Mission name
|
||||||
CompletedJobChains: [completedJobChainsSchema],
|
CompletedJobChains: { type: [completedJobChainsSchema], default: undefined },
|
||||||
//Night Wave Challenge
|
//Night Wave Challenge
|
||||||
SeasonChallengeHistory: [seasonChallengeHistorySchema],
|
SeasonChallengeHistory: [seasonChallengeHistorySchema],
|
||||||
|
|
||||||
|
@ -143,6 +143,28 @@ export const addMissionInventoryUpdates = async (
|
|||||||
if (inventoryUpdates.RewardInfo.NemesisAbandonedRewards) {
|
if (inventoryUpdates.RewardInfo.NemesisAbandonedRewards) {
|
||||||
inventory.NemesisAbandonedRewards = inventoryUpdates.RewardInfo.NemesisAbandonedRewards;
|
inventory.NemesisAbandonedRewards = inventoryUpdates.RewardInfo.NemesisAbandonedRewards;
|
||||||
}
|
}
|
||||||
|
if (inventoryUpdates.MissionStatus == "GS_SUCCESS" && inventoryUpdates.RewardInfo.jobId) {
|
||||||
|
// e.g. for Profit-Taker Phase 1:
|
||||||
|
// JobTier: -6,
|
||||||
|
// jobId: '/Lotus/Types/Gameplay/Venus/Jobs/Heists/HeistProfitTakerBountyOne_-6_SolarisUnitedHub1_663a71c80000000000000025_EudicoHeists',
|
||||||
|
// This is sent multiple times, with JobStage starting at 0 and incrementing each time, but only the final upload has GS_SUCCESS.
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
|
const [bounty, tier, hub, id, tag] = inventoryUpdates.RewardInfo.jobId.split("_");
|
||||||
|
if (tag == "EudicoHeists") {
|
||||||
|
inventory.CompletedJobChains ??= [];
|
||||||
|
let chain = inventory.CompletedJobChains.find(x => x.LocationTag == tag);
|
||||||
|
if (!chain) {
|
||||||
|
chain =
|
||||||
|
inventory.CompletedJobChains[
|
||||||
|
inventory.CompletedJobChains.push({ LocationTag: tag, Jobs: [] }) - 1
|
||||||
|
];
|
||||||
|
}
|
||||||
|
if (!chain.Jobs.includes(bounty)) {
|
||||||
|
chain.Jobs.push(bounty);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for (const [key, value] of getEntriesUnsafe(inventoryUpdates)) {
|
for (const [key, value] of getEntriesUnsafe(inventoryUpdates)) {
|
||||||
if (value === undefined) {
|
if (value === undefined) {
|
||||||
|
@ -292,7 +292,7 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
|
|||||||
RecentVendorPurchases?: IRecentVendorPurchaseClient[];
|
RecentVendorPurchases?: IRecentVendorPurchaseClient[];
|
||||||
NodeIntrosCompleted: string[];
|
NodeIntrosCompleted: string[];
|
||||||
GuildId?: IOid;
|
GuildId?: IOid;
|
||||||
CompletedJobChains: ICompletedJobChain[];
|
CompletedJobChains?: ICompletedJobChain[];
|
||||||
SeasonChallengeHistory: ISeasonChallenge[];
|
SeasonChallengeHistory: ISeasonChallenge[];
|
||||||
EquippedInstrument?: string;
|
EquippedInstrument?: string;
|
||||||
InvasionChainProgress: IInvasionChainProgress[];
|
InvasionChainProgress: IInvasionChainProgress[];
|
||||||
|
@ -143,6 +143,13 @@ export interface IRewardInfo {
|
|||||||
PurgatoryRewardQualifications?: string;
|
PurgatoryRewardQualifications?: string;
|
||||||
rewardSeed?: number;
|
rewardSeed?: number;
|
||||||
periodicMissionTag?: string;
|
periodicMissionTag?: string;
|
||||||
|
|
||||||
|
// for bounties, only EOM_AFK and node are given from above, plus:
|
||||||
|
JobTier?: string;
|
||||||
|
jobId?: string;
|
||||||
|
JobStage?: string;
|
||||||
|
Q?: boolean; // always false?
|
||||||
|
CheckpointCounter?: number; // starts at 1, is incremented with each job stage upload, and does not reset when starting a new job
|
||||||
}
|
}
|
||||||
|
|
||||||
export type IMissionStatus = "GS_SUCCESS" | "GS_FAILURE" | "GS_DUMPED" | "GS_QUIT" | "GS_INTERRUPTED";
|
export type IMissionStatus = "GS_SUCCESS" | "GS_FAILURE" | "GS_DUMPED" | "GS_QUIT" | "GS_INTERRUPTED";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user