From c2edaf27617134af7675cf2beae7f173ad71a952 Mon Sep 17 00:00:00 2001 From: Steven Wroblewski Date: Sun, 10 May 2026 20:53:25 +0200 Subject: [PATCH] feat(nav): add GameState.set_current_room and AudioManager.DEFAULT_MUSIC_VOLUME --- scripts/autoload/AudioManager.gd | 1 + scripts/autoload/GameState.gd | 5 +++++ test/unit/test_audio_manager.gd | 4 ++++ test/unit/test_game_state.gd | 13 +++++++++++++ 4 files changed, 23 insertions(+) diff --git a/scripts/autoload/AudioManager.gd b/scripts/autoload/AudioManager.gd index 713a8b0..f84419c 100644 --- a/scripts/autoload/AudioManager.gd +++ b/scripts/autoload/AudioManager.gd @@ -3,6 +3,7 @@ extends Node const CROSSFADE_DURATION: float = 0.8 +const DEFAULT_MUSIC_VOLUME: float = 0.6 const _MUSIC_MAP: Dictionary = { 0: "res://assets/audio/music/floor_0.ogg", diff --git a/scripts/autoload/GameState.gd b/scripts/autoload/GameState.gd index 34c0ff2..58fa529 100644 --- a/scripts/autoload/GameState.gd +++ b/scripts/autoload/GameState.gd @@ -73,6 +73,11 @@ func clear_chest_state(chest_id: String) -> void: state_changed.emit() +func set_current_room(room: String) -> void: + current_room = room + state_changed.emit() + + func get_save_data() -> Dictionary: var positions: Dictionary = {} for key: String in _character_positions: diff --git a/test/unit/test_audio_manager.gd b/test/unit/test_audio_manager.gd index d4f0b40..b33bfa1 100644 --- a/test/unit/test_audio_manager.gd +++ b/test/unit/test_audio_manager.gd @@ -69,3 +69,7 @@ func test_music_map_has_all_four_floors() -> void: assert_true(AudioManager._MUSIC_MAP.has(1)) assert_true(AudioManager._MUSIC_MAP.has(2)) assert_true(AudioManager._MUSIC_MAP.has(3)) + + +func test_default_music_volume_constant_is_0_6() -> void: + assert_eq(AudioManager.DEFAULT_MUSIC_VOLUME, 0.6) diff --git a/test/unit/test_game_state.gd b/test/unit/test_game_state.gd index 5d0515a..5dc429c 100644 --- a/test/unit/test_game_state.gd +++ b/test/unit/test_game_state.gd @@ -181,3 +181,16 @@ func test_apply_save_data_restores_chest_state() -> void: } GameState.apply_save_data(data) assert_eq(GameState.get_chest_state("reception_desk_test"), ["clipboard", "pen"]) + + +func test_set_current_room_updates_value() -> void: + GameState.set_current_room("xray") + assert_eq(GameState.current_room, "xray") + GameState.set_current_room("reception") + + +func test_set_current_room_emits_state_changed() -> void: + watch_signals(GameState) + GameState.set_current_room("pharmacy") + assert_signal_emitted(GameState, "state_changed") + GameState.set_current_room("reception")