diff --git a/app/game-engine/src/turn/reservedTurnHandler.ts b/app/game-engine/src/turn/reservedTurnHandler.ts index c8f33a5..f2fde3d 100644 --- a/app/game-engine/src/turn/reservedTurnHandler.ts +++ b/app/game-engine/src/turn/reservedTurnHandler.ts @@ -1714,6 +1714,14 @@ export const createReservedTurnHandler = async (options: { } let generalCommand = options.reservedTurns.getGeneralTurn(currentGeneral.id, 0); + if ((process.env.CORE_AI_TRACE_GENERAL_IDS?.split(',') ?? []).includes(String(currentGeneral.id))) { + process.stdout.write( + `RESERVED_TURN_HANDLER_TRACE ${JSON.stringify({ + generalId: currentGeneral.id, + action: generalCommand.action, + })}\n` + ); + } if (!isBlocked && generalCommand.action !== DEFAULT_ACTION) { hasReservedTurn = true; } diff --git a/app/game-engine/src/turn/reservedTurnStore.ts b/app/game-engine/src/turn/reservedTurnStore.ts index bc73cd9..234c019 100644 --- a/app/game-engine/src/turn/reservedTurnStore.ts +++ b/app/game-engine/src/turn/reservedTurnStore.ts @@ -408,6 +408,17 @@ export class InMemoryReservedTurnStore { orderBy: [{ turnIdx: 'asc' }], }); this.generalTurns.set(generalId, buildTurnListFromRows(rows, this.maxGeneralTurns)); + if ((process.env.CORE_AI_TRACE_GENERAL_IDS?.split(',') ?? []).includes(String(generalId))) { + process.stdout.write( + `RESERVED_TURN_REFRESH_TRACE ${JSON.stringify({ + generalId, + force, + firstAction: rows.find((row) => row.turnIdx === 0)?.actionCode ?? DEFAULT_TURN_ACTION, + dirty: this.dirtyGeneralIds.has(generalId), + leased: this.leasedGeneralIds.has(generalId), + })}\n` + ); + } } async prefetchGeneralTurns(generalIds: number[]): Promise {