7 Commits

Author SHA1 Message Date
c767f88fcd feat: level two base
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 7s
Create tag and build when new code gets to main / Export (push) Successful in 5m2s
2025-06-28 17:54:57 +02:00
a51c4b82ae feat: new defeat screen and new indoors scene
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 7s
Create tag and build when new code gets to main / Export (push) Successful in 2m17s
2025-06-28 16:18:17 +02:00
aa6a5ca964 feat: wrong building scene
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 8s
Create tag and build when new code gets to main / Export (push) Successful in 2m17s
2025-06-28 14:33:47 +02:00
f365450590 feat: sound for intro
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 8s
Create tag and build when new code gets to main / Export (push) Successful in 2m19s
2025-06-28 13:02:47 +02:00
e6da2f34e6 feat: can name interactible objects
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 7s
Create tag and build when new code gets to main / Export (push) Successful in 2m15s
2025-06-28 12:46:58 +02:00
1b83af938f feat: intro text
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 7s
Create tag and build when new code gets to main / Export (push) Successful in 2m14s
2025-06-28 12:38:45 +02:00
5ee7b125e3 feat: interactibles now emit signals and are parametrable through text and ids
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 7s
Create tag and build when new code gets to main / Export (push) Successful in 2m14s
2025-06-28 11:04:03 +02:00
26 changed files with 3249 additions and 25 deletions

View File

@ -12,7 +12,7 @@ func update_name_label():
var config_name : String = ProjectSettings.get_setting("application/config/name", NO_NAME_STRING)
if config_name.is_empty():
config_name = NO_NAME_STRING
text = config_name
text = config_name.to_upper()
func _ready():
update_name_label()

Binary file not shown.

