ActionResult.kt
package io.github.lishangbu.avalon.game.battle.engine.core.runtime
import io.github.lishangbu.avalon.game.battle.engine.core.mutation.BattleMutation
/**
* 单个动作执行后的结果。
*
* 设计意图:
* - 统一表达动作是否中断流程以及是否修改 relay。
* - 让动作执行器与上层 Hook 处理器之间的返回值协议保持稳定。
*
* @property cancelled 当前动作是否请求中断后续流程。
* @property relay 动作返回的新 relay 值,空值表示不修改。
* @property mutations 当前动作产生的结构化变更列表。
*/
data class ActionResult(
val cancelled: Boolean = false,
val relay: Any? = null,
val mutations: List<BattleMutation> = emptyList(),
)