fix: use shared count for calendar day indecies #2265

Merged
OrdisPrime merged 5 commits from cal-fix-ii into main 2025-06-23 15:02:31 -07:00
Showing only changes of commit 29a465b183 - Show all commits

View File

@ -12,22 +12,19 @@ export const completeCalendarEventController: RequestHandler = async (req, res)
const calendarProgress = getCalendarProgress(inventory); const calendarProgress = getCalendarProgress(inventory);
const currentSeason = getWorldState().KnownCalendarSeasons[0]; const currentSeason = getWorldState().KnownCalendarSeasons[0];
let inventoryChanges: IInventoryChanges = {}; let inventoryChanges: IInventoryChanges = {};
let dayIndex = calendarProgress.SeasonProgress.LastCompletedDayIdx + 1; const dayIndex = calendarProgress.SeasonProgress.LastCompletedDayIdx + 1;
for (; dayIndex != currentSeason.Days.length; ++dayIndex) { const day = currentSeason.Days[dayIndex];
const day = currentSeason.Days[dayIndex]; if (day.events.length != 0 && day.events[0].type == "CET_CHALLENGE") {
if (day.events.length == 0 || day.events[0].type != "CET_CHALLENGE") { throw new Error(`completeCalendarEvent should not be used for challenges`);
if (day.events.length != 0) { }
const selection = day.events[parseInt(req.query.CompletedEventIdx as string)]; if (day.events.length != 0) {
if (selection.type == "CET_REWARD") { const selection = day.events[parseInt(req.query.CompletedEventIdx as string)];
inventoryChanges = (await handleStoreItemAcquisition(selection.reward!, inventory)) if (selection.type == "CET_REWARD") {
.InventoryChanges; inventoryChanges = (await handleStoreItemAcquisition(selection.reward!, inventory)).InventoryChanges;
} else if (selection.type == "CET_UPGRADE") { } else if (selection.type == "CET_UPGRADE") {
calendarProgress.YearProgress.Upgrades.push(selection.upgrade!); calendarProgress.YearProgress.Upgrades.push(selection.upgrade!);
} else if (selection.type != "CET_PLOT") { } else if (selection.type != "CET_PLOT") {
throw new Error(`unexpected selection type: ${selection.type}`); throw new Error(`unexpected selection type: ${selection.type}`);
}
}
break;
} }
} }
calendarProgress.SeasonProgress.LastCompletedDayIdx = dayIndex; calendarProgress.SeasonProgress.LastCompletedDayIdx = dayIndex;