fix: complete reserved nation command parity

This commit is contained in:
2026-07-26 02:28:44 +00:00
parent 398472be11
commit 9ca11f33db
8 changed files with 220 additions and 59 deletions
@@ -311,7 +311,7 @@ const buildWorldInput = (
}));
const snapshot: TurnWorldSnapshot = {
scenarioConfig: {
stat: { total: 300, min: 10, max: 100, npcTotal: 150, npcMax: 50, npcMin: 10, chiefMin: 70 },
stat: { total: 300, min: 10, max: 100, npcTotal: 150, npcMax: 75, npcMin: 10, chiefMin: 70 },
iconPath: '',
map: {},
const: {
@@ -586,7 +586,10 @@ export const runCoreTurnCommandTrace = async (
const worldInput = buildWorldInput(request, referenceBefore, unitSet, map);
const { state, snapshot } = worldInput;
const selector = {
generalIds: new Set(referenceBefore.generals.map((row) => readNumber(row, 'id'))),
generalIds: new Set([
...referenceBefore.generals.map((row) => readNumber(row, 'id')),
...(request.observe?.generalIds ?? []),
]),
cityIds: new Set(referenceBefore.cities.map((row) => readNumber(row, 'id'))),
nationIds: new Set(referenceBefore.nations.map((row) => readNumber(row, 'id'))),
};
@@ -202,7 +202,7 @@ const buildRequest = (
],
},
observe: {
generalIds: [1, 2, 3],
generalIds: [1, 2, 3, 4, 5, 6],
cityIds: [3, 70],
nationIds: [1, 2],
logAfterId: 0,
@@ -364,6 +364,61 @@ const cases: NationMatrixCase[] = [
cities: { 70: { nationId: 1, supplyState: 1 } },
},
],
[
'che_의병모집',
undefined,
{
nations: {
1: {
turnLastByOfficerLevel: {
12: { command: '의병모집', term: 2 },
},
},
},
},
],
[
'che_수몰',
{ destCityID: 70 },
{
nations: {
1: {
turnLastByOfficerLevel: {
12: { command: '수몰', arg: { destCityID: 70 }, term: 2 },
},
coreTurnLastByOfficerLevel: {
12: { command: '수몰', arg: { destCityId: 70 }, term: 2 },
},
},
},
diplomacy: { '1:2': { state: 0 }, '2:1': { state: 0 } },
},
],
[
'che_피장파장',
{ destNationID: 2, commandType: 'che_필사즉생' },
{
nations: {
1: {
turnLastByOfficerLevel: {
12: {
command: '피장파장',
arg: { destNationID: 2, commandType: 'che_필사즉생' },
term: 1,
},
},
coreTurnLastByOfficerLevel: {
12: {
command: '피장파장',
arg: { destNationId: 2, commandType: 'che_필사즉생' },
term: 1,
},
},
},
},
diplomacy: { '1:2': { state: 0 }, '2:1': { state: 0 } },
},
],
];
integration('nation command success matrix', () => {