diff options
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/combat')
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) } } |
