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),
        )
}