feat: apply traits in live turn runtime
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import { loadTraitNames, mapGeneralList, type GeneralListRow } from '../src/router/nation/shared.js';
|
||||
|
||||
describe('nation trait information', () => {
|
||||
it('returns ref-compatible names and descriptions for nation and general traits', async () => {
|
||||
const row: GeneralListRow = {
|
||||
id: 1,
|
||||
name: '특성장수',
|
||||
npcState: 0,
|
||||
nationId: 1,
|
||||
cityId: 1,
|
||||
troopId: 0,
|
||||
officerLevel: 1,
|
||||
leadership: 80,
|
||||
strength: 70,
|
||||
intel: 60,
|
||||
experience: 0,
|
||||
dedication: 0,
|
||||
injury: 0,
|
||||
gold: 1000,
|
||||
rice: 1000,
|
||||
crew: 1000,
|
||||
personalCode: 'che_패권',
|
||||
specialCode: 'che_상재',
|
||||
special2Code: 'che_기병',
|
||||
meta: {},
|
||||
penalty: {},
|
||||
};
|
||||
|
||||
const [general] = await mapGeneralList([row], new Map([[1, '도시']]), new Map());
|
||||
expect(general?.personality).toEqual({
|
||||
key: 'che_패권',
|
||||
name: '패권',
|
||||
info: '훈련 +5, 징·모병 비용 +20%',
|
||||
});
|
||||
expect(general?.specialDomestic?.info).toContain('상업 투자');
|
||||
expect(general?.specialWar?.info).toContain('공격 시 대미지 +20%');
|
||||
|
||||
const nation = (await loadTraitNames(['che_유가'], 'nation')).get('che_유가');
|
||||
expect(nation).toEqual({ name: '유가', info: '농상↑ 민심↑ 쌀수입↓' });
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user