From e2335e907c45f84462ee6fabe2828cf38e494b51 Mon Sep 17 00:00:00 2001 From: tpart Date: Fri, 19 Sep 2025 19:53:25 +0200 Subject: Add checkmark (Closes #392), Refactor ding sound system to make it more consistent --- client/map/items/item.gd | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'client/map') diff --git a/client/map/items/item.gd b/client/map/items/item.gd index 7e858aec..4847313e 100644 --- a/client/map/items/item.gd +++ b/client/map/items/item.gd @@ -16,13 +16,14 @@ class_name Item extends Node3D +const CHECKMARK: PackedScene = preload("uid://bdbw8whs3data") + var owned_by: Node3D var base: Node3D = Node3D.new() var progress_instance: Progress3D = preload("res://map/progress/progress.tscn").instantiate() var take_sound: PlayRandom = preload("res://audio/play_random.tscn").instantiate() var put_sound: PlayRandom = preload("res://audio/play_random.tscn").instantiate() -var ding_sound := AudioStreamPlayer3D.new() var beep_sound := AudioStreamPlayer3D.new() var sound_id @@ -43,9 +44,7 @@ func _init(owned_by_: Node3D): put_sound.volume_db = -16 add_child(take_sound) add_child(put_sound) - ding_sound.stream = preload("res://map/tiles/sounds/ding.ogg") beep_sound.stream = preload("res://map/tiles/sounds/beep.ogg") - add_child(ding_sound) add_child(beep_sound) setup_sounds() @warning_ignore("static_called_on_instance") @@ -94,8 +93,17 @@ func progress(position_: float, speed: float, warn: bool): progress_speed = speed progress_warn = warn - # Always play ding sound if item is making progress while warn - if warn and speed > 0.: ding_sound.play() + if position_ == 1.0 and not warn: + # Progress gets called with position 1.0 when the task is finished + var checkmark: CPUParticles3D = CHECKMARK.instantiate() + owned_by.add_child(checkmark) + checkmark.position.y = 1 + checkmark.emitting = true + + var ding_sound := AudioStreamPlayer3D.new() + owned_by.add_child(ding_sound) + ding_sound.stream = preload("res://map/tiles/sounds/ding.ogg") + ding_sound.play() func finish(): progress_instance.visible = false -- cgit v1.2.3-70-g09d2