SetSwitchBoostCarryMutation.kt
package io.github.lishangbu.avalon.game.battle.engine.core.mutation
import io.github.lishangbu.avalon.game.battle.engine.core.type.TargetSelectorId
/**
* 为后续换人暂存一份待继承 boosts 的 mutation。
*
* 设计意图:
* - 让 Baton Pass 这类“当前单位离场时把 boosts 交给下一个上场单位”的规则
* 通过正式 mutation 写进快照;
* - 把“是否存在待继承 boosts”从调试探针中剥离,收口到结构化 sessionState;
* - 与真正的 switch 编排解耦,switch 逻辑只负责读取和消费这份暂存数据。
*
* @property target 需要暂存 boosts 的单位。
* @property boosts 即将随下一次换人交给接替者的 boosts 快照。
*/
data class SetSwitchBoostCarryMutation(
val target: TargetSelectorId,
val boosts: Map<String, Int>,
) : BattleMutation