summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/combat
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/combat')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/BestiaryData.kt58
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/BossType.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/DamageIndicatorManager.kt14
3 files changed, 46 insertions, 30 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/BestiaryData.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/BestiaryData.kt
index daf5caddd..b7d3718c7 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/BestiaryData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/BestiaryData.kt
@@ -2,10 +2,14 @@ package at.hannibal2.skyhanni.features.combat
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator
+import at.hannibal2.skyhanni.config.features.combat.BestiaryConfig
+import at.hannibal2.skyhanni.config.features.combat.BestiaryConfig.DisplayTypeEntry
+import at.hannibal2.skyhanni.config.features.combat.BestiaryConfig.NumberFormatEntry
import at.hannibal2.skyhanni.events.GuiContainerEvent
import at.hannibal2.skyhanni.events.GuiRenderEvent
import at.hannibal2.skyhanni.events.InventoryCloseEvent
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
+import at.hannibal2.skyhanni.utils.ConfigUtils
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.LorenzColor
@@ -99,6 +103,12 @@ object BestiaryData {
@SubscribeEvent
fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) {
event.move(2, "misc.bestiaryData", "combat.bestiary")
+ event.transform(14, "combat.bestiary.numberFormat") { element ->
+ ConfigUtils.migrateIntToEnum(element, NumberFormatEntry::class.java)
+ }
+ event.transform(14, "combat.bestiary.displayType") { element ->
+ ConfigUtils.migrateIntToEnum(element, DisplayTypeEntry::class.java)
+ }
}
private fun update() {
@@ -209,14 +219,14 @@ object BestiaryData {
private fun sortMobList(): MutableList<BestiaryMob> {
val sortedMobList = when (config.displayType) {
- 0 -> mobList.sortedBy { it.percentToMax() }
- 1 -> mobList.sortedBy { it.percentToTier() }
- 2 -> mobList.sortedBy { it.totalKills }
- 3 -> mobList.sortedByDescending { it.totalKills }
- 4 -> mobList.sortedBy { it.killNeededToMax() }
- 5 -> mobList.sortedByDescending { it.killNeededToMax() }
- 6 -> mobList.sortedBy { it.killNeededToNextLevel() }
- 7 -> mobList.sortedByDescending { it.killNeededToNextLevel() }
+ DisplayTypeEntry.GLOBAL_MAX -> mobList.sortedBy { it.percentToMax() }
+ DisplayTypeEntry.GLOBAL_NEXT -> mobList.sortedBy { it.percentToTier() }
+ DisplayTypeEntry.LOWEST_TOTAL -> mobList.sortedBy { it.totalKills }
+ DisplayTypeEntry.HIGHEST_TOTAL -> mobList.sortedByDescending { it.totalKills }
+ DisplayTypeEntry.LOWEST_MAX -> mobList.sortedBy { it.killNeededToMax() }
+ DisplayTypeEntry.HIGHEST_MAX -> mobList.sortedByDescending { it.killNeededToMax() }
+ DisplayTypeEntry.LOWEST_NEXT -> mobList.sortedBy { it.killNeededToNextLevel() }
+ DisplayTypeEntry.HIGHEST_NEXT -> mobList.sortedByDescending { it.killNeededToNextLevel() }
else -> mobList.sortedBy { it.totalKills }
}.toMutableList()
return sortedMobList
@@ -270,34 +280,34 @@ object BestiaryData {
"§c§lMAXED! §7(§b${mob.actualRealTotalKill.formatNumber()}§7 kills)"
} else {
when (displayType) {
- 0, 1 -> {
+ DisplayTypeEntry.GLOBAL_MAX, DisplayTypeEntry.GLOBAL_NEXT -> {
val currentKill = when (displayType) {
- 0 -> mob.totalKills
- 1 -> mob.currentKillToNextLevel
+ DisplayTypeEntry.GLOBAL_MAX -> mob.totalKills
+ DisplayTypeEntry.GLOBAL_NEXT -> mob.currentKillToNextLevel
else -> 0
}
val killNeeded = when (displayType) {
- 0 -> mob.killToMax
- 1 -> mob.killNeededForNextLevel
+ DisplayTypeEntry.GLOBAL_MAX -> mob.killToMax
+ DisplayTypeEntry.GLOBAL_NEXT -> mob.killNeededForNextLevel
else -> 0
}
"§7(§b${currentKill.formatNumber()}§7/§b${killNeeded.formatNumber()}§7) §a${
((currentKill.toDouble() / killNeeded) * 100).roundToPrecision(
2
)
- }§6% ${if (displayType == 1) "§ato level ${mob.getNextLevel()}" else ""}"
+ }§6% ${if (displayType == DisplayTypeEntry.GLOBAL_NEXT) "§ato level ${mob.getNextLevel()}" else ""}"
}
- 2, 3 -> {
+ DisplayTypeEntry.LOWEST_TOTAL, DisplayTypeEntry.HIGHEST_TOTAL -> {
"§6${mob.totalKills.formatNumber()} §7total kills"
}
- 4, 5 -> {
+ DisplayTypeEntry.LOWEST_MAX, DisplayTypeEntry.HIGHEST_MAX -> {
"§6${mob.killNeededToMax().formatNumber()} §7kills needed"
}
- 6, 7 -> {
+ DisplayTypeEntry.LOWEST_NEXT, DisplayTypeEntry.HIGHEST_NEXT -> {
"§6${mob.killNeededToNextLevel().formatNumber()} §7kills needed"
}
@@ -310,17 +320,19 @@ object BestiaryData {
private fun addButtons(newDisplay: MutableList<List<Any>>) {
newDisplay.addButton(
prefix = "§7Number Format: ",
- getName = FormatType.entries[config.numberFormat].type,
+ getName = FormatType.entries[config.numberFormat.ordinal].type, // todo: avoid ordinal
onChange = {
- config.numberFormat = (config.numberFormat + 1) % 2
+ // todo: avoid ordinal
+ config.numberFormat = BestiaryConfig.NumberFormatEntry.entries[(config.numberFormat.ordinal + 1) % 2]
update()
})
newDisplay.addButton(
prefix = "§7Display Type: ",
- getName = DisplayType.entries[config.displayType].type,
+ getName = DisplayType.entries[config.displayType.ordinal].type, // todo: avoid ordinal
onChange = {
- config.displayType = (config.displayType + 1) % 8
+ // todo: avoid ordinal
+ config.displayType = DisplayTypeEntry.entries[(config.displayType.ordinal + 1) % 8]
update()
})
@@ -417,8 +429,8 @@ object BestiaryData {
}
private fun Long.formatNumber(): String = when (config.numberFormat) {
- 0 -> NumberUtil.format(this)
- 1 -> this.addSeparators()
+ BestiaryConfig.NumberFormatEntry.SHORT -> NumberUtil.format(this)
+ BestiaryConfig.NumberFormatEntry.LONG -> this.addSeparators()
else -> "0"
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/BossType.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/BossType.kt
index 045eaaa78..11f16ae7f 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/BossType.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/BossType.kt
@@ -1,8 +1,8 @@
package at.hannibal2.skyhanni.features.combat.damageindicator
-import at.hannibal2.skyhanni.config.features.combat.damageindicator.DamageIndicatorConfig.DamageIndicatorBossEntry
+import at.hannibal2.skyhanni.config.features.combat.damageindicator.DamageIndicatorConfig.BossCategory
-typealias Type = DamageIndicatorBossEntry
+typealias Type = BossCategory
enum class BossType(
val fullName: String,
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/DamageIndicatorManager.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/DamageIndicatorManager.kt
index 42fee548c..6228ff5aa 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/DamageIndicatorManager.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/DamageIndicatorManager.kt
@@ -2,7 +2,8 @@ package at.hannibal2.skyhanni.features.combat.damageindicator
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator
-import at.hannibal2.skyhanni.config.features.combat.damageindicator.DamageIndicatorConfig.DamageIndicatorBossEntry
+import at.hannibal2.skyhanni.config.features.combat.damageindicator.DamageIndicatorConfig.BossCategory
+import at.hannibal2.skyhanni.config.features.combat.damageindicator.DamageIndicatorConfig.NameVisibility
import at.hannibal2.skyhanni.data.ScoreboardData
import at.hannibal2.skyhanni.events.BossHealthChangeEvent
import at.hannibal2.skyhanni.events.DamageIndicatorDeathEvent
@@ -196,9 +197,9 @@ class DamageIndicatorManager {
}
var bossName = when (config.bossName) {
- 0 -> ""
- 1 -> data.bossType.fullName
- 2 -> data.bossType.shortName
+ NameVisibility.HIDDEN -> ""
+ NameVisibility.FULL_NAME -> data.bossType.fullName
+ NameVisibility.SHORT_NAME -> data.bossType.shortName
else -> data.bossType.fullName
}
@@ -873,7 +874,10 @@ class DamageIndicatorManager {
event.move(3, "slayer.endermanPhaseDisplay", "slayer.endermen.phaseDisplay")
event.move(3, "slayer.blazePhaseDisplay", "slayer.blazes.phaseDisplay")
event.transform(11, "combat.damageIndicator.bossesToShow") { element ->
- ConfigUtils.migrateIntArrayListToEnumArrayList(element, DamageIndicatorBossEntry::class.java)
+ ConfigUtils.migrateIntArrayListToEnumArrayList(element, BossCategory::class.java)
+ }
+ event.transform(14, "combat.damageIndicator.bossName") { element ->
+ ConfigUtils.migrateIntToEnum(element, NameVisibility::class.java)
}
}