fix: align scenario 2400 monthly parity

This commit is contained in:
2026-08-05 13:25:39 +00:00
parent f731f1f38e
commit 5d6923f11a
26 changed files with 564 additions and 89 deletions
@@ -149,13 +149,9 @@ export const createAssignGeneralSpecialityHandler = (options: {
const defaultWar = normalizeCode(world.getScenarioConfig().const.defaultSpecialWar);
const retirementYear = readRuntimeNumber(world, 'retirementYear', 80);
const scenarioStat = world.getScenarioConfig().stat;
// ref SQL에 ORDER BY가 없으므로 loader가 보존한 DB scan 순서를 두
// domestic/war pass에서 그대로 재사용한다.
const generals = world.listGenerals().sort((left, right) => {
const leftOrder = readFiniteNumber(left.meta, ['legacyScanOrder']) ?? left.id;
const rightOrder = readFiniteNumber(right.meta, ['legacyScanOrder']) ?? right.id;
return leftOrder - rightOrder;
});
// Ref explicitly orders both speciality passes by general.no. This
// avoids leaking Aria's deleted-page reuse order into gameplay RNG.
const generals = world.listGenerals().sort((left, right) => left.id - right.id);
for (const general of generals) {
if (