From 3beb1ecc42f2f5ed2d0d3905981fe98a66cb5f8c Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Sun, 30 Mar 2025 08:13:11 -0700 Subject: [PATCH] chore: use ExportKeys for quests not in questCompletionItems (#1377) Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1377 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com> --- src/services/itemDataService.ts | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/services/itemDataService.ts b/src/services/itemDataService.ts index 9be6c180..27d23616 100644 --- a/src/services/itemDataService.ts +++ b/src/services/itemDataService.ts @@ -203,12 +203,27 @@ export const getNode = (nodeName: string): IRegion => { }; export const getQuestCompletionItems = (questKey: string): ITypeCount[] | undefined => { - const items = (questCompletionItems as unknown as Record | undefined)?.[questKey]; + if (questKey in questCompletionItems) { + return questCompletionItems[questKey as keyof typeof questCompletionItems]; + } + logger.warn(`Quest ${questKey} not found in questCompletionItems`); - if (!items) { - logger.error( - `Quest ${questKey} not found in questCompletionItems, quest completion items have not been given. This is a temporary solution` - ); + const items: ITypeCount[] = []; + const meta = ExportKeys[questKey]; + if (meta.rewards) { + for (const reward of meta.rewards) { + if (reward.rewardType == "RT_STORE_ITEM") { + items.push({ + ItemType: fromStoreItem(reward.itemType), + ItemCount: 1 + }); + } else if (reward.rewardType == "RT_RESOURCE" || reward.rewardType == "RT_RECIPE") { + items.push({ + ItemType: reward.itemType, + ItemCount: reward.amount + }); + } + } } return items; };