diff options
Diffstat (limited to 'client/map/items')
-rw-r--r-- | client/map/items/item.gd | 18 |
1 files changed, 13 insertions, 5 deletions
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 |