Files
EGJ25/scenes/text_wrappers/text_wrapper.gd

67 lines
1.8 KiB
GDScript3
Raw Normal View History

2025-06-28 12:38:45 +02:00
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
2025-06-28 21:37:41 +02:00
@onready var failed_audio: AudioStreamPlayer2D = $FailedAudio
@onready var aha_audio: AudioStreamPlayer2D = $AHAAudio
2025-06-28 12:38:45 +02:00
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_before_show_buttons.start()
2025-06-28 22:37:16 +02:00
# failed_audio.play()
2025-06-28 12:38:45 +02:00
time_between_words.start()
func _on_time_between_words_timeout() -> void:
if text_fine_split.is_empty():
2025-06-28 13:02:47 +02:00
time_between_words.stop()
2025-06-28 12:38:45 +02:00
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