From 670002b454ae72271679456dda159c483bcddeb8 Mon Sep 17 00:00:00 2001 From: Sainan Date: Sun, 9 Mar 2025 11:24:33 +0100 Subject: [PATCH] chore: track inventory changes when cracking relic via addMissionRewards --- src/helpers/relicHelper.ts | 17 ++++++++++++----- src/services/missionInventoryUpdateService.ts | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/helpers/relicHelper.ts b/src/helpers/relicHelper.ts index 7c1347d5..13d7d7d4 100644 --- a/src/helpers/relicHelper.ts +++ b/src/helpers/relicHelper.ts @@ -3,12 +3,14 @@ import { IVoidTearParticipantInfo } from "@/src/types/requestTypes"; import { ExportRelics, ExportRewards, TRarity } from "warframe-public-export-plus"; import { getRandomWeightedReward, IRngResult } from "@/src/services/rngService"; import { logger } from "@/src/utils/logger"; -import { addMiscItems } from "@/src/services/inventoryService"; +import { addMiscItems, combineInventoryChanges } from "@/src/services/inventoryService"; import { handleStoreItemAcquisition } from "@/src/services/purchaseService"; +import { IInventoryChanges } from "../types/purchaseTypes"; export const crackRelic = async ( inventory: TInventoryDatabaseDocument, - participant: IVoidTearParticipantInfo + participant: IVoidTearParticipantInfo, + inventoryChanges: IInventoryChanges = {} ): Promise => { const relic = ExportRelics[participant.VoidProjection]; const weights = refinementToWeights[relic.quality]; @@ -21,15 +23,20 @@ export const crackRelic = async ( participant.Reward = reward.type; // Remove relic - addMiscItems(inventory, [ + const miscItemChanges = [ { ItemType: participant.VoidProjection, ItemCount: -1 } - ]); + ]; + addMiscItems(inventory, miscItemChanges); + combineInventoryChanges(inventoryChanges, { MiscItems: miscItemChanges }); // Give reward - await handleStoreItemAcquisition(reward.type, inventory, reward.itemCount); + combineInventoryChanges( + inventoryChanges, + (await handleStoreItemAcquisition(reward.type, inventory, reward.itemCount)).InventoryChanges + ); return reward; }; diff --git a/src/services/missionInventoryUpdateService.ts b/src/services/missionInventoryUpdateService.ts index c9986c38..32e63b9d 100644 --- a/src/services/missionInventoryUpdateService.ts +++ b/src/services/missionInventoryUpdateService.ts @@ -402,7 +402,7 @@ export const addMissionRewards = async ( voidTearWave.Participants[0].QualifiesForReward && !voidTearWave.Participants[0].HaveRewardResponse ) { - const reward = await crackRelic(inventory, voidTearWave.Participants[0]); + const reward = await crackRelic(inventory, voidTearWave.Participants[0], inventoryChanges); MissionRewards.push({ StoreItem: reward.type, ItemCount: reward.itemCount }); }