diff options
| author | Jan Tuomi <jan.tuomi@valuemotive.com> | 2020-08-01 20:27:03 +0300 |
|---|---|---|
| committer | Jan Tuomi <jan.tuomi@valuemotive.com> | 2020-08-01 20:27:03 +0300 |
| commit | c438ce2976c4dda931918c019a25e00104d0cbc2 (patch) | |
| tree | 5e8a1a6818fe82d6a51fba3a1040a40c1f6bad94 /scripts | |
| parent | f89994a8558ba59388c77b968ce5712bd709e15a (diff) | |
Improve dialogue system
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/DwarfNPC.gd | 3 | ||||
| -rw-r--r-- | scripts/GUI.gd | 9 | ||||
| -rw-r--r-- | scripts/Game.gd | 9 |
3 files changed, 15 insertions, 6 deletions
diff --git a/scripts/DwarfNPC.gd b/scripts/DwarfNPC.gd index 178179a..8fa7b24 100644 --- a/scripts/DwarfNPC.gd +++ b/scripts/DwarfNPC.gd @@ -23,4 +23,5 @@ func _process(_delta): $Sprite.set_scale(Vector2(dir, 1)) func get_dialogue(): - return [{ "name": "Dwarf", "body": "Hello, I'm a dwarf." }] + return [{ "name": "Dwarf", "body": "Hello, I'm a dwarf." }, + { "name": "Dwarf", "body": "How's it going?" }] diff --git a/scripts/GUI.gd b/scripts/GUI.gd index a4ec573..de1106f 100644 --- a/scripts/GUI.gd +++ b/scripts/GUI.gd @@ -3,10 +3,7 @@ class_name GUI export (bool) var show_debug = true onready var debug_label = $TopRow/DebugLabel -# Declare member variables here. Examples: -# var a = 2 -# var b = "text" - +signal dialogue_next() # Called when the node enters the scene tree for the first time. func _ready(): @@ -18,3 +15,7 @@ func _process(_delta): func set_debug_text(text: String): debug_label.set_text(text) + + +func _on_NextButton_pressed(): + emit_signal("dialogue_next") diff --git a/scripts/Game.gd b/scripts/Game.gd index 09dd538..bb74c44 100644 --- a/scripts/Game.gd +++ b/scripts/Game.gd @@ -51,13 +51,20 @@ func _on_PlayerCharacter_initiate_dialogue(other: Node): var dialogues = other.get_dialogue() $CanvasLayer/GUI/BottomRow/DialogueBox.set_visible(true) - for d in dialogues: + for i in range(dialogues.size()): + var d = dialogues[i] var name = d["name"] var body = d["body"] $CanvasLayer/GUI/BottomRow/DialogueBox/Name.set_text(name) $CanvasLayer/GUI/BottomRow/DialogueBox/Text.set_text(body) print("[%s] %s" % [name, body]) + if dialogues.size() - i > 1: + yield($CanvasLayer/GUI, "dialogue_next") yield($Level/YSort/PlayerCharacter, "end_dialogue") in_dialogue_with = null $CanvasLayer/GUI/BottomRow/DialogueBox.set_visible(false) + + +func _on_GUI_dialogue_next(): + pass # Replace with function body. |
