BattleTypeEffectivenessResolver.kt
package io.github.lishangbu.avalon.game.battle.engine.core.runtime.flow
import io.github.lishangbu.avalon.game.battle.engine.core.model.UnitState
/**
* battle engine 内部使用的属性克制解析器。
*
* 设计意图:
* - 让伤害主公式可以在 engine 内部统一消费属性克制倍率。
* - 通过接口隔离具体数据来源,默认实现可保持为无修正。
*/
fun interface BattleTypeEffectivenessResolver {
/**
* 解析当前招式类型对目标的最终属性倍率。
*/
fun resolve(
moveType: String?,
attacker: UnitState?,
target: UnitState?,
): Double
}
/**
* 默认的无属性克制修正实现。
*/
object NoopBattleTypeEffectivenessResolver : BattleTypeEffectivenessResolver {
override fun resolve(
moveType: String?,
attacker: UnitState?,
target: UnitState?,
): Double = 1.0
}