From 729ea0abff699057ca18274fe82b6f9e57cce080 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Sun, 13 Apr 2025 05:51:27 -0700 Subject: [PATCH] fix: look ahead for key chain messages (#1603) This is required for the railjack quest: - request has ChainStage 1 when it wants message from index 3 - request has ChainStage 4 when it wants message from index 6 - ... Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1603 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com> --- src/services/itemDataService.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/services/itemDataService.ts b/src/services/itemDataService.ts index e071111f..6e0edd23 100644 --- a/src/services/itemDataService.ts +++ b/src/services/itemDataService.ts @@ -185,14 +185,15 @@ export const getKeyChainMessage = ({ KeyChain, ChainStage }: IKeyChainRequest): throw new Error(`KeyChain ${KeyChain} does not contain chain stages`); } - const keyChainStage = chainStages[ChainStage]; - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - if (!keyChainStage) { - throw new Error(`KeyChainStage ${ChainStage} not found`); + let i = ChainStage; + let chainStageMessage = chainStages[i].messageToSendWhenTriggered; + while (!chainStageMessage) { + if (++i >= chainStages.length) { + break; + } + chainStageMessage = chainStages[i].messageToSendWhenTriggered; } - const chainStageMessage = keyChainStage.messageToSendWhenTriggered; - if (!chainStageMessage) { throw new Error( `client requested key chain message in keychain ${KeyChain} at stage ${ChainStage} but they did not exist`