summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/dungeon
diff options
context:
space:
mode:
authorBrandon <brandon.wamboldt@gmail.com>2023-09-24 08:04:59 -0300
committerGitHub <noreply@github.com>2023-09-24 13:04:59 +0200
commitd0e6a9cd5b50288a5075e75bde63c0c09892cbb7 (patch)
tree409371e121ac3a071c5eff0ba305fe85322853aa /src/main/java/at/hannibal2/skyhanni/features/dungeon
parent0381d759c3f4859b2bc4d93345018e32d47bae77 (diff)
downloadskyhanni-d0e6a9cd5b50288a5075e75bde63c0c09892cbb7.tar.gz
skyhanni-d0e6a9cd5b50288a5075e75bde63c0c09892cbb7.tar.bz2
skyhanni-d0e6a9cd5b50288a5075e75bde63c0c09892cbb7.zip
Mage Item Cooldown #480
* Compensate for mage ability cooldown reduction while in dungeons
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/dungeon')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonData.kt32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonData.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonData.kt
index 50585d56e..ba37d76ac 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonData.kt
@@ -2,18 +2,25 @@ package at.hannibal2.skyhanni.features.dungeon
import at.hannibal2.skyhanni.data.ScoreboardData
import at.hannibal2.skyhanni.events.*
+import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.LorenzUtils.equalsOneOf
+import at.hannibal2.skyhanni.utils.NumberUtil.romanToDecimalIfNeeded
import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
import at.hannibal2.skyhanni.utils.StringUtils.removeColor
+import at.hannibal2.skyhanni.utils.TabListData
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class DungeonData {
private val floorPattern = " §7⏣ §cThe Catacombs §7\\((?<floor>.*)\\)".toPattern()
+ private val uniqueClassBonus = "^Your ([A-Za-z]+) stats are doubled because you are the only player using this class!$".toRegex()
companion object {
var dungeonFloor: String? = null
var started = false
var inBossRoom = false
+ var playerClass: DungeonClass? = null
+ var playerClassLevel = -1
+ var isUniqueClass = false
fun inDungeon() = dungeonFloor != null
@@ -60,6 +67,17 @@ class DungeonData {
}
}
}
+ if (dungeonFloor != null && playerClass == null) {
+ val playerTeam = TabListData.getTabList().firstOrNull { it.contains(LorenzUtils.getPlayerName()) }?.removeColor() ?: ""
+
+ DungeonClass.entries.forEach {
+ if (playerTeam.contains("(${it.scoreboardName} ")) {
+ val level = playerTeam.split(" ").last().trimEnd(')').romanToDecimalIfNeeded()
+ playerClass = it
+ playerClassLevel = level
+ }
+ }
+ }
}
@SubscribeEvent
@@ -67,6 +85,9 @@ class DungeonData {
dungeonFloor = null
started = false
inBossRoom = false
+ isUniqueClass = false
+ playerClass = null
+ playerClassLevel = -1
}
@SubscribeEvent
@@ -77,6 +98,17 @@ class DungeonData {
started = true
DungeonStartEvent(floor).postAndCatch()
}
+ if (event.message.removeColor().matches(uniqueClassBonus)) {
+ isUniqueClass = true
+ }
}
}
+
+ enum class DungeonClass(public val scoreboardName: String) {
+ ARCHER("Archer"),
+ BERSERK("Berserk"),
+ HEALER("Healer"),
+ MAGE("Mage"),
+ TANK("Tank")
+ }
} \ No newline at end of file