Also start the cooldown of the Cloaking Device when it is deselected
This commit is contained in:
parent
9684339fc6
commit
0767b8884a
2 changed files with 12 additions and 5 deletions
|
@ -42,7 +42,7 @@ object CloakingDevice: TTTItem,
|
||||||
override fun onSelect(tttPlayer: TTTPlayer) {}
|
override fun onSelect(tttPlayer: TTTPlayer) {}
|
||||||
override fun onDeselect(tttPlayer: TTTPlayer) = disable(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)
|
val state = isc.getOrCreate(tttPlayer)
|
||||||
|
|
||||||
tttPlayer.player.apply {
|
tttPlayer.player.apply {
|
||||||
|
@ -57,10 +57,12 @@ object CloakingDevice: TTTItem,
|
||||||
|
|
||||||
tttPlayer.invisible = true
|
tttPlayer.invisible = true
|
||||||
state.enabled = true
|
state.enabled = true
|
||||||
|
state.itemStack = itemStack
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun disable(tttPlayer: TTTPlayer) {
|
private fun disable(tttPlayer: TTTPlayer) {
|
||||||
val state = isc.getOrCreate(tttPlayer)
|
val state = isc.get(tttPlayer) ?: return
|
||||||
|
if (!state.enabled) return
|
||||||
|
|
||||||
tttPlayer.player.apply {
|
tttPlayer.player.apply {
|
||||||
walkSpeed = 0.2F
|
walkSpeed = 0.2F
|
||||||
|
@ -70,6 +72,11 @@ object CloakingDevice: TTTItem,
|
||||||
|
|
||||||
tttPlayer.invisible = false
|
tttPlayer.invisible = false
|
||||||
state.enabled = 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) {
|
override val listener = object : TTTItemListener(this, true) {
|
||||||
|
@ -90,9 +97,8 @@ object CloakingDevice: TTTItem,
|
||||||
|
|
||||||
if (state.enabled) {
|
if (state.enabled) {
|
||||||
disable(data.tttPlayer)
|
disable(data.tttPlayer)
|
||||||
state.cooldownTask = startItemDamageProgress(data.itemStack, COOLDOWN) { state.cooldownTask = null }
|
|
||||||
} else {
|
} else {
|
||||||
enable(data.tttPlayer)
|
enable(data.tttPlayer, data.itemStack)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -100,5 +106,6 @@ object CloakingDevice: TTTItem,
|
||||||
class State: IState {
|
class State: IState {
|
||||||
var enabled: Boolean = false
|
var enabled: Boolean = false
|
||||||
var cooldownTask: BukkitTask? = null
|
var cooldownTask: BukkitTask? = null
|
||||||
|
var itemStack: ItemStack? = null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,7 +106,7 @@ class TTTPlayer(player: Player, role: Role) {
|
||||||
onlyRemainingRoleGroup
|
onlyRemainingRoleGroup
|
||||||
).call()
|
).call()
|
||||||
|
|
||||||
// event.winnerRoleGroup?.run { GameManager.letRoleWin(primaryRole) }
|
event.winnerRoleGroup?.run { GameManager.letRoleWin(primaryRole) }
|
||||||
|
|
||||||
if (event.scream) {
|
if (event.scream) {
|
||||||
GameManager.world.playSound(
|
GameManager.world.playSound(
|
||||||
|
|
Reference in a new issue