2021-05-18 04:10:16 -04:00
|
|
|
extends AcceptDialog
|
|
|
|
|
2021-05-20 15:05:58 -04:00
|
|
|
export(String, FILE, "*.json") var dialogue_file
|
2021-05-20 18:17:44 -04:00
|
|
|
# "character" would be "name" but it's already used by the base class
|
|
|
|
export var character: String
|
2021-05-20 15:05:58 -04:00
|
|
|
export var rank: String
|
|
|
|
export(Texture) var avatar
|
|
|
|
export var dialog = 0
|
|
|
|
|
|
|
|
var dialogue_keys = []
|
|
|
|
var dialogue_name = ""
|
|
|
|
var dialogue_text = ""
|
|
|
|
|
2021-05-18 04:10:16 -04:00
|
|
|
onready var avatar_texture = $Container/Advisor/Avatar
|
|
|
|
onready var rank_label = $Container/Advisor/RankLbl
|
|
|
|
onready var name_label = $Container/Advisor/NameLbl
|
|
|
|
onready var description_label = $Container/DescriptionLbl
|
|
|
|
|
2021-05-20 15:05:58 -04:00
|
|
|
func start_dialogue():
|
|
|
|
index_dialogue()
|
|
|
|
description_label.text = dialogue_keys[dialog].text
|
2021-05-20 18:17:44 -04:00
|
|
|
window_title = dialogue_keys[dialog].name
|
2021-05-20 15:05:58 -04:00
|
|
|
|
|
|
|
|
|
|
|
func index_dialogue():
|
|
|
|
var dialogue = load_dialogue(dialogue_file)
|
|
|
|
dialogue_keys.clear()
|
|
|
|
for key in dialogue:
|
|
|
|
dialogue_keys.append(dialogue[key])
|
|
|
|
|
|
|
|
func load_dialogue(file_path):
|
|
|
|
var file = File.new()
|
|
|
|
if file.file_exists(file_path):
|
|
|
|
file.open(file_path, file.READ)
|
|
|
|
var dialogue = parse_json(file.get_as_text())
|
|
|
|
return dialogue
|
2021-05-18 04:10:16 -04:00
|
|
|
|
|
|
|
func _ready():
|
2021-05-20 15:05:58 -04:00
|
|
|
load_dialogue(dialogue_file)
|
|
|
|
start_dialogue()
|
2021-05-18 04:10:16 -04:00
|
|
|
avatar_texture.texture = avatar
|
2021-05-20 18:17:44 -04:00
|
|
|
name_label.text = character
|
2021-05-18 04:10:16 -04:00
|
|
|
rank_label.text = rank
|