EventContextActorReader.kt
package io.github.lishangbu.avalon.game.battle.engine.core.runtime.support
import io.github.lishangbu.avalon.game.battle.engine.core.event.EventContext
import io.github.lishangbu.avalon.game.battle.engine.core.model.UnitState
import io.github.lishangbu.avalon.game.battle.engine.core.type.ActorId
import io.github.lishangbu.avalon.game.battle.engine.core.type.StandardActorIds
/**
* 从 EventContext 中解析 actor 的辅助组件。
*/
object EventContextActorReader {
fun readUnit(
actor: ActorId,
context: EventContext,
): UnitState? =
when (actor) {
StandardActorIds.SELF -> context.self
StandardActorIds.TARGET -> context.target
StandardActorIds.SOURCE -> context.source
else -> null
}
}