aboutsummaryrefslogtreecommitdiff
path: root/client/map/items
diff options
context:
space:
mode:
authortpart <tpart120@proton.me>2025-09-19 19:53:25 +0200
committertpart <tpart120@proton.me>2025-09-19 19:53:25 +0200
commite2335e907c45f84462ee6fabe2828cf38e494b51 (patch)
tree1154a1e95e25e40ed3ac50d6fd36884dfdb66c0e /client/map/items
parent9c636b231b432976d9d7c3044f9e488f0f7cedf3 (diff)
downloadhurrycurry-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.gd18
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