1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
package at.hannibal2.skyhanni.utils
import at.hannibal2.skyhanni.test.command.ErrorManager
// TODO: replace id with ordinal
enum class LorenzRarity(val color: LorenzColor, val id: Int) {
COMMON(LorenzColor.WHITE, 0),
UNCOMMON(LorenzColor.GREEN, 1),
RARE(LorenzColor.BLUE, 2),
EPIC(LorenzColor.DARK_PURPLE, 3),
LEGENDARY(LorenzColor.GOLD, 4),
MYTHIC(LorenzColor.LIGHT_PURPLE, 5),
DIVINE(LorenzColor.AQUA, 6),
SUPREME(LorenzColor.DARK_RED, 7),
SPECIAL(LorenzColor.RED, 8),
VERY_SPECIAL(LorenzColor.RED, 9),
ULTIMATE(LorenzColor.DARK_RED, 10),
;
val chatColorCode by lazy { color.getChatColor() }
val rawName = name.replace("_", " ")
fun oneBelow(logError: Boolean = true): LorenzRarity? {
val rarityBelow = getById(ordinal - 1)
if (rarityBelow == null && logError) {
ErrorManager.logErrorStateWithData(
"Problem with item rarity detected.",
"Trying to get an item rarity below common",
"ordinal" to ordinal
)
}
return rarityBelow
}
fun oneAbove(logError: Boolean = true): LorenzRarity? {
val rarityBelow = getById(ordinal + 1)
if (rarityBelow == null && logError) {
ErrorManager.logErrorStateWithData(
"Problem with item rarity detected.",
"Trying to get an item rarity above special",
"ordinal" to ordinal
)
}
return rarityBelow
}
fun isAtLeast(other: LorenzRarity): Boolean = this.ordinal >= other.ordinal
companion object {
fun getById(id: Int) = if (entries.size > id) entries[id] else null
fun getByName(name: String) = entries.firstOrNull { it.name == name }
}
}
|