BattleSessionActionExecutionResult.kt

package io.github.lishangbu.avalon.game.battle.engine.core.session

import io.github.lishangbu.avalon.game.battle.engine.core.runtime.flow.BattleRuntimeSnapshot
import io.github.lishangbu.avalon.game.battle.engine.core.runtime.flow.MoveResolutionResult

/**
 * session 队列中单个行动的执行结果。
 *
 * @property action 被执行的原始行动。
 * @property snapshot 执行该行动后的最新快照。
 * @property moveResult 如果该行动是 move,则附带其主流程结果。
 * @property skippedReason 如果该行动在轮到执行前已经失效,则记录跳过原因。
 */
data class BattleSessionActionExecutionResult(
    val action: BattleSessionAction,
    val snapshot: BattleRuntimeSnapshot,
    val moveResult: MoveResolutionResult? = null,
    val captureResult: BattleSessionCaptureResult? = null,
    val skippedReason: String? = null,
)