fix(ai): align NPC final decisions with legacy

This commit is contained in:
2026-07-25 11:23:53 +00:00
parent a83f7a44e3
commit 61159209bf
19 changed files with 1233 additions and 287 deletions
@@ -109,11 +109,18 @@ describe('NPC 기술 연구 장기 시뮬레이션', () => {
const pushNationGenerals = (nationId: number, cityId: number) => {
const leaderId = nextId++;
generals.push(
createNpcGeneral(leaderId, cityId, nationId, 12, {
leadership: 100,
strength: 90,
intelligence: 40,
}, 1)
createNpcGeneral(
leaderId,
cityId,
nationId,
12,
{
leadership: 100,
strength: 90,
intelligence: 40,
},
1
)
);
for (let i = 0; i < 9; i += 1) {
generals.push(
@@ -317,6 +324,8 @@ describe('NPC 기술 연구 장기 시뮬레이션', () => {
expect(getTechLevel(finalTech2)).toBeGreaterThanOrEqual(initialLevel);
expect(secondRecruitCost).not.toBeNull();
expect(secondRecruitCost ?? 0).toBeGreaterThan(firstRecruitCost);
// Nation awards can occur in the same tick and make the general's net
// gold delta smaller than the recruitment price. Exact cost scaling is
// covered by the unit-set/action contract tests rather than this smoke.
}, 60000);
});