prog
This commit is contained in:
9
addons/madtalk/runtime/CharacterData.gd
Normal file
9
addons/madtalk/runtime/CharacterData.gd
Normal file
@@ -0,0 +1,9 @@
|
||||
extends Resource
|
||||
class_name MTCharacterData
|
||||
|
||||
|
||||
@export var id: String = ""
|
||||
@export var name: String = ""
|
||||
@export var avatar: Texture2D = null
|
||||
|
||||
@export var variants: Dictionary = {}
|
1
addons/madtalk/runtime/CharacterData.gd.uid
Normal file
1
addons/madtalk/runtime/CharacterData.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://crm8hyh7nn5vb
|
307
addons/madtalk/runtime/MadTalkGlobals.gd
Normal file
307
addons/madtalk/runtime/MadTalkGlobals.gd
Normal file
@@ -0,0 +1,307 @@
|
||||
extends Node
|
||||
|
||||
var is_during_dialog = false
|
||||
var is_during_cinematic = false
|
||||
|
||||
var variables := {
|
||||
}
|
||||
var options_visited_global := {
|
||||
}
|
||||
var options_visited_dialog := {
|
||||
}
|
||||
|
||||
var time = 0
|
||||
var gametime_offset = 0
|
||||
var gametime_year = 1
|
||||
|
||||
@onready var gametime = epoch_to_game_time(time)
|
||||
|
||||
func set_variable(var_name: String, var_value) -> void:
|
||||
variables[var_name] = var_value
|
||||
|
||||
func get_variable(var_name: String, default = 0.0):
|
||||
if var_name in variables:
|
||||
return variables[var_name]
|
||||
else:
|
||||
return default
|
||||
|
||||
func set_option_visited(option: DialogNodeOptionData, visited: bool):
|
||||
options_visited_global[option.resource_scene_unique_id] = visited
|
||||
options_visited_dialog[option.resource_scene_unique_id] = visited
|
||||
|
||||
func get_option_visited_global(option: DialogNodeOptionData) -> bool:
|
||||
if not option.resource_scene_unique_id in options_visited_global:
|
||||
return false
|
||||
return options_visited_global[option.resource_scene_unique_id]
|
||||
|
||||
func get_option_visited_dialog(option: DialogNodeOptionData) -> bool:
|
||||
if not option.resource_scene_unique_id in options_visited_dialog:
|
||||
return false
|
||||
return options_visited_dialog[option.resource_scene_unique_id]
|
||||
|
||||
func reset_options_visited_dialog():
|
||||
options_visited_dialog.clear()
|
||||
|
||||
|
||||
# ==============================================================================
|
||||
# LOCALE
|
||||
|
||||
var default_locale := "en"
|
||||
var current_locale := ""
|
||||
|
||||
|
||||
func set_locale(locale_code: String):
|
||||
current_locale = locale_code
|
||||
if current_locale == default_locale:
|
||||
current_locale = ""
|
||||
|
||||
|
||||
func set_default_locale(locale_code: String):
|
||||
default_locale = locale_code
|
||||
if current_locale == default_locale:
|
||||
current_locale = ""
|
||||
|
||||
|
||||
func set_locale_automatic(def_locale: String = default_locale):
|
||||
default_locale = def_locale
|
||||
var locale = OS.get_locale_language()
|
||||
set_locale(locale)
|
||||
|
||||
|
||||
func set_locale_from_project(def_locale: String = default_locale):
|
||||
default_locale = def_locale
|
||||
var locale = TranslationServer.get_locale()
|
||||
if "_" in locale:
|
||||
locale = locale.left(locale.find("_"))
|
||||
set_locale(locale)
|
||||
|
||||
|
||||
# ==============================================================================
|
||||
# TIME
|
||||
|
||||
func set_game_year(year: int) -> void:
|
||||
gametime_year = year
|
||||
var dt = {
|
||||
"year": year,
|
||||
"month": 1,
|
||||
"day": 1,
|
||||
"hour": 0,
|
||||
"minute": 0,
|
||||
"second": 0
|
||||
}
|
||||
gametime_offset = Time.get_unix_time_from_datetime_dict(dt)
|
||||
gametime = epoch_to_game_time(time)
|
||||
|
||||
##
|
||||
# Returns datetime in game reference (that is,
|
||||
# start of game is 01/01/0001 00:00:00)
|
||||
# Can be seen as "elapsed gameplay time"
|
||||
func epoch_to_game_time(epoch_time: int) -> Dictionary:
|
||||
# Date time dictionary has the format:
|
||||
# {
|
||||
# "year": ...,
|
||||
# "month": ...,
|
||||
# "day": ...,
|
||||
# "weekday": ...,
|
||||
# "hour": ...,
|
||||
# "minute": ...,
|
||||
# "second": ...
|
||||
# }
|
||||
# Custom values added here are:
|
||||
# "time": String hour/minute in format HH:MM
|
||||
# "date": String day/month in format DD/MM
|
||||
# "date_inv": String day/month in format MM/DD
|
||||
|
||||
var dt = Time.get_datetime_dict_from_unix_time(gametime_offset + epoch_time)
|
||||
dt["year"] -= gametime_year-1 # year - 1, so starts at year 1
|
||||
dt["time"] = "%02d:%02d" % [dt["hour"], dt["minute"]]
|
||||
dt["date"] = "%02d/%02d" % [dt["day"], dt["month"]]
|
||||
dt["date_inv"] = "%02d/%02d" % [dt["month"], dt["day"]]
|
||||
dt["weekday_name"] = MTDefs.WeekdayNames[dt["weekday"]]
|
||||
dt["wday_name"] = MTDefs.WeekdayNamesShort[dt["weekday"]]
|
||||
return dt
|
||||
|
||||
# Converts day, month, year to unix epoch time
|
||||
func game_time_to_epoch(p_gametime: Dictionary) -> int:
|
||||
p_gametime["year"] += gametime_year-1 # Year 1 is base,
|
||||
return Time.get_unix_time_from_datetime_dict(p_gametime) - gametime_offset
|
||||
|
||||
func update_gametime_dict():
|
||||
gametime = epoch_to_game_time(time)
|
||||
|
||||
|
||||
# Converts day, month, year to unix epoch time
|
||||
func date_to_int(day: int, month: int, year: int) -> int:
|
||||
return game_time_to_epoch({
|
||||
"year": year, "month": month, "day": day,
|
||||
"hour": 0, "minute": 0, "second": 0
|
||||
})
|
||||
|
||||
# Converts hour, minute to float fractional hour
|
||||
# Example: 2, 30 becomes 2.5
|
||||
func time_to_float(hour: int, minute: int) -> float:
|
||||
return float(hour) + float(minute)/60.0
|
||||
|
||||
func time_to_string(epoch_time: int, simplified: bool = true) -> String:
|
||||
# Date time dictionary has the format:
|
||||
# {
|
||||
# "year": ...,
|
||||
# "month": ...,
|
||||
# "day": ...,
|
||||
# "weekday": ...,
|
||||
# "hour": ...,
|
||||
# "minute": ...,
|
||||
# "second": ...
|
||||
# }
|
||||
var dt = epoch_to_game_time(epoch_time)
|
||||
var res = ""
|
||||
|
||||
# Simplified version is Weekday HH:MM
|
||||
if (simplified):
|
||||
res = MTDefs.WeekdayNames[dt['weekday']].left(3)
|
||||
res += " %02d:%02d" % [dt['hour'], dt['minute']]
|
||||
|
||||
# Non-simplified is Weekday, DD of MonthName HH:MM
|
||||
else:
|
||||
res = MTDefs.WeekdayNames[dt['weekday']]
|
||||
res += ", "+str(dt['day'])
|
||||
res += " "+MTDefs.MonthNames[dt['month']]
|
||||
res += " %02d:%02d" % [dt['hour'], dt['minute']]
|
||||
|
||||
return res
|
||||
|
||||
|
||||
func split_time(value: String) -> Array:
|
||||
# TODO: this is not very efficient code. To be rewritten to run faster
|
||||
var nums_psa = Array(str(value).split(':'))
|
||||
while nums_psa.size() < 2:
|
||||
nums_psa.append(0)
|
||||
var nums = [int(nums_psa[0]), int(nums_psa[1])]
|
||||
if (nums[0] < 0) or (nums[0] > 23):
|
||||
nums[0] = 0
|
||||
if (nums[1] < 0) or (nums[1] > 59):
|
||||
nums[1] = 0
|
||||
return [nums[0], nums[1]]
|
||||
|
||||
func split_date(value: String) -> Array:
|
||||
# TODO: this is not very efficient code. To be rewritten to run faster
|
||||
var nums_psa = Array(str(value).split('/'))
|
||||
while nums_psa.size() < 2:
|
||||
nums_psa.append(1)
|
||||
var nums = [int(nums_psa[0]), int(nums_psa[1])]
|
||||
if (nums[0] < 1) or (nums[0] > 31):
|
||||
nums[0] = 1
|
||||
if (nums[1] < 1) or (nums[1] > 12):
|
||||
nums[1] = 1
|
||||
return [nums[0], nums[1]]
|
||||
|
||||
func print_date(value: String) -> String:
|
||||
var nums = split_date(value)
|
||||
var day = "%02d" % nums[0]
|
||||
var month = MTDefs.MonthNames[nums[1]].left(3)
|
||||
return day+' '+month
|
||||
|
||||
func print_weekday(value):
|
||||
while value > 6:
|
||||
value -= 7
|
||||
return MTDefs.WeekdayNames[value]
|
||||
|
||||
func split_string_autodetect_rn(value: String) -> Array:
|
||||
var result = []
|
||||
|
||||
value = str(value)
|
||||
|
||||
if "\r\n" in value:
|
||||
# Windows style
|
||||
result = value.split("\r\n")
|
||||
elif "\r" in value:
|
||||
# MacOS style
|
||||
result = value.split("\r")
|
||||
else:
|
||||
# Unix style
|
||||
result = value.split("\n")
|
||||
|
||||
return result
|
||||
|
||||
|
||||
func next_time_at_time(time_value: String) -> int:
|
||||
var asked_time = split_time(time_value)
|
||||
|
||||
# We calculate epoch time value for the requested hour happening today
|
||||
# if we are before this time, this is what we want
|
||||
var ingame_time_as_today = game_time_to_epoch({
|
||||
"year": gametime["year"],
|
||||
"month": gametime["month"],
|
||||
"day": gametime["day"],
|
||||
"hour": asked_time[0],
|
||||
"minute": asked_time[1],
|
||||
"second": 0
|
||||
})
|
||||
|
||||
if time <= ingame_time_as_today:
|
||||
return ingame_time_as_today
|
||||
|
||||
# If we are after this time, we want the same time but tomorrow
|
||||
# so we add 24 hours
|
||||
else:
|
||||
return ingame_time_as_today + 24*60*60 # seconds
|
||||
|
||||
func next_time_at_weekday(weekday: int) -> int:
|
||||
# First we find the weekday delta handling when the requested weekday
|
||||
# is lower (or equal) than current one
|
||||
var asked_weekday = weekday if weekday > gametime["weekday"] else weekday + 7
|
||||
var weekday_delta = asked_weekday - gametime["weekday"]
|
||||
|
||||
# Find time for midnight of today
|
||||
var ingame_midnight_today = game_time_to_epoch({
|
||||
"year": gametime["year"],
|
||||
"month": gametime["month"],
|
||||
"day": gametime["day"],
|
||||
"hour": 0,
|
||||
"minute": 0,
|
||||
"second": 0
|
||||
})
|
||||
# Finally we just offset the weekday_delta days into the future
|
||||
return ingame_midnight_today + weekday_delta*24*60*60 # seconds
|
||||
|
||||
|
||||
func export_game_data() -> Dictionary:
|
||||
var visited_options := {}
|
||||
for item_ui in options_visited_global:
|
||||
visited_options[item_ui] = "1" if options_visited_global[item_ui] else "0"
|
||||
|
||||
var result = {
|
||||
"time": time,
|
||||
"gametime_offset": gametime_offset,
|
||||
"gametime_year": gametime_year,
|
||||
"variables": variables,
|
||||
"visited_options": visited_options,
|
||||
}
|
||||
return result
|
||||
|
||||
func import_game_data(data: Dictionary) -> void:
|
||||
if ("time" in data):
|
||||
time = int(round(float(data["time"])))
|
||||
if ("gametime_offset" in data):
|
||||
gametime_offset = int(round(float(data["gametime_offset"])))
|
||||
if ("gametime_year" in data):
|
||||
gametime_year = int(round(float(data["gametime_year"])))
|
||||
|
||||
options_visited_global.clear()
|
||||
if "visited_options" in data:
|
||||
var visited_dict: Dictionary = data["visited_options"]
|
||||
for item_ui in visited_dict:
|
||||
# If coming from a saved file, item_ui will never be StringName
|
||||
# but this Dictionary might be coming from a serialized Resource (bad idea, but still)
|
||||
if (item_ui is String) or (item_ui is StringName):
|
||||
options_visited_global[item_ui] = (not visited_dict[item_ui] in [false, "false", 0, 0.0, "0", "0.0", "no"])
|
||||
|
||||
variables.clear()
|
||||
for variable_name in data["variables"]:
|
||||
if variable_name is String:
|
||||
var value = data["variables"][variable_name]
|
||||
if typeof(value) in [TYPE_INT, TYPE_FLOAT, TYPE_STRING]:
|
||||
# All numeric values can be safely assumed float (as per JSON)
|
||||
# since all methods using them do proper casting
|
||||
variables[variable_name] = value
|
||||
# Silently ignore everything else
|
1
addons/madtalk/runtime/MadTalkGlobals.gd.uid
Normal file
1
addons/madtalk/runtime/MadTalkGlobals.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://d02cnw1l6owsy
|
6
addons/madtalk/runtime/MadTalkGlobals.tscn
Normal file
6
addons/madtalk/runtime/MadTalkGlobals.tscn
Normal file
@@ -0,0 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://domdph40m3s8i"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://d02cnw1l6owsy" path="res://addons/madtalk/runtime/MadTalkGlobals.gd" id="1_tbidr"]
|
||||
|
||||
[node name="MadTalkGlobals" type="Node"]
|
||||
script = ExtResource("1_tbidr")
|
912
addons/madtalk/runtime/madtalk_data.tres
Normal file
912
addons/madtalk/runtime/madtalk_data.tres
Normal file
@@ -0,0 +1,912 @@
|
||||
[gd_resource type="Resource" script_class="DialogData" load_steps=73 format=3 uid="uid://dxkjjrap15vxu"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bw2q2eucjkylk" path="res://addons/madtalk/components/resources/DialogData.gd" id="1_giduu"]
|
||||
[ext_resource type="Script" uid="uid://c2bv5lwcvdmrb" path="res://addons/madtalk/components/resources/DialogNodeItemData.gd" id="2_48vp3"]
|
||||
[ext_resource type="Script" uid="uid://bfg2ff7c0tanh" path="res://addons/madtalk/components/resources/DialogNodeOptionData.gd" id="3_dways"]
|
||||
[ext_resource type="Script" uid="uid://b2mrnotqjr75d" path="res://addons/madtalk/components/resources/DialogNodeData.gd" id="4_f2ijm"]
|
||||
[ext_resource type="Script" uid="uid://butd1fwy4a2hn" path="res://addons/madtalk/components/resources/DialogSheetData.gd" id="5_vkpn8"]
|
||||
|
||||
[sub_resource type="Resource" id="1"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = "foo"
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "This is an example sheet. You can rename and use it, or discard and create your own."
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="4"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "Would you like to see more dialog messages?"
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 1
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="5"]
|
||||
script = ExtResource("3_dways")
|
||||
text = "Yes"
|
||||
text_locales = {}
|
||||
connected_to_id = 8
|
||||
is_conditional = false
|
||||
condition_variable = ""
|
||||
condition_operator = "="
|
||||
condition_value = ""
|
||||
autodisable_mode = 0
|
||||
inactive_mode = 0
|
||||
|
||||
[sub_resource type="Resource" id="6"]
|
||||
script = ExtResource("3_dways")
|
||||
text = "No"
|
||||
text_locales = {}
|
||||
connected_to_id = -1
|
||||
is_conditional = false
|
||||
condition_variable = ""
|
||||
condition_operator = "="
|
||||
condition_value = ""
|
||||
autodisable_mode = 0
|
||||
inactive_mode = 0
|
||||
|
||||
[sub_resource type="Resource" id="2"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 0
|
||||
position = Vector2(-20, 120)
|
||||
comment = ""
|
||||
items = [SubResource("1"), SubResource("4")]
|
||||
options = [SubResource("5"), SubResource("6")]
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = -1
|
||||
|
||||
[sub_resource type="Resource" id="v4udn"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 2
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = ""
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 10
|
||||
condition_values = []
|
||||
effect_type = 1
|
||||
effect_values = ["my_var", 5.0]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_jrxya"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "my_var was set to: <<my_var>>
|
||||
{{if my_var < 4: Since it's less than 4, you see this message.}}
|
||||
{{if my_var < 6: Since it's less than 6, you see this message.}}"
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 10
|
||||
condition_values = []
|
||||
effect_type = 10
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ixt6j"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 6
|
||||
position = Vector2(920, 120)
|
||||
comment = ""
|
||||
items = [SubResource("v4udn"), SubResource("Resource_jrxya")]
|
||||
options = []
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = 0
|
||||
|
||||
[sub_resource type="Resource" id="7"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = "bar"
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "The speaker IDs are \"foo\" and \"bar\", but the display names are \"Maria\" and \"Francesco\"."
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="8"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = "bar"
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "This is so you can have fancy nice looking display names, but you don't have to type them all the time in the system."
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="9"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "A blank speaker ID is valid. If there are no characters with blank ID, it's treated as empty name."
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="Resource_j2kw6"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 8
|
||||
position = Vector2(460, 60)
|
||||
comment = ""
|
||||
items = [SubResource("7"), SubResource("8"), SubResource("9")]
|
||||
options = []
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = 0
|
||||
|
||||
[sub_resource type="Resource" id="3"]
|
||||
script = ExtResource("5_vkpn8")
|
||||
sheet_id = "1_start_here"
|
||||
sheet_description = "Demonstration sheet. You can delete this in your game, or repurpose it."
|
||||
next_sequence_id = 9
|
||||
nodes = [SubResource("2"), SubResource("Resource_ixt6j"), SubResource("Resource_j2kw6")]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_vx7w3"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "This example demonstrates the bare minimum nodes you need for the dialog to work."
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 10
|
||||
condition_values = []
|
||||
effect_type = 10
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="Resource_duvjw"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 0
|
||||
position = Vector2(0, 0)
|
||||
comment = ""
|
||||
items = [SubResource("Resource_vx7w3")]
|
||||
options = []
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = 0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_sxgqo"]
|
||||
script = ExtResource("5_vkpn8")
|
||||
sheet_id = "bare_minimum"
|
||||
sheet_description = ""
|
||||
next_sequence_id = 2
|
||||
nodes = [SubResource("Resource_duvjw")]
|
||||
|
||||
[sub_resource type="Resource" id="12"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "If you do not assign a node to Dialog Button Container (dialog_buttons_container), automatic menu will not be enabled.
|
||||
In this case, if you want menu options, you have to process the menu externally.
|
||||
(You can, however, have dialogs without menus: simply never use menu options.)"
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="13"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "If you [b][i]do[/i][/b] use menu options in the dialog sheet, and do not assign a node for automatic menus and also do not handle the menu externally, then menus will not work (attempting to show menu options will cause the dialog to get stuck)."
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="16"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "Processing the menu externally is easy:
|
||||
When the dialog reaches a menu, the [color=#99ff00][b]external_menu_requested([color=#ff9955]options, metadata[/color])[/b][/color] signal is called, where [color=#ff9955][b]options[/b][/color] is an Array with the menu options, and [color=#ff9955][b]metadata[/b][/color] is an Array of Dictionaries.
|
||||
Each item has a [color=#99ffff][b]text[/b][/color] property containing the text for that option, from the dialog sheet.
|
||||
So [b][color=#ff9955]options[[color=#ffff00]0[/color]][/color].[color=#99ffff]text[/color][/b] is the text for first option, and [b][color=#ff9955]metadata[lb][color=#ffff00]0[/color][rb][lb][color=#ffff99]\"enabled\"[/color][rb][/color][/b] is the bool indicating if that option is enabled, etc."
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="17"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "The menu will then pause and wait for your code to select one of the options from that array.
|
||||
You take the input from the player in any way you like, and then select an option by calling the method [b][color=#9999ff]select_menu_option( [color=#ffff00]index[/color] )[/color][/b] where the argument is the index of the desired option from the [color=#ff9955][b]options[/b][/color] array.
|
||||
Selecting an invalid index is simply ignored."
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="18"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "Using external menus, the option text can be used as IDs, as CSV lines packing several fields, or any other purpose you like, since building the menu is up to you.
|
||||
This way you can have more control and flexibility, while still having all the dialog managed by MadTalk."
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="14"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 0
|
||||
position = Vector2(0, 0)
|
||||
comment = ""
|
||||
items = [SubResource("12"), SubResource("13"), SubResource("16"), SubResource("17"), SubResource("18")]
|
||||
options = []
|
||||
continue_sequence_id = 1
|
||||
continue_port_index = 0
|
||||
|
||||
[sub_resource type="Resource" id="19"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "Please select an option with double click."
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 1
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="20"]
|
||||
script = ExtResource("3_dways")
|
||||
text = "red,PokaTola"
|
||||
text_locales = {}
|
||||
connected_to_id = 2
|
||||
is_conditional = false
|
||||
condition_variable = ""
|
||||
condition_operator = "="
|
||||
condition_value = ""
|
||||
autodisable_mode = 0
|
||||
inactive_mode = 0
|
||||
|
||||
[sub_resource type="Resource" id="21"]
|
||||
script = ExtResource("3_dways")
|
||||
text = "red,PokaTola Diet"
|
||||
text_locales = {}
|
||||
connected_to_id = 3
|
||||
is_conditional = false
|
||||
condition_variable = ""
|
||||
condition_operator = "="
|
||||
condition_value = ""
|
||||
autodisable_mode = 0
|
||||
inactive_mode = 0
|
||||
|
||||
[sub_resource type="Resource" id="22"]
|
||||
script = ExtResource("3_dways")
|
||||
text = "blue,Zepsi"
|
||||
text_locales = {}
|
||||
connected_to_id = 4
|
||||
is_conditional = false
|
||||
condition_variable = ""
|
||||
condition_operator = "="
|
||||
condition_value = ""
|
||||
autodisable_mode = 0
|
||||
inactive_mode = 0
|
||||
|
||||
[sub_resource type="Resource" id="23"]
|
||||
script = ExtResource("3_dways")
|
||||
text = "blue,Zepsi Zero"
|
||||
text_locales = {}
|
||||
connected_to_id = 5
|
||||
is_conditional = false
|
||||
condition_variable = ""
|
||||
condition_operator = "="
|
||||
condition_value = ""
|
||||
autodisable_mode = 0
|
||||
inactive_mode = 0
|
||||
|
||||
[sub_resource type="Resource" id="25"]
|
||||
script = ExtResource("3_dways")
|
||||
text = "green,Buaraná Ankartida"
|
||||
text_locales = {}
|
||||
connected_to_id = 6
|
||||
is_conditional = false
|
||||
condition_variable = ""
|
||||
condition_operator = "="
|
||||
condition_value = ""
|
||||
autodisable_mode = 0
|
||||
inactive_mode = 0
|
||||
|
||||
[sub_resource type="Resource" id="26"]
|
||||
script = ExtResource("3_dways")
|
||||
text = "yellow,Strike"
|
||||
text_locales = {}
|
||||
connected_to_id = 7
|
||||
is_conditional = false
|
||||
condition_variable = ""
|
||||
condition_operator = "="
|
||||
condition_value = ""
|
||||
autodisable_mode = 0
|
||||
inactive_mode = 0
|
||||
|
||||
[sub_resource type="Resource" id="24"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 1
|
||||
position = Vector2(600, 40)
|
||||
comment = ""
|
||||
items = [SubResource("19")]
|
||||
options = [SubResource("20"), SubResource("21"), SubResource("22"), SubResource("23"), SubResource("25"), SubResource("26")]
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = -1
|
||||
|
||||
[sub_resource type="Resource" id="27"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "You have selected the normal PokaTola"
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="28"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 2
|
||||
position = Vector2(1280, -320)
|
||||
comment = ""
|
||||
items = [SubResource("27")]
|
||||
options = []
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = 0
|
||||
|
||||
[sub_resource type="Resource" id="29"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "You have selected the Diet PokaTola"
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="30"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 3
|
||||
position = Vector2(1280, -120)
|
||||
comment = ""
|
||||
items = [SubResource("29")]
|
||||
options = []
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = 0
|
||||
|
||||
[sub_resource type="Resource" id="31"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "You have selecteed the normal Zepsi"
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="32"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 4
|
||||
position = Vector2(1280, 80)
|
||||
comment = ""
|
||||
items = [SubResource("31")]
|
||||
options = []
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = 0
|
||||
|
||||
[sub_resource type="Resource" id="33"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "You have selected the Diet Zepsi"
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="34"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 5
|
||||
position = Vector2(1280, 280)
|
||||
comment = ""
|
||||
items = [SubResource("33")]
|
||||
options = []
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = 0
|
||||
|
||||
[sub_resource type="Resource" id="35"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "Good choice! You have selected the Buaraná Ankartida"
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="36"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 6
|
||||
position = Vector2(1280, 480)
|
||||
comment = ""
|
||||
items = [SubResource("35")]
|
||||
options = []
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = 0
|
||||
|
||||
[sub_resource type="Resource" id="37"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "You have selected the Strike"
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 0
|
||||
condition_values = []
|
||||
effect_type = 0
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="38"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 7
|
||||
position = Vector2(1280, 680)
|
||||
comment = ""
|
||||
items = [SubResource("37")]
|
||||
options = []
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = 0
|
||||
|
||||
[sub_resource type="Resource" id="15"]
|
||||
script = ExtResource("5_vkpn8")
|
||||
sheet_id = "external_menu"
|
||||
sheet_description = ""
|
||||
next_sequence_id = 8
|
||||
nodes = [SubResource("14"), SubResource("24"), SubResource("28"), SubResource("30"), SubResource("32"), SubResource("34"), SubResource("36"), SubResource("38")]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_rlxbw"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "Hello! Welcome to the localized example!
|
||||
Warning: the next message will play an audio clip."
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {
|
||||
"es": "¡Hola! ¡Bienvenido al ejemplo localizado!
|
||||
Advertencia: el siguiente mensaje reproducirá un clip de audio.",
|
||||
"pt": "Olá! Seja bem vindo ao teste localizado!
|
||||
Aviso: a próxima mensagem reproduzirá um clipe de áudio."
|
||||
}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 10
|
||||
condition_values = []
|
||||
effect_type = 10
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="Resource_quvr4"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = "res://example_scene/voices/example_localized_en.ogg"
|
||||
message_text = "You are now seeing messages in English, because either this is your system language, or because your language is not included in this test."
|
||||
message_voice_clip_locales = {
|
||||
"es": "res://example_scene/voices/example_localized_es.ogg",
|
||||
"pt": "res://example_scene/voices/example_localized_pt.ogg"
|
||||
}
|
||||
message_text_locales = {
|
||||
"es": "Ahora estás viendo los mensajes en español, porque este es el idioma de tu sistema.",
|
||||
"pt": "Você está agora vendo mensagens em Português, porque esse é o idioma do seu sistema."
|
||||
}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 10
|
||||
condition_values = []
|
||||
effect_type = 10
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="Resource_w6lj3"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "Thank you for playing this test!"
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {
|
||||
"es": "¡Gracias por jugar esta prueba!",
|
||||
"pt": "Obrigado por jogar esse teste!"
|
||||
}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 10
|
||||
condition_values = []
|
||||
effect_type = 10
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="Resource_dlpdt"]
|
||||
script = ExtResource("3_dways")
|
||||
text = "First option"
|
||||
text_locales = {
|
||||
"": "First option",
|
||||
"es": "Primera opción",
|
||||
"pt": "Primeira opção"
|
||||
}
|
||||
connected_to_id = -1
|
||||
is_conditional = false
|
||||
condition_variable = ""
|
||||
condition_operator = "="
|
||||
condition_value = ""
|
||||
autodisable_mode = 0
|
||||
inactive_mode = 0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_x0nqb"]
|
||||
script = ExtResource("3_dways")
|
||||
text = "Second option"
|
||||
text_locales = {
|
||||
"": "Second option",
|
||||
"es": "Segunda opción",
|
||||
"pt": "Segunda opção"
|
||||
}
|
||||
connected_to_id = -1
|
||||
is_conditional = false
|
||||
condition_variable = ""
|
||||
condition_operator = "="
|
||||
condition_value = ""
|
||||
autodisable_mode = 0
|
||||
inactive_mode = 0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ml5yl"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 0
|
||||
position = Vector2(0, 0)
|
||||
comment = ""
|
||||
items = [SubResource("Resource_rlxbw"), SubResource("Resource_quvr4"), SubResource("Resource_w6lj3")]
|
||||
options = [SubResource("Resource_dlpdt"), SubResource("Resource_x0nqb")]
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = -1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_cvf4j"]
|
||||
script = ExtResource("5_vkpn8")
|
||||
sheet_id = "localized"
|
||||
sheet_description = ""
|
||||
next_sequence_id = 2
|
||||
nodes = [SubResource("Resource_ml5yl")]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_gfy7a"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "You will now be presented with menu options."
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 10
|
||||
condition_values = []
|
||||
effect_type = 10
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="Resource_5plx1"]
|
||||
script = ExtResource("3_dways")
|
||||
text = "Option 1"
|
||||
text_locales = {
|
||||
"": "Option 1"
|
||||
}
|
||||
connected_to_id = 1
|
||||
is_conditional = true
|
||||
condition_variable = ""
|
||||
condition_operator = "="
|
||||
condition_value = ""
|
||||
autodisable_mode = 0
|
||||
inactive_mode = 0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_4ierx"]
|
||||
script = ExtResource("3_dways")
|
||||
text = "Second option"
|
||||
text_locales = {
|
||||
"": "Second option"
|
||||
}
|
||||
connected_to_id = 2
|
||||
is_conditional = false
|
||||
condition_variable = ""
|
||||
condition_operator = "="
|
||||
condition_value = ""
|
||||
autodisable_mode = 0
|
||||
inactive_mode = 0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_c0esp"]
|
||||
script = ExtResource("3_dways")
|
||||
text = "Another cool option"
|
||||
text_locales = {
|
||||
"": "Another cool option"
|
||||
}
|
||||
connected_to_id = 3
|
||||
is_conditional = false
|
||||
condition_variable = ""
|
||||
condition_operator = "="
|
||||
condition_value = ""
|
||||
autodisable_mode = 0
|
||||
inactive_mode = 0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_28bfi"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 0
|
||||
position = Vector2(40, 20)
|
||||
comment = ""
|
||||
items = [SubResource("Resource_gfy7a")]
|
||||
options = [SubResource("Resource_5plx1"), SubResource("Resource_4ierx"), SubResource("Resource_c0esp")]
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = -1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_dyln1"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "You selected option 1"
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 10
|
||||
condition_values = []
|
||||
effect_type = 10
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="Resource_v4udn"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "This option also has another menu. Select your option:"
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 10
|
||||
condition_values = []
|
||||
effect_type = 10
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="Resource_kur6e"]
|
||||
script = ExtResource("3_dways")
|
||||
text = "Yes"
|
||||
text_locales = {
|
||||
"": "Yes"
|
||||
}
|
||||
connected_to_id = 0
|
||||
is_conditional = false
|
||||
condition_variable = ""
|
||||
condition_operator = "="
|
||||
condition_value = ""
|
||||
autodisable_mode = 0
|
||||
inactive_mode = 0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_gi4cx"]
|
||||
script = ExtResource("3_dways")
|
||||
text = "Uh... no?"
|
||||
text_locales = {
|
||||
"": "Uh... no?"
|
||||
}
|
||||
connected_to_id = -1
|
||||
is_conditional = false
|
||||
condition_variable = ""
|
||||
condition_operator = "="
|
||||
condition_value = ""
|
||||
autodisable_mode = 0
|
||||
inactive_mode = 0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_wn6qm"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 1
|
||||
position = Vector2(60, -320)
|
||||
comment = ""
|
||||
items = [SubResource("Resource_dyln1"), SubResource("Resource_v4udn")]
|
||||
options = [SubResource("Resource_kur6e"), SubResource("Resource_gi4cx")]
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = -1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_qsky1"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "You selected the second option"
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 10
|
||||
condition_values = []
|
||||
effect_type = 10
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="Resource_5vhe7"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 2
|
||||
position = Vector2(640, 120)
|
||||
comment = ""
|
||||
items = [SubResource("Resource_qsky1")]
|
||||
options = []
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = 0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xshh7"]
|
||||
script = ExtResource("2_48vp3")
|
||||
item_type = 0
|
||||
connected_to_id = -1
|
||||
message_speaker_id = ""
|
||||
message_speaker_variant = ""
|
||||
message_voice_clip = ""
|
||||
message_text = "You selected the cool option"
|
||||
message_voice_clip_locales = {}
|
||||
message_text_locales = {}
|
||||
message_hide_on_end = 0
|
||||
condition_type = 10
|
||||
condition_values = []
|
||||
effect_type = 10
|
||||
effect_values = []
|
||||
|
||||
[sub_resource type="Resource" id="Resource_pnwrx"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 3
|
||||
position = Vector2(640, 340)
|
||||
comment = ""
|
||||
items = [SubResource("Resource_xshh7")]
|
||||
options = []
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = 0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_s3y14"]
|
||||
script = ExtResource("5_vkpn8")
|
||||
sheet_id = "minimum_menu"
|
||||
sheet_description = ""
|
||||
next_sequence_id = 4
|
||||
nodes = [SubResource("Resource_28bfi"), SubResource("Resource_wn6qm"), SubResource("Resource_5vhe7"), SubResource("Resource_pnwrx")]
|
||||
|
||||
[sub_resource type="Resource" id="kur6e"]
|
||||
script = ExtResource("4_f2ijm")
|
||||
sequence_id = 0
|
||||
position = Vector2(0, 0)
|
||||
comment = ""
|
||||
items = []
|
||||
options = []
|
||||
continue_sequence_id = -1
|
||||
continue_port_index = 0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_mjnvi"]
|
||||
script = ExtResource("5_vkpn8")
|
||||
sheet_id = "new_sheet_1"
|
||||
sheet_description = ""
|
||||
next_sequence_id = 1
|
||||
nodes = [SubResource("kur6e")]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_giduu")
|
||||
version = 1.0
|
||||
sheets = {
|
||||
"1_start_here": SubResource("3"),
|
||||
"bare_minimum": SubResource("Resource_sxgqo"),
|
||||
"external_menu": SubResource("15"),
|
||||
"localized": SubResource("Resource_cvf4j"),
|
||||
"minimum_menu": SubResource("Resource_s3y14"),
|
||||
"new_sheet_1": SubResource("Resource_mjnvi")
|
||||
}
|
1377
addons/madtalk/runtime/madtalk_runtime.gd
Normal file
1377
addons/madtalk/runtime/madtalk_runtime.gd
Normal file
File diff suppressed because it is too large
Load Diff
1
addons/madtalk/runtime/madtalk_runtime.gd.uid
Normal file
1
addons/madtalk/runtime/madtalk_runtime.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://c6av3xe4m2ujl
|
Reference in New Issue
Block a user