From db1261b76c41d00302576755a1d1470a63e50aa0 Mon Sep 17 00:00:00 2001 From: Wickedness Date: Sat, 20 Jun 2026 11:32:21 +0900 Subject: [PATCH] Clarify audio settings controls --- scripts/scenes/battle_scene.gd | 38 +++++++++++++++++----------------- tools/smoke_title_menu.gd | 28 +++++++++++++++++++++---- 2 files changed, 43 insertions(+), 23 deletions(-) diff --git a/scripts/scenes/battle_scene.gd b/scripts/scenes/battle_scene.gd index bcd1f01..1c91551 100644 --- a/scripts/scenes/battle_scene.gd +++ b/scripts/scenes/battle_scene.gd @@ -3051,9 +3051,9 @@ func _create_hud() -> void: settings_column.add_child(_make_seal_ribbon(374, 12)) settings_bgm_toggle = CheckButton.new() - settings_bgm_toggle.text = "배경 음악" + settings_bgm_toggle.text = "음악: 군막/전투" settings_bgm_toggle.custom_minimum_size = Vector2(374, 30) - settings_bgm_toggle.tooltip_text = "군막의 새벽과 영천 진군 음악을 켜거나 끕니다." + settings_bgm_toggle.tooltip_text = "첫 화면과 군막의 '군막의 새벽', 전투의 '영천 진군' 음악을 켜거나 끕니다." settings_bgm_toggle.toggled.connect(_on_settings_bgm_toggled) settings_column.add_child(settings_bgm_toggle) @@ -3063,7 +3063,7 @@ func _create_hud() -> void: settings_column.add_child(settings_bgm_volume_row) var settings_bgm_volume_caption := Label.new() - settings_bgm_volume_caption.text = "음악 크기" + settings_bgm_volume_caption.text = "음악" settings_bgm_volume_caption.custom_minimum_size = Vector2(94, 30) settings_bgm_volume_caption.vertical_alignment = VERTICAL_ALIGNMENT_CENTER _apply_label_style(settings_bgm_volume_caption, UI_PARCHMENT_TEXT, 13) @@ -3075,7 +3075,7 @@ func _create_hud() -> void: settings_bgm_volume_slider.step = 5.0 settings_bgm_volume_slider.size_flags_horizontal = Control.SIZE_EXPAND_FILL settings_bgm_volume_slider.custom_minimum_size = Vector2(194, 30) - settings_bgm_volume_slider.tooltip_text = "군막의 새벽과 영천 진군 음악의 크기를 조절합니다." + settings_bgm_volume_slider.tooltip_text = "군막의 새벽과 영천 진군 음악 크기를 조절합니다." settings_bgm_volume_slider.value_changed.connect(_on_settings_bgm_volume_changed) settings_bgm_volume_row.add_child(settings_bgm_volume_slider) @@ -3087,9 +3087,9 @@ func _create_hud() -> void: settings_bgm_volume_row.add_child(settings_bgm_volume_value_label) settings_sfx_toggle = CheckButton.new() - settings_sfx_toggle.text = "전투 효과음" + settings_sfx_toggle.text = "효과음: 선택/전투" settings_sfx_toggle.custom_minimum_size = Vector2(374, 30) - settings_sfx_toggle.tooltip_text = "선택, 이동, 공격, 책략 효과음을 켜거나 끕니다." + settings_sfx_toggle.tooltip_text = "메뉴 선택음, 이동 발소리, 공격과 책략 효과음을 켜거나 끕니다." settings_sfx_toggle.toggled.connect(_on_settings_sfx_toggled) settings_column.add_child(settings_sfx_toggle) @@ -3099,7 +3099,7 @@ func _create_hud() -> void: settings_column.add_child(settings_sfx_volume_row) var settings_sfx_volume_caption := Label.new() - settings_sfx_volume_caption.text = "효과 크기" + settings_sfx_volume_caption.text = "효과음" settings_sfx_volume_caption.custom_minimum_size = Vector2(94, 30) settings_sfx_volume_caption.vertical_alignment = VERTICAL_ALIGNMENT_CENTER _apply_label_style(settings_sfx_volume_caption, UI_PARCHMENT_TEXT, 13) @@ -3111,7 +3111,7 @@ func _create_hud() -> void: settings_sfx_volume_slider.step = 5.0 settings_sfx_volume_slider.size_flags_horizontal = Control.SIZE_EXPAND_FILL settings_sfx_volume_slider.custom_minimum_size = Vector2(194, 30) - settings_sfx_volume_slider.tooltip_text = "선택과 전투 효과음의 크기를 조절합니다." + settings_sfx_volume_slider.tooltip_text = "선택음과 전투 효과음 크기를 조절합니다." settings_sfx_volume_slider.value_changed.connect(_on_settings_sfx_volume_changed) settings_sfx_volume_row.add_child(settings_sfx_volume_slider) @@ -3123,9 +3123,9 @@ func _create_hud() -> void: settings_sfx_volume_row.add_child(settings_sfx_volume_value_label) settings_audio_reset_button = Button.new() - settings_audio_reset_button.text = "소리 켜기" + settings_audio_reset_button.text = "소리 확인" settings_audio_reset_button.custom_minimum_size = Vector2(374, 32) - settings_audio_reset_button.tooltip_text = "군막의 새벽 음악과 전투 효과음을 켜고 기본 음량으로 되돌린 뒤 확인음을 재생합니다." + settings_audio_reset_button.tooltip_text = "음악과 효과음을 켜고 기본 크기로 되돌린 뒤 현재 음악과 확인음을 재생합니다." settings_audio_reset_button.pressed.connect(_on_settings_audio_reset_pressed) settings_column.add_child(settings_audio_reset_button) @@ -4541,10 +4541,10 @@ func _create_hud() -> void: title_settings_column.add_child(title_settings_caption) title_bgm_toggle = CheckButton.new() - title_bgm_toggle.text = "군막 음악" + title_bgm_toggle.text = "음악: 군막의 새벽" title_bgm_toggle.custom_minimum_size = Vector2(350, 30) title_bgm_toggle.button_pressed = title_bgm_enabled - title_bgm_toggle.tooltip_text = "첫 화면과 군막의 새벽 음악을 켜거나 끕니다." + title_bgm_toggle.tooltip_text = "첫 화면과 군막의 '군막의 새벽' 음악을 켜거나 끕니다." title_bgm_toggle.toggled.connect(_on_title_bgm_toggled) title_settings_column.add_child(title_bgm_toggle) @@ -4554,7 +4554,7 @@ func _create_hud() -> void: title_settings_column.add_child(title_bgm_volume_row) var title_bgm_volume_caption := Label.new() - title_bgm_volume_caption.text = "음악 크기" + title_bgm_volume_caption.text = "음악" title_bgm_volume_caption.custom_minimum_size = Vector2(82, 30) title_bgm_volume_caption.vertical_alignment = VERTICAL_ALIGNMENT_CENTER _apply_label_style(title_bgm_volume_caption, UI_PARCHMENT_TEXT, 13) @@ -4579,10 +4579,10 @@ func _create_hud() -> void: title_bgm_volume_row.add_child(title_bgm_volume_value_label) title_sfx_toggle = CheckButton.new() - title_sfx_toggle.text = "전투 효과음" + title_sfx_toggle.text = "효과음: 클릭/전투" title_sfx_toggle.custom_minimum_size = Vector2(350, 30) title_sfx_toggle.button_pressed = title_sfx_enabled - title_sfx_toggle.tooltip_text = "선택, 이동, 공격, 책략 효과음을 켜거나 끕니다." + title_sfx_toggle.tooltip_text = "메뉴 클릭음, 이동 발소리, 공격과 책략 효과음을 켜거나 끕니다." title_sfx_toggle.toggled.connect(_on_title_sfx_toggled) title_settings_column.add_child(title_sfx_toggle) @@ -4592,7 +4592,7 @@ func _create_hud() -> void: title_settings_column.add_child(title_sfx_volume_row) var title_sfx_volume_caption := Label.new() - title_sfx_volume_caption.text = "효과 크기" + title_sfx_volume_caption.text = "효과음" title_sfx_volume_caption.custom_minimum_size = Vector2(82, 30) title_sfx_volume_caption.vertical_alignment = VERTICAL_ALIGNMENT_CENTER _apply_label_style(title_sfx_volume_caption, UI_PARCHMENT_TEXT, 13) @@ -4605,7 +4605,7 @@ func _create_hud() -> void: title_sfx_volume_slider.value = float(title_sfx_volume_percent) title_sfx_volume_slider.size_flags_horizontal = Control.SIZE_EXPAND_FILL title_sfx_volume_slider.custom_minimum_size = Vector2(172, 30) - title_sfx_volume_slider.tooltip_text = "선택과 전투 효과음의 크기를 조절합니다." + title_sfx_volume_slider.tooltip_text = "클릭음과 전투 효과음 크기를 조절합니다." title_sfx_volume_slider.value_changed.connect(_on_title_sfx_volume_changed) title_sfx_volume_row.add_child(title_sfx_volume_slider) @@ -4621,8 +4621,8 @@ func _create_hud() -> void: title_audio_reset_button, "TitleAudioResetButton", "status", - "소리 켜기", - "군막의 새벽 음악과 전투 효과음을 켜고 기본 음량으로 되돌린 뒤 확인음을 재생합니다.", + "소리 확인", + "음악과 효과음을 켜고 기본 크기로 되돌린 뒤 현재 음악과 확인음을 재생합니다.", Vector2(350, 32) ) title_audio_reset_button.pressed.connect(_on_title_audio_reset_pressed) diff --git a/tools/smoke_title_menu.gd b/tools/smoke_title_menu.gd index 9f3a26f..95ba062 100644 --- a/tools/smoke_title_menu.gd +++ b/tools/smoke_title_menu.gd @@ -153,6 +153,11 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void: failures.append("title settings should replace the main title commands while open") if scene.title_bgm_toggle == null or scene.title_sfx_toggle == null or scene.title_edge_scroll_toggle == null: failures.append("title settings should expose BGM, SFX, and edge-scroll toggles") + else: + if not scene.title_bgm_toggle.text.contains("군막의 새벽"): + failures.append("title BGM toggle should name the active menu theme") + if not scene.title_sfx_toggle.text.contains("클릭") or not scene.title_sfx_toggle.text.contains("전투"): + failures.append("title SFX toggle should clarify menu and battle effects") if scene.title_bgm_volume_slider == null or scene.title_sfx_volume_slider == null: failures.append("title settings should expose BGM and SFX volume sliders") scene._on_title_bgm_toggled(false) @@ -179,10 +184,13 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void: if persisted_scene.title_bgm_volume_percent != 45 or persisted_scene.title_sfx_volume_percent != 35: failures.append("title settings volume values should persist into a new scene instance") persisted_scene.free() - if scene.title_audio_reset_button == null or scene.title_audio_reset_button.text != "소리 켜기": - failures.append("title settings should expose a one-click audio recovery button") + if scene.title_audio_reset_button == null or scene.title_audio_reset_button.text != "소리 확인": + failures.append("title settings should expose a one-click audio preview button") else: _check_title_menu_button_art(failures, scene.title_audio_reset_button, "status", "title audio reset") + if not scene.title_audio_reset_button.tooltip_text.contains("확인음"): + failures.append("title audio preview should explain that it plays a confirmation sound") + scene.recent_sfx_keys.clear() scene._on_title_audio_reset_pressed() if not scene.title_bgm_enabled or not scene.title_sfx_enabled: failures.append("title audio recovery should re-enable BGM and SFX") @@ -190,6 +198,8 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void: failures.append("title audio recovery should restore audible volume defaults") if scene.bgm_player == null or scene.bgm_player.stream == null or scene.current_bgm_key.is_empty(): failures.append("title audio recovery should leave a playable BGM stream selected") + if not scene.recent_sfx_keys.has("menu_confirm"): + failures.append("title audio preview should play an audible confirmation SFX") scene._on_title_settings_back_pressed() if scene.title_settings_panel != null and scene.title_settings_panel.visible: failures.append("settings back should hide the title settings panel") @@ -345,6 +355,11 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void: failures.append("top Settings icon should open the in-game settings panel") if scene.settings_bgm_toggle == null or scene.settings_sfx_toggle == null or scene.settings_edge_scroll_toggle == null: failures.append("in-game settings panel should expose BGM, SFX, and edge-scroll toggles") + else: + if not scene.settings_bgm_toggle.text.contains("군막") or not scene.settings_bgm_toggle.text.contains("전투"): + failures.append("in-game BGM toggle should clarify menu and battle music") + if not scene.settings_sfx_toggle.text.contains("선택") or not scene.settings_sfx_toggle.text.contains("전투"): + failures.append("in-game SFX toggle should clarify menu and battle effects") if scene.settings_bgm_volume_slider == null or scene.settings_sfx_volume_slider == null: failures.append("in-game settings panel should expose BGM and SFX volume sliders") scene._on_settings_bgm_toggled(true) @@ -356,17 +371,22 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void: failures.append("in-game settings toggles should update the shared settings state") if scene.title_bgm_volume_percent != 70 or scene.title_sfx_volume_percent != 60: failures.append("in-game settings sliders should update the shared volume state") - if scene.settings_audio_reset_button == null or scene.settings_audio_reset_button.text != "소리 켜기": - failures.append("in-game settings should expose a one-click audio recovery button") + if scene.settings_audio_reset_button == null or scene.settings_audio_reset_button.text != "소리 확인": + failures.append("in-game settings should expose a one-click audio preview button") + elif not scene.settings_audio_reset_button.tooltip_text.contains("현재 음악"): + failures.append("in-game audio preview should explain that it plays the current music") scene._on_settings_bgm_toggled(false) scene._on_settings_sfx_toggled(false) scene._on_settings_bgm_volume_changed(20.0) scene._on_settings_sfx_volume_changed(15.0) + scene.recent_sfx_keys.clear() scene._on_settings_audio_reset_pressed() if not scene.title_bgm_enabled or not scene.title_sfx_enabled: failures.append("in-game audio recovery should re-enable BGM and SFX") if scene.title_bgm_volume_percent != BattleSceneScript.DEFAULT_AUDIO_VOLUME_PERCENT or scene.title_sfx_volume_percent != BattleSceneScript.DEFAULT_AUDIO_VOLUME_PERCENT: failures.append("in-game audio recovery should restore audible volume defaults") + if not scene.recent_sfx_keys.has("menu_confirm"): + failures.append("in-game audio preview should play an audible confirmation SFX") scene._hide_settings_panel() scene._on_new_campaign_pressed() if not scene._is_opening_prologue_visible():