crabs-game/scripts/DialogueBox.gd

44 lines
855 B
GDScript3
Raw Normal View History

2020-08-16 08:50:04 +02:00
extends Control
class_name DialogueBox
signal end
export (NodePath) var title_path
onready var title = get_node(title_path) as RichTextLabel
export (NodePath) var text_path
onready var text = get_node(text_path) as RichTextLabel
export (NodePath) var expression_path
onready var expression = get_node(expression_path) as RichTextLabel
var _dialogue : Array
var _index : int
func _ready():
assert(title != null)
assert(text != null)
func start(dialogue : Array):
_dialogue = dialogue
_index = 0
_update()
show()
func _input(event):
if event.is_action_pressed("ui_accept"):
next()
func next() -> void:
_index += 1
if _index >= _dialogue.size():
hide()
emit_signal('end')
return
_update()
func _update() -> void:
text.text = _dialogue[_index].text
title.text = _dialogue[_index].name
#expression = _dialogue[_index].expression