fix: match scenario 2601 monthly seed progression
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import { createRefOrderedActionStack } from '../src/actionModules/bundle.js';
|
||||
import type { GeneralActionModule } from '../src/actionModules/general.js';
|
||||
import { ActionDefinition } from '../src/actions/turn/general/che_소집해제.js';
|
||||
|
||||
describe('che_소집해제', () => {
|
||||
it('applies legacy experience and dedication stat hooks', () => {
|
||||
const personality = {
|
||||
eventHandlers: {},
|
||||
onCalcStat: (_context, statName, value) => {
|
||||
if (statName === 'experience') return Number(value) * 1.1;
|
||||
if (statName === 'dedication') return Number(value) * 0.9;
|
||||
return value;
|
||||
},
|
||||
} satisfies GeneralActionModule;
|
||||
const noOp = {};
|
||||
const definition = new ActionDefinition({
|
||||
generalActionModules: createRefOrderedActionStack({
|
||||
nation: noOp,
|
||||
officer: noOp,
|
||||
domestic: noOp,
|
||||
war: noOp,
|
||||
personality,
|
||||
crewType: null,
|
||||
inheritance: noOp,
|
||||
scenario: null,
|
||||
items: [],
|
||||
}),
|
||||
} as never);
|
||||
const general = { crew: 500, experience: 1_000, dedication: 2_000 };
|
||||
const city = { population: 10_000 };
|
||||
|
||||
definition.resolve(
|
||||
{
|
||||
general,
|
||||
city,
|
||||
addLog: () => undefined,
|
||||
} as never,
|
||||
{}
|
||||
);
|
||||
|
||||
expect(general.experience).toBe(1_077);
|
||||
expect(general.dedication).toBe(2_090);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user