diff options
author | tpart <tpart120@proton.me> | 2025-09-19 19:53:25 +0200 |
---|---|---|
committer | tpart <tpart120@proton.me> | 2025-09-19 19:53:25 +0200 |
commit | e2335e907c45f84462ee6fabe2828cf38e494b51 (patch) | |
tree | 1154a1e95e25e40ed3ac50d6fd36884dfdb66c0e /client/map/items | |
parent | 9c636b231b432976d9d7c3044f9e488f0f7cedf3 (diff) | |
download | hurrycurry-e2335e907c45f84462ee6fabe2828cf38e494b51.tar hurrycurry-e2335e907c45f84462ee6fabe2828cf38e494b51.tar.bz2 hurrycurry-e2335e907c45f84462ee6fabe2828cf38e494b51.tar.zst |
Add checkmark (Closes #392), Refactor ding sound system to make it more consistent
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 |