123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- extends RichTextLabel
-
- @onready var message_timer = $MessageTimer
-
- @onready var json_content: Dictionary
- @onready var message_lines: Dictionary
- @onready var messages_seen: Array
-
- @onready var lines_file_path = "res://text/message_lines.json"
-
- @export var lines_displayed = []
- @export var sequences = [
- {"value": 0, "type": "score", "name": "introduction", "seen": true, "done": false},
- {"value": 1, "type": "score", "name": "get_to_10", "seen": false, "done": false},
- {"value": 10, "type": "score", "name": "explain_mechanism", "seen": false, "done": false},
- {"value": 25, "type": "score", "name": "bought_generator", "seen": false, "done": false},
- {"value": 100, "type": "scorepersecond", "name": "afford_analyzer", "seen": false, "done": false}
- ]
-
- signal section_ended(section_name)
-
- # Called when the node enters the scene tree for the first time.
- func _ready():
- set_scroll_follow(true)
-
- # Called every frame. 'delta' is the elapsed time since the previous frame.
- func _process(_delta):
- pass
-
- func show_message_by_id(section: String, idnum: int):
- var unique_id = section + str(idnum)
- if unique_id not in messages_seen:
- show_message(message_lines[section][idnum])
- messages_seen.append(unique_id)
-
-
- func show_message(msg):
- lines_displayed.append(_centered_message(msg))
- #var new_text = _nl_append(message.text, _centered_message(msg))
- text = ("\n").join(lines_displayed)
- show()
-
- func _nl_append(msg1, msg2):
- return msg1 + "\n" + msg2
-
- func _centered_message(msg):
- return "[center]" + msg + "[/center]"
-
- func display_message_section(section_name):
- print("Displaying " + section_name + ".")
- var num_messages = message_lines[section_name].size()
- for i in num_messages:
- show_message_by_id(section_name, i)
- await get_tree().create_timer(1.0).timeout
- section_ended.emit(section_name)
-
- func _on_interface_ready():
- print("Narration received interface_ready signal.")
- var main_sequence_messages = json_content["main_sequence_messages"]
- # These dialogue sets are now lists of lists
-
- print("Got " + str(main_sequence_messages.size()) + " message sections from JSON")
- for i in sequences.size():
- var section_name = sequences[i]["name"]
- message_lines[section_name] = main_sequence_messages[i]
- display_message_section("introduction")
|