Corrects some bugs on the crabs and jellyfishes minigames. The win speeches now plays correctly. When retrying a minigame, the transition data (current lesson) is kept.

This commit is contained in:
Dylan Sarrazyn
2024-07-16 17:48:39 +02:00
parent a0753e88af
commit da3f2e0d9b
9 changed files with 239 additions and 24 deletions
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -30,7 +30,6 @@ grow_vertical = 2
[node name="TabContainer" type="TabContainer" parent="CenterContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 40
current_tab = 0
use_hidden_tabs_for_min_size = true
[node name="Language" type="VBoxContainer" parent="CenterContainer/TabContainer"]
@@ -168,6 +167,7 @@ theme_override_font_sizes/font_size = 60
alignment = 1
item_count = 1
popup/item_0/text = "New"
popup/item_0/id = 0
[node name="AddWordListButton" type="Button" parent="VBoxContainer"]
layout_mode = 2
+2
View File
@@ -38,6 +38,8 @@ var current_tracing: = 0
func _ready() -> void:
MusicManager.stop()
gardens_data = transition_data
transition_data = {}
lesson_nb = gardens_data.get("current_lesson_number", lesson_nb)
@@ -5,10 +5,23 @@ const login_menu_path := "res://sources/menus/login/login.tscn"
const device_tab_scene : PackedScene = preload("res://sources/menus/settings/device_tab.tscn")
# Volume menu
@onready var volume_menu: Control = %VolumeMenu
@onready var master_volume_slider: HSlider = %MasterVolumeSlider
@onready var music_volume_slider: HSlider = %MusicVolumeSlider
@onready var voice_volume_slider: HSlider = %VoiceVolumeSlider
@onready var effects_volume_slider: HSlider = %EffectsVolumeSlider
@onready var devices_tab_container : TabContainer = %DevicesTabContainer
func _ready():
await _refresh_devices_tabs()
set_master_volume_slider(UserDataManager.get_master_volume())
set_music_volume_slider(UserDataManager.get_music_volume())
set_voice_volume_slider(UserDataManager.get_voice_volume())
set_effects_volume_slider(UserDataManager.get_effects_volume())
OpeningCurtain.open()
@@ -59,3 +72,39 @@ func _on_add_device_button_pressed():
func _on_lesson_unlocks_button_pressed() -> void:
get_tree().change_scene_to_file("res://sources/menus/settings/lesson_unlocks.tscn")
# ------------ Volume Menu ------------
func _on_volume_button_pressed() -> void:
volume_menu.visible = not volume_menu.visible
func set_master_volume_slider(volume: float) -> void:
master_volume_slider.value = volume
func set_music_volume_slider(volume: float) -> void:
music_volume_slider.value = volume
func set_voice_volume_slider(volume: float) -> void:
voice_volume_slider.value = volume
func set_effects_volume_slider(volume: float) -> void:
effects_volume_slider.value = volume
func _on_master_volume_slider_value_changed(volume: float) -> void:
UserDataManager.set_master_volume(volume)
func _on_music_volume_slider_value_changed(volume: float) -> void:
UserDataManager.set_music_volume(volume)
func _on_voice_volume_slider_value_changed(volume: float) -> void:
UserDataManager.set_voice_volume(volume)
func _on_effects_volume_slider_value_changed(volume: float) -> void:
UserDataManager.set_effects_volume(volume)
+162 -2
View File
@@ -1,10 +1,13 @@
[gd_scene load_steps=6 format=3 uid="uid://ci7ueo06f24k3"]
[gd_scene load_steps=9 format=3 uid="uid://ci7ueo06f24k3"]
[ext_resource type="Script" path="res://sources/menus/settings/teacher_settings.gd" id="1_ojivk"]
[ext_resource type="PackedScene" uid="uid://wdjp1sv55q4f" path="res://sources/menus/components/night_sky/night_sky.tscn" id="1_v06h8"]
[ext_resource type="Texture2D" uid="uid://wtx3wqs0l4si" path="res://assets/minigames/minigame_ui/graphic/button_back_up.png" id="3_hvu1i"]
[ext_resource type="Texture2D" uid="uid://cbhip35yyqneg" path="res://assets/minigames/minigame_ui/graphic/button_back_down.png" id="4_045cm"]
[ext_resource type="Texture2D" uid="uid://tcapan0mj64o" path="res://assets/minigames/minigame_ui/graphic/button_back_disabled.png" id="5_e3piv"]
[ext_resource type="Texture2D" uid="uid://dkvf2b6b1keqf" path="res://assets/minigames/minigame_ui/graphic/volume_up.png" id="6_urri0"]
[ext_resource type="Texture2D" uid="uid://blgoagm5j5jh2" path="res://assets/minigames/minigame_ui/graphic/volume_down.png" id="7_71of5"]
[ext_resource type="Texture2D" uid="uid://cuxo6l6hmin1y" path="res://assets/minigames/minigame_ui/graphic/volume_disabled.png" id="8_tfdgw"]
[node name="TeacherSettings" type="Control"]
layout_mode = 3
@@ -36,12 +39,164 @@ layout_mode = 2
[node name="BackButton" type="TextureButton" parent="InterfaceLeft/Container"]
layout_mode = 2
size_flags_vertical = 3
size_flags_stretch_ratio = 4.0
texture_normal = ExtResource("3_hvu1i")
texture_pressed = ExtResource("4_045cm")
texture_disabled = ExtResource("5_e3piv")
stretch_mode = 4
[node name="VolumeContainer" type="MarginContainer" parent="InterfaceLeft/Container"]
layout_mode = 2
size_flags_vertical = 3
size_flags_stretch_ratio = 3.0
theme_override_constants/margin_left = 50
theme_override_constants/margin_top = 50
theme_override_constants/margin_right = 100
[node name="VolumeButton" type="TextureButton" parent="InterfaceLeft/Container/VolumeContainer"]
unique_name_in_owner = true
visible = false
layout_mode = 2
texture_normal = ExtResource("6_urri0")
texture_pressed = ExtResource("7_71of5")
texture_disabled = ExtResource("8_tfdgw")
stretch_mode = 4
[node name="VolumeMenu" type="Control" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton"]
unique_name_in_owner = true
visible = false
layout_mode = 3
anchors_preset = 0
offset_left = 300.0
offset_right = 781.0
offset_bottom = 456.0
[node name="Panel" type="Panel" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu"]
layout_mode = 2
offset_right = 481.0
offset_bottom = 456.0
[node name="VBoxContainer" type="VBoxContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu"]
layout_mode = 2
offset_right = 481.0
offset_bottom = 456.0
[node name="MasterVolumeMarginContainer" type="MarginContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="VBoxContainer" type="VBoxContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/MasterVolumeMarginContainer"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/MasterVolumeMarginContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/MasterVolumeMarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Master"
[node name="MarginContainer" type="MarginContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/MasterVolumeMarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 35
[node name="MasterVolumeSlider" type="HSlider" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/MasterVolumeMarginContainer/VBoxContainer/HBoxContainer/MarginContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(250, 0)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 4
[node name="MusicVolumeMarginContainer" type="MarginContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="VBoxContainer" type="VBoxContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/MusicVolumeMarginContainer"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/MusicVolumeMarginContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/MusicVolumeMarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Music"
[node name="MarginContainer" type="MarginContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/MusicVolumeMarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 35
[node name="MusicVolumeSlider" type="HSlider" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/MusicVolumeMarginContainer/VBoxContainer/HBoxContainer/MarginContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(250, 0)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 4
[node name="VoiceVolumeMarginContainer" type="MarginContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="VBoxContainer" type="VBoxContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/VoiceVolumeMarginContainer"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/VoiceVolumeMarginContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/VoiceVolumeMarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Voice"
[node name="MarginContainer" type="MarginContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/VoiceVolumeMarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 35
[node name="VoiceVolumeSlider" type="HSlider" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/VoiceVolumeMarginContainer/VBoxContainer/HBoxContainer/MarginContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(250, 0)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 4
[node name="EffectsVolumeMarginContainer" type="MarginContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="VBoxContainer" type="VBoxContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/EffectsVolumeMarginContainer"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/EffectsVolumeMarginContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/EffectsVolumeMarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Effects
"
[node name="MarginContainer" type="MarginContainer" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/EffectsVolumeMarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 35
[node name="EffectsVolumeSlider" type="HSlider" parent="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/EffectsVolumeMarginContainer/VBoxContainer/HBoxContainer/MarginContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(250, 0)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 4
[node name="LogoutButton" type="Button" parent="InterfaceLeft/Container"]
layout_mode = 2
theme_override_font_sizes/font_size = 70
@@ -96,6 +251,11 @@ theme_override_font_sizes/font_size = 70
text = "SETTINGS_LESSONS"
[connection signal="pressed" from="InterfaceLeft/Container/BackButton" to="." method="_on_back_button_pressed"]
[connection signal="pressed" from="InterfaceLeft/Container/VolumeContainer/VolumeButton" to="." method="_on_volume_button_pressed"]
[connection signal="value_changed" from="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/MasterVolumeMarginContainer/VBoxContainer/HBoxContainer/MarginContainer/MasterVolumeSlider" to="." method="_on_master_volume_slider_value_changed"]
[connection signal="value_changed" from="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/MusicVolumeMarginContainer/VBoxContainer/HBoxContainer/MarginContainer/MusicVolumeSlider" to="." method="_on_music_volume_slider_value_changed"]
[connection signal="value_changed" from="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/VoiceVolumeMarginContainer/VBoxContainer/HBoxContainer/MarginContainer/VoiceVolumeSlider" to="." method="_on_voice_volume_slider_value_changed"]
[connection signal="value_changed" from="InterfaceLeft/Container/VolumeContainer/VolumeButton/VolumeMenu/VBoxContainer/EffectsVolumeMarginContainer/VBoxContainer/HBoxContainer/MarginContainer/EffectsVolumeSlider" to="." method="_on_effects_volume_slider_value_changed"]
[connection signal="pressed" from="InterfaceLeft/Container/LogoutButton" to="." method="_on_logout_button_pressed"]
[connection signal="pressed" from="VBoxContainer/InterfaceBottom/Container/AddDeviceButton" to="." method="_on_add_device_button_pressed"]
[connection signal="pressed" from="VBoxContainer/InterfaceBottom/Container/AddStudentButton" to="." method="_on_add_student_button_pressed"]
+2 -2
View File
@@ -99,7 +99,7 @@ func _ready() -> void:
gardens_data = transition_data
minigame_number = transition_data.get("minigame_number", minigame_number)
lesson_nb = transition_data.get("current_lesson_number", lesson_nb)
transition_data = {}
#transition_data = {}
# Difficulty
if UserDataManager._student_difficulty:
@@ -107,7 +107,7 @@ func _ready() -> void:
intro_kalulu_speech = Database.load_external_sound(Database.get_kalulu_speech_path(minigame_name, "intro"))
help_kalulu_speech = Database.load_external_sound(Database.get_kalulu_speech_path(minigame_name, "help"))
win_kalulu_speech = Database.load_external_sound(Database.get_kalulu_speech_path(minigame_name, "win"))
win_kalulu_speech = Database.load_external_sound(Database.get_kalulu_speech_path(minigame_name, "end"))
lose_kalulu_speech = Database.load_external_sound(Database.get_kalulu_speech_path("minigame", "lose"))
if not Engine.is_editor_hint():
@@ -97,14 +97,15 @@ func _find_stimuli_and_distractions() -> void:
# Difficulty 1
# Any previously learned item w/ all letters different
for syllable: Dictionary in all_syllables:
var gp_found_in_stimuli: = false
for gp in syllable.GPs:
if gp in stimulus.GPs:
gp_found_in_stimuli = true
break
if syllable.Phoneme != stimulus.Phoneme:
var gp_found_in_stimuli: = false
for gp in syllable.GPs:
if gp in stimulus.GPs:
gp_found_in_stimuli = true
break
if not gp_found_in_stimuli:
stimulus_distractors.append(syllable)
if not gp_found_in_stimuli:
stimulus_distractors.append(syllable)
# Higher difficulties only changes syllables distractors
if difficulty > 1 and stimulus.GPs.size() == 2:
+1
View File
@@ -214,6 +214,7 @@ texture_disabled = ExtResource("7_cg081")
stretch_mode = 5
[node name="VolumeContainer" type="MarginContainer" parent="MainControl/Interface/LeftMargin/LeftContainer"]
visible = false
layout_mode = 2
size_flags_vertical = 3
@@ -184,3 +184,5 @@ func _on_stimulus_found() -> void:
# Clear all the jellyfishes
for jellyfish: Jellyfish in spawning_space.get_children():
jellyfish.delete()
blocking_jellyfish.clear()