From 35a1c3ab47c99ecf400f705f2af71ffa7d40eca4 Mon Sep 17 00:00:00 2001 From: Kellan KOZUME Date: Sat, 25 Apr 2026 17:43:49 -0400 Subject: [PATCH] feat(credits): add credits scene with scrolling text and fade effect feat(outro): implement outro scene with branching endings and transition to credits feat(cour): add HUD and dialogue box nodes to the courtyard scene --- levels/atelier/atelier.tscn | 4 +- levels/cour/cour.tscn | 14 ++++ levels/credits.gd | 69 +++++++++++++++++++ levels/credits.gd.uid | 1 + levels/credits.tscn | 45 +++++++++++++ levels/outro.gd | 128 ++++++++++++++++++++++++++++++++++++ levels/outro.gd.uid | 1 + levels/outro.tscn | 68 +++++++++++++++++++ 8 files changed, 328 insertions(+), 2 deletions(-) create mode 100644 levels/credits.gd create mode 100644 levels/credits.gd.uid create mode 100644 levels/credits.tscn create mode 100644 levels/outro.gd create mode 100644 levels/outro.gd.uid create mode 100644 levels/outro.tscn diff --git a/levels/atelier/atelier.tscn b/levels/atelier/atelier.tscn index aee0c61..a12abe1 100644 --- a/levels/atelier/atelier.tscn +++ b/levels/atelier/atelier.tscn @@ -79,7 +79,7 @@ tile_map_data = PackedByteArray("AAABAA8AAQACAAAAAAAZAC0AAQADAAEAAAA=") tile_set = SubResource("TileSet_m45hf") [node name="Ground" type="TileMapLayer" parent="Map" unique_id=331570970] -tile_map_data = PackedByteArray("AAADABMAAQACAAMAAAAFABMAAQACAAMAAAAHABMAAQACAAMAAAAJABMAAQACAAMAAAALABMAAQACAAMAAAANABMAAQACAAMAAAAPABMAAQACAAMAAAARABMAAQACAAMAAAATABMAAQACAAMAAAAVABMAAQACAAMAAAAXABMAAQACAAMAAAAZABMAAQACAAMAAAABABMAAQACAAMAAAAZABEAAQABAAIAAAABABEAAQABAAIAAAAZACsAAQABAAEAAAABACsAAQABAAEAAAAZACwAAQADAAEAAAABABUAAQACAAMAAAADABUAAQACAAMAAAAFABUAAQACAAMAAAAHABUAAQACAAMAAAAJABUAAQACAAMAAAALABUAAQACAAMAAAANABUAAQACAAMAAAAPABUAAQACAAMAAAARABUAAQACAAMAAAATABUAAQACAAMAAAAVABUAAQACAAMAAAAXABUAAQACAAMAAAAZABUAAQACAAMAAAAZABcAAQACAAMAAAAXABcAAQACAAMAAAAVABcAAQACAAMAAAATABcAAQACAAMAAAARABcAAQACAAMAAAAPABcAAQACAAMAAAANABcAAQACAAMAAAALABcAAQACAAMAAAAJABcAAQACAAMAAAAHABcAAQACAAMAAAAFABcAAQACAAMAAAADABcAAQACAAMAAAABABcAAQACAAMAAAABABkAAQACAAMAAAADABkAAQACAAMAAAAFABkAAQACAAMAAAAHABkAAQACAAMAAAAJABkAAQACAAMAAAALABkAAQACAAMAAAANABkAAQACAAMAAAAPABkAAQACAAMAAAARABkAAQACAAMAAAATABkAAQACAAMAAAAVABkAAQACAAMAAAAXABkAAQACAAMAAAAZABkAAQACAAMAAAABABsAAQACAAMAAAADABsAAQACAAMAAAAFABsAAQACAAMAAAAHABsAAQACAAMAAAAJABsAAQACAAMAAAALABsAAQACAAMAAAANABsAAQACAAMAAAAPABsAAQACAAMAAAARABsAAQACAAMAAAATABsAAQACAAMAAAAVABsAAQACAAMAAAAXABsAAQACAAMAAAAZABsAAQACAAMAAAAZAB0AAQACAAMAAAAXAB0AAQACAAMAAAAVAB0AAQACAAMAAAATAB0AAQACAAMAAAARAB0AAQACAAMAAAAPAB0AAQACAAMAAAANAB0AAQACAAMAAAALAB0AAQACAAMAAAAJAB0AAQACAAMAAAAHAB0AAQACAAMAAAAFAB0AAQACAAMAAAADAB0AAQACAAMAAAABAB0AAQACAAMAAAABAB8AAQACAAMAAAADAB8AAQACAAMAAAAFAB8AAQACAAMAAAAHAB8AAQACAAMAAAAJAB8AAQACAAMAAAALAB8AAQACAAMAAAANAB8AAQACAAMAAAAPAB8AAQACAAMAAAARAB8AAQACAAMAAAATAB8AAQACAAMAAAAVAB8AAQACAAMAAAAXAB8AAQACAAMAAAAZAB8AAQACAAMAAAAZACEAAQACAAMAAAAXACEAAQACAAMAAAAVACEAAQACAAMAAAATACEAAQACAAMAAAARACEAAQACAAMAAAAPACEAAQACAAMAAAANACEAAQACAAMAAAALACEAAQACAAMAAAAJACEAAQACAAMAAAAHACEAAQACAAMAAAAFACEAAQACAAMAAAADACEAAQACAAMAAAABACEAAQACAAMAAAABACMAAQACAAMAAAADACMAAQACAAMAAAAFACMAAQACAAMAAAAHACMAAQACAAMAAAAJACMAAQACAAMAAAALACMAAQACAAMAAAANACMAAQACAAMAAAAPACMAAQACAAMAAAARACMAAQACAAMAAAATACMAAQACAAMAAAAVACMAAQACAAMAAAAXACMAAQACAAMAAAAZACMAAQACAAMAAAAZACUAAQACAAMAAAAXACUAAQACAAMAAAAVACUAAQACAAMAAAATACUAAQACAAMAAAARACUAAQACAAMAAAAPACUAAQACAAMAAAANACUAAQACAAMAAAALACUAAQACAAMAAAAJACUAAQACAAMAAAAHACUAAQACAAMAAAAFACUAAQACAAMAAAADACUAAQACAAMAAAABACUAAQACAAMAAAABACcAAQACAAMAAAADACcAAQACAAMAAAAFACcAAQACAAMAAAAHACcAAQACAAMAAAAJACcAAQACAAMAAAALACcAAQACAAMAAAANACcAAQACAAMAAAAPACcAAQACAAMAAAARACcAAQACAAMAAAATACcAAQACAAMAAAAVACcAAQACAAMAAAAXACcAAQACAAMAAAAZACcAAQACAAMAAAAZACkAAQACAAMAAAAXACkAAQACAAMAAAAVACkAAQACAAMAAAATACkAAQACAAMAAAARACkAAQACAAMAAAAPACkAAQACAAMAAAANACkAAQACAAMAAAALACkAAQACAAMAAAAJACkAAQACAAMAAAAHACkAAQACAAMAAAAFACkAAQACAAMAAAADACkAAQACAAMAAAABACkAAQACAAMAAAA=") +tile_map_data = PackedByteArray("AAADABMAAQACAAMAAAAFABMAAQACAAMAAAAHABMAAQACAAMAAAAJABMAAQACAAMAAAALABMAAQACAAMAAAANABMAAQACAAMAAAAPABMAAQACAAMAAAARABMAAQACAAMAAAATABMAAQAAAAMAAAAVABMAAQACAAMAAAAXABMAAQACAAMAAAAZABMAAQACAAMAAAABABMAAQAAAAMAAAAZABEAAQABAAIAAAABABEAAQABAAIAAAAZACsAAQABAAEAAAABACsAAQABAAEAAAAZACwAAQADAAEAAAABABUAAQACAAMAAAADABUAAQACAAMAAAAFABUAAQACAAMAAAAHABUAAQACAAMAAAAJABUAAQACAAMAAAALABUAAQACAAMAAAANABUAAQACAAMAAAAPABUAAQACAAMAAAARABUAAQACAAMAAAATABUAAQACAAMAAAAVABUAAQACAAMAAAAXABUAAQACAAMAAAAZABUAAQACAAMAAAAZABcAAQACAAMAAAAXABcAAQACAAMAAAAVABcAAQACAAMAAAATABcAAQACAAMAAAARABcAAQABAAMAAAAPABcAAQACAAMAAAANABcAAQACAAMAAAALABcAAQACAAMAAAAJABcAAQACAAMAAAAHABcAAQACAAMAAAAFABcAAQACAAMAAAADABcAAQABAAMAAAABABcAAQACAAMAAAABABkAAQACAAMAAAADABkAAQACAAMAAAAFABkAAQACAAMAAAAHABkAAQACAAMAAAAJABkAAQABAAMAAAALABkAAQACAAMAAAANABkAAQACAAMAAAAPABkAAQACAAMAAAARABkAAQACAAMAAAATABkAAQACAAMAAAAVABkAAQACAAMAAAAXABkAAQACAAMAAAAZABkAAQACAAMAAAABABsAAQACAAMAAAADABsAAQACAAMAAAAFABsAAQACAAMAAAAHABsAAQACAAMAAAAJABsAAQACAAMAAAALABsAAQACAAMAAAANABsAAQACAAMAAAAPABsAAQACAAMAAAARABsAAQACAAMAAAATABsAAQACAAMAAAAVABsAAQACAAMAAAAXABsAAQACAAMAAAAZABsAAQACAAMAAAAZAB0AAQACAAMAAAAXAB0AAQACAAMAAAAVAB0AAQABAAMAAAATAB0AAQACAAMAAAARAB0AAQACAAMAAAAPAB0AAQAAAAMAAAANAB0AAQACAAMAAAALAB0AAQACAAMAAAAJAB0AAQACAAMAAAAHAB0AAQACAAMAAAAFAB0AAQAAAAMAAAADAB0AAQACAAMAAAABAB0AAQACAAMAAAABAB8AAQACAAMAAAADAB8AAQACAAMAAAAFAB8AAQACAAMAAAAHAB8AAQACAAMAAAAJAB8AAQAAAAMAAAALAB8AAQACAAMAAAANAB8AAQACAAMAAAAPAB8AAQACAAMAAAARAB8AAQACAAMAAAATAB8AAQACAAMAAAAVAB8AAQACAAMAAAAXAB8AAQACAAMAAAAZAB8AAQACAAMAAAAZACEAAQACAAMAAAAXACEAAQACAAMAAAAVACEAAQACAAMAAAATACEAAQACAAMAAAARACEAAQACAAMAAAAPACEAAQACAAMAAAANACEAAQACAAMAAAALACEAAQACAAMAAAAJACEAAQACAAMAAAAHACEAAQABAAMAAAAFACEAAQACAAMAAAADACEAAQACAAMAAAABACEAAQACAAMAAAABACMAAQACAAMAAAADACMAAQACAAMAAAAFACMAAQACAAMAAAAHACMAAQACAAMAAAAJACMAAQACAAMAAAALACMAAQACAAMAAAANACMAAQACAAMAAAAPACMAAQABAAMAAAARACMAAQACAAMAAAATACMAAQACAAMAAAAVACMAAQACAAMAAAAXACMAAQACAAMAAAAZACMAAQABAAMAAAAZACUAAQACAAMAAAAXACUAAQACAAMAAAAVACUAAQAAAAMAAAATACUAAQACAAMAAAARACUAAQACAAMAAAAPACUAAQACAAMAAAANACUAAQACAAMAAAALACUAAQACAAMAAAAJACUAAQACAAMAAAAHACUAAQACAAMAAAAFACUAAQACAAMAAAADACUAAQACAAMAAAABACUAAQACAAMAAAABACcAAQAAAAMAAAADACcAAQACAAMAAAAFACcAAQACAAMAAAAHACcAAQACAAMAAAAJACcAAQACAAMAAAALACcAAQACAAMAAAANACcAAQACAAMAAAAPACcAAQACAAMAAAARACcAAQACAAMAAAATACcAAQACAAMAAAAVACcAAQACAAMAAAAXACcAAQACAAMAAAAZACcAAQACAAMAAAAZACkAAQAAAAMAAAAXACkAAQACAAMAAAAVACkAAQACAAMAAAATACkAAQACAAMAAAARACkAAQABAAMAAAAPACkAAQACAAMAAAANACkAAQACAAMAAAALACkAAQACAAMAAAAJACkAAQACAAMAAAAHACkAAQACAAMAAAAFACkAAQACAAMAAAADACkAAQACAAMAAAABACkAAQACAAMAAAA=") tile_set = SubResource("TileSet_m45hf") [node name="Walls" type="TileMapLayer" parent="Map" unique_id=1401573587] @@ -201,7 +201,7 @@ hidden_object = NodePath("../Circuit") layer_cache = NodePath("../Cover Wall") [node name="Ground" type="TileMapLayer" parent="Map/Hidden Room" unique_id=1028999710] -tile_map_data = PackedByteArray("AAAHACsAAQACAAAAAAADACsAAQAAAAAAAAADAC0AAQABAAIAAAAHAC0AAQABAAIAAAAFACsAAQACAAMAAAAFAC0AAQACAAMAAAAFAC8AAQACAAMAAAADAC8AAQACAAMAAAABAC8AAQACAAMAAAD//y8AAQACAAMAAAD9/y8AAQACAAMAAAD7/zMAAQADAAEAAAAHADMAAQAEAAEAAAA=") +tile_map_data = PackedByteArray("AAAHACsAAQACAAAAAAADACsAAQAAAAAAAAADAC0AAQABAAIAAAAHAC0AAQABAAIAAAAFACsAAQACAAMAAAAFAC0AAQABAAMAAAAFAC8AAQACAAMAAAADAC8AAQACAAMAAAABAC8AAQACAAMAAAD//y8AAQAAAAMAAAD9/y8AAQACAAMAAAD7/zMAAQADAAEAAAAHADMAAQAEAAEAAAA=") tile_set = SubResource("TileSet_m45hf") [node name="Behind Walls" type="TileMapLayer" parent="Map/Hidden Room" unique_id=1378066818] diff --git a/levels/cour/cour.tscn b/levels/cour/cour.tscn index a0706ed..72b9d99 100644 --- a/levels/cour/cour.tscn +++ b/levels/cour/cour.tscn @@ -1,3 +1,17 @@ [gd_scene format=3 uid="uid://cf5xm3p02u8w0"] +[ext_resource type="PackedScene" uid="uid://o7qrmpywwhu8" path="res://ui/hud.tscn" id="1_w6px7"] +[ext_resource type="PackedScene" uid="uid://jrjxu1xfx0ud" path="res://ui/dialogue_box.tscn" id="2_prv2q"] +[ext_resource type="PackedScene" uid="uid://mh3msmluve7p" path="res://entities/player/player.tscn" id="3_rwjhc"] + [node name="Cour" type="Node2D" unique_id=868441179] + +[node name="HUD" parent="." unique_id=1746360319 instance=ExtResource("1_w6px7")] + +[node name="DialogueBox" parent="." unique_id=1374394268 instance=ExtResource("2_prv2q")] + +[node name="Map" type="Node" parent="." unique_id=1330031516] + +[node name="TileMapLayer" type="TileMapLayer" parent="Map" unique_id=1564100326] + +[node name="Player" parent="." unique_id=1424887591 instance=ExtResource("3_rwjhc")] diff --git a/levels/credits.gd b/levels/credits.gd new file mode 100644 index 0000000..f37dbd9 --- /dev/null +++ b/levels/credits.gd @@ -0,0 +1,69 @@ +extends Control + +const SCROLL_SPEED := 20.0 + +const CREDITS: Array[String] = [ + "SCRAP SINGAL", + "", + "Un jeu réalisé pour la Gamedev.js Jam 2026", + "", + "", + "DÉVELOPPEMENT", + "kodzukye", + "", + "", + "MUSIQUES D'AMBIANCE", + "MAC Senjah", + "", + "", + "OUTILS", + "Godot 4.6 • Aseprite • Bandlab • Pixel Studio", + "", + "", + "Merci d'avoir joué.", +] + +@onready var scroll := $ScrollContainer +@onready var credits_lbl := $ScrollContainer/CreditsLabel +@onready var fade_rect := $FadeRect + +var _scrolling := false + +func _ready() -> void: + credits_lbl.text = "\n".join(CREDITS) + credits_lbl.add_theme_constant_override("line_spacing", 12) + + # Démarre sous l'écran + scroll.scroll_vertical = 0 + credits_lbl.position.y = get_viewport_rect().size.y + + fade_rect.modulate.a = 1.0 + var tween := create_tween() + tween.tween_property(fade_rect, "modulate:a", 0.0, 1.2) + tween.tween_callback(func(): _scrolling = true) + +func _process(delta: float) -> void: + if not _scrolling: + return + + credits_lbl.position.y -= SCROLL_SPEED * delta + + # Fin du scroll — tout le texte est passé + if credits_lbl.position.y + credits_lbl.size.y < 0: + _end_credits() + +func _unhandled_input(event: InputEvent) -> void: + if event is InputEventKey and event.pressed and not event.echo: + _end_credits() + if event is InputEventJoypadButton and event.pressed: + _end_credits() + +func _end_credits() -> void: + if not _scrolling: + return + _scrolling = false + var tween := create_tween() + tween.tween_property(fade_rect, "modulate:a", 1.0, 1.0) + tween.tween_callback(func(): + get_tree().change_scene_to_file("res://levels/main_menu.tscn") + ) diff --git a/levels/credits.gd.uid b/levels/credits.gd.uid new file mode 100644 index 0000000..8197b7a --- /dev/null +++ b/levels/credits.gd.uid @@ -0,0 +1 @@ +uid://0sl0y0yfe4vc diff --git a/levels/credits.tscn b/levels/credits.tscn new file mode 100644 index 0000000..9ce4c57 --- /dev/null +++ b/levels/credits.tscn @@ -0,0 +1,45 @@ +[gd_scene format=3 uid="uid://c14ty10p5182s"] + +[ext_resource type="Script" uid="uid://0sl0y0yfe4vc" path="res://levels/credits.gd" id="1_oat60"] + +[node name="Credits" type="Control" unique_id=1938965450] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_oat60") + +[node name="Background" type="ColorRect" parent="." unique_id=493907748] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.0627451, 0.0627451, 0.0627451, 1) + +[node name="ScrollContainer" type="ScrollContainer" parent="." unique_id=444663629] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="CreditsLabel" type="Label" parent="ScrollContainer" unique_id=1855173469] +layout_mode = 2 +theme_override_colors/font_color = Color(0.9607843, 0.9411765, 0.9098039, 1) +theme_override_font_sizes/font_size = 6 +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="FadeRect" type="ColorRect" parent="." unique_id=1032471178] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 1) diff --git a/levels/outro.gd b/levels/outro.gd new file mode 100644 index 0000000..67253f8 --- /dev/null +++ b/levels/outro.gd @@ -0,0 +1,128 @@ +extends Control + +# Textes selon les endings — tirés du GDD +const ENDING_A: Array[String] = [ + "SCRAP-09 s'arrête devant la sortie.", + "Il hésite.", + "Puis il avance.", + "", + "Sans savoir encore où il va.", +] + +const ENDING_B: Array[String] = [ + "SCRAP-09 s'arrête devant la sortie.", + "Il se retourne.", + "VRAC-7. IRIS-3. L'usine.", + "", + "Il décide de rester.", +] + +const LOG_A := "Destination non définie. Navigation autonome activée." +const LOG_B := "Protocole de continuité autonome. Statut : actif." + +@onready var text_label := $CenterContainer/VBoxContainer/TextLabel +@onready var log_label := $CenterContainer/VBoxContainer/LogLabel +@onready var fade_rect := $FadeRect +@onready var continue_label := $ContinueLabel + +var _lines: Array[String] = [] +var _current_line := 0 +var _can_continue := false +var _finished := false +var _blink_tween : Tween + +func _ready() -> void: + var is_ending_b := GameState.get_flag("iris3_repaired") + _lines = ENDING_B if is_ending_b else ENDING_A + log_label.text = LOG_B if is_ending_b else LOG_A + log_label.visible = false + log_label.modulate.a = 0.0 + text_label.text = "" + + fade_rect.modulate.a = 1.0 + var tween := create_tween() + tween.tween_property(fade_rect, "modulate:a", 0.0, 1.2) + tween.tween_callback(_show_next_line) + +func _show_next_line() -> void: + if _current_line >= _lines.size(): + _show_log() + return + + _can_continue = false + _hide_continue() + + var line := _lines[_current_line] + _current_line += 1 + text_label.text = "" + + if line == "": + await get_tree().create_timer(0.4).timeout + _can_continue = true + _show_continue() + return + + var tween := create_tween() + for i in line.length(): + tween.tween_callback(func(): text_label.text += line[text_label.text.length()]) + tween.tween_interval(0.04) + tween.tween_interval(0.3) + tween.tween_callback(func(): + _can_continue = true + _show_continue() + ) + +func _show_log() -> void: + _can_continue = false + _hide_continue() + await get_tree().create_timer(0.8).timeout + log_label.visible = true + log_label.modulate.a = 0.0 + var tween := create_tween() + tween.tween_property(log_label, "modulate:a", 1.0, 0.8) + tween.tween_interval(2.0) + tween.tween_callback(_show_credits) + +func _show_credits() -> void: + _finished = true + _can_continue = true + _show_continue() + +func _show_continue() -> void: + continue_label.modulate.a = 0.0 + if _blink_tween: + _blink_tween.kill() + _blink_tween = create_tween().set_loops() + _blink_tween.tween_property(continue_label, "modulate:a", 1.0, 0.4) + _blink_tween.tween_interval(0.2) + _blink_tween.tween_property(continue_label, "modulate:a", 0.0, 0.4) + _blink_tween.tween_interval(0.2) + +func _hide_continue() -> void: + if _blink_tween: + _blink_tween.kill() + continue_label.modulate.a = 0.0 + +func _unhandled_input(event: InputEvent) -> void: + if not _can_continue: + return + if event is InputEventKey and event.pressed and not event.echo: + _next() + if event is InputEventJoypadButton and event.pressed: + _next() + +func _next() -> void: + _can_continue = false + _hide_continue() + if _finished: + _go_to_menu() + return + _show_next_line() + +func _go_to_menu() -> void: + _can_continue = false + var tween := create_tween() + tween.tween_property(fade_rect, "modulate:a", 1.0, 1.0) + tween.tween_callback(func(): + get_tree().change_scene_to_file("res://levels/credits.tscn") + ) diff --git a/levels/outro.gd.uid b/levels/outro.gd.uid new file mode 100644 index 0000000..fbe5e52 --- /dev/null +++ b/levels/outro.gd.uid @@ -0,0 +1 @@ +uid://debulicnb7svj diff --git a/levels/outro.tscn b/levels/outro.tscn new file mode 100644 index 0000000..e6e1183 --- /dev/null +++ b/levels/outro.tscn @@ -0,0 +1,68 @@ +[gd_scene format=3 uid="uid://ch02pkamkqs54"] + +[ext_resource type="Script" uid="uid://debulicnb7svj" path="res://levels/outro.gd" id="1_h06aq"] + +[node name="Outro" type="Control" unique_id=1833410421] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_h06aq") + +[node name="Background" type="ColorRect" parent="." unique_id=191018081] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.0627451, 0.0627451, 0.0627451, 1) + +[node name="CenterContainer" type="CenterContainer" parent="." unique_id=770397751] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer" unique_id=903366084] +layout_mode = 2 + +[node name="TextLabel" type="Label" parent="CenterContainer/VBoxContainer" unique_id=75612304] +layout_mode = 2 +theme_override_font_sizes/font_size = 10 +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="LogLabel" type="Label" parent="CenterContainer/VBoxContainer" unique_id=2046115793] +layout_mode = 2 +theme_override_colors/font_color = Color(0.8, 0.8, 0.8, 1) +theme_override_font_sizes/font_size = 6 +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="ContinueLabel" type="Label" parent="." unique_id=1769574127] +layout_mode = 1 +anchors_preset = 12 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_top = -23.0 +grow_horizontal = 2 +grow_vertical = 0 +theme_override_font_sizes/font_size = 6 +text = "[ Appuyer pour continuer ]" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="FadeRect" type="ColorRect" parent="." unique_id=1321625862] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 1)