DefaultBattleSessionTargetModeResolver.kt
package io.github.lishangbu.avalon.game.battle.engine.core.session.target
import io.github.lishangbu.avalon.game.battle.engine.core.runtime.support.BattleMoveDataReader
import io.github.lishangbu.avalon.game.battle.engine.spi.effect.EffectDefinitionRepository
/**
* 默认 effect 目标模式解析器。
*
* @property effectRepository effect 定义查询入口。
*/
class DefaultBattleSessionTargetModeResolver(
private val effectRepository: EffectDefinitionRepository,
) : BattleSessionTargetModeResolver {
/**
* 解析指定 effect 的目标模式。
*/
override fun resolve(effectId: String): BattleSessionTargetMode =
BattleSessionTargetingSupport.resolveMode(
BattleMoveDataReader.readTarget(effectRepository.get(effectId).data),
)
}