diff options
| author | Freya Murphy <freya@freyacat.org> | 2026-03-26 23:15:33 -0400 |
|---|---|---|
| committer | Freya Murphy <freya@freyacat.org> | 2026-03-27 23:09:23 -0400 |
| commit | f8322cd21cde68a72b05efbad3a05b8e67c0bdd0 (patch) | |
| tree | d7e60bc8fedadc8fa7ae725571cad1f398eaf6dc /core/src/game/Glow.kt | |
| download | kenshinshideandseek2-f8322cd21cde68a72b05efbad3a05b8e67c0bdd0.tar.gz kenshinshideandseek2-f8322cd21cde68a72b05efbad3a05b8e67c0bdd0.tar.bz2 kenshinshideandseek2-f8322cd21cde68a72b05efbad3a05b8e67c0bdd0.zip | |
initial
Diffstat (limited to 'core/src/game/Glow.kt')
| -rw-r--r-- | core/src/game/Glow.kt | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/core/src/game/Glow.kt b/core/src/game/Glow.kt new file mode 100644 index 0000000..a2289ba --- /dev/null +++ b/core/src/game/Glow.kt @@ -0,0 +1,48 @@ +package cat.freya.khs.game + +class Glow(val game: Game) { + + @Volatile var timer: ULong = 0UL + @Volatile var running: Boolean = true + + fun start() { + running = true + if (game.plugin.config.glow.stackable) { + timer += game.plugin.config.glow.time + } else { + timer = game.plugin.config.glow.time + } + } + + fun reset() { + running = false + timer = 0UL + } + + private fun sendPackets(glow: Boolean) { + for (hider in game.hiderPlayers) for (seeker in game.seekerPlayers) hider.setGlow( + seeker, + glow, + ) + } + + fun update() { + if (!game.plugin.config.glow.enabled) return + + if (game.plugin.config.alwaysGlow) { + sendPackets(true) + return + } + + if (!running) return + + if (timer >= 0UL) timer-- + + if (timer == 0UL) { + running = false + sendPackets(false) + } else { + sendPackets(true) + } + } +} |