This repository has been archived on 2024-02-25. You can view files and clone it, but cannot push or open issues or pull requests.
Wol/Dialogue.gd
2021-11-27 22:05:24 +01:00

58 lines
1.2 KiB
GDScript

extends Control
func _ready():
$RichTextLabel/Logo.hide()
$VBoxContainer/ButtonTemplate.hide()
$Wol.connect('line', self, '_on_line')
$Wol.connect('options', self, '_on_options')
$Wol.connect('finished', self, '_on_finished')
func continue_dialogue():
if $Tween.is_active():
$Tween.remove_all()
$RichTextLabel.percent_visible = 1.0
return
$Wol.resume()
func _on_line(line):
$RichTextLabel.bbcode_text = line.text
$Tween.remove_all()
$Tween.interpolate_property(
$RichTextLabel,
'percent_visible',
.0,
1.0,
.02 * line.text.length()
)
$Tween.start()
func _on_options(options):
var button_template = $VBoxContainer/ButtonTemplate
for option in options:
var button = button_template.duplicate()
button.text = option.line.text
button.name = 'Option%d' % option.id
$VBoxContainer.add_child(button)
button.connect('pressed', self, '_on_option_selected', [option])
button.show()
func _on_option_selected(option):
$Wol.select_option(option.id)
for child in $VBoxContainer.get_children():
if not 'Template' in child.name:
child.queue_free()
func _on_finished():
$RichTextLabel.text = ''
func _input(event):
if event is InputEventKey and event.scancode == KEY_ENTER and event.pressed:
continue_dialogue()