New base minigame

This commit is contained in:
Laurent Tourte
2023-02-03 11:16:58 +01:00
parent ee8ad2e10b
commit ff9f0827d9
484 changed files with 6296 additions and 463 deletions
+90 -5
View File
@@ -2,37 +2,94 @@ extends Node2D
class_name Minigame
@export var minigame_name: = "Minigame"
@export var lives: = 5
@export var max_number_of_lives: = 5 :
set(value): _set_max_lives(value)
get: return _max_number_of_lives
@export var start_kalulu_speech: AudioStream
@export var win_kalulu_speech: AudioStream
@export var lose_kalulu_speech: AudioStream = preload("res://resources/minigames/kalulu/kalulu_lose_minigame_all.mp3")
@onready var minigame_ui: = $MinigameUI
@onready var opening_curtain: = $OpeningCurtain
# Game root shall contain all the game tree.
# This node is pausable unlike the others, so the pause button can stop the game but not other essential processes.
@onready var game_root: = $GameRoot
# Lesson
var lesson: String
var minigame_difficulty: int
var lesson_difficulty: int
# Logs
var logs: = {}
var stimuli: = {}
var distractions: = {}
# Stimuli
var stimuli: = []
var distractions: = []
# Lives
var _max_number_of_lives : = 0
var current_lives: = 0 :
set(value): _set_current_lives(value)
get: return _current_lives
var _current_lives: = 0
# Progression
var max_progression: = 0 :
set(value): _set_max_progression(value)
get: return _max_progression
var _max_progression: = 0
var current_progression: = 0 :
set(value): _set_current_progression(value)
get: return _current_progression
var _current_progression: = 0
# ------------ Initialisation ------------
func _ready() -> void:
_initialize()
func _initialize() -> void:
_setup_minigame()
_find_stimuli_and_distractions()
_start()
# Find and set the parameters of the minigame, like the number of lives or the victory conditions.
func _setup_minigame() -> void:
current_lives = max_number_of_lives
# Find the stimuli and distractions of the minigame.
func _find_stimuli_and_distractions() -> void:
return
# Launch the minigame
func _start() -> void:
return
opening_curtain.play("open")
await opening_curtain.animation_finished
# ------------ End ------------
func _reset() -> void:
_initialize()
func _win() -> void:
minigame_ui.play_kalulu_speech(win_kalulu_speech)
await minigame_ui.kalulu_speech_end
# ------------ Logs ------------
@@ -40,7 +97,6 @@ func _start() -> void:
func _save_logs() -> void:
LessonLogger.save_logs(logs, GameGlobals.teacher_id, GameGlobals.user_id, minigame_name, lesson, Time.get_time_string_from_system())
_reset_logs()
@@ -50,6 +106,7 @@ func _reset_logs() -> void:
# ------------ UI ------------
# Callbacks
func _go_back_to_the_garden() -> void:
return
@@ -66,6 +123,7 @@ func _pause_game() -> void:
func _play_kalulu() -> void:
return
# Connections
func _on_minigame_ui_garden_button_pressed() -> void:
_go_back_to_the_garden()
@@ -81,3 +139,30 @@ func _on_minigame_ui_pause_button_pressed() -> void:
func _on_minigame_ui_kalulu_button_pressed() -> void:
_play_kalulu()
# ------------ setters/getters ------------
func _set_max_lives(value: int) -> void:
_max_number_of_lives = value
if minigame_ui:
minigame_ui.set_maximum_number_of_lives(value)
func _set_current_lives(value: int) -> void:
_current_lives = value
if minigame_ui:
minigame_ui.set_number_of_lives(value)
func _set_max_progression(value: int) -> void:
_max_progression = value
if minigame_ui:
minigame_ui.set_max_progression(value)
func _set_current_progression(value: int) -> void:
_current_progression = value
if minigame_ui:
minigame_ui.set_current_progression(value)
+6 -2
View File
@@ -1,7 +1,8 @@
[gd_scene load_steps=3 format=3 uid="uid://8awe4usnucyv"]
[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://r8rtrts18ax3" path="res://sources/minigames/base/minigame_ui.tscn" id="2_a3tib"]
[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="Node2D"]
process_mode = 3
@@ -9,6 +10,8 @@ script = ExtResource("1_jdfsm")
[node name="MinigameUI" parent="." instance=ExtResource("2_a3tib")]
[node name="OpeningCurtain" parent="." instance=ExtResource("3_p5ryr")]
[node name="StimuliFinder" type="Node" parent="."]
process_mode = 3
@@ -17,5 +20,6 @@ process_mode = 1
[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_speech_end" from="MinigameUI" to="." method="_on_minigame_ui_kalulu_speech_end"]
[connection signal="pause_button_pressed" from="MinigameUI" to="." method="_on_minigame_ui_pause_button_pressed"]
[connection signal="stimulus_button_pressed" from="MinigameUI" to="." method="_on_minigame_ui_stimulus_button_pressed"]
+46
View File
@@ -0,0 +1,46 @@
extends Control
signal kalulu_speech_end
@onready var kalulu_sprite: = $KaluluSprite
@onready var audio_player: = $AudioStreamPlayer2D
func _ready() -> void:
hide()
func play_kalulu_speech(speech: AudioStream) -> void:
show()
kalulu_sprite.play("Show")
await kalulu_sprite.animation_finished
kalulu_sprite.play("Talk1")
audio_player.stream = speech
audio_player.play()
await audio_player.finished
kalulu_sprite.play("Hide")
await kalulu_sprite.animation_finished
hide()
emit_signal("kalulu_speech_end")
func _on_kalulu_sprite_animation_finished() -> void:
if kalulu_sprite.animation in ["Idle1", "Idle2"]:
var r: = randf()
if r < 0.5:
kalulu_sprite.play("Idle1")
else:
kalulu_sprite.play("Idle2")
if kalulu_sprite.animation in ["Talk1", "Talk2", "Talk3"]:
var r: = randf()
if r < 1.0 / 3.0:
kalulu_sprite.play("Talk1")
elif r < 2.0 / 3.0:
kalulu_sprite.play("Talk2")
else:
kalulu_sprite.play("Talk3")
+419
View File
@@ -0,0 +1,419 @@
[gd_scene load_steps=90 format=3 uid="uid://c4t2cq5vyj4ai"]
[ext_resource type="Script" path="res://sources/minigames/base/kalulu.gd" id="1_iin3v"]
[ext_resource type="Texture2D" uid="uid://berypn513y7ts" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_hide_0000.png" id="2_v1p5p"]
[ext_resource type="Texture2D" uid="uid://ctkb46hb7gd47" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_hide_0001.png" id="3_a4uit"]
[ext_resource type="Texture2D" uid="uid://c7111uqtcrkek" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_hide_0002.png" id="4_6rrrn"]
[ext_resource type="Texture2D" uid="uid://dsbiou1nvx7n4" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_hide_0003.png" id="5_jujcv"]
[ext_resource type="Texture2D" uid="uid://dtls2d4o1grgt" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_hide_0004.png" id="6_bianh"]
[ext_resource type="Texture2D" uid="uid://ctdtir4machdd" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_hide_0005.png" id="7_4kwh7"]
[ext_resource type="Texture2D" uid="uid://kd5rr141wuvd" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_hide_0006.png" id="8_i51sv"]
[ext_resource type="Texture2D" uid="uid://dwposw1jvybvi" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_hide_0007.png" id="9_44s0s"]
[ext_resource type="Texture2D" uid="uid://b4dwaw1eyn7h2" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_hide_0008.png" id="10_3mbo2"]
[ext_resource type="Texture2D" uid="uid://cnx4dyv6u8j6q" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_hide_0009.png" id="11_w70lp"]
[ext_resource type="Texture2D" uid="uid://dtiwcj457j2et" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_hide_0010.png" id="12_h5xrq"]
[ext_resource type="Texture2D" uid="uid://bi3nngrurvdv" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_hide_0011.png" id="13_ortja"]
[ext_resource type="Texture2D" uid="uid://dum0umkxfsvr" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle01_0000.png" id="14_tr4s3"]
[ext_resource type="Texture2D" uid="uid://eedcxhmtdfpt" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle01_0001.png" id="15_8bctv"]
[ext_resource type="Texture2D" uid="uid://bqahvqtfy8mm2" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle01_0002.png" id="16_xt1p8"]
[ext_resource type="Texture2D" uid="uid://qa6x66pvjkpl" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle01_0003.png" id="17_jlybc"]
[ext_resource type="Texture2D" uid="uid://c2aplxlmmdocq" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle01_0004.png" id="18_xo3iq"]
[ext_resource type="Texture2D" uid="uid://de4v2um8bgdrr" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle01_0005.png" id="19_i6e61"]
[ext_resource type="Texture2D" uid="uid://bvjex7ug0gblu" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle01_0006.png" id="20_7qia4"]
[ext_resource type="Texture2D" uid="uid://ccp1d4a7n33d2" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle01_0008.png" id="21_6iwjd"]
[ext_resource type="Texture2D" uid="uid://bmd11sl8vlkbu" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle01_0009.png" id="22_llhj1"]
[ext_resource type="Texture2D" uid="uid://xwrolsodxfwj" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle01_0010.png" id="23_5jqtn"]
[ext_resource type="Texture2D" uid="uid://fpmii24xherk" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle01_0011.png" id="24_ashsp"]
[ext_resource type="Texture2D" uid="uid://q1c0u84gnlas" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle02_0000.png" id="25_mec6u"]
[ext_resource type="Texture2D" uid="uid://1jitvy4js6vs" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle02_0001.png" id="26_20qf7"]
[ext_resource type="Texture2D" uid="uid://i0e10jv7abau" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle02_0002.png" id="27_u6h5d"]
[ext_resource type="Texture2D" uid="uid://boclndp8mfhx7" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle02_0003.png" id="28_dh1h1"]
[ext_resource type="Texture2D" uid="uid://6j4jsvj7ijew" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle02_0004.png" id="29_61c35"]
[ext_resource type="Texture2D" uid="uid://c4jntnjjfaspt" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle02_0005.png" id="30_pwm6b"]
[ext_resource type="Texture2D" uid="uid://2few373mdjwu" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle02_0006.png" id="31_2rr6i"]
[ext_resource type="Texture2D" uid="uid://cmd2rlspcjsw" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle02_0007.png" id="32_kdpqv"]
[ext_resource type="Texture2D" uid="uid://3pejdlg4gvfx" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle02_0008.png" id="33_163k6"]
[ext_resource type="Texture2D" uid="uid://bc05ecw2vopvk" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle02_0009.png" id="34_pfi3x"]
[ext_resource type="Texture2D" uid="uid://cfadlsc1yqnm8" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle02_0010.png" id="35_m2spn"]
[ext_resource type="Texture2D" uid="uid://dfwoh4t5ciwhv" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_idle02_0011.png" id="36_3of4g"]
[ext_resource type="Texture2D" uid="uid://bxea88k62e1aa" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_show_0000.png" id="37_1ns1c"]
[ext_resource type="Texture2D" uid="uid://btwa0vg4iipcd" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_show_0001.png" id="38_fctqx"]
[ext_resource type="Texture2D" uid="uid://cj7ei8wstn7hw" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_show_0002.png" id="39_8mqck"]
[ext_resource type="Texture2D" uid="uid://s28i672il66" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_show_0003.png" id="40_xbtyg"]
[ext_resource type="Texture2D" uid="uid://bs1uppljr8c1j" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_show_0004.png" id="41_xhu8l"]
[ext_resource type="Texture2D" uid="uid://cmc60bsqwblus" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_show_0005.png" id="42_4s2al"]
[ext_resource type="Texture2D" uid="uid://bea805v3kuijo" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_show_0006.png" id="43_u35d3"]
[ext_resource type="Texture2D" uid="uid://bj3w5qq5bg3uu" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_show_0007.png" id="44_ua6l4"]
[ext_resource type="Texture2D" uid="uid://bq2icekegojbo" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_show_0008.png" id="45_i6boh"]
[ext_resource type="Texture2D" uid="uid://iklrbski84cl" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_show_0009.png" id="46_hipbh"]
[ext_resource type="Texture2D" uid="uid://bijmoml1y7wvb" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_show_0010.png" id="47_lp3ga"]
[ext_resource type="Texture2D" uid="uid://c1k504v08kvc2" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_show_0011.png" id="48_muc7j"]
[ext_resource type="Texture2D" uid="uid://lwckax8t7tl6" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_show_0012.png" id="49_d1dvd"]
[ext_resource type="Texture2D" uid="uid://djduqpeuuxt40" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_show_0013.png" id="50_pfvns"]
[ext_resource type="Texture2D" uid="uid://ctv36bnfotdx5" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_show_0014.png" id="51_eykem"]
[ext_resource type="Texture2D" uid="uid://7f13jtlhl5oq" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_show_0015.png" id="52_l5vw5"]
[ext_resource type="Texture2D" uid="uid://c7o0y7wjvotuf" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk1_0000.png" id="53_qpo1c"]
[ext_resource type="Texture2D" uid="uid://dbsx5sy02j3du" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk1_0001.png" id="54_b50d3"]
[ext_resource type="Texture2D" uid="uid://cuxydkhip7vgj" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk1_0002.png" id="55_m13pt"]
[ext_resource type="Texture2D" uid="uid://cjb1swlfloh1" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk1_0003.png" id="56_argx0"]
[ext_resource type="Texture2D" uid="uid://1gfia6ydt5ct" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk1_0004.png" id="57_32hr2"]
[ext_resource type="Texture2D" uid="uid://cebafgtvfq1wh" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk1_0005.png" id="58_7mb26"]
[ext_resource type="Texture2D" uid="uid://f6rlb07xqh3w" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk1_0006.png" id="59_bg4vt"]
[ext_resource type="Texture2D" uid="uid://wcmx3hflqgxa" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk1_0007.png" id="60_j50df"]
[ext_resource type="Texture2D" uid="uid://yl1gpuuy2l7g" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk1_0008.png" id="61_imahc"]
[ext_resource type="Texture2D" uid="uid://cgo8py1xybuhq" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk1_0009.png" id="62_jg3dx"]
[ext_resource type="Texture2D" uid="uid://csncsroueedfx" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk1_0010.png" id="63_mybd8"]
[ext_resource type="Texture2D" uid="uid://dljmjvqlnljw5" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk1_0011.png" id="64_40vt6"]
[ext_resource type="Texture2D" uid="uid://cpfr4rjv6xw0f" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk2_0000.png" id="65_1l1wf"]
[ext_resource type="Texture2D" uid="uid://b1ycakbu1w2fb" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk2_0001.png" id="66_vwx28"]
[ext_resource type="Texture2D" uid="uid://bwbt8dclrfopx" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk2_0002.png" id="67_6m5mo"]
[ext_resource type="Texture2D" uid="uid://vn7orptuhyqw" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk2_0003.png" id="68_q82v0"]
[ext_resource type="Texture2D" uid="uid://bjla8n25s2wve" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk2_0004.png" id="69_y4b0u"]
[ext_resource type="Texture2D" uid="uid://bpufqx3c1575s" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk2_0005.png" id="70_7xdev"]
[ext_resource type="Texture2D" uid="uid://cglywtrymihck" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk2_0006.png" id="71_aehdh"]
[ext_resource type="Texture2D" uid="uid://d37o4pf4l4h72" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk2_0007.png" id="72_binb4"]
[ext_resource type="Texture2D" uid="uid://bbw1s5bg1tt5k" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk2_0008.png" id="73_75l33"]
[ext_resource type="Texture2D" uid="uid://bkgag2ys4rhm7" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk2_0009.png" id="74_5voxi"]
[ext_resource type="Texture2D" uid="uid://dh5wpxc4hr8i4" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk2_0010.png" id="75_0dxvt"]
[ext_resource type="Texture2D" uid="uid://dy0hj8s05p81n" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk2_0011.png" id="76_70p70"]
[ext_resource type="Texture2D" uid="uid://lp8chel2geve" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk3_0000.png" id="77_dpf6i"]
[ext_resource type="Texture2D" uid="uid://d204sk1opwvq2" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk3_0001.png" id="78_fad5w"]
[ext_resource type="Texture2D" uid="uid://cgvccxcot7aan" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk3_0002.png" id="79_35ub5"]
[ext_resource type="Texture2D" uid="uid://bccqkgwd4r6sd" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk3_0003.png" id="80_hsksw"]
[ext_resource type="Texture2D" uid="uid://b7jpic8xukj4s" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk3_0004.png" id="81_xjh4s"]
[ext_resource type="Texture2D" uid="uid://ssjqyvgi0tq" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk3_0005.png" id="82_m7k40"]
[ext_resource type="Texture2D" uid="uid://b1lnl2080k8r1" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk3_0006.png" id="83_o6usd"]
[ext_resource type="Texture2D" uid="uid://ciqgubhp7y2ih" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk3_0007.png" id="84_bn5od"]
[ext_resource type="Texture2D" uid="uid://dip0ukd0mgymi" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk3_0008.png" id="85_85606"]
[ext_resource type="Texture2D" uid="uid://bnx1ev6hm87eq" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk3_0009.png" id="86_w2qch"]
[ext_resource type="Texture2D" uid="uid://e8jdvvlkpa4x" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk3_0010.png" id="87_3tj2t"]
[ext_resource type="Texture2D" uid="uid://cmo15wsithfdh" path="res://resources/minigames/minigame_ui/graphic/kalulu/kalulu_talk3_0011.png" id="88_gllhj"]
[sub_resource type="SpriteFrames" id="SpriteFrames_igr4d"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_v1p5p")
}, {
"duration": 1.0,
"texture": ExtResource("3_a4uit")
}, {
"duration": 1.0,
"texture": ExtResource("4_6rrrn")
}, {
"duration": 1.0,
"texture": ExtResource("5_jujcv")
}, {
"duration": 1.0,
"texture": ExtResource("6_bianh")
}, {
"duration": 1.0,
"texture": ExtResource("7_4kwh7")
}, {
"duration": 1.0,
"texture": ExtResource("8_i51sv")
}, {
"duration": 1.0,
"texture": ExtResource("9_44s0s")
}, {
"duration": 1.0,
"texture": ExtResource("10_3mbo2")
}, {
"duration": 1.0,
"texture": ExtResource("11_w70lp")
}, {
"duration": 1.0,
"texture": ExtResource("12_h5xrq")
}, {
"duration": 1.0,
"texture": ExtResource("13_ortja")
}],
"loop": true,
"name": &"Hide",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("14_tr4s3")
}, {
"duration": 1.0,
"texture": ExtResource("15_8bctv")
}, {
"duration": 1.0,
"texture": ExtResource("16_xt1p8")
}, {
"duration": 1.0,
"texture": ExtResource("17_jlybc")
}, {
"duration": 1.0,
"texture": ExtResource("18_xo3iq")
}, {
"duration": 1.0,
"texture": ExtResource("19_i6e61")
}, {
"duration": 1.0,
"texture": ExtResource("20_7qia4")
}, {
"duration": 1.0,
"texture": ExtResource("21_6iwjd")
}, {
"duration": 1.0,
"texture": ExtResource("22_llhj1")
}, {
"duration": 1.0,
"texture": ExtResource("23_5jqtn")
}, {
"duration": 1.0,
"texture": ExtResource("24_ashsp")
}],
"loop": true,
"name": &"Idle1",
"speed": 12.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("25_mec6u")
}, {
"duration": 1.0,
"texture": ExtResource("26_20qf7")
}, {
"duration": 1.0,
"texture": ExtResource("27_u6h5d")
}, {
"duration": 1.0,
"texture": ExtResource("28_dh1h1")
}, {
"duration": 1.0,
"texture": ExtResource("29_61c35")
}, {
"duration": 1.0,
"texture": ExtResource("30_pwm6b")
}, {
"duration": 1.0,
"texture": ExtResource("31_2rr6i")
}, {
"duration": 1.0,
"texture": ExtResource("32_kdpqv")
}, {
"duration": 1.0,
"texture": ExtResource("33_163k6")
}, {
"duration": 1.0,
"texture": ExtResource("34_pfi3x")
}, {
"duration": 1.0,
"texture": ExtResource("35_m2spn")
}, {
"duration": 1.0,
"texture": ExtResource("36_3of4g")
}],
"loop": true,
"name": &"Idle2",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("37_1ns1c")
}, {
"duration": 1.0,
"texture": ExtResource("38_fctqx")
}, {
"duration": 1.0,
"texture": ExtResource("39_8mqck")
}, {
"duration": 1.0,
"texture": ExtResource("40_xbtyg")
}, {
"duration": 1.0,
"texture": ExtResource("41_xhu8l")
}, {
"duration": 1.0,
"texture": ExtResource("42_4s2al")
}, {
"duration": 1.0,
"texture": ExtResource("43_u35d3")
}, {
"duration": 1.0,
"texture": ExtResource("44_ua6l4")
}, {
"duration": 1.0,
"texture": ExtResource("45_i6boh")
}, {
"duration": 1.0,
"texture": ExtResource("46_hipbh")
}, {
"duration": 1.0,
"texture": ExtResource("47_lp3ga")
}, {
"duration": 1.0,
"texture": ExtResource("48_muc7j")
}, {
"duration": 1.0,
"texture": ExtResource("49_d1dvd")
}, {
"duration": 1.0,
"texture": ExtResource("50_pfvns")
}, {
"duration": 1.0,
"texture": ExtResource("51_eykem")
}, {
"duration": 1.0,
"texture": ExtResource("52_l5vw5")
}],
"loop": true,
"name": &"Show",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("53_qpo1c")
}, {
"duration": 1.0,
"texture": ExtResource("54_b50d3")
}, {
"duration": 1.0,
"texture": ExtResource("55_m13pt")
}, {
"duration": 1.0,
"texture": ExtResource("56_argx0")
}, {
"duration": 1.0,
"texture": ExtResource("57_32hr2")
}, {
"duration": 1.0,
"texture": ExtResource("58_7mb26")
}, {
"duration": 1.0,
"texture": ExtResource("59_bg4vt")
}, {
"duration": 1.0,
"texture": ExtResource("60_j50df")
}, {
"duration": 1.0,
"texture": ExtResource("61_imahc")
}, {
"duration": 1.0,
"texture": ExtResource("62_jg3dx")
}, {
"duration": 1.0,
"texture": ExtResource("63_mybd8")
}, {
"duration": 1.0,
"texture": ExtResource("64_40vt6")
}],
"loop": true,
"name": &"Talk1",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("65_1l1wf")
}, {
"duration": 1.0,
"texture": ExtResource("66_vwx28")
}, {
"duration": 1.0,
"texture": ExtResource("67_6m5mo")
}, {
"duration": 1.0,
"texture": ExtResource("68_q82v0")
}, {
"duration": 1.0,
"texture": ExtResource("69_y4b0u")
}, {
"duration": 1.0,
"texture": ExtResource("70_7xdev")
}, {
"duration": 1.0,
"texture": ExtResource("71_aehdh")
}, {
"duration": 1.0,
"texture": ExtResource("72_binb4")
}, {
"duration": 1.0,
"texture": ExtResource("73_75l33")
}, {
"duration": 1.0,
"texture": ExtResource("74_5voxi")
}, {
"duration": 1.0,
"texture": ExtResource("75_0dxvt")
}, {
"duration": 1.0,
"texture": ExtResource("76_70p70")
}],
"loop": true,
"name": &"Talk2",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("77_dpf6i")
}, {
"duration": 1.0,
"texture": ExtResource("78_fad5w")
}, {
"duration": 1.0,
"texture": ExtResource("79_35ub5")
}, {
"duration": 1.0,
"texture": ExtResource("80_hsksw")
}, {
"duration": 1.0,
"texture": ExtResource("81_xjh4s")
}, {
"duration": 1.0,
"texture": ExtResource("82_m7k40")
}, {
"duration": 1.0,
"texture": ExtResource("83_o6usd")
}, {
"duration": 1.0,
"texture": ExtResource("84_bn5od")
}, {
"duration": 1.0,
"texture": ExtResource("85_85606")
}, {
"duration": 1.0,
"texture": ExtResource("86_w2qch")
}, {
"duration": 1.0,
"texture": ExtResource("87_3tj2t")
}, {
"duration": 1.0,
"texture": ExtResource("88_gllhj")
}],
"loop": true,
"name": &"Talk3",
"speed": 5.0
}]
[node name="Kalulu" 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_iin3v")
[node name="ColorRect" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.164706, 0.164706, 0.164706, 0.67451)
[node name="KaluluSprite" type="AnimatedSprite2D" parent="."]
position = Vector2(653, 1350)
scale = Vector2(1.5, 1.5)
frames = SubResource("SpriteFrames_igr4d")
animation = &"Talk3"
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
position = Vector2(653, 1421)
scale = Vector2(1.5, 1.5)
[connection signal="animation_finished" from="KaluluSprite" to="." method="_on_kalulu_sprite_animation_finished"]
+35 -19
View File
@@ -5,6 +5,10 @@ signal garden_button_pressed
signal stimulus_button_pressed
signal pause_button_pressed
signal kalulu_button_pressed
signal kalulu_speech_end
@export var empty_progression_icon: Texture
@export var full_progression_icon: Texture
# Using unique names to avoid changing the path if the interface architecture changes
@onready var garden_button: TextureButton = get_node("%GardenButton")
@@ -17,24 +21,25 @@ signal kalulu_button_pressed
@onready var progression_empty_icons_rect: TextureRect = get_node("%ProgressionEmptyIconsRect")
@onready var progression_full_icons_rect: TextureRect = get_node("%ProgressionFullIconsRect")
# Kalulu
@onready var kalulu: = $MainControl/Kalulu
# Lives management
var max_number_of_lives: = 1
var number_of_lives: = 1
var empty_life_size: = 0.0
var life_size: = 0.0
# Progression management
var max_progression: = 1
var current_progression: = 1
var progression_gauge_unit_size: = 0.0
var progression_empty_icon_size: = 0.0
var progression_full_icon_size: = 0.0
# ------------ Initialisation ------------
func _ready() -> void:
progression_empty_icons_rect.texture = empty_progression_icon
progression_full_icons_rect.texture = full_progression_icon
empty_life_size = empty_lives_rect.custom_minimum_size.x
life_size = lives_rect.custom_minimum_size.x
@@ -64,37 +69,39 @@ func unlock() -> void:
func set_maximum_number_of_lives(new_max_number_of_lives: int) -> void:
max_number_of_lives = number_of_lives
empty_lives_rect.custom_minimum_size.x = new_max_number_of_lives * empty_life_size
if new_max_number_of_lives == 0:
empty_lives_rect.scale.x = 0
else:
empty_lives_rect.scale.x = 1
func set_number_of_lives(new_number_of_lives: int) -> void:
if new_number_of_lives > max_number_of_lives:
set_maximum_number_of_lives(new_number_of_lives)
number_of_lives = new_number_of_lives
lives_rect.custom_minimum_size.x = new_number_of_lives * life_size
if new_number_of_lives == 0:
lives_rect.scale.x = 0
else:
lives_rect.scale.x = 1
# ------------ Progression ------------
func set_max_progression(new_max_progression: int) -> void:
max_progression = new_max_progression
progression_gauge.custom_minimum_size.y = new_max_progression * progression_gauge_unit_size
progression_empty_icons_rect.custom_minimum_size.y = new_max_progression * progression_gauge_unit_size
if new_max_progression == 0:
progression_empty_icons_rect.scale.y = 0
else:
progression_empty_icons_rect.scale.y = 1
func set_current_progression(new_current_progression: int) -> void:
if current_progression > max_progression:
set_max_progression(new_current_progression)
current_progression = new_current_progression
progression_full_icons_rect.custom_minimum_size.y = new_current_progression * progression_full_icon_size
if new_current_progression == 0:
progression_full_icons_rect.scale.y = 0
else:
progression_full_icons_rect.scale.y = 1
# ------------ Actions ------------
@@ -116,3 +123,12 @@ func _on_kalulu_button_pressed() -> void:
kalulu_button_pressed.emit()
# ------------ Kalulu ------------
func play_kalulu_speech(speech: AudioStream) -> void:
kalulu.play_kalulu_speech(speech)
func _on_kalulu_kalulu_speech_end() -> void:
emit_signal("kalulu_speech_end")
+93 -38
View File
@@ -1,23 +1,29 @@
[gd_scene load_steps=19 format=3 uid="uid://r8rtrts18ax3"]
[gd_scene load_steps=25 format=3 uid="uid://weree6bnlt6f"]
[ext_resource type="Texture2D" uid="uid://dj0ygi5q6kbdw" path="res://resources/minigames/minigame_ui/button_back_to_menu_up.png" id="1_f1uy8"]
[ext_resource type="Script" path="res://sources/minigames/base/minigame_ui.gd" id="1_g5fl4"]
[ext_resource type="Texture2D" uid="uid://gmoc5mxxfqin" path="res://resources/minigames/minigame_ui/button_back_to_menu_down.png" id="2_357qg"]
[ext_resource type="Texture2D" uid="uid://bnvx1mujmy3vf" path="res://resources/minigames/minigame_ui/button_back_to_menu_disabled.png" id="3_di4tp"]
[ext_resource type="Texture2D" uid="uid://iw84x6mx8h2g" path="res://resources/minigames/minigame_ui/button_kalulu_up.png" id="4_ea5op"]
[ext_resource type="Texture2D" uid="uid://03r3arvu1r2t" path="res://resources/minigames/minigame_ui/button_shell_up.png" id="4_r8wnf"]
[ext_resource type="Texture2D" uid="uid://ub1dnysbojn8" path="res://resources/minigames/minigame_ui/button_kalulu_down.png" id="5_kfd0f"]
[ext_resource type="Texture2D" uid="uid://clrnqn0fqjx3q" path="res://resources/minigames/minigame_ui/button_shell_down.png" id="5_lo8fb"]
[ext_resource type="Texture2D" uid="uid://crnxawhf68po3" path="res://resources/minigames/minigame_ui/button_kalulu_disabled.png" id="6_n2h42"]
[ext_resource type="Texture2D" uid="uid://53f3lscl7tws" path="res://resources/minigames/minigame_ui/button_shell_disabled.png" id="6_yxeeh"]
[ext_resource type="Texture2D" uid="uid://bnqgwy3arrm4n" path="res://resources/minigames/minigame_ui/button_pause_up.png" id="7_vqw3l"]
[ext_resource type="Texture2D" uid="uid://bjxt5vglohmk8" path="res://resources/minigames/minigame_ui/button_pause_down.png" id="8_e01yc"]
[ext_resource type="Texture2D" uid="uid://b0luicu7cgho5" path="res://resources/minigames/minigame_ui/button_pause_disabled.png" id="9_ju5q0"]
[ext_resource type="Texture2D" uid="uid://dxqnvbr4tffn7" path="res://resources/minigames/minigame_ui/gauge.png" id="13_geo50"]
[ext_resource type="Texture2D" uid="uid://db64tlixplfru" path="res://resources/minigames/minigame_ui/life_empty.png" id="13_mg1p3"]
[ext_resource type="Texture2D" uid="uid://3om2awlftpxd" path="res://resources/minigames/minigame_ui/life.png" id="14_p5sco"]
[ext_resource type="Texture2D" uid="uid://cfxpnn3uivakv" path="res://resources/minigames/minigame_ui/gauge_icon_ant_empty.png" id="17_a20nt"]
[ext_resource type="Texture2D" uid="uid://b0ck8jxhicyke" path="res://resources/minigames/minigame_ui/gauge_icon_ant_full.png" id="18_gpcjx"]
[ext_resource type="Texture2D" uid="uid://dj0ygi5q6kbdw" path="res://resources/minigames/minigame_ui/graphic/button_back_to_menu_up.png" id="2_0d0qn"]
[ext_resource type="Texture2D" uid="uid://gmoc5mxxfqin" path="res://resources/minigames/minigame_ui/graphic/button_back_to_menu_down.png" id="3_40b1i"]
[ext_resource type="Texture2D" uid="uid://bnvx1mujmy3vf" path="res://resources/minigames/minigame_ui/graphic/button_back_to_menu_disabled.png" id="4_hrket"]
[ext_resource type="Texture2D" uid="uid://03r3arvu1r2t" path="res://resources/minigames/minigame_ui/graphic/button_shell_up.png" id="5_fsvyi"]
[ext_resource type="Texture2D" uid="uid://clrnqn0fqjx3q" path="res://resources/minigames/minigame_ui/graphic/button_shell_down.png" id="6_l57f6"]
[ext_resource type="Texture2D" uid="uid://53f3lscl7tws" path="res://resources/minigames/minigame_ui/graphic/button_shell_disabled.png" id="7_khx6t"]
[ext_resource type="Texture2D" uid="uid://bnqgwy3arrm4n" path="res://resources/minigames/minigame_ui/graphic/button_pause_up.png" id="8_as36f"]
[ext_resource type="Texture2D" uid="uid://bjxt5vglohmk8" path="res://resources/minigames/minigame_ui/graphic/button_pause_down.png" id="9_p7u5m"]
[ext_resource type="Texture2D" uid="uid://b0luicu7cgho5" path="res://resources/minigames/minigame_ui/graphic/button_pause_disabled.png" id="10_2r2bv"]
[ext_resource type="Texture2D" uid="uid://iw84x6mx8h2g" path="res://resources/minigames/minigame_ui/graphic/button_kalulu_up.png" id="11_50lta"]
[ext_resource type="Texture2D" uid="uid://ub1dnysbojn8" path="res://resources/minigames/minigame_ui/graphic/button_kalulu_down.png" id="12_4i065"]
[ext_resource type="Texture2D" uid="uid://crnxawhf68po3" path="res://resources/minigames/minigame_ui/graphic/button_kalulu_disabled.png" id="13_08mrs"]
[ext_resource type="Texture2D" uid="uid://vcfpmwst262s" path="res://resources/minigames/minigame_ui/graphic/popin_background.png" id="14_7hmng"]
[ext_resource type="Texture2D" uid="uid://db64tlixplfru" path="res://resources/minigames/minigame_ui/graphic/life_empty.png" id="14_8pcr4"]
[ext_resource type="Texture2D" uid="uid://3om2awlftpxd" path="res://resources/minigames/minigame_ui/graphic/life.png" id="15_rxfiu"]
[ext_resource type="Texture2D" uid="uid://f2ys2fy1il2k" path="res://resources/minigames/minigame_ui/graphic/popin_frontground.png" id="15_w2rjo"]
[ext_resource type="Texture2D" uid="uid://dqtmyedk1ylbw" path="res://resources/minigames/minigame_ui/graphic/button_replay_up.png" id="16_eao58"]
[ext_resource type="Texture2D" uid="uid://dxqnvbr4tffn7" path="res://resources/minigames/minigame_ui/graphic/gauge.png" id="16_m3nil"]
[ext_resource type="Texture2D" uid="uid://cfxpnn3uivakv" path="res://resources/minigames/minigame_ui/graphic/gauge_icon_ant_empty.png" id="17_bqwcj"]
[ext_resource type="Texture2D" uid="uid://bvu8ud6hkwusb" path="res://resources/minigames/minigame_ui/graphic/button_replay_down.png" id="17_emg5g"]
[ext_resource type="Texture2D" uid="uid://d4ffd4us2hrbs" path="res://resources/minigames/minigame_ui/graphic/button_replay_disabled.png" id="18_2y62r"]
[ext_resource type="Texture2D" uid="uid://b0ck8jxhicyke" path="res://resources/minigames/minigame_ui/graphic/gauge_icon_ant_full.png" id="18_7tu1d"]
[ext_resource type="PackedScene" uid="uid://c4t2cq5vyj4ai" path="res://sources/minigames/base/kalulu.tscn" id="19_wn4nd"]
[node name="MinigameUI" type="CanvasLayer"]
process_mode = 3
@@ -33,8 +39,7 @@ grow_vertical = 2
mouse_filter = 2
[node name="Interface" type="HBoxContainer" parent="MainControl"]
layout_mode = 1
anchors_preset = 15
layout_mode = 0
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
@@ -59,9 +64,9 @@ mouse_filter = 2
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
texture_normal = ExtResource("1_f1uy8")
texture_pressed = ExtResource("2_357qg")
texture_disabled = ExtResource("3_di4tp")
texture_normal = ExtResource("2_0d0qn")
texture_pressed = ExtResource("3_40b1i")
texture_disabled = ExtResource("4_hrket")
stretch_mode = 5
[node name="StimulusMargin" type="MarginContainer" parent="MainControl/Interface/LeftMargin/LeftContainer"]
@@ -75,9 +80,9 @@ theme_override_constants/margin_right = 50
[node name="StimulusButton" type="TextureButton" parent="MainControl/Interface/LeftMargin/LeftContainer/StimulusMargin"]
unique_name_in_owner = true
layout_mode = 2
texture_normal = ExtResource("4_r8wnf")
texture_pressed = ExtResource("5_lo8fb")
texture_disabled = ExtResource("6_yxeeh")
texture_normal = ExtResource("5_fsvyi")
texture_pressed = ExtResource("6_l57f6")
texture_disabled = ExtResource("7_khx6t")
stretch_mode = 5
[node name="PauseMargin" type="MarginContainer" parent="MainControl/Interface/LeftMargin/LeftContainer"]
@@ -91,18 +96,18 @@ theme_override_constants/margin_right = 50
[node name="PauseButton" type="TextureButton" parent="MainControl/Interface/LeftMargin/LeftContainer/PauseMargin"]
unique_name_in_owner = true
layout_mode = 2
texture_normal = ExtResource("7_vqw3l")
texture_pressed = ExtResource("8_e01yc")
texture_disabled = ExtResource("9_ju5q0")
texture_normal = ExtResource("8_as36f")
texture_pressed = ExtResource("9_p7u5m")
texture_disabled = ExtResource("10_2r2bv")
stretch_mode = 5
[node name="KaluluButton" type="TextureButton" parent="MainControl/Interface/LeftMargin/LeftContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
texture_normal = ExtResource("4_ea5op")
texture_pressed = ExtResource("5_kfd0f")
texture_disabled = ExtResource("6_n2h42")
texture_normal = ExtResource("11_50lta")
texture_pressed = ExtResource("12_4i065")
texture_disabled = ExtResource("13_08mrs")
stretch_mode = 5
[node name="CentralPadMargin" type="MarginContainer" parent="MainControl/Interface"]
@@ -116,6 +121,51 @@ theme_override_constants/margin_top = 20
theme_override_constants/margin_right = 20
theme_override_constants/margin_bottom = 20
[node name="CenterMenu" type="MarginContainer" parent="MainControl/Interface/CentralPadMargin"]
visible = false
layout_mode = 2
theme_override_constants/margin_left = 450
theme_override_constants/margin_top = 500
theme_override_constants/margin_right = 500
theme_override_constants/margin_bottom = 500
[node name="MarginContainer" type="MarginContainer" parent="MainControl/Interface/CentralPadMargin/CenterMenu"]
layout_mode = 2
theme_override_constants/margin_left = 2
theme_override_constants/margin_top = 5
theme_override_constants/margin_right = 2
theme_override_constants/margin_bottom = 5
[node name="Shadow" type="TextureRect" parent="MainControl/Interface/CentralPadMargin/CenterMenu/MarginContainer"]
layout_mode = 2
texture = ExtResource("14_7hmng")
[node name="Panel" type="TextureRect" parent="MainControl/Interface/CentralPadMargin/CenterMenu"]
layout_mode = 2
texture = ExtResource("15_w2rjo")
[node name="MarginContainer2" type="MarginContainer" parent="MainControl/Interface/CentralPadMargin/CenterMenu"]
layout_mode = 2
theme_override_constants/margin_left = 42
theme_override_constants/margin_top = 42
theme_override_constants/margin_right = 42
theme_override_constants/margin_bottom = 42
[node name="VBoxContainer" type="VBoxContainer" parent="MainControl/Interface/CentralPadMargin/CenterMenu/MarginContainer2"]
layout_mode = 2
[node name="MarginContainer" type="MarginContainer" parent="MainControl/Interface/CentralPadMargin/CenterMenu/MarginContainer2/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 8
[node name="TextureButton" type="TextureButton" parent="MainControl/Interface/CentralPadMargin/CenterMenu/MarginContainer2/VBoxContainer/MarginContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 8
texture_normal = ExtResource("16_eao58")
texture_pressed = ExtResource("17_emg5g")
texture_disabled = ExtResource("18_2y62r")
[node name="RightMargin" type="MarginContainer" parent="MainControl/Interface"]
layout_mode = 2
size_flags_horizontal = 3
@@ -147,7 +197,7 @@ layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 0
mouse_filter = 2
texture = ExtResource("13_mg1p3")
texture = ExtResource("14_8pcr4")
stretch_mode = 1
[node name="LivesRect" type="TextureRect" parent="MainControl/Interface/RightMargin/RightContainer/LivesContainer"]
@@ -157,7 +207,7 @@ layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 0
mouse_filter = 2
texture = ExtResource("14_p5sco")
texture = ExtResource("15_rxfiu")
stretch_mode = 1
[node name="ProgressionMargin" type="MarginContainer" parent="MainControl/Interface/RightMargin/RightContainer"]
@@ -172,7 +222,7 @@ custom_minimum_size = Vector2(64, 64)
layout_mode = 2
size_flags_horizontal = 8
size_flags_vertical = 0
texture = ExtResource("13_geo50")
texture = ExtResource("16_m3nil")
patch_margin_top = 33
patch_margin_bottom = 33
@@ -183,7 +233,7 @@ layout_mode = 2
size_flags_horizontal = 8
size_flags_vertical = 0
mouse_filter = 2
texture = ExtResource("17_a20nt")
texture = ExtResource("17_bqwcj")
stretch_mode = 1
[node name="ProgressionFullIconsRect" type="TextureRect" parent="MainControl/Interface/RightMargin/RightContainer/ProgressionMargin"]
@@ -191,12 +241,17 @@ unique_name_in_owner = true
custom_minimum_size = Vector2(64, 64)
layout_mode = 2
size_flags_horizontal = 8
size_flags_vertical = 4
size_flags_vertical = 0
mouse_filter = 2
texture = ExtResource("18_gpcjx")
texture = ExtResource("18_7tu1d")
stretch_mode = 1
[node name="Kalulu" parent="MainControl" instance=ExtResource("19_wn4nd")]
visible = false
layout_mode = 1
[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/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="kalulu_speech_end" from="MainControl/Kalulu" to="." method="_on_kalulu_kalulu_speech_end"]
+13
View File
@@ -0,0 +1,13 @@
extends CanvasLayer
signal animation_finished(animation_name: StringName)
@onready var animation_player: = $AnimationPlayer
func play(animation_name: String) -> void:
animation_player.play(animation_name)
func _on_animation_player_animation_finished(animation_name: StringName) -> void:
emit_signal("animation_finished", animation_name)
+198
View File
@@ -0,0 +1,198 @@
[gd_scene load_steps=7 format=3 uid="uid://b3ckdfnbc7077"]
[ext_resource type="Script" path="res://sources/minigames/base/opening_curtain.gd" id="1_xih0r"]
[ext_resource type="Texture2D" uid="uid://4u85b8th4uuv" path="res://resources/minigames/minigame_ui/graphic/curtain/bush.png" id="1_yhjvv"]
[sub_resource type="Animation" id="Animation_eyrra"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("LeftCurtain:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("LeftCurtain:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [4.71239]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("RightCurtain:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("RightCurtain:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-4.71239]
}
[sub_resource type="Animation" id="Animation_qqx6p"]
resource_name = "close"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("LeftCurtain:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("LeftCurtain:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [4.71239, 2.35619]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("RightCurtain:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, true]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("RightCurtain:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [-4.71239, -2.35619]
}
[sub_resource type="Animation" id="Animation_24r35"]
resource_name = "open"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("LeftCurtain:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("LeftCurtain:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [2.35619, 4.71239]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("RightCurtain:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("RightCurtain:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [-2.35619, -4.71239]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_o5y2b"]
_data = {
"RESET": SubResource("Animation_eyrra"),
"close": SubResource("Animation_qqx6p"),
"open": SubResource("Animation_24r35")
}
[node name="OpeningCurtain" type="CanvasLayer"]
script = ExtResource("1_xih0r")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_o5y2b")
}
[node name="LeftCurtain" type="TextureRect" parent="."]
visible = false
offset_left = -612.0
offset_top = -765.0
offset_right = 413.0
offset_bottom = -100.0
rotation = 4.71239
scale = Vector2(5, 5)
pivot_offset = Vector2(512, 665)
texture = ExtResource("1_yhjvv")
[node name="RightCurtain" type="TextureRect" parent="."]
visible = false
offset_left = 2148.0
offset_top = -765.0
offset_right = 3173.0
offset_bottom = -100.0
rotation = -4.71239
scale = Vector2(5, 5)
pivot_offset = Vector2(512, 665)
texture = ExtResource("1_yhjvv")
[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_player_animation_finished"]