Files

47 lines
1.2 KiB
GDScript

class_name Intro
extends Node
const DIALOGS: Array[String] = [
"Every few thousands years,",
"an evil entity breaks free",
"from the ancient sacred seal.",
"...",
"The evil is coming back",
"and only you can save us",
"Every one is counting on you",
"...",
"Good luck brave one",
]
const CHAR_DELAY: float = 0.04
const LINE_PAUSE: float = 2.0
var _full_text: String = ""
@onready var log_label: RichTextLabel = $CanvasLayer/Label
@onready var background: ColorRect = $CanvasLayer/Background
func _ready() -> void:
log_label.text = ""
_play_sequence()
func _play_sequence() -> void:
for line in DIALOGS:
await _type_line(line)
await get_tree().create_timer(LINE_PAUSE).timeout
_full_text += "\n"
# Fade out
var tween: Tween = create_tween()
tween.tween_property(background, "modulate:a", 0.0, 1.2)
await tween.finished
if OS.get_name() == "Web":
JavaScriptBridge.eval("document.querySelector('canvas').focus()")
SceneManager.change_scene("res://scenes/levels/act1_section1.tscn")
func _type_line(line: String) -> void:
for i in line.length():
_full_text += line[i]
log_label.text = _full_text
await get_tree().create_timer(CHAR_DELAY).timeout