BattleSessionTurnResultRecorder.kt
package io.github.lishangbu.avalon.game.battle.engine.core.session
/**
* turn pipeline 结果记录器。
*
* 设计意图:
* - 把“回合完成后写 battle log / 结构化事件 / 组装返回值”从默认 pipeline
* 主类中拆出来;
* - 让 `DefaultBattleSessionTurnPipeline` 更纯粹地只负责按序执行步骤;
* - 便于后续替换不同的 turn close-out 记录策略。
*/
class BattleSessionTurnResultRecorder {
/**
* 记录本回合结果并产出统一返回值。
*/
fun record(context: BattleSessionTurnContext): BattleSessionTurnResult {
context.session.recordLog("Resolved turn with ${context.actionResults.size} action(s).")
context.session.recordEvent(
BattleSessionTurnResolvedPayload(actionCount = context.actionResults.size),
)
return BattleSessionTurnResult(
actionResults = context.actionResults,
snapshot = context.snapshot,
)
}
}