From d1d495bcd0ccc4987f2f75f44edbcf57a973500a Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Tue, 8 Apr 2025 00:01:19 +0200 Subject: [PATCH] chore: handle zealoid prelate stripped rewards --- src/services/missionInventoryUpdateService.ts | 22 +++++++++++++++---- src/types/requestTypes.ts | 3 ++- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/services/missionInventoryUpdateService.ts b/src/services/missionInventoryUpdateService.ts index 92f219e2..b48167df 100644 --- a/src/services/missionInventoryUpdateService.ts +++ b/src/services/missionInventoryUpdateService.ts @@ -602,10 +602,24 @@ export const addMissionRewards = async ( if (!droptable) { logger.error(`unknown droptable ${si.DropTable}`); } else { - for (let i = 0; i != si.DROP_MOD.length; ++i) { - for (const pool of droptable) { - const reward = getRandomReward(pool.items)!; - logger.debug(`stripped droptable rolled`, reward); + const modsPool = droptable[0].items; + const blueprintsPool = (droptable.length > 1 ? droptable[1] : droptable[0]).items; + if (si.DROP_MOD) { + for (let i = 0; i != si.DROP_MOD.length; ++i) { + const reward = getRandomReward(modsPool)!; + logger.debug(`stripped droptable (mods pool) rolled`, reward); + await addItem(inventory, reward.type); + MissionRewards.push({ + StoreItem: toStoreItem(reward.type), + ItemCount: 1, + FromEnemyCache: true // to show "identified" + }); + } + } + if (si.DROP_BLUEPRINT) { + for (let i = 0; i != si.DROP_BLUEPRINT.length; ++i) { + const reward = getRandomReward(blueprintsPool)!; + logger.debug(`stripped droptable (blueprints pool) rolled`, reward); await addItem(inventory, reward.type); MissionRewards.push({ StoreItem: toStoreItem(reward.type), diff --git a/src/types/requestTypes.ts b/src/types/requestTypes.ts index d3360e22..173d150d 100644 --- a/src/types/requestTypes.ts +++ b/src/types/requestTypes.ts @@ -101,7 +101,8 @@ export type IMissionInventoryUpdateRequest = { Upgrades?: IUpgradeClient[]; // riven challenge progress StrippedItems?: { DropTable: string; - DROP_MOD: number[]; + DROP_MOD?: number[]; + DROP_BLUEPRINT?: number[]; }[]; DeathMarks?: string[]; Nemesis?: number;