Add minigame selection launcher and stimulus replay button
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
extends Control
|
||||
|
||||
|
||||
|
||||
func _on_monkeys_button_pressed() -> void:
|
||||
get_tree().change_scene_to_file("res://sources/minigames/monkeys/monkeys_minigame.tscn")
|
||||
|
||||
|
||||
func _on_crabs_button_pressed() -> void:
|
||||
get_tree().change_scene_to_file("res://sources/minigames/crabs/crabs_minigame.tscn")
|
||||
|
||||
|
||||
func _on_parakeets_button_pressed() -> void:
|
||||
get_tree().change_scene_to_file("res://sources/minigames/parakeets/parakeets_minigame.gd")
|
||||
@@ -0,0 +1,64 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://dla6fxetre5pl"]
|
||||
|
||||
[ext_resource type="Script" path="res://sources/menus/minigame_selection.gd" id="1_8yhlq"]
|
||||
[ext_resource type="FontFile" uid="uid://b2l4jfylc1v41" path="res://assets/fonts/DidactGothic-Regular.ttf" id="1_s5eb1"]
|
||||
[ext_resource type="Texture2D" uid="uid://c3okdxpi317x5" path="res://assets/minigames/monkeys/graphic/gauge_icon_monkey_full.png" id="2_prxem"]
|
||||
[ext_resource type="Texture2D" uid="uid://cq5wwf7y1msh7" path="res://assets/minigames/crabs/graphic/gauge_icon_crab_full.png" id="3_wq58l"]
|
||||
[ext_resource type="Texture2D" uid="uid://di2qcv6jw8wh0" path="res://assets/minigames/parakeets/graphic/gauge_icon_parakeet_full.png" id="4_b8s0s"]
|
||||
|
||||
[node name="MinigameSelection" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_8yhlq")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -300.0
|
||||
offset_top = -214.0
|
||||
offset_right = 300.0
|
||||
offset_bottom = 214.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_constants/separation = 50
|
||||
|
||||
[node name="MonkeysButton" type="Button" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_fonts/font = ExtResource("1_s5eb1")
|
||||
theme_override_font_sizes/font_size = 100
|
||||
text = "Monkeys"
|
||||
icon = ExtResource("2_prxem")
|
||||
icon_alignment = 2
|
||||
expand_icon = true
|
||||
|
||||
[node name="CrabsButton" type="Button" parent="VBoxContainer"]
|
||||
custom_minimum_size = Vector2(500, 2.08165e-12)
|
||||
layout_mode = 2
|
||||
theme_override_fonts/font = ExtResource("1_s5eb1")
|
||||
theme_override_font_sizes/font_size = 100
|
||||
text = "Crabs"
|
||||
icon = ExtResource("3_wq58l")
|
||||
icon_alignment = 2
|
||||
expand_icon = true
|
||||
|
||||
[node name="ParakeetsButton" type="Button" parent="VBoxContainer"]
|
||||
custom_minimum_size = Vector2(500, 2.08165e-12)
|
||||
layout_mode = 2
|
||||
theme_override_fonts/font = ExtResource("1_s5eb1")
|
||||
theme_override_font_sizes/font_size = 100
|
||||
text = "Parakeets"
|
||||
icon = ExtResource("4_b8s0s")
|
||||
icon_alignment = 2
|
||||
expand_icon = true
|
||||
|
||||
[connection signal="pressed" from="VBoxContainer/MonkeysButton" to="." method="_on_monkeys_button_pressed"]
|
||||
[connection signal="pressed" from="VBoxContainer/CrabsButton" to="." method="_on_crabs_button_pressed"]
|
||||
[connection signal="pressed" from="VBoxContainer/ParakeetsButton" to="." method="_on_parakeets_button_pressed"]
|
||||
@@ -68,7 +68,8 @@ func _ready() -> void:
|
||||
|
||||
|
||||
func _initialize() -> void:
|
||||
_find_stimuli_and_distractions()
|
||||
if not Engine.is_editor_hint():
|
||||
_find_stimuli_and_distractions()
|
||||
|
||||
_setup_minigame()
|
||||
|
||||
@@ -175,7 +176,11 @@ func _on_minigame_ui_garden_button_pressed() -> void:
|
||||
|
||||
|
||||
func _on_minigame_ui_stimulus_button_pressed() -> void:
|
||||
_play_stimulus()
|
||||
get_tree().paused = true
|
||||
minigame_ui.lock()
|
||||
await _play_stimulus()
|
||||
minigame_ui.unlock()
|
||||
get_tree().paused = false
|
||||
|
||||
|
||||
func _on_minigame_ui_pause_button_pressed() -> void:
|
||||
@@ -190,6 +195,14 @@ func _on_minigame_ui_restart_button_pressed() -> void:
|
||||
_reset()
|
||||
|
||||
|
||||
func _on_minigame_ui_back_to_menu_pressed() -> void:
|
||||
opening_curtain.play("close")
|
||||
await opening_curtain.animation_finished
|
||||
|
||||
get_tree().paused = false
|
||||
get_tree().change_scene_to_file("res://sources/menus/minigame_selection.tscn")
|
||||
|
||||
|
||||
func _on_minigame_ui_master_volume_changed(volume) -> void:
|
||||
UserDataManager.set_master_volume(volume)
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://8awe4usnucyv"]
|
||||
|
||||
[ext_resource type="Script" path="res://sources/minigames/base/base_minigame.gd" id="1_jdfsm"]
|
||||
[ext_resource type="PackedScene" uid="uid://cweny8on01s4o" path="res://sources/minigames/base/minigame_ui.tscn" id="2_a3tib"]
|
||||
[ext_resource type="PackedScene" path="res://sources/minigames/base/opening_curtain.tscn" id="3_p5ryr"]
|
||||
[ext_resource type="PackedScene" uid="uid://weree6bnlt6f" path="res://sources/minigames/base/minigame_ui.tscn" id="2_a3tib"]
|
||||
[ext_resource type="PackedScene" uid="uid://b3ckdfnbc7077" path="res://sources/minigames/base/opening_curtain.tscn" id="3_p5ryr"]
|
||||
|
||||
[node name="BaseMinigame" type="Control"]
|
||||
process_mode = 3
|
||||
@@ -29,6 +29,7 @@ anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[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="kalulu_button_pressed" from="MinigameUI" to="." method="_on_minigame_ui_kalulu_button_pressed"]
|
||||
|
||||
@@ -7,6 +7,7 @@ signal stimulus_button_pressed
|
||||
signal pause_button_pressed
|
||||
|
||||
signal restart_button_pressed
|
||||
signal back_to_menu_pressed
|
||||
|
||||
signal master_volume_changed(volume: float)
|
||||
signal music_volume_changed(volume: float)
|
||||
@@ -206,3 +207,7 @@ func play_kalulu_speech(speech: AudioStream) -> void:
|
||||
|
||||
func _on_kalulu_speech_ended() -> void:
|
||||
kalulu_speech_ended.emit()
|
||||
|
||||
|
||||
func _on_back_to_menu_button_pressed() -> void:
|
||||
back_to_menu_pressed.emit()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=28 format=3 uid="uid://weree6bnlt6f"]
|
||||
[gd_scene load_steps=31 format=3 uid="uid://weree6bnlt6f"]
|
||||
|
||||
[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"]
|
||||
@@ -25,8 +25,11 @@
|
||||
[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://cuxo6l6hmin1y" path="res://assets/minigames/minigame_ui/graphic/volume_disabled.png" id="22_vw7wh"]
|
||||
[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://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://bsmq426v8148w" path="res://assets/minigames/minigame_ui/graphic/button_next_disabled.png" id="27_wdcsn"]
|
||||
|
||||
[node name="MinigameUI" type="CanvasLayer"]
|
||||
process_mode = 3
|
||||
@@ -174,18 +177,18 @@ texture = ExtResource("14_ubv3y")
|
||||
layout_mode = 2
|
||||
texture = ExtResource("15_ym1dd")
|
||||
|
||||
[node name="MarginContainer2" type="MarginContainer" parent="MainControl/Interface/CentralPadMargin/CenterMenu"]
|
||||
[node name="PauseMenu" type="MarginContainer" parent="MainControl/Interface/CentralPadMargin/CenterMenu"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_left = 92
|
||||
theme_override_constants/margin_top = 92
|
||||
theme_override_constants/margin_right = 92
|
||||
theme_override_constants/margin_bottom = 92
|
||||
|
||||
[node name="Background" type="Control" parent="MainControl/Interface/CentralPadMargin/CenterMenu/MarginContainer2"]
|
||||
[node name="Background" type="Control" parent="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu"]
|
||||
modulate = Color(1, 1, 1, 0.396078)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="MainControl/Interface/CentralPadMargin/CenterMenu/MarginContainer2/Background"]
|
||||
[node name="TextureRect" type="TextureRect" parent="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu/Background"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
@@ -195,15 +198,14 @@ grow_vertical = 2
|
||||
texture = ExtResource("16_mdaib")
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MainControl/Interface/CentralPadMargin/CenterMenu/MarginContainer2"]
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu"]
|
||||
layout_mode = 2
|
||||
alignment = 2
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="MainControl/Interface/CentralPadMargin/CenterMenu/MarginContainer2/VBoxContainer"]
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 8
|
||||
|
||||
[node name="RestartButton" type="TextureButton" parent="MainControl/Interface/CentralPadMargin/CenterMenu/MarginContainer2/VBoxContainer/MarginContainer"]
|
||||
[node name="RestartButton" type="TextureButton" parent="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu/VBoxContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
@@ -212,6 +214,15 @@ texture_normal = ExtResource("17_ipxst")
|
||||
texture_pressed = ExtResource("18_5pefo")
|
||||
texture_disabled = ExtResource("19_mm65c")
|
||||
|
||||
[node name="BackToMenuButton" type="TextureButton" parent="MainControl/Interface/CentralPadMargin/CenterMenu/PauseMenu/VBoxContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 10
|
||||
size_flags_vertical = 8
|
||||
texture_normal = ExtResource("25_prvvp")
|
||||
texture_pressed = ExtResource("26_f338x")
|
||||
texture_disabled = ExtResource("27_wdcsn")
|
||||
|
||||
[node name="ProgressionMargin" type="MarginContainer" parent="MainControl/Interface"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 1
|
||||
@@ -426,7 +437,8 @@ layout_mode = 1
|
||||
[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/KaluluButton" to="." method="_on_kalulu_button_pressed"]
|
||||
[connection signal="pressed" from="MainControl/Interface/CentralPadMargin/CenterMenu/MarginContainer2/VBoxContainer/MarginContainer/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="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"]
|
||||
|
||||
@@ -114,3 +114,10 @@ func _on_current_progression_changed() -> void:
|
||||
if current_progression > 0:
|
||||
audio_player.stream = Database.get_audio_stream_for_phoneme(stimuli[current_progression % stimuli.size()].Phoneme)
|
||||
audio_player.play()
|
||||
|
||||
|
||||
func _play_stimulus() -> void:
|
||||
audio_player.stream = Database.get_audio_stream_for_phoneme(stimuli[current_progression].Phoneme)
|
||||
audio_player.play()
|
||||
if audio_player.playing:
|
||||
await audio_player.finished
|
||||
|
||||
@@ -267,3 +267,10 @@ func monkey_talk(monkey: Monkey) -> void:
|
||||
if audio_player.playing:
|
||||
coroutine.add_future(audio_player.finished)
|
||||
await coroutine.join_all()
|
||||
|
||||
|
||||
func _play_stimulus() -> void:
|
||||
audio_player.stream = Database.get_audio_stream_for_word(stimuli[current_progression].Word)
|
||||
audio_player.play()
|
||||
if audio_player.playing:
|
||||
await audio_player.finished
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
@tool
|
||||
extends Minigame
|
||||
|
||||
const Parakeet: = preload("res://sources/minigames/parakeets/parakeet.gd")
|
||||
|
||||
Reference in New Issue
Block a user