ApplySideConditionMutation.kt
package io.github.lishangbu.avalon.game.battle.engine.core.mutation
import io.github.lishangbu.avalon.game.battle.engine.core.type.TargetSelectorId
/**
* side condition 挂载变更。
*
* @property target 目标 side 选择器,只允许 `side` 或 `foe_side`。
* @property conditionEffectId 需要挂载的 side condition effect 标识。
* @property duration 可选的剩余持续回合数。
* @property sourceId 可选的来源单位标识。
*/
data class ApplySideConditionMutation(
val target: TargetSelectorId,
val conditionEffectId: String,
val duration: Int? = null,
val sourceId: String? = null,
) : BattleMutation