aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/repo/Reforge.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/repo/Reforge.kt')
-rw-r--r--src/main/kotlin/repo/Reforge.kt14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/main/kotlin/repo/Reforge.kt b/src/main/kotlin/repo/Reforge.kt
index ea01818..b52adc6 100644
--- a/src/main/kotlin/repo/Reforge.kt
+++ b/src/main/kotlin/repo/Reforge.kt
@@ -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]
+ }
+ }
}
}