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