fix: resume campaign progress safely
This commit is contained in:
@@ -40,6 +40,7 @@ try {
|
||||
const errors = [];
|
||||
const storySources = collectStorySources(scenarioModule, battleScenarios);
|
||||
const uniquePageIds = new Set();
|
||||
const firstSourceByPageId = new Map();
|
||||
const usedBackgroundKeys = new Set();
|
||||
const selectedBackgroundKeys = new Set();
|
||||
const selectedBackgroundUrlsByBase = new Map();
|
||||
@@ -93,6 +94,17 @@ try {
|
||||
|
||||
pages.forEach((page, index) => {
|
||||
pageCount += 1;
|
||||
const firstSource = firstSourceByPageId.get(page.id);
|
||||
if (firstSource) {
|
||||
errors.push(
|
||||
`story page id global uniqueness: duplicate "${page.id}" at ${source}[${index}], first used at ${firstSource}`
|
||||
);
|
||||
} else {
|
||||
firstSourceByPageId.set(
|
||||
page.id,
|
||||
`${source}[${index}]`
|
||||
);
|
||||
}
|
||||
uniquePageIds.add(page.id);
|
||||
validateStoryPage({
|
||||
errors,
|
||||
@@ -127,6 +139,11 @@ try {
|
||||
if (pageCount !== expectedStoryPageCount) {
|
||||
errors.push(`story page selection coverage: expected ${expectedStoryPageCount} pages, received ${pageCount}`);
|
||||
}
|
||||
if (uniquePageIds.size !== pageCount) {
|
||||
errors.push(
|
||||
`story page id global uniqueness: expected ${pageCount} unique ids, received ${uniquePageIds.size}`
|
||||
);
|
||||
}
|
||||
if (portraitSelectionMetrics.pages !== pageCount) {
|
||||
errors.push(
|
||||
`story portrait selection coverage: checked ${portraitSelectionMetrics.pages}/${pageCount} pages`
|
||||
|
||||
Reference in New Issue
Block a user