summaryrefslogtreecommitdiffstats
path: root/scripts/Game.gd
diff options
context:
space:
mode:
authorJan Tuomi <jan.tuomi@valuemotive.com>2020-08-01 20:16:14 +0300
committerJan Tuomi <jan.tuomi@valuemotive.com>2020-08-01 20:16:14 +0300
commitf89994a8558ba59388c77b968ce5712bd709e15a (patch)
tree76d6c01b6812b441736c9706b9636e55a86dca36 /scripts/Game.gd
parent3bcbdb538b69135907caf9e0ecc224a95c133155 (diff)
Improve stuff
Diffstat (limited to 'scripts/Game.gd')
-rw-r--r--scripts/Game.gd23
1 files changed, 16 insertions, 7 deletions
diff --git a/scripts/Game.gd b/scripts/Game.gd
index 087b5e1..09dd538 100644
--- a/scripts/Game.gd
+++ b/scripts/Game.gd
@@ -1,15 +1,14 @@
extends Node
class_name Game
-onready var gui: GUI = $CanvasLayer/GUI
-# Declare member variables here. Examples:
-# var a = 2
-# var b = "text"
+onready var gui: GUI = $CanvasLayer/GUI
+var in_dialogue_with: Node = null
# Called when the node enters the scene tree for the first time.
func _ready():
update_debug_gui()
+ connect_signals()
# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
@@ -18,10 +17,16 @@ func _ready():
func update_debug_gui():
var current_level = $Level.get_filename()
gui.set_debug_text("Level: %s" % current_level)
+
+func connect_signals():
+ var err = $Level/YSort/PlayerCharacter.connect("initiate_dialogue", self, "_on_PlayerCharacter_initiate_dialogue")
+ if err:
+ push_error(err)
func _on_Level_ready():
yield(get_tree(), "idle_frame")
update_debug_gui()
+ connect_signals()
func change_level(num: int):
var new_scene = "res://scenes/Level%s.tscn" % num
@@ -41,14 +46,18 @@ func change_level(num: int):
self.add_child(new_level)
new_level.set_name("Level")
-func run_dialogue(other: Node2D):
- var dialogues: Array = other.get_dialogue()
+func _on_PlayerCharacter_initiate_dialogue(other: Node):
+ in_dialogue_with = other
+ var dialogues = other.get_dialogue()
$CanvasLayer/GUI/BottomRow/DialogueBox.set_visible(true)
+
for d in dialogues:
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])
- yield(get_tree().create_timer(1.0), "timeout")
+
+ yield($Level/YSort/PlayerCharacter, "end_dialogue")
+ in_dialogue_with = null
$CanvasLayer/GUI/BottomRow/DialogueBox.set_visible(false)