View File

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://dcylcol0nj0pv"
path="res://.godot/imported/CIN_INTRO_Pitch mission.ogg-4b569bdb43235b38f5baa7a3f9997ccb.oggvorbisstr"
[deps]
source_file="res://assets/Audio/CIN_INTRO_Pitch mission.ogg"
dest_files=["res://.godot/imported/CIN_INTRO_Pitch mission.ogg-4b569bdb43235b38f5baa7a3f9997ccb.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

BIN
assets/garance/EGJ-BAR.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d31fkxosknhli"
path="res://.godot/imported/EGJ-BAR.png-477f6d9b497ee174371ffda65d2826e8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/garance/EGJ-BAR.png"
dest_files=["res://.godot/imported/EGJ-BAR.png-477f6d9b497ee174371ffda65d2826e8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/light.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

34
assets/light.webp.import Normal file
View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dna7ld7qgab32"
path="res://.godot/imported/light.webp-d35799de8fb0c49b55296f910078c3f9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/light.webp"
dest_files=["res://.godot/imported/light.webp-d35799de8fb0c49b55296f910078c3f9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

33
default_bus_layout.tres Normal file
View File

@ -0,0 +1,33 @@
[gd_resource type="AudioBusLayout" format=3 uid="uid://cd43qm20mmsb4"]
[resource]
bus/1/name = &"Cinematique"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = 0.0
bus/1/send = &"Master"
bus/2/name = &"Character"
bus/2/solo = false
bus/2/mute = false
bus/2/bypass_fx = false
bus/2/volume_db = 0.0
bus/2/send = &"Master"
bus/3/name = &"VoiceOver"
bus/3/solo = false
bus/3/mute = false
bus/3/bypass_fx = false
bus/3/volume_db = 0.0
bus/3/send = &"Master"
bus/4/name = &"UI"
bus/4/solo = false
bus/4/mute = false
bus/4/bypass_fx = false
bus/4/volume_db = 0.0
bus/4/send = &"Master"
bus/5/name = &"Music"
bus/5/solo = false
bus/5/mute = false
bus/5/bypass_fx = false
bus/5/volume_db = 0.0
bus/5/send = &"Master"

View File

@ -40,6 +40,7 @@ enabled=PackedStringArray("res://addons/godot_state_charts/plugin.cfg", "res://a
[gui]
theme/custom="res://template/resources/themes/gravity.tres"
theme/custom_font="uid://detctsm8oy251"
[internationalization]
@ -61,3 +62,4 @@ copy_path="res://template"
textures/canvas_textures/default_texture_filter=0
textures/vram_compression/import_etc2_astc=true
environment/defaults/default_clear_color=Color(0, 0, 0, 1)

32
scenes/indoors/bar.gd Normal file
View File

@ -0,0 +1,32 @@
extends Node2D
@export_file("*.tscn") var golé: String
@export_file("*.tscn") var next_level: String
@export var base_mode: GUIDEMappingContext
@export var vies = 3
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
GUIDE.enable_mapping_context(base_mode)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _on_interactible_triggered(event_id: String) -> void:
vies -= 1
if vies == 0:
SceneLoader.load_scene(golé)
func _on_wrong_door_event_triggered(event_id: String) -> void:
SceneLoader.load_scene(golé)
func _on_right_door_event_triggered(event_id: String) -> void:
SceneLoader.load_scene(next_level) # Replace with function body.

View File

@ -0,0 +1 @@
uid://cjo7sxy5vy7bc

2417
scenes/indoors/bar.tscn Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,17 +1,54 @@
extends Area2D
class_name Interactible
@export_file("*.tscn") var scene_to_trigger : String
# @export_file("*.tscn") var scene_to_trigger: String
@export var message: String
@export var interact_text: String
@export var event: String
signal event_triggered(event_id: String)
@onready var rich_text_label: RichTextLabel = $RichTextLabel
@onready var confirm_panel: Panel = %ConfirmPanel
@onready var message_box: Label = %MessageBox
@onready var interact_box: RichTextLabel = $RichTextLabel
@export var is_item = false
@onready var confirm_button: Button = %ConfirmButton
@onready var cancel_button: Button = %CancelButton
@onready var ok_button: Button = %OkButton
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
rich_text_label.visible = false
confirm_panel.visible = false
message_box.text = message.to_upper()
if not interact_text.is_empty():
interact_box.text = interact_text.to_upper()
if is_item:
confirm_button.visible = false
cancel_button.visible = false
ok_button.visible = true
func _on_body_entered(body: Node2D) -> void:
rich_text_label.visible = true
func _on_body_exited(body: Node2D) -> void:
rich_text_label.visible = false
confirm_panel.visible = false
func show_confirm():
confirm_panel.visible = true
if is_item:
event_triggered.emit(event)
func _on_confirm_button_pressed() -> void:
confirm_panel.visible = false
if not is_item:
event_triggered.emit(event)
func _on_cancel_button_pressed() -> void:
confirm_panel.visible = false

View File

@ -1,7 +1,8 @@
[gd_scene load_steps=4 format=3 uid="uid://cjo7jm55bkqk3"]
[gd_scene load_steps=5 format=3 uid="uid://cjo7jm55bkqk3"]
[ext_resource type="Script" uid="uid://dl18owt8pb11r" path="res://scenes/interactibles/interactible.gd" id="1_7dp4u"]
[ext_resource type="FontFile" uid="uid://detctsm8oy251" path="res://assets/PansyHand/pansyhand.ttf" id="2_u3pc4"]
[ext_resource type="Script" uid="uid://1nf36h0gms3q" path="res://addons/maaacks_menus_template/base/scripts/capture_focus.gd" id="3_dyo5s"]
[sub_resource type="CircleShape2D" id="CircleShape2D_oyfc1"]
radius = 20.0
@ -23,5 +24,82 @@ offset_bottom = 23.0
theme_override_fonts/normal_font = ExtResource("2_u3pc4")
text = "INTERACT"
[node name="CenterContainer" type="CenterContainer" parent="."]
z_index = 1000
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -140.0
offset_top = -151.0
offset_right = 140.0
offset_bottom = -31.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
mouse_filter = 2
[node name="ConfirmPanel" type="Panel" parent="CenterContainer"]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(280, 120)
layout_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/ConfirmPanel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="MessageBox" type="Label" parent="CenterContainer/ConfirmPanel/VBoxContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(256, 0)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "ENTRER DANS LA POSTE ?"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 3
[node name="CenterContainer" type="CenterContainer" parent="CenterContainer/ConfirmPanel/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/ConfirmPanel/VBoxContainer/CenterContainer"]
custom_minimum_size = Vector2(256, 0)
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 16
script = ExtResource("3_dyo5s")
[node name="ConfirmButton" type="Button" parent="CenterContainer/ConfirmPanel/VBoxContainer/CenterContainer/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "FUCK YES"
[node name="CancelButton" type="Button" parent="CenterContainer/ConfirmPanel/VBoxContainer/CenterContainer/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "OH HELL NAH"
[node name="OkButton" type="Button" parent="CenterContainer/ConfirmPanel/VBoxContainer/CenterContainer/HBoxContainer"]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "Whoops..."
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
[connection signal="body_exited" from="." to="." method="_on_body_exited"]
[connection signal="pressed" from="CenterContainer/ConfirmPanel/VBoxContainer/CenterContainer/HBoxContainer/ConfirmButton" to="." method="_on_confirm_button_pressed"]
[connection signal="pressed" from="CenterContainer/ConfirmPanel/VBoxContainer/CenterContainer/HBoxContainer/CancelButton" to="." method="_on_cancel_button_pressed"]
[connection signal="pressed" from="CenterContainer/ConfirmPanel/VBoxContainer/CenterContainer/HBoxContainer/OkButton" to="." method="_on_cancel_button_pressed"]

View File

@ -1,5 +1,8 @@
extends Node2D
@export_file("*.tscn") var wrong_building: String
@export_file("*.tscn") var next_level: String
@export var base_mode: GUIDEMappingContext
@ -11,3 +14,11 @@ func _ready() -> void:
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _on_door_event_triggered(event_id: String) -> void:
if event_id == "right":
SceneLoader.load_scene(next_level)
return
SceneLoader.load_scene(wrong_building)

File diff suppressed because one or more lines are too long

View File

@ -16,7 +16,7 @@ func _ready() -> void:
func on_interact_triggered() -> void:
if current_interactible == null:
return
SceneLoader.load_scene(current_interactible.scene_to_trigger)
current_interactible.show_confirm()
func _on_interactible_found(area: Area2D) -> void:

View File

@ -165,7 +165,6 @@ motion_mode = 1
script = ExtResource("1_dovo2")
move = ExtResource("2_gmlin")
interact = ExtResource("3_lvxji")
walk_speed = null
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 2)

View File

@ -0,0 +1,124 @@
[gd_scene load_steps=5 format=3 uid="uid://cgql2prrr5cj7"]
[ext_resource type="PackedScene" uid="uid://bhhphcagggc1" path="res://template/scenes/credits/scrolling_credits.tscn" id="1_a1vv7"]
[ext_resource type="Script" uid="uid://bwr3tliac4mo2" path="res://scenes/text_wrappers/text_wrapper.gd" id="2_at5ku"]
[ext_resource type="PackedScene" uid="uid://bkcsjsk2ciff" path="res://addons/maaacks_menus_template/base/scenes/music_players/background_music_player.tscn" id="3_gqt46"]
[ext_resource type="Script" uid="uid://1nf36h0gms3q" path="res://addons/maaacks_menus_template/base/scripts/capture_focus.gd" id="4_uu3cc"]
[node name="WrongBuilding" instance=ExtResource("1_a1vv7")]
script = ExtResource("2_at5ku")
scene_to_trigger = "uid://ck5glr84c7e25"
[node name="BackgroundMusicPlayer" parent="." index="0" instance=ExtResource("3_gqt46")]
bus = &"Cinematique"
[node name="BackgroundColor" type="ColorRect" parent="." index="1"]
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)
[node name="BackgroundTextureRect" type="TextureRect" parent="." index="2"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
expand_mode = 1
stretch_mode = 5
[node name="ScrollContainer" parent="." index="3"]
visible = false
scroll_vertical = 0
[node name="CenterContainer" type="CenterContainer" parent="." index="4"]
layout_mode = 0
anchor_right = 1.0
anchor_bottom = 1.0
size_flags_horizontal = 3
size_flags_vertical = 3
mouse_filter = 2
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer" index="0"]
custom_minimum_size = Vector2(600, 0)
layout_mode = 2
[node name="Message" type="Label" parent="CenterContainer/VBoxContainer" index="0"]
unique_name_in_owner = true
custom_minimum_size = Vector2(360, 0)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "__CALL IN PROGRESS__
---
__HANDSHAKE OVER__
__FINGERPRINT: NO-MECANIC__
/!\\ CONNEXION SECURE /!\\
---
DINO SÉRIEUX TU AS TROP FAIT LE RIGOLO, TU T'ES FAIT GOLÉ COMME UN BLEU!
"
vertical_alignment = 1
autowrap_mode = 3
[node name="CenterContainer" type="CenterContainer" parent="CenterContainer/VBoxContainer" index="1"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/VBoxContainer/CenterContainer" index="0"]
custom_minimum_size = Vector2(256, 0)
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 16
script = ExtResource("4_uu3cc")
[node name="AcceptButton1" type="Button" parent="CenterContainer/VBoxContainer/CenterContainer/HBoxContainer" index="0"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "GAME OVER"
[node name="AcceptButton2" type="Button" parent="CenterContainer/VBoxContainer/CenterContainer/HBoxContainer" index="1"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "TRY AGAIN"
[node name="EndMessagePanel" type="Panel" parent="CenterContainer" index="1"]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(360, 120)
layout_mode = 2
[node name="StartConnexion" type="Timer" parent="." index="5"]
wait_time = 0.5
one_shot = true
autostart = true
[node name="FurtherConnexion" type="Timer" parent="." index="6"]
wait_time = 0.5
one_shot = true
[node name="TextStart" type="Timer" parent="." index="7"]
one_shot = true
[node name="TimeBetweenWords" type="Timer" parent="." index="8"]
wait_time = 0.15
[node name="TimeBeforeShowButtons" type="Timer" parent="." index="9"]
wait_time = 2.0
one_shot = true
[connection signal="pressed" from="CenterContainer/VBoxContainer/CenterContainer/HBoxContainer/AcceptButton1" to="." method="start_mission"]
[connection signal="pressed" from="CenterContainer/VBoxContainer/CenterContainer/HBoxContainer/AcceptButton2" to="." method="start_mission"]
[connection signal="timeout" from="StartConnexion" to="." method="_on_start_connexion_timeout"]
[connection signal="timeout" from="FurtherConnexion" to="." method="_on_further_connexion_timeout"]
[connection signal="timeout" from="TextStart" to="." method="_on_text_start_timeout"]
[connection signal="timeout" from="TimeBetweenWords" to="." method="_on_time_between_words_timeout"]
[connection signal="timeout" from="TimeBeforeShowButtons" to="." method="_on_time_before_show_buttons_timeout"]

View File

@ -0,0 +1,134 @@
[gd_scene load_steps=6 format=3 uid="uid://djmvj0uqw26dg"]
[ext_resource type="PackedScene" uid="uid://bhhphcagggc1" path="res://template/scenes/credits/scrolling_credits.tscn" id="1_ftj6e"]
[ext_resource type="Script" uid="uid://bwr3tliac4mo2" path="res://scenes/text_wrappers/text_wrapper.gd" id="2_sbctf"]
[ext_resource type="PackedScene" uid="uid://bkcsjsk2ciff" path="res://addons/maaacks_menus_template/base/scenes/music_players/background_music_player.tscn" id="3_pbsew"]
[ext_resource type="Script" uid="uid://1nf36h0gms3q" path="res://addons/maaacks_menus_template/base/scripts/capture_focus.gd" id="4_23spi"]
[ext_resource type="AudioStream" uid="uid://dcylcol0nj0pv" path="res://assets/Audio/CIN_INTRO_Pitch mission.ogg" id="4_mudqr"]
[node name="Intro" instance=ExtResource("1_ftj6e")]
script = ExtResource("2_sbctf")
scene_to_trigger = "uid://s1cx1gvt4bed"
[node name="BackgroundMusicPlayer" parent="." index="0" instance=ExtResource("3_pbsew")]
stream = ExtResource("4_mudqr")
bus = &"Cinematique"
[node name="BackgroundColor" type="ColorRect" parent="." index="1"]
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)
[node name="BackgroundTextureRect" type="TextureRect" parent="." index="2"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
expand_mode = 1
stretch_mode = 5
[node name="ScrollContainer" parent="." index="3"]
visible = false
scroll_vertical = 0
[node name="CenterContainer" type="CenterContainer" parent="." index="4"]
layout_mode = 0
anchor_right = 1.0
anchor_bottom = 1.0
size_flags_horizontal = 3
size_flags_vertical = 3
mouse_filter = 2
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer" index="0"]
custom_minimum_size = Vector2(600, 0)
layout_mode = 2
[node name="Message" type="Label" parent="CenterContainer/VBoxContainer" index="0"]
unique_name_in_owner = true
custom_minimum_size = Vector2(360, 0)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "__CALL IN PROGRESS__
---
__HANDSHAKE OVER__
__FINGERPRINT: NO-MECANIC__
/!\\ CONNEXION SECURE /!\\
---
VOTRE NOM DE CODE POUR CETTE MISSION: DINO SÉRIEUX.
VOTRE BUT: REJOINDRE L AGENTE DINO LOGHORÉE QUI EST SOUS COUVERTURE DANS LA MÉGACORPORATION ONID. DEPUIS DES MOIS, ELLE CULTIVE UN RAPPORT AVEC LA CIBLE, LA CEO DE ONID, AFIN DE POUVOIR LA DISTRAIRE AUJOURD'HUI.
SUIVEZ SES INSTRUCTIONS DANS L'OREILLETTE, ET VOLEZ LES DONNÉES SAUVEGARDÉES SUR LA CIBLE. AVEC CES DONNÉES, NOUS EXPOSERONS LES MALVERSATIONS DE LA MÉGACORPORATION ONID.
ATTENTION, DINO SÉRIEUX: COMME ELLE EST SOUS COUVERTURE, DINO LOGHORÉE VOUS INDIQUERA LES PROCHAINES ÉTAPES EN CODE. VEILLEZ À BIEN ÉCOUTER LES MOTS QU'ELLE VOUS DIT, ET DIRIGEZ-VOUS VERS LES ÉLÉMENTS QUE VOUS ENTENDEZ.
RAPPELEZ-VOUS : UNE INCOMPRÉHENSION PEUT COMPROMETTRE VOTRE COUVERTURE ET FAIRE ÉCHOUER LA MISSION.
"
vertical_alignment = 1
autowrap_mode = 3
[node name="CenterContainer" type="CenterContainer" parent="CenterContainer/VBoxContainer" index="1"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/VBoxContainer/CenterContainer" index="0"]
custom_minimum_size = Vector2(256, 0)
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 16
script = ExtResource("4_23spi")
[node name="AcceptButton1" type="Button" parent="CenterContainer/VBoxContainer/CenterContainer/HBoxContainer" index="0"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "ACCEPTER"
[node name="AcceptButton2" type="Button" parent="CenterContainer/VBoxContainer/CenterContainer/HBoxContainer" index="1"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "ACCEPTER AUSSI"
[node name="EndMessagePanel" type="Panel" parent="CenterContainer" index="1"]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(360, 120)
layout_mode = 2
[node name="StartConnexion" type="Timer" parent="." index="5"]
wait_time = 5.0
one_shot = true
autostart = true
[node name="FurtherConnexion" type="Timer" parent="." index="6"]
wait_time = 8.0
one_shot = true
[node name="TextStart" type="Timer" parent="." index="7"]
wait_time = 7.0
one_shot = true
[node name="TimeBetweenWords" type="Timer" parent="." index="8"]
wait_time = 0.4
[node name="TimeBeforeShowButtons" type="Timer" parent="." index="9"]
wait_time = 2.0
one_shot = true
[connection signal="pressed" from="CenterContainer/VBoxContainer/CenterContainer/HBoxContainer/AcceptButton1" to="." method="start_mission"]
[connection signal="pressed" from="CenterContainer/VBoxContainer/CenterContainer/HBoxContainer/AcceptButton2" to="." method="start_mission"]
[connection signal="timeout" from="StartConnexion" to="." method="_on_start_connexion_timeout"]
[connection signal="timeout" from="FurtherConnexion" to="." method="_on_further_connexion_timeout"]
[connection signal="timeout" from="TextStart" to="." method="_on_text_start_timeout"]
[connection signal="timeout" from="TimeBetweenWords" to="." method="_on_time_between_words_timeout"]
[connection signal="timeout" from="TimeBeforeShowButtons" to="." method="_on_time_before_show_buttons_timeout"]

View File

@ -0,0 +1,61 @@
extends Control
@export_file("*.tscn") var scene_to_trigger: String
@onready var further_connexion: Timer = $FurtherConnexion
@onready var text_start: Timer = $TextStart
@onready var time_between_words: Timer = $TimeBetweenWords
@onready var time_before_show_buttons: Timer = $TimeBeforeShowButtons
@onready var message: Label = %Message
@onready var accept_button_1: Button = %AcceptButton1
@onready var accept_button_2: Button = %AcceptButton2
var growing_text: String = ""
var text_split: PackedStringArray
var text_fine_split: PackedStringArray
var text_fully_on_screen = false
var text_showing = false
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
text_split = message.text.split("---")
text_fine_split = text_split[2].split(" ")
message.text = ""
accept_button_1.visible = false
accept_button_2.visible = false
func start_mission() -> void:
SceneLoader.load_scene(scene_to_trigger)
func _on_start_connexion_timeout() -> void:
message.text = text_split[0]
further_connexion.start()
func _on_further_connexion_timeout() -> void:
message.text = text_split[1]
text_start.start()
func _on_text_start_timeout() -> void:
message.text = ""
time_between_words.start()
func _on_time_between_words_timeout() -> void:
if text_fine_split.is_empty():
time_between_words.stop()
time_before_show_buttons.start()
return
var current_text = message.text
current_text += text_fine_split[0]
current_text += " "
message.text = current_text
text_fine_split.remove_at(0)
time_between_words.start()
func _on_time_before_show_buttons_timeout() -> void:
accept_button_1.visible = true
accept_button_2.visible = true

View File

@ -0,0 +1 @@
uid://bwr3tliac4mo2

View File

@ -0,0 +1,124 @@
[gd_scene load_steps=5 format=3 uid="uid://eh3y4s4qad8m"]
[ext_resource type="PackedScene" uid="uid://bhhphcagggc1" path="res://template/scenes/credits/scrolling_credits.tscn" id="1_o8vp5"]
[ext_resource type="Script" uid="uid://bwr3tliac4mo2" path="res://scenes/text_wrappers/text_wrapper.gd" id="2_fg6t0"]
[ext_resource type="PackedScene" uid="uid://bkcsjsk2ciff" path="res://addons/maaacks_menus_template/base/scenes/music_players/background_music_player.tscn" id="3_fs5lg"]
[ext_resource type="Script" uid="uid://1nf36h0gms3q" path="res://addons/maaacks_menus_template/base/scripts/capture_focus.gd" id="5_0ltfy"]
[node name="WrongBuilding" instance=ExtResource("1_o8vp5")]
script = ExtResource("2_fg6t0")
scene_to_trigger = "uid://ck5glr84c7e25"
[node name="BackgroundMusicPlayer" parent="." index="0" instance=ExtResource("3_fs5lg")]
bus = &"Cinematique"
[node name="BackgroundColor" type="ColorRect" parent="." index="1"]
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)
[node name="BackgroundTextureRect" type="TextureRect" parent="." index="2"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
expand_mode = 1
stretch_mode = 5
[node name="ScrollContainer" parent="." index="3"]
visible = false
scroll_vertical = 0
[node name="CenterContainer" type="CenterContainer" parent="." index="4"]
layout_mode = 0
anchor_right = 1.0
anchor_bottom = 1.0
size_flags_horizontal = 3
size_flags_vertical = 3
mouse_filter = 2
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer" index="0"]
custom_minimum_size = Vector2(600, 0)
layout_mode = 2
[node name="Message" type="Label" parent="CenterContainer/VBoxContainer" index="0"]
unique_name_in_owner = true
custom_minimum_size = Vector2(360, 0)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "__CALL IN PROGRESS__
---
__HANDSHAKE OVER__
__FINGERPRINT: NO-MECANIC__
/!\\ CONNEXION SECURE /!\\
---
DINO SÉRIEUX TU AS TROP FAIT LE RIGOLO, TU T'ES TROMPÉ DE BATIMENT!
"
vertical_alignment = 1
autowrap_mode = 3
[node name="CenterContainer" type="CenterContainer" parent="CenterContainer/VBoxContainer" index="1"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/VBoxContainer/CenterContainer" index="0"]
custom_minimum_size = Vector2(256, 0)
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 16
script = ExtResource("5_0ltfy")
[node name="AcceptButton1" type="Button" parent="CenterContainer/VBoxContainer/CenterContainer/HBoxContainer" index="0"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "GAME OVER"
[node name="AcceptButton2" type="Button" parent="CenterContainer/VBoxContainer/CenterContainer/HBoxContainer" index="1"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "TRY AGAIN"
[node name="EndMessagePanel" type="Panel" parent="CenterContainer" index="1"]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(360, 120)
layout_mode = 2
[node name="StartConnexion" type="Timer" parent="." index="5"]
wait_time = 0.5
one_shot = true
autostart = true
[node name="FurtherConnexion" type="Timer" parent="." index="6"]
wait_time = 0.5
one_shot = true
[node name="TextStart" type="Timer" parent="." index="7"]
one_shot = true
[node name="TimeBetweenWords" type="Timer" parent="." index="8"]
wait_time = 0.15
[node name="TimeBeforeShowButtons" type="Timer" parent="." index="9"]
wait_time = 2.0
one_shot = true
[connection signal="pressed" from="CenterContainer/VBoxContainer/CenterContainer/HBoxContainer/AcceptButton1" to="." method="start_mission"]
[connection signal="pressed" from="CenterContainer/VBoxContainer/CenterContainer/HBoxContainer/AcceptButton2" to="." method="start_mission"]
[connection signal="timeout" from="StartConnexion" to="." method="_on_start_connexion_timeout"]
[connection signal="timeout" from="FurtherConnexion" to="." method="_on_further_connexion_timeout"]
[connection signal="timeout" from="TextStart" to="." method="_on_text_start_timeout"]
[connection signal="timeout" from="TimeBetweenWords" to="." method="_on_time_between_words_timeout"]
[connection signal="timeout" from="TimeBeforeShowButtons" to="." method="_on_time_before_show_buttons_timeout"]

View File

@ -1,9 +1,9 @@
[gd_scene load_steps=5 format=3 uid="uid://domqqvcqatme5"]
[ext_resource type="PackedScene" path="res://template/scenes/credits/scrolling_credits.tscn" id="1_dqbsw"]
[ext_resource type="Script" path="res://template/scenes/end_credits/end_credits.gd" id="2_jh5yp"]
[ext_resource type="PackedScene" path="res://addons/maaacks_menus_template/base/scenes/music_players/background_music_player.tscn" id="3_fichv"]
[ext_resource type="Script" path="res://addons/maaacks_menus_template/base/scripts/capture_focus.gd" id="4_4bbwp"]
[ext_resource type="PackedScene" uid="uid://bhhphcagggc1" path="res://template/scenes/credits/scrolling_credits.tscn" id="1_dqbsw"]
[ext_resource type="Script" uid="uid://din3un0r6wp1s" path="res://template/scenes/end_credits/end_credits.gd" id="2_jh5yp"]
[ext_resource type="PackedScene" uid="uid://bkcsjsk2ciff" path="res://addons/maaacks_menus_template/base/scenes/music_players/background_music_player.tscn" id="3_fichv"]
[ext_resource type="Script" uid="uid://1nf36h0gms3q" path="res://addons/maaacks_menus_template/base/scripts/capture_focus.gd" id="4_4bbwp"]
[node name="EndCredits" instance=ExtResource("1_dqbsw")]
script = ExtResource("2_jh5yp")
@ -11,6 +11,7 @@ main_menu_scene = "res://template/scenes/menus/main_menu/main_menu_with_animatio
force_mouse_mode_visible = false
[node name="BackgroundMusicPlayer" parent="." index="0" instance=ExtResource("3_fichv")]
bus = &"Master"
[node name="BackgroundColor" type="ColorRect" parent="." index="1"]
layout_mode = 1

View File

@ -351,7 +351,7 @@ graph_offset = Vector2(-180.277, 49)
[node name="MainMenu" instance=ExtResource("1_iaw2i")]
script = ExtResource("2_mcwxw")
game_scene_path = "uid://s1cx1gvt4bed"
game_scene_path = "uid://djmvj0uqw26dg"
options_packed_scene = ExtResource("3_p7afn")
credits_packed_scene = ExtResource("4_tsej0")
@ -375,13 +375,13 @@ modulate = Color(1, 1, 1, 0)
modulate = Color(1, 1, 1, 0)
[node name="TitleLabel" parent="MenuContainer/TitleMargin/TitleContainer" index="0"]
text = "Between the lines"
text = "BETWEEN THE LINES"
[node name="SubTitleContainer" parent="MenuContainer/SubTitleMargin" index="0"]
modulate = Color(1, 1, 1, 0)
[node name="SubTitleLabel" parent="MenuContainer/SubTitleMargin/SubTitleContainer" index="0"]
text = "You better read"
text = "YOU BETTER READ"
[node name="MenuButtonsContainer" parent="MenuContainer/MenuButtonsMargin" index="0"]
modulate = Color(1, 1, 1, 0)
@ -389,10 +389,22 @@ modulate = Color(1, 1, 1, 0)
[node name="MenuButtonsBoxContainer" parent="MenuContainer/MenuButtonsMargin/MenuButtonsContainer" index="0"]
lock = true
[node name="NewGameButton" parent="MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer" index="0"]
text = "NEW GAME"
[node name="ContinueGameButton" type="Button" parent="MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer" index="1"]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Continue"
[node name="OptionsButton" parent="MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer" index="2"]
visible = false
[node name="CreditsButton" parent="MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer" index="3"]
text = "CREDITS"
[node name="ExitButton" parent="MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer" index="4"]
text = "EXIT"
[connection signal="pressed" from="MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer/ContinueGameButton" to="." method="_on_continue_game_button_pressed"]