WIP: Reforge Recipes

This commit is contained in:
Linnea Gräf
2024-12-25 16:15:20 +01:00
parent e16c60169b
commit ddebaf4790
14 changed files with 273 additions and 48 deletions

View File

@@ -108,6 +108,8 @@ data class Reforge(
@Serializable(with = RarityMapped.Serializer::class)
sealed interface RarityMapped<T> {
fun get(rarity: Rarity): T?
class Serializer<T>(
val values: KSerializer<T>
) : KSerializer<RarityMapped<T>> {
@@ -137,10 +139,18 @@ data class Reforge(
}
@Serializable
data class Direct<T>(val value: T) : RarityMapped<T>
data class Direct<T>(val value: T) : RarityMapped<T> {
override fun get(rarity: Rarity): T {
return value
}
}
@Serializable
data class PerRarity<T>(val values: Map<Rarity, T>) : RarityMapped<T>
data class PerRarity<T>(val values: Map<Rarity, T>) : RarityMapped<T> {
override fun get(rarity: Rarity): T? {
return values[rarity]
}
}
}
}