From 0767b8884ac76bbb102a28285ea0af9eb994e4bc Mon Sep 17 00:00:00 2001 From: Moritz Ruth Date: Thu, 11 Jun 2020 13:01:06 +0200 Subject: [PATCH] Also start the cooldown of the Cloaking Device when it is deselected --- .../spigot_ttt/game/items/impl/CloakingDevice.kt | 15 +++++++++++---- .../spigot_ttt/game/players/TTTPlayer.kt | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/de/moritzruth/spigot_ttt/game/items/impl/CloakingDevice.kt b/src/main/kotlin/de/moritzruth/spigot_ttt/game/items/impl/CloakingDevice.kt index 082d582..7f24f7e 100644 --- a/src/main/kotlin/de/moritzruth/spigot_ttt/game/items/impl/CloakingDevice.kt +++ b/src/main/kotlin/de/moritzruth/spigot_ttt/game/items/impl/CloakingDevice.kt @@ -42,7 +42,7 @@ object CloakingDevice: TTTItem, override fun onSelect(tttPlayer: TTTPlayer) {} override fun onDeselect(tttPlayer: TTTPlayer) = disable(tttPlayer) - private fun enable(tttPlayer: TTTPlayer) { + private fun enable(tttPlayer: TTTPlayer, itemStack: ItemStack) { val state = isc.getOrCreate(tttPlayer) tttPlayer.player.apply { @@ -57,10 +57,12 @@ object CloakingDevice: TTTItem, tttPlayer.invisible = true state.enabled = true + state.itemStack = itemStack } private fun disable(tttPlayer: TTTPlayer) { - val state = isc.getOrCreate(tttPlayer) + val state = isc.get(tttPlayer) ?: return + if (!state.enabled) return tttPlayer.player.apply { walkSpeed = 0.2F @@ -70,6 +72,11 @@ object CloakingDevice: TTTItem, tttPlayer.invisible = false state.enabled = false + + val itemStack = state.itemStack + if (itemStack != null) { + state.cooldownTask = startItemDamageProgress(itemStack, COOLDOWN) { state.cooldownTask = null } + } } override val listener = object : TTTItemListener(this, true) { @@ -90,9 +97,8 @@ object CloakingDevice: TTTItem, if (state.enabled) { disable(data.tttPlayer) - state.cooldownTask = startItemDamageProgress(data.itemStack, COOLDOWN) { state.cooldownTask = null } } else { - enable(data.tttPlayer) + enable(data.tttPlayer, data.itemStack) } } } @@ -100,5 +106,6 @@ object CloakingDevice: TTTItem, class State: IState { var enabled: Boolean = false var cooldownTask: BukkitTask? = null + var itemStack: ItemStack? = null } } diff --git a/src/main/kotlin/de/moritzruth/spigot_ttt/game/players/TTTPlayer.kt b/src/main/kotlin/de/moritzruth/spigot_ttt/game/players/TTTPlayer.kt index 0bf5e70..02dd52e 100644 --- a/src/main/kotlin/de/moritzruth/spigot_ttt/game/players/TTTPlayer.kt +++ b/src/main/kotlin/de/moritzruth/spigot_ttt/game/players/TTTPlayer.kt @@ -106,7 +106,7 @@ class TTTPlayer(player: Player, role: Role) { onlyRemainingRoleGroup ).call() -// event.winnerRoleGroup?.run { GameManager.letRoleWin(primaryRole) } + event.winnerRoleGroup?.run { GameManager.letRoleWin(primaryRole) } if (event.scream) { GameManager.world.playSound(