1
0
Fork 0

Fix cloaking device being deactivated once something is bought

This commit is contained in:
Moritz Ruth 2020-06-07 17:19:35 +02:00
parent 6412292044
commit b20a93a574
No known key found for this signature in database
GPG key ID: AFD57E23E753841B
2 changed files with 7 additions and 3 deletions

View file

@ -28,7 +28,9 @@ class TTTPlayer(player: Player, role: Role) {
var role by Delegates.observable(role) { _, _, _ -> scoreboard.updateRole() }
val roleHistory = mutableListOf<Role>()
var itemInHand by Delegates.observable<TTTItem?>(null) { _, oldItem, newItem -> onItemInHandChanged(oldItem, newItem) }
var itemInHand by Delegates.observable<TTTItem?>(null) { _, oldItem, newItem ->
if (oldItem !== newItem) onItemInHandChanged(oldItem, newItem)
}
var credits by Delegates.observable(10) { _, _, _ -> scoreboard.updateCredits() }
var invisible by Delegates.observable(false) { _, _, value ->
if (value) {
@ -65,6 +67,9 @@ class TTTPlayer(player: Player, role: Role) {
}
private fun onItemInHandChanged(oldItem: TTTItem?, newItem: TTTItem?) {
println(oldItem)
println(newItem)
if (oldItem !== null && oldItem is Selectable) {
oldItem.onDeselect(this)
}

View file

@ -37,8 +37,7 @@ object CloakingDevice: TTTItem,
val isc = InversedStateContainer(State::class)
override fun onSelect(tttPlayer: TTTPlayer) {}
override fun onDeselect(tttPlayer: TTTPlayer) =
setEnabled(tttPlayer, false)
override fun onDeselect(tttPlayer: TTTPlayer) = setEnabled(tttPlayer, false)
fun setEnabled(tttPlayer: TTTPlayer, value: Boolean?) {
val state = isc.getOrCreate(tttPlayer)