diff options
| author | Jan Tuomi <jan.tuomi@valuemotive.com> | 2020-08-01 20:16:14 +0300 |
|---|---|---|
| committer | Jan Tuomi <jan.tuomi@valuemotive.com> | 2020-08-01 20:16:14 +0300 |
| commit | f89994a8558ba59388c77b968ce5712bd709e15a (patch) | |
| tree | 76d6c01b6812b441736c9706b9636e55a86dca36 /scripts/Game.gd | |
| parent | 3bcbdb538b69135907caf9e0ecc224a95c133155 (diff) | |
Improve stuff
Diffstat (limited to 'scripts/Game.gd')
| -rw-r--r-- | scripts/Game.gd | 23 |
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) |
