[agent:claude-cli] feat(audio): système audio complet — swim loop, boost, block break, echo ping, pearl collect, mort/respawn, deep sea ambient (placeholders AudioStreamGenerator si .ogg absent)

This commit is contained in:
2026-04-21 08:38:59 +00:00
parent 2e4d697977
commit 2c49e0c9db
4 changed files with 230 additions and 11 deletions

View File

@@ -64,6 +64,7 @@ func _ready() -> void:
AudioManager.play_ambient_loop("underwater_ambient")
AudioManager.play_music("underwater_theme")
AudioManager.play_whale_call_random()
AudioManager.play_deep_sea_ambient()
# Starting inventory
inventory.add_item(2, 10)
@@ -226,11 +227,11 @@ func _on_block_break(hit_position: Vector3, _normal: Vector3) -> void:
broken_id = world.break_block(hit_position)
if broken_id > 0:
inventory.add_item(broken_id, 1)
AudioManager.play_bubble_sfx(hit_position)
AudioManager.play_block_break(hit_position)
_award_break_xp(broken_id, hit_position)
else:
_world_sync.server_break_block(hit_position)
AudioManager.play_bubble_sfx(hit_position)
AudioManager.play_block_break(hit_position)
# Block break particle burst
var bbp_script := load("res://scripts/dolphin/BlockBreakParticles.gd")
@@ -335,7 +336,7 @@ func _spawn_consumable_popup(label: String, color: Color) -> void:
func _on_echolocation(position: Vector3, _radius: float) -> void:
AudioManager.play_bubble_sfx(position)
# Echo ping is now fired directly from DolphinController; keep achievement hook
var am: Node = get_node_or_null("/root/AchievementManager")
if am != null:
am.note_echolocation()