Fact.kt
Branches > main > ba82e8d > files / src / main / kotlin / net / bowmap / stormbow / fact / Fact.kt
package net.bowmap.stormbow.fact
import kotlinx.collections.immutable.*
import net.bowmap.stormbow.effect.Effect
import net.bowmap.stormbow.registry
/// A fact is something that happened in the game
interface Fact
fun handle(fact: Fact): PersistentList<Effect> {
var effects: PersistentList<Effect> = persistentListOf()
registry[fact::class]?.forEach { handler ->
effects = effects.addingAll(handler(fact))
}
return effects
}