ApplyConditionActionNode.kt
package io.github.lishangbu.avalon.game.battle.engine.core.dsl.action
import io.github.lishangbu.avalon.game.battle.engine.core.dsl.ActionNode
import io.github.lishangbu.avalon.game.battle.engine.core.type.ActionTypeId
import io.github.lishangbu.avalon.game.battle.engine.core.type.StandardActionTypeIds
import io.github.lishangbu.avalon.game.battle.engine.core.type.TargetSelectorId
/**
* 挂载 condition / effect 的动作。
*
* @property target 目标选择器。
* @property value condition 或 effect 标识。
* @property duration 可选的持续回合数;空值表示不声明固定持续时间。
*/
data class ApplyConditionActionNode(
val target: TargetSelectorId,
val value: String,
val duration: Int? = null,
) : ActionNode {
override val type: ActionTypeId = StandardActionTypeIds.APPLY_CONDITION
}