Updates and fixes the pause menu. Hides stimuli button when not needed.

This commit is contained in:
Dylan Sarrazyn
2024-10-16 14:30:09 +02:00
parent ee53976575
commit 756098ba0a
12 changed files with 121 additions and 314 deletions
File diff suppressed because one or more lines are too long
@@ -17,6 +17,7 @@ max_progression = 3
[node name="MinigameUI" parent="." index="1"] [node name="MinigameUI" parent="." index="1"]
empty_progression_icon = ExtResource("5_jm3ut") empty_progression_icon = ExtResource("5_jm3ut")
full_progression_icon = ExtResource("6_qfybu") full_progression_icon = ExtResource("6_qfybu")
stimulus_button_visible = false
[node name="Scenery" type="Control" parent="GameRoot" index="0"] [node name="Scenery" type="Control" parent="GameRoot" index="0"]
layout_mode = 1 layout_mode = 1
+2 -38
View File
@@ -131,11 +131,6 @@ func _ready() -> void:
lose_kalulu_speech = Database.load_external_sound(Database.get_kalulu_speech_path("minigame", "lose")) lose_kalulu_speech = Database.load_external_sound(Database.get_kalulu_speech_path("minigame", "lose"))
if not Engine.is_editor_hint(): if not Engine.is_editor_hint():
minigame_ui.set_master_volume_slider(UserDataManager.get_master_volume())
minigame_ui.set_music_volume_slider(UserDataManager.get_music_volume())
minigame_ui.set_voice_volume_slider(UserDataManager.get_voice_volume())
minigame_ui.set_effects_volume_slider(UserDataManager.get_effects_volume())
# Stop the current music # Stop the current music
MusicManager.stop() MusicManager.stop()
@@ -183,9 +178,8 @@ func _start() -> void:
#region Ending #region Ending
func _reset() -> void: func _reset() -> void:
await OpeningCurtain.close()
get_tree().paused = false get_tree().paused = false
await OpeningCurtain.close()
get_tree().reload_current_scene() get_tree().reload_current_scene()
@@ -322,11 +316,6 @@ func _pause_game() -> bool:
return pause return pause
func _play_kalulu() -> void:
minigame_ui.play_kalulu_speech(help_kalulu_speech)
await minigame_ui.kalulu_speech_ended
func _highlight() -> void: func _highlight() -> void:
pass pass
@@ -382,39 +371,14 @@ func _on_minigame_ui_stimulus_button_pressed() -> void:
_pause_game() _pause_game()
func _on_minigame_ui_pause_button_pressed() -> void:
var pause: = _pause_game()
minigame_ui.show_center_menu(pause)
func _on_minigame_ui_kalulu_button_pressed() -> void: func _on_minigame_ui_kalulu_button_pressed() -> void:
_play_kalulu() minigame_ui.play_kalulu_speech(help_kalulu_speech)
func _on_minigame_ui_restart_button_pressed() -> void: func _on_minigame_ui_restart_button_pressed() -> void:
_reset() _reset()
func _on_minigame_ui_back_to_menu_pressed() -> void:
_go_back_to_the_garden()
func _on_minigame_ui_master_volume_changed(volume) -> void:
UserDataManager.set_master_volume(volume)
func _on_minigame_ui_music_volume_changed(volume) -> void:
UserDataManager.set_music_volume(volume)
func _on_minigame_ui_voice_volume_changed(volume) -> void:
UserDataManager.set_voice_volume(volume)
func _on_minigame_ui_effects_volume_changed(volume) -> void:
UserDataManager.set_effects_volume(volume)
func _on_current_progression_changed() -> void: func _on_current_progression_changed() -> void:
pass pass
@@ -33,13 +33,7 @@ grow_vertical = 2
[node name="Fireworks" parent="." instance=ExtResource("4_yekwo")] [node name="Fireworks" parent="." instance=ExtResource("4_yekwo")]
[connection signal="back_to_menu_pressed" from="MinigameUI" to="." method="_on_minigame_ui_back_to_menu_pressed"]
[connection signal="effects_volume_changed" from="MinigameUI" to="." method="_on_minigame_ui_effects_volume_changed"]
[connection signal="garden_button_pressed" from="MinigameUI" to="." method="_on_minigame_ui_garden_button_pressed"] [connection signal="garden_button_pressed" from="MinigameUI" to="." method="_on_minigame_ui_garden_button_pressed"]
[connection signal="kalulu_button_pressed" from="MinigameUI" to="." method="_on_minigame_ui_kalulu_button_pressed"] [connection signal="kalulu_button_pressed" from="MinigameUI" to="." method="_on_minigame_ui_kalulu_button_pressed"]
[connection signal="master_volume_changed" from="MinigameUI" to="." method="_on_minigame_ui_master_volume_changed"]
[connection signal="music_volume_changed" from="MinigameUI" to="." method="_on_minigame_ui_music_volume_changed"]
[connection signal="pause_button_pressed" from="MinigameUI" to="." method="_on_minigame_ui_pause_button_pressed"]
[connection signal="restart_button_pressed" from="MinigameUI" to="." method="_on_minigame_ui_restart_button_pressed"] [connection signal="restart_button_pressed" from="MinigameUI" to="." method="_on_minigame_ui_restart_button_pressed"]
[connection signal="stimulus_button_pressed" from="MinigameUI" to="." method="_on_minigame_ui_stimulus_button_pressed"] [connection signal="stimulus_button_pressed" from="MinigameUI" to="." method="_on_minigame_ui_stimulus_button_pressed"]
[connection signal="voice_volume_changed" from="MinigameUI" to="." method="_on_minigame_ui_voice_volume_changed"]
+7 -7
View File
@@ -3,15 +3,15 @@
[ext_resource type="Script" path="res://sources/minigames/base/kalulu.gd" id="1_iin3v"] [ext_resource type="Script" path="res://sources/minigames/base/kalulu.gd" id="1_iin3v"]
[ext_resource type="PackedScene" uid="uid://dnuny6200v5b0" path="res://sources/kalulu.tscn" id="2_gi4rq"] [ext_resource type="PackedScene" uid="uid://dnuny6200v5b0" path="res://sources/kalulu.tscn" id="2_gi4rq"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_y6gsq"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_iqd4x"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_cd4qd"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1hd4y"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1hd4y"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_dvlyl"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_dvlyl"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_cd4qd"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_y6gsq"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_iqd4x"]
[node name="Kalulu" type="Control"] [node name="Kalulu" type="Control"]
layout_mode = 3 layout_mode = 3
@@ -45,11 +45,11 @@ offset_right = -158.0
offset_bottom = -379.0 offset_bottom = -379.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
theme_override_styles/normal = SubResource("StyleBoxEmpty_y6gsq") theme_override_styles/focus = SubResource("StyleBoxEmpty_iqd4x")
theme_override_styles/disabled = SubResource("StyleBoxEmpty_cd4qd")
theme_override_styles/hover = SubResource("StyleBoxEmpty_1hd4y") theme_override_styles/hover = SubResource("StyleBoxEmpty_1hd4y")
theme_override_styles/pressed = SubResource("StyleBoxEmpty_dvlyl") theme_override_styles/pressed = SubResource("StyleBoxEmpty_dvlyl")
theme_override_styles/disabled = SubResource("StyleBoxEmpty_cd4qd") theme_override_styles/normal = SubResource("StyleBoxEmpty_y6gsq")
theme_override_styles/focus = SubResource("StyleBoxEmpty_iqd4x")
flat = true flat = true
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
+60 -74
View File
@@ -4,46 +4,41 @@ class_name MinigameUI
signal garden_button_pressed signal garden_button_pressed
signal stimulus_button_pressed signal stimulus_button_pressed
signal pause_button_pressed
signal restart_button_pressed signal restart_button_pressed
signal back_to_menu_pressed
signal master_volume_changed(volume: float)
signal music_volume_changed(volume: float)
signal voice_volume_changed(volume: float)
signal effects_volume_changed(volume: float)
signal kalulu_button_pressed signal kalulu_button_pressed
signal kalulu_speech_ended signal kalulu_speech_ended
signal pause_ended
const empty_lives_icon: = preload("res://assets/minigames/minigame_ui/graphic/life_empty.png") const empty_lives_icon: = preload("res://assets/minigames/minigame_ui/graphic/life_empty.png")
const full_lives_icon: = preload("res://assets/minigames/minigame_ui/graphic/life.png") const full_lives_icon: = preload("res://assets/minigames/minigame_ui/graphic/life.png")
@export var empty_progression_icon: Texture @export var empty_progression_icon: Texture
@export var full_progression_icon: Texture @export var full_progression_icon: Texture
@export var stimulus_button_visible: bool = true:
set(visible):
stimulus_button_visible = visible
if stimulus_button:
_handle_stimulus_button()
# Using unique names to avoid changing the path if the interface architecture changes # Using unique names to avoid changing the path if the interface architecture changes
# Left panel # Left panel
@onready var garden_button: TextureButton = %GardenButton @onready var garden_button: TextureButton = %GardenButton
@onready var stimulus_button: TextureButton = %StimulusButton
@onready var stimulus_texture: TextureRect = %StimulusTexture
@onready var pause_button: TextureButton = %PauseButton
@onready var kalulu_button: TextureButton = %KaluluButton
#Right panel @onready var stimulus_margin: MarginContainer = %StimulusMargin
@onready var volume_button: TextureButton = %VolumeButton @onready var stimulus_button: TextureButton = %StimulusButton
@onready var stimulus_texture: TextureRect = %StimulusTexture
@onready var pause_margin: MarginContainer = %PauseMargin
@onready var pause_button: TextureButton = %PauseButton
@onready var kalulu_button: TextureButton = %KaluluButton
# Center menu # Center menu
@onready var center_menu: MarginContainer = %CenterMenu @onready var center_menu: MarginContainer = %CenterMenu
@onready var restart_button: TextureButton = %RestartButton
# 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
# Kalulu # Kalulu
@onready var kalulu: Control = %Kalulu @onready var kalulu: Control = %Kalulu
@@ -56,13 +51,21 @@ const full_lives_icon: = preload("res://assets/minigames/minigame_ui/graphic/lif
@onready var animation_player: = $AnimationPlayer @onready var animation_player: = $AnimationPlayer
var is_paused: bool = false
func _ready() -> void: func _ready() -> void:
model_progression_rect.texture = empty_progression_icon model_progression_rect.texture = empty_progression_icon
_handle_stimulus_button()
# ------------ Lock/Unlock ------------ func _handle_stimulus_button() -> void:
stimulus_margin.visible = stimulus_button_visible
if stimulus_button_visible:
pause_margin.size_flags_stretch_ratio = 1
else:
pause_margin.size_flags_stretch_ratio = 2
#region Locking
func lock() -> void: func lock() -> void:
garden_button.disabled = true garden_button.disabled = true
@@ -77,11 +80,13 @@ func unlock() -> void:
pause_button.disabled = false pause_button.disabled = false
kalulu_button.disabled = false kalulu_button.disabled = false
#endregion
# ------------ Lives ------------ #region Lives
func set_maximum_number_of_lives(new_max_number_of_lives: int) -> void: func set_maximum_number_of_lives(new_max_number_of_lives: int) -> void:
if is_paused:
await pause_ended
var lives_rects: = lives_container.get_children() var lives_rects: = lives_container.get_children()
# Never remove the first # Never remove the first
for i in range(1, lives_rects.size()): for i in range(1, lives_rects.size()):
@@ -95,6 +100,8 @@ func set_maximum_number_of_lives(new_max_number_of_lives: int) -> void:
func set_number_of_lives(new_number_of_lives: int) -> void: func set_number_of_lives(new_number_of_lives: int) -> void:
if is_paused:
await pause_ended
var max_lives: = lives_container.get_child_count() var max_lives: = lives_container.get_child_count()
if new_number_of_lives > max_lives: if new_number_of_lives > max_lives:
set_maximum_number_of_lives(new_number_of_lives) set_maximum_number_of_lives(new_number_of_lives)
@@ -105,11 +112,13 @@ func set_number_of_lives(new_number_of_lives: int) -> void:
else: else:
lives_rects[i].texture = full_lives_icon lives_rects[i].texture = full_lives_icon
#endregion
# ------------ Progression ------------ #region Progression
func set_max_progression(new_max_progression: int) -> void: func set_max_progression(new_max_progression: int) -> void:
if is_paused:
await pause_ended
var progression_rects: = progression_container.get_children() var progression_rects: = progression_container.get_children()
# Never remove the first # Never remove the first
for i in range(1, progression_rects.size()): for i in range(1, progression_rects.size()):
@@ -124,6 +133,8 @@ func set_max_progression(new_max_progression: int) -> void:
func set_progression(new_progression: int) -> void: func set_progression(new_progression: int) -> void:
if is_paused:
await pause_ended
var max_progression: = progression_container.get_child_count() var max_progression: = progression_container.get_child_count()
if new_progression > max_progression: if new_progression > max_progression:
set_max_progression(new_progression) set_max_progression(new_progression)
@@ -134,9 +145,9 @@ func set_progression(new_progression: int) -> void:
else: else:
progression_rects[i].texture = empty_progression_icon progression_rects[i].texture = empty_progression_icon
#endregion
# ------------ Left Panel ------------ #region Left Panel
func _on_garden_button_pressed() -> void: func _on_garden_button_pressed() -> void:
garden_button_pressed.emit() garden_button_pressed.emit()
@@ -147,70 +158,47 @@ func _on_stimulus_button_pressed() -> void:
func _on_pause_button_pressed() -> void: func _on_pause_button_pressed() -> void:
pause_button_pressed.emit() is_paused = true
show_center_menu(true)
get_tree().paused = true
#pause_button_pressed.emit()
func _on_kalulu_button_pressed() -> void: func _on_kalulu_button_pressed() -> void:
kalulu_button_pressed.emit() kalulu_button_pressed.emit()
#endregion
# ------------ Center Menu ------------ #region Pause Menu
func show_center_menu(show_menu: bool) -> void: func show_center_menu(show_menu: bool) -> void:
center_menu.visible = show_menu center_menu.visible = show_menu
garden_button.disabled = show_menu garden_button.disabled = show_menu
stimulus_button.disabled = show_menu stimulus_button.disabled = show_menu
kalulu_button.disabled = show_menu kalulu_button.disabled = show_menu
pause_button.visible = !show_menu
func _on_restart_button_pressed() -> void: func _on_restart_button_pressed() -> void:
restart_button_pressed.emit() restart_button_pressed.emit()
# ------------ Volume Menu ------------ func _on_continue_button_pressed() -> void:
is_paused = false
show_center_menu(false)
get_tree().paused = false
pause_ended.emit()
func set_master_volume_slider(volume: float) -> void: #endregion
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_volume_button_pressed() -> void:
volume_menu.visible = not volume_menu.visible
func _on_master_volume_slider_value_changed(volume: float) -> void:
master_volume_changed.emit(volume)
func _on_music_volume_slider_value_changed(volume: float) -> void:
music_volume_changed.emit(volume)
func _on_voice_volume_slider_value_changed(volume: float) -> void:
voice_volume_changed.emit(volume)
func _on_effects_volume_slider_value_changed(volume: float) -> void:
effects_volume_changed.emit(volume)
# ------------ Kalulu ------------
#region Kalulu
func play_kalulu_speech(speech: AudioStream) -> void: func play_kalulu_speech(speech: AudioStream) -> void:
if is_paused:
await pause_ended
kalulu_button.hide() kalulu_button.hide()
get_tree().paused = true get_tree().paused = true
kalulu.play_kalulu_speech(speech) kalulu.play_kalulu_speech(speech)
@@ -218,13 +206,11 @@ func play_kalulu_speech(speech: AudioStream) -> void:
func _on_kalulu_speech_ended() -> void: func _on_kalulu_speech_ended() -> void:
kalulu_button.show() kalulu_button.show()
kalulu_speech_ended.emit()
get_tree().paused = false get_tree().paused = false
pause_ended.emit()
kalulu_speech_ended.emit()
#endregion
func _on_back_to_menu_button_pressed() -> void:
back_to_menu_pressed.emit()
func repeat_stimulus_animation(appear: bool) -> void: func repeat_stimulus_animation(appear: bool) -> void:
if appear: if appear:
+29 -175
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=34 format=3 uid="uid://weree6bnlt6f"] [gd_scene load_steps=32 format=3 uid="uid://weree6bnlt6f"]
[ext_resource type="Script" path="res://sources/minigames/base/minigame_ui.gd" id="1_g5fl4"] [ext_resource type="Script" path="res://sources/minigames/base/minigame_ui.gd" id="1_g5fl4"]
[ext_resource type="Texture2D" uid="uid://dj0ygi5q6kbdw" path="res://assets/minigames/minigame_ui/graphic/button_back_to_menu_up.png" id="2_p2m3v"] [ext_resource type="Texture2D" uid="uid://dj0ygi5q6kbdw" path="res://assets/minigames/minigame_ui/graphic/button_back_to_menu_up.png" id="2_p2m3v"]
@@ -19,17 +19,15 @@
[ext_resource type="Texture2D" uid="uid://dqtmyedk1ylbw" path="res://assets/minigames/minigame_ui/graphic/button_replay_up.png" id="17_ipxst"] [ext_resource type="Texture2D" uid="uid://dqtmyedk1ylbw" path="res://assets/minigames/minigame_ui/graphic/button_replay_up.png" id="17_ipxst"]
[ext_resource type="Texture2D" uid="uid://bvu8ud6hkwusb" path="res://assets/minigames/minigame_ui/graphic/button_replay_down.png" id="18_5pefo"] [ext_resource type="Texture2D" uid="uid://bvu8ud6hkwusb" path="res://assets/minigames/minigame_ui/graphic/button_replay_down.png" id="18_5pefo"]
[ext_resource type="Texture2D" uid="uid://d4ffd4us2hrbs" path="res://assets/minigames/minigame_ui/graphic/button_replay_disabled.png" id="19_mm65c"] [ext_resource type="Texture2D" uid="uid://d4ffd4us2hrbs" path="res://assets/minigames/minigame_ui/graphic/button_replay_disabled.png" id="19_mm65c"]
[ext_resource type="Texture2D" uid="uid://babk0f7ayvar1" path="res://assets/minigames/minigame_ui/graphic/title.png" id="19_sgl1i"]
[ext_resource type="PackedScene" uid="uid://blos4rn53qkwg" path="res://sources/minigames/base/kalulu.tscn" id="19_wn4nd"] [ext_resource type="PackedScene" uid="uid://blos4rn53qkwg" path="res://sources/minigames/base/kalulu.tscn" id="19_wn4nd"]
[ext_resource type="Texture2D" uid="uid://db64tlixplfru" path="res://assets/minigames/minigame_ui/graphic/life_empty.png" id="20_jyeyb"] [ext_resource type="Texture2D" uid="uid://db64tlixplfru" path="res://assets/minigames/minigame_ui/graphic/life_empty.png" id="20_jyeyb"]
[ext_resource type="Texture2D" uid="uid://dkvf2b6b1keqf" path="res://assets/minigames/minigame_ui/graphic/volume_up.png" id="20_qsa3m"]
[ext_resource type="Texture2D" uid="uid://blgoagm5j5jh2" path="res://assets/minigames/minigame_ui/graphic/volume_down.png" id="21_g5me6"]
[ext_resource type="Texture2D" uid="uid://dxqnvbr4tffn7" path="res://assets/minigames/minigame_ui/graphic/gauge.png" id="22_6jd5r"] [ext_resource type="Texture2D" uid="uid://dxqnvbr4tffn7" path="res://assets/minigames/minigame_ui/graphic/gauge.png" id="22_6jd5r"]
[ext_resource type="Texture2D" uid="uid://cuxo6l6hmin1y" path="res://assets/minigames/minigame_ui/graphic/volume_disabled.png" id="22_vw7wh"] [ext_resource type="Texture2D" uid="uid://ciumftic33ohp" path="res://assets/minigames/minigame_ui/graphic/button_play_up.png" id="22_lame7"]
[ext_resource type="Texture2D" uid="uid://bsojx7tmm435x" path="res://assets/minigames/minigame_ui/graphic/button_next_up.png" id="25_prvvp"] [ext_resource type="Texture2D" uid="uid://cg71a1qmeyls0" path="res://assets/minigames/minigame_ui/graphic/button_play_down.png" id="23_rb4gp"]
[ext_resource type="Texture2D" uid="uid://bht8j513507q5" path="res://assets/minigames/minigame_ui/graphic/button_play_disabled.png" id="24_em5b4"]
[ext_resource type="Texture2D" uid="uid://c3o1aolewrm4k" path="res://assets/minigames/monkeys/graphic/gauge_icon_monkey_empty.png" id="26_0bgo4"] [ext_resource type="Texture2D" uid="uid://c3o1aolewrm4k" path="res://assets/minigames/monkeys/graphic/gauge_icon_monkey_empty.png" id="26_0bgo4"]
[ext_resource type="Texture2D" uid="uid://brrxuaco0l85j" path="res://assets/minigames/minigame_ui/graphic/button_next_down.png" id="26_f338x"]
[ext_resource type="Texture2D" uid="uid://c3okdxpi317x5" path="res://assets/minigames/monkeys/graphic/gauge_icon_monkey_full.png" id="27_eee4l"] [ext_resource type="Texture2D" uid="uid://c3okdxpi317x5" path="res://assets/minigames/monkeys/graphic/gauge_icon_monkey_full.png" id="27_eee4l"]
[ext_resource type="Texture2D" uid="uid://bsmq426v8148w" path="res://assets/minigames/minigame_ui/graphic/button_next_disabled.png" id="27_wdcsn"]
[sub_resource type="Animation" id="Animation_qwriy"] [sub_resource type="Animation" id="Animation_qwriy"]
length = 0.001 length = 0.001
@@ -160,10 +158,10 @@ anchor_left = 0.5
anchor_top = 0.5 anchor_top = 0.5
anchor_right = 0.5 anchor_right = 0.5
anchor_bottom = 0.5 anchor_bottom = 0.5
offset_left = 101.0 offset_left = -1179.0
offset_top = 440.0 offset_top = -460.0
offset_right = 351.0 offset_right = -929.0
offset_bottom = 826.0 offset_bottom = -74.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
mouse_filter = 2 mouse_filter = 2
@@ -199,6 +197,7 @@ texture_disabled = ExtResource("4_7xmkh")
stretch_mode = 5 stretch_mode = 5
[node name="StimulusMargin" type="MarginContainer" parent="MainControl/Interface/LeftMargin/LeftContainer"] [node name="StimulusMargin" type="MarginContainer" parent="MainControl/Interface/LeftMargin/LeftContainer"]
unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
size_flags_vertical = 3 size_flags_vertical = 3
mouse_filter = 2 mouse_filter = 2
@@ -213,20 +212,8 @@ texture_pressed = ExtResource("6_ojtbv")
texture_disabled = ExtResource("7_cg081") texture_disabled = ExtResource("7_cg081")
stretch_mode = 5 stretch_mode = 5
[node name="VolumeContainer" type="MarginContainer" parent="MainControl/Interface/LeftMargin/LeftContainer"]
visible = false
layout_mode = 2
size_flags_vertical = 3
[node name="VolumeButton" type="TextureButton" parent="MainControl/Interface/LeftMargin/LeftContainer/VolumeContainer"]
unique_name_in_owner = true
layout_mode = 2
texture_normal = ExtResource("20_qsa3m")
texture_pressed = ExtResource("21_g5me6")
texture_disabled = ExtResource("22_vw7wh")
stretch_mode = 3
[node name="PauseMargin" type="MarginContainer" parent="MainControl/Interface/LeftMargin/LeftContainer"] [node name="PauseMargin" type="MarginContainer" parent="MainControl/Interface/LeftMargin/LeftContainer"]
unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
size_flags_vertical = 3 size_flags_vertical = 3
mouse_filter = 2 mouse_filter = 2
@@ -274,6 +261,7 @@ theme_override_constants/margin_bottom = 20
[node name="CenterMenu" type="MarginContainer" parent="MainControl/Interface/CentralPadMargin"] [node name="CenterMenu" type="MarginContainer" parent="MainControl/Interface/CentralPadMargin"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 2
visible = false visible = false
layout_mode = 2 layout_mode = 2
theme_override_constants/margin_left = 450 theme_override_constants/margin_left = 450
@@ -321,26 +309,34 @@ stretch_mode = 5
layout_mode = 2 layout_mode = 2
alignment = 2 alignment = 2
[node name="TextureRect" type="TextureRect" parent="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
texture = ExtResource("19_sgl1i")
stretch_mode = 4
[node name="HBoxContainer" type="HBoxContainer" parent="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu/VBoxContainer"] [node name="HBoxContainer" type="HBoxContainer" parent="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu/VBoxContainer"]
layout_mode = 2 layout_mode = 2
[node name="RestartButton" type="TextureButton" parent="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu/VBoxContainer/HBoxContainer"] [node name="RestartButton" type="TextureButton" parent="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu/VBoxContainer/HBoxContainer"]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 4 size_flags_horizontal = 6
size_flags_vertical = 8 size_flags_vertical = 4
texture_normal = ExtResource("17_ipxst") texture_normal = ExtResource("17_ipxst")
texture_pressed = ExtResource("18_5pefo") texture_pressed = ExtResource("18_5pefo")
texture_disabled = ExtResource("19_mm65c") texture_disabled = ExtResource("19_mm65c")
stretch_mode = 4
[node name="BackToMenuButton" type="TextureButton" parent="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu/VBoxContainer/HBoxContainer"] [node name="ContinueButton" type="TextureButton" parent="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu/VBoxContainer/HBoxContainer"]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 10 size_flags_horizontal = 6
size_flags_vertical = 8 size_flags_vertical = 4
texture_normal = ExtResource("25_prvvp") texture_normal = ExtResource("22_lame7")
texture_pressed = ExtResource("26_f338x") texture_pressed = ExtResource("23_rb4gp")
texture_disabled = ExtResource("27_wdcsn") texture_disabled = ExtResource("24_em5b4")
stretch_mode = 4
[node name="ProgressionMargin" type="MarginContainer" parent="MainControl/Interface"] [node name="ProgressionMargin" type="MarginContainer" parent="MainControl/Interface"]
layout_mode = 1 layout_mode = 1
@@ -411,143 +407,6 @@ texture = ExtResource("20_jyeyb")
expand_mode = 2 expand_mode = 2
stretch_mode = 5 stretch_mode = 5
[node name="VolumeMenu" type="Control" parent="MainControl"]
unique_name_in_owner = true
visible = false
layout_mode = 2
anchors_preset = 0
offset_left = 357.0
offset_top = 683.0
offset_right = 838.0
offset_bottom = 1139.0
[node name="Panel" type="Panel" parent="MainControl/VolumeMenu"]
layout_mode = 2
offset_right = 481.0
offset_bottom = 456.0
[node name="VBoxContainer" type="VBoxContainer" parent="MainControl/VolumeMenu"]
layout_mode = 2
offset_right = 481.0
offset_bottom = 456.0
[node name="MasterVolumeMarginContainer" type="MarginContainer" parent="MainControl/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="MainControl/VolumeMenu/VBoxContainer/MasterVolumeMarginContainer"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="MainControl/VolumeMenu/VBoxContainer/MasterVolumeMarginContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="MainControl/VolumeMenu/VBoxContainer/MasterVolumeMarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Master"
[node name="MarginContainer" type="MarginContainer" parent="MainControl/VolumeMenu/VBoxContainer/MasterVolumeMarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 35
[node name="MasterVolumeSlider" type="HSlider" parent="MainControl/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="MainControl/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="MainControl/VolumeMenu/VBoxContainer/MusicVolumeMarginContainer"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="MainControl/VolumeMenu/VBoxContainer/MusicVolumeMarginContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="MainControl/VolumeMenu/VBoxContainer/MusicVolumeMarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Music"
[node name="MarginContainer" type="MarginContainer" parent="MainControl/VolumeMenu/VBoxContainer/MusicVolumeMarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 35
[node name="MusicVolumeSlider" type="HSlider" parent="MainControl/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="MainControl/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="MainControl/VolumeMenu/VBoxContainer/VoiceVolumeMarginContainer"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="MainControl/VolumeMenu/VBoxContainer/VoiceVolumeMarginContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="MainControl/VolumeMenu/VBoxContainer/VoiceVolumeMarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Voice"
[node name="MarginContainer" type="MarginContainer" parent="MainControl/VolumeMenu/VBoxContainer/VoiceVolumeMarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 35
[node name="VoiceVolumeSlider" type="HSlider" parent="MainControl/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="MainControl/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="MainControl/VolumeMenu/VBoxContainer/EffectsVolumeMarginContainer"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="MainControl/VolumeMenu/VBoxContainer/EffectsVolumeMarginContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="MainControl/VolumeMenu/VBoxContainer/EffectsVolumeMarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Effects
"
[node name="MarginContainer" type="MarginContainer" parent="MainControl/VolumeMenu/VBoxContainer/EffectsVolumeMarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 35
[node name="EffectsVolumeSlider" type="HSlider" parent="MainControl/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="Kalulu" parent="MainControl" instance=ExtResource("19_wn4nd")] [node name="Kalulu" parent="MainControl" instance=ExtResource("19_wn4nd")]
unique_name_in_owner = true unique_name_in_owner = true
visible = false visible = false
@@ -560,13 +419,8 @@ libraries = {
[connection signal="pressed" from="MainControl/Interface/LeftMargin/LeftContainer/GardenButton" to="." method="_on_garden_button_pressed"] [connection signal="pressed" from="MainControl/Interface/LeftMargin/LeftContainer/GardenButton" to="." method="_on_garden_button_pressed"]
[connection signal="pressed" from="MainControl/Interface/LeftMargin/LeftContainer/StimulusMargin/StimulusButton" to="." method="_on_stimulus_button_pressed"] [connection signal="pressed" from="MainControl/Interface/LeftMargin/LeftContainer/StimulusMargin/StimulusButton" to="." method="_on_stimulus_button_pressed"]
[connection signal="pressed" from="MainControl/Interface/LeftMargin/LeftContainer/VolumeContainer/VolumeButton" to="." method="_on_volume_button_pressed"]
[connection signal="pressed" from="MainControl/Interface/LeftMargin/LeftContainer/PauseMargin/PauseButton" to="." method="_on_pause_button_pressed"] [connection signal="pressed" from="MainControl/Interface/LeftMargin/LeftContainer/PauseMargin/PauseButton" to="." method="_on_pause_button_pressed"]
[connection signal="pressed" from="MainControl/Interface/LeftMargin/LeftContainer/KaluluButtonMargin/KaluluButton" to="." method="_on_kalulu_button_pressed"] [connection signal="pressed" from="MainControl/Interface/LeftMargin/LeftContainer/KaluluButtonMargin/KaluluButton" to="." method="_on_kalulu_button_pressed"]
[connection signal="pressed" from="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu/VBoxContainer/HBoxContainer/RestartButton" to="." method="_on_restart_button_pressed"] [connection signal="pressed" from="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu/VBoxContainer/HBoxContainer/RestartButton" to="." method="_on_restart_button_pressed"]
[connection signal="pressed" from="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu/VBoxContainer/HBoxContainer/BackToMenuButton" to="." method="_on_back_to_menu_button_pressed"] [connection signal="pressed" from="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu/VBoxContainer/HBoxContainer/ContinueButton" to="." method="_on_continue_button_pressed"]
[connection signal="value_changed" from="MainControl/VolumeMenu/VBoxContainer/MasterVolumeMarginContainer/VBoxContainer/HBoxContainer/MarginContainer/MasterVolumeSlider" to="." method="_on_master_volume_slider_value_changed"]
[connection signal="value_changed" from="MainControl/VolumeMenu/VBoxContainer/MusicVolumeMarginContainer/VBoxContainer/HBoxContainer/MarginContainer/MusicVolumeSlider" to="." method="_on_music_volume_slider_value_changed"]
[connection signal="value_changed" from="MainControl/VolumeMenu/VBoxContainer/VoiceVolumeMarginContainer/VBoxContainer/HBoxContainer/MarginContainer/VoiceVolumeSlider" to="." method="_on_voice_volume_slider_value_changed"]
[connection signal="value_changed" from="MainControl/VolumeMenu/VBoxContainer/EffectsVolumeMarginContainer/VBoxContainer/HBoxContainer/MarginContainer/EffectsVolumeSlider" to="." method="_on_effects_volume_slider_value_changed"]
[connection signal="speech_ended" from="MainControl/Kalulu" to="." method="_on_kalulu_speech_ended"] [connection signal="speech_ended" from="MainControl/Kalulu" to="." method="_on_kalulu_speech_ended"]
@@ -10,3 +10,6 @@ distractors_queue_size = 6
time_between_words = 3.0 time_between_words = 3.0
lesson_nb = 4 lesson_nb = 4
difficulty = 1 difficulty = 1
[node name="MinigameUI" parent="." index="1"]
stimulus_button_visible = true
@@ -492,6 +492,9 @@ lesson_nb = 50
[node name="WorldEnvironment" type="WorldEnvironment" parent="." index="0"] [node name="WorldEnvironment" type="WorldEnvironment" parent="." index="0"]
environment = SubResource("Environment_5bcb7") environment = SubResource("Environment_5bcb7")
[node name="MinigameUI" parent="." index="2"]
stimulus_button_visible = false
[node name="Background" type="TextureRect" parent="GameRoot" index="0"] [node name="Background" type="TextureRect" parent="GameRoot" index="0"]
layout_mode = 1 layout_mode = 1
anchors_preset = 15 anchors_preset = 15
@@ -142,6 +142,7 @@ func _correct() -> void:
selected[1] = buffer selected[1] = buffer
await _make_selected_happy() await _make_selected_happy()
current_progression += 1
await _fly_to(nest_positions) await _fly_to(nest_positions)
@@ -149,14 +150,13 @@ func _correct() -> void:
await _fly_to(fly_away_positions) await _fly_to(fly_away_positions)
current_progression += 1
state = State.Idle state = State.Idle
selected.clear() selected.clear()
func _wrong() -> void: func _wrong() -> void:
await _make_selected_sad() await _make_selected_sad()
current_lives -= 1 current_lives -= 1
for parakeet in selected: for parakeet in selected:
@@ -26,6 +26,7 @@ max_number_of_lives = 5
[node name="MinigameUI" parent="." index="1"] [node name="MinigameUI" parent="." index="1"]
empty_progression_icon = ExtResource("5_yt7mv") empty_progression_icon = ExtResource("5_yt7mv")
full_progression_icon = ExtResource("6_46vnr") full_progression_icon = ExtResource("6_46vnr")
stimulus_button_visible = false
[node name="Background" type="TextureRect" parent="GameRoot" index="0"] [node name="Background" type="TextureRect" parent="GameRoot" index="0"]
texture_repeat = 3 texture_repeat = 3
@@ -18,6 +18,7 @@ max_progression = 5
[node name="MinigameUI" parent="." index="1"] [node name="MinigameUI" parent="." index="1"]
empty_progression_icon = ExtResource("3_gdpi3") empty_progression_icon = ExtResource("3_gdpi3")
full_progression_icon = ExtResource("4_yua7j") full_progression_icon = ExtResource("4_yua7j")
stimulus_button_visible = false
[node name="Background" type="TextureRect" parent="GameRoot" index="0"] [node name="Background" type="TextureRect" parent="GameRoot" index="0"]
layout_mode = 1 layout_mode = 1