diff options
author | ronald <inglettronald@gmail.com> | 2023-07-29 12:30:06 -0500 |
---|---|---|
committer | ronald <inglettronald@gmail.com> | 2023-07-29 12:30:06 -0500 |
commit | 130377f112ac4c64c138e15b2541d95381964c6a (patch) | |
tree | 9549c677b45a94db40fe43d721b28a3c513efca2 /src/main/kotlin/com/dulkirfabric/features | |
parent | 7705c7606298a5c67c64f1e088c4ef93ee042e95 (diff) | |
download | DulkirMod-Fabric-130377f112ac4c64c138e15b2541d95381964c6a.tar.gz DulkirMod-Fabric-130377f112ac4c64c138e15b2541d95381964c6a.tar.bz2 DulkirMod-Fabric-130377f112ac4c64c138e15b2541d95381964c6a.zip |
Slayer Boss Timer and clean Blaze boss impl
Diffstat (limited to 'src/main/kotlin/com/dulkirfabric/features')
-rw-r--r-- | src/main/kotlin/com/dulkirfabric/features/slayer/BossTimer.kt | 24 | ||||
-rw-r--r-- | src/main/kotlin/com/dulkirfabric/features/slayer/Demonlord.kt | 30 |
2 files changed, 54 insertions, 0 deletions
diff --git a/src/main/kotlin/com/dulkirfabric/features/slayer/BossTimer.kt b/src/main/kotlin/com/dulkirfabric/features/slayer/BossTimer.kt new file mode 100644 index 0000000..c08ed97 --- /dev/null +++ b/src/main/kotlin/com/dulkirfabric/features/slayer/BossTimer.kt @@ -0,0 +1,24 @@ +package com.dulkirfabric.features.slayer + +import com.dulkirfabric.events.SlayerBossEvents +import com.dulkirfabric.util.TextUtils +import meteordevelopment.orbit.EventHandler + +object BossTimer { + + private var lastSpawnTime: Long = 0 + private var lastType = "" + + @EventHandler + fun onSlayerStart(event: SlayerBossEvents.Spawn) { + lastType = event.type + lastSpawnTime = event.timestamp + } + + @EventHandler + fun onSlayerKill(event: SlayerBossEvents.Kill) { + if (lastType != event.type) return + val bossTime: Float = (event.timestamp - lastSpawnTime) / 1000f + TextUtils.info("§6Slayer Boss took ${"%.2f".format(bossTime)}s to kill.") + } +}
\ No newline at end of file diff --git a/src/main/kotlin/com/dulkirfabric/features/slayer/Demonlord.kt b/src/main/kotlin/com/dulkirfabric/features/slayer/Demonlord.kt index 434c866..b9d03d1 100644 --- a/src/main/kotlin/com/dulkirfabric/features/slayer/Demonlord.kt +++ b/src/main/kotlin/com/dulkirfabric/features/slayer/Demonlord.kt @@ -1,7 +1,10 @@ package com.dulkirfabric.features.slayer import com.dulkirfabric.DulkirModFabric.mc +import com.dulkirfabric.config.DulkirConfig +import com.dulkirfabric.events.AddParticleEvent import com.dulkirfabric.events.PlaySoundEvent +import com.dulkirfabric.events.SlayerBossEvents import com.dulkirfabric.events.WorldRenderLastEvent import com.dulkirfabric.util.TablistUtils import com.dulkirfabric.util.TextUtils @@ -21,6 +24,8 @@ object Demonlord { "SPIRIT ♨" to Color(255, 255, 255, 255) ) private val box = Box(-.5, -.4, -.5, .5, -1.9, .5) + private var inBoss: Boolean = false + private var lastSpawnTime: Long = 0 @EventHandler fun attunementHighlight(event: WorldRenderLastEvent) { @@ -40,4 +45,29 @@ object Demonlord { } } } + + @EventHandler + fun onSlayerStart(event: SlayerBossEvents.Spawn) { + if (event.type.contains("Demonlord")) { + inBoss = true + lastSpawnTime = event.timestamp + } + } + + @EventHandler + fun onSlayerKill(event: SlayerBossEvents.Kill) { + inBoss = false + } + + @EventHandler + fun onSlayerFail(event: SlayerBossEvents.Fail) { + inBoss = false + } + + @EventHandler + fun onParticle(event: AddParticleEvent) { + if (!DulkirConfig.configOptions.cleanBlaze) return + if (!inBoss) return + event.cancel() + } }
\ No newline at end of file |