Add choice between five background music tracks (0.5.1)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Denis Defolie
2026-10-11 23:02:56 +02:00
parent 2d7001105d
commit 0089ac0c27
23 changed files with 194 additions and 11 deletions
+1 -1
View File
@@ -66,7 +66,7 @@ func _ready() -> void:
_skill_id = _rule.get("skill", "")
_current_difficulty = ProgressManager.next_difficulty_for_skill(_skill_id, 1)
$Backdrop.kind = "marsh" if _rule.get("level", "CE1") == "CE2" else "forest"
AudioManager.play_music(SoundCatalog.music_for_level(_rule.get("level", "CE1")))
AudioManager.play_region_music(_rule.get("level", "CE1"))
_show_rule_panel()
+1 -1
View File
@@ -28,7 +28,7 @@ func _ready() -> void:
_new_profile_button.pressed.connect(_on_new_profile_pressed)
_delete_confirm_dialog.confirmed.connect(_on_delete_confirmed)
AudioManager.play_music("forest")
AudioManager.play_region_music("CE1")
_refresh_profile_list()
+1 -1
View File
@@ -28,7 +28,7 @@ func _ready() -> void:
var mission := ExerciseEngine.get_mission(GameManager.pending_mission_id)
var rule := ExerciseEngine.get_rule(mission.get("rule_id", ""))
_backdrop.kind = "marsh" if rule.get("level", "CE1") == "CE2" else "forest"
AudioManager.play_music(SoundCatalog.music_for_level(rule.get("level", "CE1")))
AudioManager.play_region_music(rule.get("level", "CE1"))
var summary := ProgressManager.complete_mission(
GameManager.pending_mission_id, GameManager.last_outcomes
+18
View File
@@ -11,6 +11,8 @@ extends Control
@onready var _music_slider: HSlider = %MusicSlider
@onready var _effects_label: Label = %EffectsLabel
@onready var _effects_slider: HSlider = %EffectsSlider
@onready var _track_label: Label = %TrackLabel
@onready var _track_option: OptionButton = %TrackOption
@onready var _text_size_label: Label = %TextSizeLabel
@onready var _text_size_box: HBoxContainer = %TextSizeBox
@onready var _animations_label: Label = %AnimationsLabel
@@ -36,6 +38,7 @@ func _ready() -> void:
_volume_slider.drag_ended.connect(_on_drag_ended)
_effects_slider.drag_ended.connect(_on_drag_ended)
_build_track_option()
_build_text_size_buttons()
_build_animation_buttons()
@@ -80,6 +83,21 @@ func _setup_slider(slider: HSlider, value: float, handler: Callable) -> void:
slider.value_changed.connect(handler)
func _build_track_option() -> void:
_track_label.text = UIText.get_text("settings.track_label")
var choices := SoundCatalog.music_choices()
for choice in choices:
_track_option.add_item(UIText.get_text("music.%s" % choice))
_track_option.select(choices.find(SettingsManager.music_track))
_track_option.item_selected.connect(_on_track_selected)
func _on_track_selected(index: int) -> void:
SettingsManager.set_music_track(SoundCatalog.music_choices()[index])
# On fait entendre le choix tout de suite.
AudioManager.play_region_music(ProgressManager.school_level())
func _on_volume_changed(value: float) -> void:
SettingsManager.set_volume(value)
+17 -1
View File
@@ -41,7 +41,7 @@ custom_minimum_size = Vector2(640, 0)
[node name="VBox" type="VBoxContainer" parent="Margin/Center/Card"]
layout_mode = 2
theme_override_constants/separation = 14
theme_override_constants/separation = 8
[node name="TitleLabel" type="Label" parent="Margin/Center/Card/VBox"]
unique_name_in_owner = true
@@ -100,6 +100,22 @@ size_flags_horizontal = 3
size_flags_vertical = 4
custom_minimum_size = Vector2(0, 40)
[node name="TrackRow" type="HBoxContainer" parent="Margin/Center/Card/VBox"]
layout_mode = 2
theme_override_constants/separation = 16
[node name="TrackLabel" type="Label" parent="Margin/Center/Card/VBox/TrackRow"]
unique_name_in_owner = true
layout_mode = 2
custom_minimum_size = Vector2(230, 0)
theme_type_variation = &"Emphasis"
[node name="TrackOption" type="OptionButton" parent="Margin/Center/Card/VBox/TrackRow"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
custom_minimum_size = Vector2(0, 48)
[node name="TextSizeLabel" type="Label" parent="Margin/Center/Card/VBox"]
unique_name_in_owner = true
layout_mode = 2
+1 -1
View File
@@ -40,7 +40,7 @@ func _ready() -> void:
func _refresh() -> void:
var is_ce2 := _viewed_level == "CE2"
_backdrop.kind = "marsh" if is_ce2 else "forest"
AudioManager.play_music(SoundCatalog.music_for_level(_viewed_level))
AudioManager.play_region_music(_viewed_level)
_title_label.text = UIText.get_text("world_map.title_ce2" if is_ce2 else "world_map.title")
_level_toggle_button.text = UIText.get_text(
"world_map.review_ce1_button" if is_ce2 else "world_map.back_to_ce2_button"