From 26be8f2f02c7101f5b0d0e2819b745abd81bd6bd Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Sun, 13 Apr 2025 03:38:15 +0200 Subject: [PATCH] fix: look ahead for key chain messages 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 - ... --- 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`