feat(game): match Ref nation basic card

This commit is contained in:
2026-08-13 17:55:19 +00:00
parent 6972db1faa
commit 4a930f3bec
7 changed files with 581 additions and 80 deletions
@@ -0,0 +1,42 @@
import { describe, expect, it } from 'vitest';
import {
resolveImpossibleStrategicCommands,
resolveMainNationTech,
splitNationTraitInfo,
} from '../src/services/mainNationProjection.js';
describe('main nation projection', () => {
it('splits the Ref nation-type advantages and disadvantages without changing their order', () => {
expect(splitNationTraitInfo('농상↑ 민심↑ 쌀수입↓')).toEqual({
pros: '농상↑ 민심↑',
cons: '쌀수입↓',
});
});
it('uses the scenario-relative Ref technology grade and limit', () => {
expect(
resolveMainNationTech({
tech: 3_999,
currentYear: 190,
worldConfig: {
const: { maxTechLevel: 12, initialAllowedTechLevel: 1, techLevelIncYear: 5 },
},
worldMeta: { scenarioMeta: { startYear: 180 } },
})
).toEqual({ level: 3, limited: true });
});
it('returns only strategic commands whose Ref-compatible cooldown is still active', () => {
expect(
resolveImpossibleStrategicCommands(
{
next_execute_수몰: 190 * 12 + 4,
next_execute_허보: 190 * 12 + 2,
},
190,
4
)
).toEqual([{ name: '수몰', remainingTurns: 1, availableYear: 190, availableMonth: 5 }]);
});
});