1
0
Fork 0

Also start the cooldown of the Cloaking Device when it is deselected

This commit is contained in:
Moritz Ruth 2020-06-11 13:01:06 +02:00
parent 9684339fc6
commit 0767b8884a
No known key found for this signature in database
GPG key ID: AFD57E23E753841B
2 changed files with 12 additions and 5 deletions

View file

@ -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
}
}

View file

@ -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(