feat: enhance action context with diplomacy and map handling, add constraints for crew and route validation

This commit is contained in:
2026-01-02 19:52:17 +00:00
parent ea2ef91b31
commit edcfad4e40
6 changed files with 452 additions and 8 deletions
@@ -42,7 +42,8 @@ const asRecord = (value: unknown): Record<string, unknown> =>
const resolveConstraintEnv = (
world: TurnWorldState,
scenarioMeta?: ScenarioMeta
scenarioMeta: ScenarioMeta | undefined,
openingPartYear: number
): Record<string, unknown> => {
const startYear =
typeof scenarioMeta?.startYear === 'number'
@@ -60,6 +61,7 @@ const resolveConstraintEnv = (
month: world.currentMonth,
startYear,
relYear,
openingPartYear,
};
};
@@ -233,10 +235,15 @@ export const createReservedTurnHandler = async (options: {
execute(context): GeneralTurnResult {
const worldRef = options.getWorld();
const constraintEnv = {
...resolveConstraintEnv(context.world, options.scenarioMeta),
...resolveConstraintEnv(
context.world,
options.scenarioMeta,
env.openingPartYear
),
...(options.map ? { map: options.map } : {}),
...(options.unitSet ? { unitSet: options.unitSet } : {}),
cities: worldRef?.listCities() ?? [],
nations: worldRef?.listNations() ?? [],
};
const logs: LogEntryDraft[] = [];
const patches = {