InMemoryEffectDefinitionRepository.kt
package io.github.lishangbu.avalon.game.battle.engine.adapter.memory.effect
import io.github.lishangbu.avalon.game.battle.engine.core.dsl.EffectDefinition
import io.github.lishangbu.avalon.game.battle.engine.spi.effect.EffectDefinitionRepository
/**
* 基于内存 Map 的 EffectDefinition 仓库。
*
* @property entries effect id 到定义的映射。
*/
class InMemoryEffectDefinitionRepository(
private val entries: Map<String, EffectDefinition>,
) : EffectDefinitionRepository {
override fun get(id: String): EffectDefinition =
entries[id]
?: error("No effect definition found for '$id'.")
override fun contains(id: String): Boolean = entries.containsKey(id)
}