diff --git a/src/controllers/custom/manageQuestsController.ts b/src/controllers/custom/manageQuestsController.ts index 49ae004c..e2b7047b 100644 --- a/src/controllers/custom/manageQuestsController.ts +++ b/src/controllers/custom/manageQuestsController.ts @@ -107,7 +107,7 @@ export const manageQuestsController: RequestHandler = async (req, res) => { questKey.CompletionDate = undefined; } questKey.Progress.pop(); - const stage = questKey.Progress.length - 1; + const stage = questKey.Progress.length; if (stage > 0) { await giveKeyChainStageTriggered(inventory, { KeyChain: questKey.ItemType, diff --git a/src/services/itemDataService.ts b/src/services/itemDataService.ts index e071111f..256cea12 100644 --- a/src/services/itemDataService.ts +++ b/src/services/itemDataService.ts @@ -185,7 +185,7 @@ export const getKeyChainMessage = ({ KeyChain, ChainStage }: IKeyChainRequest): throw new Error(`KeyChain ${KeyChain} does not contain chain stages`); } - const keyChainStage = chainStages[ChainStage]; + const keyChainStage = chainStages[ChainStage - 1]; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (!keyChainStage) { throw new Error(`KeyChainStage ${ChainStage} not found`); diff --git a/src/services/questService.ts b/src/services/questService.ts index 85cefa4b..709e643d 100644 --- a/src/services/questService.ts +++ b/src/services/questService.ts @@ -63,13 +63,13 @@ export const updateQuestStage = ( throw new Error(`Progress should always exist when giving keychain triggered items or messages`); } - const questStage = quest.Progress[ChainStage]; + const questStage = quest.Progress[ChainStage - 1]; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (!questStage) { const questStageIndex = quest.Progress.push(questStageUpdate) - 1; - if (questStageIndex !== ChainStage) { - throw new Error(`Quest stage index mismatch: ${questStageIndex} !== ${ChainStage}`); + if (questStageIndex !== ChainStage - 1) { + throw new Error(`Quest stage index mismatch: ${questStageIndex} !== ${ChainStage - 1}`); } return; } @@ -308,11 +308,11 @@ export const giveKeyChainStageTriggered = async ( const chainStages = ExportKeys[keyChainInfo.KeyChain]?.chainStages; if (chainStages) { - if (chainStages[keyChainInfo.ChainStage].itemsToGiveWhenTriggered.length > 0) { + if (chainStages[keyChainInfo.ChainStage - 1].itemsToGiveWhenTriggered.length > 0) { await giveKeyChainItem(inventory, keyChainInfo); } - if (chainStages[keyChainInfo.ChainStage].messageToSendWhenTriggered) { + if (chainStages[keyChainInfo.ChainStage - 1].messageToSendWhenTriggered) { await giveKeyChainMessage(inventory, inventory.accountOwnerId, keyChainInfo); } }