diff options
| author | Lorenz <lo.scherf@gmail.com> | 2022-08-16 23:11:13 +0200 |
|---|---|---|
| committer | Lorenz <lo.scherf@gmail.com> | 2022-08-16 23:11:13 +0200 |
| commit | acc866dc2a5f1f55ea8307321e31f8f3a8742e5e (patch) | |
| tree | 0a023782492b312dec5d6663a823e9716aa6276f /src/main/java/at/hannibal2/skyhanni/misc | |
| parent | 1d6d249d9d33d0250c56cfcd57c09db82b3b2f29 (diff) | |
| download | skyhanni-acc866dc2a5f1f55ea8307321e31f8f3a8742e5e.tar.gz skyhanni-acc866dc2a5f1f55ea8307321e31f8f3a8742e5e.tar.bz2 skyhanni-acc866dc2a5f1f55ea8307321e31f8f3a8742e5e.zip | |
add ashfang reset cooldown
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/misc')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/misc/nether/ashfang/AshfangFreezeCooldown.kt | 43 | ||||
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/misc/nether/ashfang/AshfangNextResetCooldown.kt | 58 |
2 files changed, 101 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/misc/nether/ashfang/AshfangFreezeCooldown.kt b/src/main/java/at/hannibal2/skyhanni/misc/nether/ashfang/AshfangFreezeCooldown.kt new file mode 100644 index 000000000..1a413d0bf --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/misc/nether/ashfang/AshfangFreezeCooldown.kt @@ -0,0 +1,43 @@ +package at.hannibal2.skyhanni.misc.nether.ashfang + +import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.events.LorenzChatEvent +import at.hannibal2.skyhanni.utils.GuiRender.renderString +import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.LorenzUtils.matchRegex +import net.minecraftforge.client.event.RenderGameOverlayEvent +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent +import java.text.DecimalFormat + +class AshfangFreezeCooldown { + + var lastHit = 0L + + @SubscribeEvent + fun onChatMessage(event: LorenzChatEvent) { + if (!isEnabled()) return + + val message = event.message + if (message.matchRegex("§cAshfang Follower's Cryogenic Blast hit you for (.*) damage!")) { + lastHit = System.currentTimeMillis() + } + } + + @SubscribeEvent + fun renderOverlay(event: RenderGameOverlayEvent.Post) { + if (!isEnabled()) return + val duration = System.currentTimeMillis() - lastHit + val maxDuration = 3_000 + + val remainingLong = maxDuration - duration + if (remainingLong > 0) { + val remaining = (remainingLong.toFloat() / 1000) + val format = DecimalFormat("0.0").format(remaining + 0.1) + SkyHanniMod.feature.abilities.ashfangFreezeCooldownPos.renderString("§cAshfang Freeze: §a${format}s") + } + } + + private fun isEnabled(): Boolean { + return LorenzUtils.inSkyblock && SkyHanniMod.feature.abilities.ashfangFreezeCooldown + } +}
\ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/misc/nether/ashfang/AshfangNextResetCooldown.kt b/src/main/java/at/hannibal2/skyhanni/misc/nether/ashfang/AshfangNextResetCooldown.kt new file mode 100644 index 000000000..41ad05908 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/misc/nether/ashfang/AshfangNextResetCooldown.kt @@ -0,0 +1,58 @@ +package at.hannibal2.skyhanni.misc.nether.ashfang + +import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.utils.GuiRender.renderString +import at.hannibal2.skyhanni.utils.LorenzUtils +import net.minecraft.client.Minecraft +import net.minecraft.entity.item.EntityArmorStand +import net.minecraftforge.client.event.RenderGameOverlayEvent +import net.minecraftforge.event.world.WorldEvent +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent +import net.minecraftforge.fml.common.gameevent.TickEvent.ClientTickEvent +import java.text.DecimalFormat + +class AshfangNextResetCooldown { + + var spawnTime = 1L + + @SubscribeEvent + fun renderOverlay(event: ClientTickEvent) { + if (!isEnabled()) return + + if (spawnTime == -1L) { + val spawned = Minecraft.getMinecraft().theWorld.loadedEntityList.any { + it is EntityArmorStand && (it.name.contains("§c§8Ashfang Follower§r") || + it.name.contains("§c§9Ashfang Acolyte§r") || + it.name.contains("§c§cAshfang Underling§r")) + } + if (spawned) { + spawnTime = System.currentTimeMillis() + } + } + } + + @SubscribeEvent + fun renderOverlay(event: RenderGameOverlayEvent.Post) { + if (!isEnabled()) return + if (spawnTime == -1L) return + + val remainingTime = spawnTime + 45_000 - System.currentTimeMillis() + + if (remainingTime > 0) { + val remaining = (remainingTime.toFloat() / 1000) + val format = DecimalFormat("0.0").format(remaining + 0.1) + SkyHanniMod.feature.abilities.ashfangNextResetCooldownPos.renderString("§cAshfang next reset in: §a${format}s") + } else { + spawnTime = -1 + } + } + + @SubscribeEvent + fun renderOverlay(event: WorldEvent.Load) { + spawnTime = -1 + } + + private fun isEnabled(): Boolean { + return LorenzUtils.inSkyblock && SkyHanniMod.feature.abilities.ashfangNextResetCooldown + } +}
\ No newline at end of file |
