aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/com/dulkirfabric/features
diff options
context:
space:
mode:
authorronald <inglettronald@gmail.com>2023-07-29 12:30:06 -0500
committerronald <inglettronald@gmail.com>2023-07-29 12:30:06 -0500
commit130377f112ac4c64c138e15b2541d95381964c6a (patch)
tree9549c677b45a94db40fe43d721b28a3c513efca2 /src/main/kotlin/com/dulkirfabric/features
parent7705c7606298a5c67c64f1e088c4ef93ee042e95 (diff)
downloadDulkirMod-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.kt24
-rw-r--r--src/main/kotlin/com/dulkirfabric/features/slayer/Demonlord.kt30
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