fix: correct checks for quest replay #2798

Merged
Sainan merged 3 commits from AMelonInsideLemon/SpaceNinjaServer:fix-replay into main 2025-09-21 02:53:06 -07:00
Showing only changes of commit 2336c3018a - Show all commits

View File

@ -159,7 +159,7 @@ export const completeQuest = async (inventory: TInventoryDatabaseDocument, quest
for (let i = 0; i < chainStageTotal; i++) {
const stage = existingQuestKey.Progress[i];
if (stage.c < run) {
if (stage.c <= run) {
stage.c = run;
await giveKeyChainStageTriggered(inventory, { KeyChain: questKey, ChainStage: i });
await giveKeyChainMissionReward(inventory, { KeyChain: questKey, ChainStage: i });
@ -302,7 +302,7 @@ export const giveKeyChainItem = async (
): Promise<IInventoryChanges> => {
let inventoryChanges: IInventoryChanges = {};
if (!isRerun) {
if (isRerun) {
Sainan marked this conversation as resolved Outdated

Can't we use stage i to track items were already given?

Can't we use stage `i` to track items were already given?
inventoryChanges = await addKeyChainItems(inventory, keyChainInfo);
if (isEmptyObject(inventoryChanges)) {
@ -331,7 +331,7 @@ export const giveKeyChainMessage = async (
): Promise<void> => {
const keyChainMessage = getKeyChainMessage(keyChainInfo);
if (!isRerun) {
if (isRerun) {
keyChainMessage.att = [];
keyChainMessage.countedAtt = [];
}