summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/nether
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2024-01-21 19:56:50 +0100
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2024-01-21 19:56:50 +0100
commit779b62a4df0f90e03b670a2bf9c1c146e520aaf4 (patch)
tree89b27f051a6b0714d4b9a5b90a01ca78144f129f /src/main/java/at/hannibal2/skyhanni/features/nether
parent6ada0c11bfb7f79f39a94db061f158f46e89d8d2 (diff)
downloadskyhanni-779b62a4df0f90e03b670a2bf9c1c146e520aaf4.tar.gz
skyhanni-779b62a4df0f90e03b670a2bf9c1c146e520aaf4.tar.bz2
skyhanni-779b62a4df0f90e03b670a2bf9c1c146e520aaf4.zip
Fixed Ashfang Freeze Cooldown being off by one second. Fixed Fire Veil line gets shown even while frozen.
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/nether')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangFreezeCooldown.kt33
1 files changed, 20 insertions, 13 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangFreezeCooldown.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangFreezeCooldown.kt
index 447884c05..85c9c66b3 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangFreezeCooldown.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangFreezeCooldown.kt
@@ -8,17 +8,19 @@ import at.hannibal2.skyhanni.features.combat.damageindicator.BossType
import at.hannibal2.skyhanni.features.combat.damageindicator.DamageIndicatorManager
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.RenderUtils.renderString
+import at.hannibal2.skyhanni.utils.SimpleTimeMark
import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
-import at.hannibal2.skyhanni.utils.TimeUtils
+import at.hannibal2.skyhanni.utils.TimeUtils.format
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import kotlin.time.Duration.Companion.seconds
-class AshfangFreezeCooldown {
+object AshfangFreezeCooldown {
private val config get() = SkyHanniMod.feature.crimsonIsle.ashfang
// TODO USE SH-REPO
private val cryogenicBlastPattern = "§cAshfang Follower's Cryogenic Blast hit you for (.*) damage!".toPattern()
- private var lastHit = 0L
+ private var lastHit = SimpleTimeMark.farPast()
@SubscribeEvent
fun onChatMessage(event: LorenzChatEvent) {
@@ -26,19 +28,19 @@ class AshfangFreezeCooldown {
val message = event.message
cryogenicBlastPattern.matchMatcher(message) {
- lastHit = System.currentTimeMillis()
+ lastHit = SimpleTimeMark.now()
}
}
@SubscribeEvent
fun onRenderOverlay(event: GuiRenderEvent.GuiOverlayRenderEvent) {
if (!isEnabled()) return
- val duration = System.currentTimeMillis() - lastHit
- val maxDuration = 3_000
- val remainingLong = maxDuration - duration
- if (remainingLong > 0) {
- val format = TimeUtils.formatDuration(remainingLong, showMilliSeconds = true)
+ val passedSince = lastHit.passedSince()
+ val maxDuration = 3.seconds
+ val duration = maxDuration - passedSince
+ if (duration > 0.seconds) {
+ val format = duration.format(showMilliSeconds = true)
config.freezeCooldownPos.renderString(
"§cAshfang Freeze: §a$format",
posLabel = "Ashfang Freeze Cooldown"
@@ -46,14 +48,19 @@ class AshfangFreezeCooldown {
}
}
+ fun iscurrentlyFrozen(): Boolean {
+ val passedSince = lastHit.passedSince()
+ val maxDuration = 3.seconds
+ val duration = maxDuration - passedSince
+ return duration > 0.seconds
+ }
+
@SubscribeEvent
fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) {
event.move(2, "ashfang.freezeCooldown", "crimsonIsle.ashfang.freezeCooldown")
event.move(2, "ashfang.freezeCooldownPos", "crimsonIsle.ashfang.freezeCooldownPos")
}
- private fun isEnabled(): Boolean {
- return LorenzUtils.inSkyBlock && config.freezeCooldown &&
- DamageIndicatorManager.isBossSpawned(BossType.NETHER_ASHFANG)
- }
+ private fun isEnabled() = LorenzUtils.inSkyBlock && config.freezeCooldown &&
+ DamageIndicatorManager.isBossSpawned(BossType.NETHER_ASHFANG)
}