fix(client): address PR #47 review — murmur deferral, zone extraction, 6 tests

Remove premature Voice/VoiceConversation from SOUND_EVENT_ASSETS (D-072
defers murmur to end-to-end sprint). Extract current_zone_id in
GameState.apply_snapshot() as first-class field, eliminating O(N) tile
scan in main.gd (D-020 server-authoritative). Add dir.list_dir_end()
after registry scan. Add rapid zone-crossing + _load_prefs() roundtrip
tests. Enhance comments on hub/workplace same-asset pattern, station
base hum, and confrontation dip replacement semantics.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-19 18:37:23 +01:00
co-authored by Claude Opus 4.6
parent 513682522f
commit 8985340bdd
5 changed files with 103 additions and 17 deletions
+3 -1
View File
@@ -140,7 +140,9 @@ func show_dialogue(npc_name: String, speech: String, options: Array = []) -> voi
GameState.dialogue_active = true # D-064: block movement while dialogue visible/fading
# D-069: Dialogue dip — reduce ambient noise to foreground conversation.
# Confrontation options override this with apply_dip("confrontation") in _start_confrontation_beat().
# Confrontation options REPLACE (not nest) this dip via apply_dip("confrontation")
# in _start_confrontation_beat(). hide_dialogue()'s clear_dip() restores to base
# volumes regardless of which profile was last active — intentional replacement semantics.
AudioManager.apply_dip("dialogue")
# D-061: auto-pause in single-player when dialogue opens