diff options
Diffstat (limited to 'client/player')
| -rw-r--r-- | client/player/controllable_player.gd | 4 | ||||
| -rw-r--r-- | client/player/player.gd | 14 | 
2 files changed, 16 insertions, 2 deletions
| diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd index 31378f3f..67c6db63 100644 --- a/client/player/controllable_player.gd +++ b/client/player/controllable_player.gd @@ -138,9 +138,9 @@ func interact():  		game.marker.visible = true  		game.marker_target = tile.item_base.global_position  		if Input.is_action_just_pressed("interact"): -			game.mp.send_interact(target, true) +			game.mp.send_tile_interact(target, true)  			tile.interact()  		elif Input.is_action_just_released("interact"): -			game.mp.send_interact(target, false) +			game.mp.send_tile_interact(target, false)  	else:  		game.marker.visible = false diff --git a/client/player/player.gd b/client/player/player.gd index 1df80d94..301f7945 100644 --- a/client/player/player.gd +++ b/client/player/player.gd @@ -87,6 +87,14 @@ func remove_item() -> Item:  	character.holding = false  	return i +func progress(p: float, warn: bool): +	if hand != null: +		hand.progress(p, warn) + +func finish(warn: bool): +	if hand != null: +		hand.finish(warn) +  func take_item(tile: Tile):  	if hand != null:  		push_error("already holding an item") @@ -99,6 +107,12 @@ func put_item(tile: Tile):  	i.put()  	tile.put_item(i) +func pass_to(player: Player): +	var i = remove_item() +	if player.hand != null: +		push_error("target is already holding an item") +	player.set_item(i) +  func _process(delta):  	_anim_angle = fmod(_anim_angle + delta, TAU)  	hand_base.position.y = HAND_BASE_POSITION.y + 0.05 * sin(_anim_angle * 3) | 
