From 41b4d29917b8e9c39b725c84ecc5afd1cc387a25 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 17 Feb 2021 16:58:57 +0600 Subject: [PATCH] updates in slot machine utils --- CHANGELOG.md | 4 +++ .../extensions/utils/SlotMachineUtils.kt | 30 ++++++++++++++----- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8aefe807ff..677ec2f80b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ * `Common`: * `Version`: * `MicroUtils`: `0.4.24` -> `0.4.25` +* `Extensions Utils`: + * `SlotMachineReelImages` has been renamed to `SlotMachineReelImage` + * `SlotMachineReelImage` got two built-in parameters: `text` and `number` + * New extension `String.asSlotMachineReelImage` ## 0.32.5 diff --git a/tgbotapi.extensions.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/SlotMachineUtils.kt b/tgbotapi.extensions.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/SlotMachineUtils.kt index 4ac9cd338e..82fcdb7e77 100644 --- a/tgbotapi.extensions.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/SlotMachineUtils.kt +++ b/tgbotapi.extensions.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/SlotMachineUtils.kt @@ -6,16 +6,30 @@ import dev.inmo.tgbotapi.types.dice.SlotMachineDiceAnimationType import kotlinx.serialization.Serializable import kotlinx.serialization.Transient -enum class SlotMachineReelImages { - BAR, BERRIES, LEMON, SEVEN +/** + * @param text Is a text representation + * @param number Internal representation of reel + */ +enum class SlotMachineReelImage(val text: String, val number: Int) { + BAR("[bar]", 0), + BERRIES("\uD83C\uDF52", 1), + LEMON("\uD83C\uDF4B", 2), + SEVEN("7", 3) } +@Deprecated("Renamed", ReplaceWith("SlotMachineReelImage", "dev.inmo.tgbotapi.extensions.utils.SlotMachineReelImage")) +typealias SlotMachineReelImages = SlotMachineReelImage + +/** + * @return First [SlotMachineReelImage] with [SlotMachineReelImage.number] equal to receiver OR [SlotMachineReelImage.SEVEN] + */ val Int.asSlotMachineReelImage - get() = when (this) { - 0 -> SlotMachineReelImages.BAR - 1 -> SlotMachineReelImages.BERRIES - 2 -> SlotMachineReelImages.LEMON - else -> SlotMachineReelImages.SEVEN - } + get() = SlotMachineReelImage.values().firstOrNull { it.number == this } ?: SlotMachineReelImage.SEVEN + +/** + * @return First [SlotMachineReelImage] with [SlotMachineReelImage.text] equal to receiver OR [SlotMachineReelImage.SEVEN] + */ +val String.asSlotMachineReelImage + get() = SlotMachineReelImage.values().firstOrNull { it.text == this } ?: SlotMachineReelImage.SEVEN @Serializable data class SlotMachineResult(