mirror of
https://github.com/deunix-educ/aventuriers-des-mots.git
synced 2026-10-13 02:11:58 +02:00
Add sound effects, ambient music and volume mixing (0.5.0)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
extends GutTest
|
||||
## Chaque identifiant sonore pointe vers un fichier present ; un identifiant
|
||||
## inconnu ne produit jamais de chemin libre.
|
||||
|
||||
|
||||
func test_every_sfx_file_exists() -> void:
|
||||
for sfx_id in SoundCatalog.SFX_IDS:
|
||||
assert_true(ResourceLoader.exists(SoundCatalog.sfx_path(sfx_id)), sfx_id)
|
||||
|
||||
|
||||
func test_every_music_file_exists() -> void:
|
||||
for music_id in SoundCatalog.MUSIC_IDS:
|
||||
assert_true(ResourceLoader.exists(SoundCatalog.music_path(music_id)), music_id)
|
||||
|
||||
|
||||
func test_unknown_ids_give_no_path() -> void:
|
||||
assert_eq(SoundCatalog.sfx_path("../../etc/passwd"), "")
|
||||
assert_eq(SoundCatalog.music_path("inconnue"), "")
|
||||
|
||||
|
||||
func test_music_follows_the_level() -> void:
|
||||
assert_eq(SoundCatalog.music_for_level("CE1"), "forest")
|
||||
assert_eq(SoundCatalog.music_for_level("CE2"), "marsh")
|
||||
|
||||
|
||||
func test_audio_manager_plays_without_crashing_and_remembers_music() -> void:
|
||||
AudioManager.play_sfx("success")
|
||||
AudioManager.play_music("marsh")
|
||||
assert_eq(AudioManager.current_music_id(), "marsh")
|
||||
AudioManager.play_music("marsh")
|
||||
AudioManager.stop_music()
|
||||
assert_eq(AudioManager.current_music_id(), "")
|
||||
|
||||
|
||||
func test_buses_exist_and_are_idempotent() -> void:
|
||||
AudioBuses.ensure()
|
||||
AudioBuses.ensure()
|
||||
assert_ne(AudioServer.get_bus_index(AudioBuses.MUSIC), -1)
|
||||
assert_ne(AudioServer.get_bus_index(AudioBuses.EFFECTS), -1)
|
||||
var count := 0
|
||||
for i in AudioServer.bus_count:
|
||||
if AudioServer.get_bus_name(i) == AudioBuses.MUSIC:
|
||||
count += 1
|
||||
assert_eq(count, 1)
|
||||
@@ -0,0 +1 @@
|
||||
uid://c61j06k8itgcq
|
||||
Reference in New Issue
Block a user