aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authornokoe <nokoe@mailbox.org>2024-09-27 22:47:07 +0200
committernokoe <nokoe@mailbox.org>2024-09-27 22:54:16 +0200
commitfc9b59121332fa6aff36eaf7b9061fc46eb95f45 (patch)
tree5d98d7002da0044ab5bc677b6b3fd689865c7e00 /client
parentd18b148be6470a0e91bbfcf30437be70b4ef3b57 (diff)
downloadhurrycurry-fc9b59121332fa6aff36eaf7b9061fc46eb95f45.tar
hurrycurry-fc9b59121332fa6aff36eaf7b9061fc46eb95f45.tar.bz2
hurrycurry-fc9b59121332fa6aff36eaf7b9061fc46eb95f45.tar.zst
fix player still holding knife after cutting board interaction finishes
Diffstat (limited to 'client')
-rw-r--r--client/game.gd5
-rw-r--r--client/map/tiles/cutting_board.gd17
2 files changed, 15 insertions, 7 deletions
diff --git a/client/game.gd b/client/game.gd
index c3b34332..76bb271a 100644
--- a/client/game.gd
+++ b/client/game.gd
@@ -175,9 +175,12 @@ func handle_packet(p):
else:
if "tile" in p.location:
var t: Tile = map.get_tile_instance(p.location.tile)
+ t.finish()
t.set_item(null)
else:
- players[p.location.player].set_item(null)
+ var player: Player = players[p.location.player]
+ player.finish()
+ player.set_item(null)
"update_map":
var neighbors: Array = p["neighbors"]
if p.kind != null:
diff --git a/client/map/tiles/cutting_board.gd b/client/map/tiles/cutting_board.gd
index 312bf129..564f4a38 100644
--- a/client/map/tiles/cutting_board.gd
+++ b/client/map/tiles/cutting_board.gd
@@ -18,6 +18,7 @@ extends CounterBase
var board = load("res://map/tiles/cutting_board.tscn").instantiate()
var chopping: AudioStreamPlayer3D = AudioStreamPlayer3D.new()
+var acting_player
func _init(ctx: TileFactory.TileCC):
super(ctx)
@@ -25,20 +26,24 @@ func _init(ctx: TileFactory.TileCC):
add_child(chopping)
base.add_child(board)
-func progress(position_: float, speed: float, warn: bool, acting_player):
+func progress(position_: float, speed: float, warn: bool, acting_player_):
super(position_, speed, warn, acting_player)
var knife: Node3D = board.get_node("Knife")
- knife.visible = speed == 0
-
- if acting_player != null:
- var acting_character: Character = acting_player.character
- acting_character.cutting = speed != 0
+ acting_player = acting_player_
if not chopping.playing and speed != 0.:
chopping.play()
+ if acting_player != null:
+ knife.visible = false
+ var acting_character: Character = acting_player.character
+ acting_character.cutting = true
func finish():
super()
+ if is_instance_valid(acting_player):
+ var acting_character: Character = acting_player.character
+ acting_character.cutting = false
+ board.get_node("Knife").visible = true
chopping.stop()
static func interact_target() -> Vector3: