More work on dialogue, portraits, customizer and intro

This commit is contained in:
2025-09-18 09:14:54 -04:00
parent 82c630d668
commit 023e88b84e
80 changed files with 2117 additions and 141 deletions

View File

@@ -1,6 +1,7 @@
class_name Quest extends Resource class_name Quest extends Resource
#The list of available quests
static var list : Array[Quest]
enum Status{ enum Status{
@@ -31,10 +32,13 @@ class Event:
VICTORY, VICTORY,
DEFEAT DEFEAT
} }
var hidden : bool = false
var type : Type = Type.WAIT var type : Type = Type.WAIT
var enemies : Array[String] = [] var enemies : Array[String] = []
var progress_point : float = 0
var time : float = 1 var time : float = 1
var time_elapsed var time_elapsed
var complete : bool = false
signal completed() signal completed()
signal failed() signal failed()
@@ -43,6 +47,21 @@ class Event:
var busy_list : Array = [] var busy_list : Array = []
var combat_state var combat_state
var dex_speed : int var dex_speed : int
func setup() -> void:
pass
func save_dict() -> Dictionary:
var d : Dictionary = {}
d.hidden = hidden
d.type = type
d.enemies = enemies
d.progress_point = progress_point
d.time = time
d.time_elapsed = time_elapsed
d.complete = complete
return d
func start(quest : Quest) -> void: func start(quest : Quest) -> void:
match(type): match(type):
Type.WAIT: Type.WAIT:
@@ -91,7 +110,7 @@ class Event:
func add_to_turn_queue(combatant) -> void: func add_to_turn_queue(combatant) -> void:
#Calculate time #Calculate time
var time = dex_speed / combatant.stats.DEX var time = dex_speed / max(1, combatant.stats.DEX)
#Walk through list to find insertion point #Walk through list to find insertion point
var idx = -1 var idx = -1
for i in range(len(turn_queue)): for i in range(len(turn_queue)):
@@ -191,12 +210,15 @@ class Event:
CombatState.VICTORY: CombatState.VICTORY:
time_elapsed += delta time_elapsed += delta
if time_elapsed >= time: if time_elapsed >= time:
complete = true
completed.emit() completed.emit()
Type.WAIT: Type.WAIT:
time_elapsed += delta time_elapsed += delta
if time_elapsed >= time: if time_elapsed >= time:
complete = true
completed.emit() completed.emit()
var base_name : String = ""
var name : String = "A Basic Quest" var name : String = "A Basic Quest"
var desc : String = "The default quest, with no special anything." var desc : String = "The default quest, with no special anything."
var difficulty : int = 1 var difficulty : int = 1
@@ -233,6 +255,7 @@ func fail() -> void:
func complete() -> void: func complete() -> void:
status = Status.COMPLETED status = Status.COMPLETED
status_changed.emit(Status.COMPLETED) status_changed.emit(Status.COMPLETED)
questview.show_quest_complete()
for reward in rewards.keys(): for reward in rewards.keys():
if reward == "gold": if reward == "gold":
questor.gain_gold(rewards[reward]) questor.gain_gold(rewards[reward])
@@ -268,3 +291,46 @@ func difficulty_name() -> String:
4: return "Extreme" 4: return "Extreme"
5: return "Legendary" 5: return "Legendary"
_: return "Unknown" _: return "Unknown"
static func load_quest_list() -> void:
var path = ProjectSettings.get_setting_with_override("data/quests/directory")
var dir = DirAccess.open(path)
var quest : Quest
if dir:
dir.list_dir_begin()
var filename = dir.get_next()
while filename != "":
if not dir.current_is_dir() and filename.get_extension() == "gd":
var file = load(path + "/" + filename).new()
if file is Quest:
list.append(file)
filename = dir.get_next()
dir.list_dir_end()
static func generate(parameters : Dictionary) -> Quest:
return null
func save_dict() -> Dictionary:
var d : Dictionary = {}
d.name = name
d.base_name = base_name
d.desc = desc
d.difficulty = difficulty
d.location = location
d.steps = steps
#TODO: Convert these!
#d.rewards = rewards
#d.guild_rewards = guild_rewards
d.covenant_cost = covenant_cost
d.length = length
d.progress = progress
d.current_step = current_step
d.taken = taken
d.status = status
var lst : Array = []
for evt in events:
lst.append(evt.save_dict())
d.events = lst
return d

View File

@@ -1,15 +1,35 @@
extends Quest extends Quest
func _init() -> void: func setup() -> void:
name = "A Sticky Situation" name = "A Sticky Situation"
var event_weights = [1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,4,4,5] var event_weights = [1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,4,4,5]
var num_events = event_weights.pick_random() var num_events = 3 # event_weights.pick_random()
#The first event is guaranteed to be at the 50% mark.
var first : bool = true
var pranges : Array = []
var margin : float = 0.1
for i in range(num_events): for i in range(num_events):
var evt : Quest.Event = Quest.Event.new() var evt : Quest.Event = Quest.Event.new()
evt.type = Quest.Event.Type.COMBAT evt.type = Quest.Event.Type.COMBAT
evt.enemies = ["goo"] evt.enemies = ["goo"]
evt.time = 5 evt.time = 5
if first:
#Make invisible
evt.progress_point = .5
pranges.append([margin, evt.progress_point-margin])
pranges.append([evt.progress_point+margin, 1 - margin])
first = false
else:
evt.hidden = true
pranges.shuffle()
var range = pranges.pop_back()
evt.progress_point = randf_range(range[0], range[1])
if evt.progress_point - range[0] >= 2 * margin:
pranges.append([range[0], evt.progress_point - margin])
if range[1] - evt.progress_point >= 2 * margin:
pranges.append([evt.progress_point + margin, range[1]])
events.append(evt) events.append(evt)
events.sort_custom(func(a,b): return a.progress_point < b.progress_point)
desc = "Nestors Woods is facing a slime invasion and the farmers are getting nervous, send an adventurer to help squash that sticky situation!" desc = "Nestors Woods is facing a slime invasion and the farmers are getting nervous, send an adventurer to help squash that sticky situation!"
location = Quest.Locations.NESTORS_WOODS location = Quest.Locations.NESTORS_WOODS
rewards = {"exp":10, "gold":5} rewards = {"exp":10, "gold":5}

64
dialogic/test-style.tres Normal file
View File

@@ -0,0 +1,64 @@
[gd_resource type="Resource" script_class="DialogicStyle" load_steps=20 format=3 uid="uid://ds2tuiay4rabe"]
[ext_resource type="Script" uid="uid://1qacwh2qaoiq" path="res://addons/dialogic/Resources/dialogic_style_layer.gd" id="1_5yaxe"]
[ext_resource type="PackedScene" uid="uid://c1k5m0w3r40xf" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_FullBackground/full_background_layer.tscn" id="2_sw2mm"]
[ext_resource type="PackedScene" uid="uid://cy1y14inwkplb" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Portraits/vn_portrait_layer.tscn" id="3_mfkbk"]
[ext_resource type="PackedScene" uid="uid://cn674foxwedqu" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_Input/full_advance_input_layer.tscn" id="4_muaod"]
[ext_resource type="PackedScene" uid="uid://bquja8jyk8kbr" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_layer.tscn" id="5_587fh"]
[ext_resource type="PackedScene" uid="uid://dsbwnp5hegnu3" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_Glossary/glossary_popup_layer.tscn" id="6_i5shp"]
[ext_resource type="PackedScene" uid="uid://dhk6j6eb6e3q" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Choices/vn_choice_layer.tscn" id="7_yh6aj"]
[ext_resource type="PackedScene" uid="uid://cvgf4c6gg0tsy" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_TextInput/text_input_layer.tscn" id="8_dikk4"]
[ext_resource type="PackedScene" uid="uid://lx24i8fl6uo" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_History/history_layer.tscn" id="9_isvcv"]
[ext_resource type="Script" uid="uid://b5nqsdfdl0jjg" path="res://addons/dialogic/Resources/dialogic_style.gd" id="10_qi7p4"]
[sub_resource type="Resource" id="Resource_5nw0r"]
script = ExtResource("1_5yaxe")
[sub_resource type="Resource" id="Resource_bpwsm"]
script = ExtResource("1_5yaxe")
scene = ExtResource("2_sw2mm")
[sub_resource type="Resource" id="Resource_swupp"]
script = ExtResource("1_5yaxe")
scene = ExtResource("3_mfkbk")
[sub_resource type="Resource" id="Resource_w34dy"]
script = ExtResource("1_5yaxe")
scene = ExtResource("4_muaod")
[sub_resource type="Resource" id="Resource_7vels"]
script = ExtResource("1_5yaxe")
scene = ExtResource("5_587fh")
[sub_resource type="Resource" id="Resource_rtvk6"]
script = ExtResource("1_5yaxe")
scene = ExtResource("6_i5shp")
[sub_resource type="Resource" id="Resource_j7il2"]
script = ExtResource("1_5yaxe")
scene = ExtResource("7_yh6aj")
[sub_resource type="Resource" id="Resource_qx0md"]
script = ExtResource("1_5yaxe")
scene = ExtResource("8_dikk4")
[sub_resource type="Resource" id="Resource_dv5be"]
script = ExtResource("1_5yaxe")
scene = ExtResource("9_isvcv")
[resource]
script = ExtResource("10_qi7p4")
name = "test-style"
layer_list = Array[String](["10", "11", "12", "13", "14", "15", "16", "17"])
layer_info = {
"": SubResource("Resource_5nw0r"),
"10": SubResource("Resource_bpwsm"),
"11": SubResource("Resource_swupp"),
"12": SubResource("Resource_w34dy"),
"13": SubResource("Resource_7vels"),
"14": SubResource("Resource_rtvk6"),
"15": SubResource("Resource_j7il2"),
"16": SubResource("Resource_qx0md"),
"17": SubResource("Resource_dv5be")
}
metadata/_latest_layer = "13"

View File

@@ -0,0 +1,364 @@
[gd_scene load_steps=18 format=3 uid="uid://co4lvbcvc4n4r"]
[ext_resource type="Script" uid="uid://dh7v16o6p2byd" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_layer.gd" id="1_8w2ny"]
[ext_resource type="Script" uid="uid://deyihsk5ygbhr" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/animations.gd" id="2_lm5q8"]
[ext_resource type="Texture2D" uid="uid://wjhyhe1jeli4" path="res://external/dialogue-box.png" id="3_8w2ny"]
[ext_resource type="Script" uid="uid://sv8obsrlo5h4" path="res://addons/dialogic/Modules/Text/node_dialog_text.gd" id="4_upo8v"]
[ext_resource type="Script" uid="uid://beqdjhq0e2wyc" path="res://addons/dialogic/Modules/Text/node_type_sound.gd" id="5_8i8x0"]
[ext_resource type="Script" uid="uid://ceitutnrgf6q4" path="res://addons/dialogic/Modules/Text/node_next_indicator.gd" id="6_wmx4e"]
[ext_resource type="Texture2D" uid="uid://b0rpqfg4fhebk" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/next.svg" id="7_otcnr"]
[ext_resource type="Script" uid="uid://c1vq61i7urva2" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/autoadvance_indicator.gd" id="8_oc1t2"]
[ext_resource type="StyleBox" uid="uid://m7gyepkysu83" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_name_label_panel.tres" id="9_3ecl4"]
[ext_resource type="Script" uid="uid://qkdtvkpiquha" path="res://addons/dialogic/Modules/Text/node_name_label.gd" id="10_0m0vw"]
[sub_resource type="Animation" id="Animation_au0a2"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Anchor/AnimationParent:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Anchor/AnimationParent:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Anchor/AnimationParent:scale")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Anchor/AnimationParent:modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/4/type = "bezier"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Anchor/AnimationParent/Sizer/DialogTextPanel:rotation")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
[sub_resource type="Animation" id="Animation_6kbwc"]
resource_name = "new_text"
length = 0.4
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Anchor/AnimationParent/Sizer/DialogTextPanel:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(3, 3, 3, 3, 3),
"points": PackedFloat32Array(0, -0.025, 0, 0.025, 0, 0.005, -0.025, 0, 0.025, 0, -0.005, -0.025, 0, 0.025, 0, 0.005, -0.025, 0, 0.025, 0, 0, -0.025, 0, 0.025, 0),
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4)
}
[sub_resource type="Animation" id="Animation_g6k55"]
resource_name = "textbox_fade_up"
length = 0.7
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Anchor/AnimationParent:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3, 0.7),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(0, 50), Vector2(0, 19.6793), Vector2(0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Anchor/AnimationParent:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.1, 0.6),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Anchor/AnimationParent:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Anchor/AnimationParent:scale")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
[sub_resource type="Animation" id="Animation_htbgc"]
resource_name = "textbox_pop"
length = 0.3
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Anchor/AnimationParent:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Anchor/AnimationParent:rotation")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.2, 0.3),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [-0.0899883, 0.0258223, 0.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Anchor/AnimationParent:scale")
tracks/2/interp = 2
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.2, 0.3),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(0.793957, 0.778082), Vector2(0.937299, 1.14248), Vector2(1, 1)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Anchor/AnimationParent:modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_c14kh"]
_data = {
&"RESET": SubResource("Animation_au0a2"),
&"new_text": SubResource("Animation_6kbwc"),
&"textbox_fade_up": SubResource("Animation_g6k55"),
&"textbox_pop": SubResource("Animation_htbgc")
}
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_lm5q8"]
texture = ExtResource("3_8w2ny")
texture_margin_left = 40.0
texture_margin_top = 40.0
texture_margin_right = 40.0
texture_margin_bottom = 40.0
[sub_resource type="FontVariation" id="FontVariation_v8y64"]
[node name="VN_TextboxLayer" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
script = ExtResource("1_8w2ny")
box_panel = "res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_default_panel.tres"
box_color_use_global = false
box_size = Vector2(550, 150)
name_label_box_panel = "res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_name_label_panel.tres"
name_label_box_modulate = Color(0, 0, 0, 1)
[node name="Animations" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
libraries = {
&"": SubResource("AnimationLibrary_c14kh")
}
autoplay = "RESET"
script = ExtResource("2_lm5q8")
[node name="Anchor" type="Control" parent="."]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 0
[node name="AnimationParent" type="Control" parent="Anchor"]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 0
mouse_filter = 2
[node name="Sizer" type="Control" parent="Anchor/AnimationParent"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -250.0
offset_top = -100.0
offset_right = 250.0
grow_horizontal = 2
grow_vertical = 0
mouse_filter = 2
[node name="DialogTextPanel" type="PanelContainer" parent="Anchor/AnimationParent/Sizer"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
theme_override_styles/panel = SubResource("StyleBoxTexture_lm5q8")
metadata/_edit_layout_mode = 1
[node name="HBoxContainer" type="HBoxContainer" parent="Anchor/AnimationParent/Sizer/DialogTextPanel"]
layout_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="Anchor/AnimationParent/Sizer/DialogTextPanel/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="NameLabelHolder" type="Control" parent="Anchor/AnimationParent/Sizer/DialogTextPanel/HBoxContainer/VBoxContainer"]
layout_mode = 2
mouse_filter = 2
[node name="NameLabelPanel" type="PanelContainer" parent="Anchor/AnimationParent/Sizer/DialogTextPanel/HBoxContainer/VBoxContainer/NameLabelHolder"]
unique_name_in_owner = true
self_modulate = Color(0.00784314, 0.00784314, 0.00784314, 0.843137)
layout_mode = 1
offset_left = 26.0
offset_top = 17.0
offset_right = 55.0
offset_bottom = 49.0
mouse_filter = 2
theme_override_styles/panel = ExtResource("9_3ecl4")
metadata/_edit_layout_mode = 1
metadata/_edit_use_custom_anchors = true
metadata/_edit_group_ = true
[node name="DialogicNode_NameLabel" type="Label" parent="Anchor/AnimationParent/Sizer/DialogTextPanel/HBoxContainer/VBoxContainer/NameLabelHolder/NameLabelPanel" node_paths=PackedStringArray("name_label_root")]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_fonts/font = SubResource("FontVariation_v8y64")
theme_override_font_sizes/font_size = 15
text = "Person"
script = ExtResource("10_0m0vw")
name_label_root = NodePath("..")
[node name="MarginContainer" type="MarginContainer" parent="Anchor/AnimationParent/Sizer/DialogTextPanel/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="DialogicNode_DialogText" type="RichTextLabel" parent="Anchor/AnimationParent/Sizer/DialogTextPanel/HBoxContainer/MarginContainer" node_paths=PackedStringArray("textbox_root")]
unique_name_in_owner = true
layout_mode = 2
mouse_filter = 1
theme_override_colors/default_color = Color(1, 1, 1, 1)
theme_override_font_sizes/normal_font_size = 15
theme_override_font_sizes/bold_font_size = 15
theme_override_font_sizes/bold_italics_font_size = 15
theme_override_font_sizes/italics_font_size = 15
bbcode_enabled = true
text = "Some default text"
visible_characters_behavior = 1
script = ExtResource("4_upo8v")
textbox_root = NodePath("../../..")
[node name="DialogicNode_TypeSounds" type="AudioStreamPlayer" parent="Anchor/AnimationParent/Sizer/DialogTextPanel/HBoxContainer/MarginContainer/DialogicNode_DialogText"]
unique_name_in_owner = true
script = ExtResource("5_8i8x0")
play_every_character = 0
[node name="NextIndicator" type="Control" parent="Anchor/AnimationParent/Sizer/DialogTextPanel"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 8
size_flags_vertical = 8
mouse_filter = 2
script = ExtResource("6_wmx4e")
show_on_questions = true
texture = ExtResource("7_otcnr")
metadata/_edit_layout_mode = 1
[node name="AutoAdvanceProgressbar" type="ProgressBar" parent="Anchor/AnimationParent/Sizer/DialogTextPanel"]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0.188235)
custom_minimum_size = Vector2(0, 10)
layout_mode = 2
size_flags_vertical = 8
mouse_filter = 2
max_value = 1.0
step = 0.001
value = 0.5
show_percentage = false
script = ExtResource("8_oc1t2")

View File

@@ -1,5 +1,6 @@
label Prespeech label Prespeech
I never imagined that one day I'd be in charge of a guild. To be honest, I never really imagined what my future would look like. I've never been very good at anything. I never imagined that one day I'd be in charge of a guild. To be honest, I never really imagined what my future would look like. I've never been very good at anything.
[background arg="res://graphics/spritesheet_characters.png" fade="0.4"]
I just lived every day working the best I could and hoping that somehow, someway, the world would show me what to do. And then grandma died and left me this letter. I just lived every day working the best I could and hoping that somehow, someway, the world would show me what to do. And then grandma died and left me this letter.
do Game.switch_scenes("letter") do Game.switch_scenes("letter")
[end_timeline] [end_timeline]
@@ -9,7 +10,7 @@ do Game.switch_scenes("guild_card")
Ugh, I hated paperwork and there sure was a lot of it. Ugh, I hated paperwork and there sure was a lot of it.
[end_timeline] [end_timeline]
label Start Schedule label Start Schedule
[wait_input] And MORE paperwork. I was starting to understand why grandma thought risking death was better.
do do Game.switch_scenes("set_shifts")
[end_timeline] [end_timeline]
label First Portrait Open label First Portrait Open

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://crrd8mpcuync2" uid="uid://crrd8mpcuync2"
path="res://.godot/imported/body.png-5a897720f599ec630383f1f3dd8e9e9e.ctex" path="res://.godot/imported/body.png-efd5e53b6f03adc4a57de5ce8dc4d3cd.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/body.png" source_file="res://external/test portrait/farmer_f/body.png"
dest_files=["res://.godot/imported/body.png-5a897720f599ec630383f1f3dd8e9e9e.ctex"] dest_files=["res://.godot/imported/body.png-efd5e53b6f03adc4a57de5ce8dc4d3cd.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://pp5ssn5m2n3i" uid="uid://pp5ssn5m2n3i"
path="res://.godot/imported/brow_shadow-1.png-94d923d93f9bc0db18f7b963da1021dd.ctex" path="res://.godot/imported/brow_shadow-1.png-8dff8c187d59ecaaefbb84e877b32e20.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/brow_shadow-1.png" source_file="res://external/test portrait/farmer_f/brow_shadow-1.png"
dest_files=["res://.godot/imported/brow_shadow-1.png-94d923d93f9bc0db18f7b963da1021dd.ctex"] dest_files=["res://.godot/imported/brow_shadow-1.png-8dff8c187d59ecaaefbb84e877b32e20.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://x4e86o28672u" uid="uid://x4e86o28672u"
path="res://.godot/imported/brow_shadow-2.png-85a8d07465b9b109e67ad99a37d690d1.ctex" path="res://.godot/imported/brow_shadow-2.png-b5d8d416acf1ddb95fd785200da8d3ce.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/brow_shadow-2.png" source_file="res://external/test portrait/farmer_f/brow_shadow-2.png"
dest_files=["res://.godot/imported/brow_shadow-2.png-85a8d07465b9b109e67ad99a37d690d1.ctex"] dest_files=["res://.godot/imported/brow_shadow-2.png-b5d8d416acf1ddb95fd785200da8d3ce.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://sv7bxo8a12i6" uid="uid://sv7bxo8a12i6"
path="res://.godot/imported/brow_shadow.png-e4497bbbff21d0b56dc81b07de4f06bc.ctex" path="res://.godot/imported/brow_shadow.png-f653be07b461bc5d7a18192996ffb73a.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/brow_shadow.png" source_file="res://external/test portrait/farmer_f/brow_shadow.png"
dest_files=["res://.godot/imported/brow_shadow.png-e4497bbbff21d0b56dc81b07de4f06bc.ctex"] dest_files=["res://.godot/imported/brow_shadow.png-f653be07b461bc5d7a18192996ffb73a.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://tpg08bgn2on7" uid="uid://tpg08bgn2on7"
path="res://.godot/imported/brows-1.png-70092c4bb56529f3cdeb7b51925eb071.ctex" path="res://.godot/imported/brows-1.png-86a51529282fffa26d497e35e4cc9367.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/brows-1.png" source_file="res://external/test portrait/farmer_f/brows-1.png"
dest_files=["res://.godot/imported/brows-1.png-70092c4bb56529f3cdeb7b51925eb071.ctex"] dest_files=["res://.godot/imported/brows-1.png-86a51529282fffa26d497e35e4cc9367.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://brmta1rtiau4a" uid="uid://brmta1rtiau4a"
path="res://.godot/imported/brows-2.png-227c9708d0b7fde57b1ef42021508fcf.ctex" path="res://.godot/imported/brows-2.png-01beea1c4e9cadf04c529dc849682c8a.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/brows-2.png" source_file="res://external/test portrait/farmer_f/brows-2.png"
dest_files=["res://.godot/imported/brows-2.png-227c9708d0b7fde57b1ef42021508fcf.ctex"] dest_files=["res://.godot/imported/brows-2.png-01beea1c4e9cadf04c529dc849682c8a.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://c3wwe6r000gpq" uid="uid://c3wwe6r000gpq"
path="res://.godot/imported/composite.png-b2c2e474fe243b72bd3471af031774d6.ctex" path="res://.godot/imported/composite.png-a68e5c4a777094ce447b89a2ab45b35b.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/composite.png" source_file="res://external/test portrait/farmer_f/composite.png"
dest_files=["res://.godot/imported/composite.png-b2c2e474fe243b72bd3471af031774d6.ctex"] dest_files=["res://.godot/imported/composite.png-a68e5c4a777094ce447b89a2ab45b35b.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://caow8dqiog7j4" uid="uid://caow8dqiog7j4"
path="res://.godot/imported/ear.png-a1b457892f7236464123f2229af36695.ctex" path="res://.godot/imported/ear.png-74df11e092bb05fcc54c7e7478ed4d95.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/ear.png" source_file="res://external/test portrait/farmer_f/ear.png"
dest_files=["res://.godot/imported/ear.png-a1b457892f7236464123f2229af36695.ctex"] dest_files=["res://.godot/imported/ear.png-74df11e092bb05fcc54c7e7478ed4d95.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://csp7xbtu0tpn7" uid="uid://csp7xbtu0tpn7"
path="res://.godot/imported/eye-white-1.png-fb75b817d294c00ebeee3e6996a2c02e.ctex" path="res://.godot/imported/eye-white-1.png-a31a2b044ab6206c129b0739fd4c0c80.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/eye-white-1.png" source_file="res://external/test portrait/farmer_f/eye-white-1.png"
dest_files=["res://.godot/imported/eye-white-1.png-fb75b817d294c00ebeee3e6996a2c02e.ctex"] dest_files=["res://.godot/imported/eye-white-1.png-a31a2b044ab6206c129b0739fd4c0c80.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://mygmunn3voie" uid="uid://mygmunn3voie"
path="res://.godot/imported/eyes-iris-1.png-3c96067ab402ea99f8e1b1b7db594f4c.ctex" path="res://.godot/imported/eyes-iris-1.png-d2077e2e658acf3840075cfe98f86f4e.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/eyes-iris-1.png" source_file="res://external/test portrait/farmer_f/eyes-iris-1.png"
dest_files=["res://.godot/imported/eyes-iris-1.png-3c96067ab402ea99f8e1b1b7db594f4c.ctex"] dest_files=["res://.godot/imported/eyes-iris-1.png-d2077e2e658acf3840075cfe98f86f4e.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://wnkr20dtf734" uid="uid://wnkr20dtf734"
path="res://.godot/imported/eyes-lashes-1.png-8a4535f7647af11ff99b165ee021e8cc.ctex" path="res://.godot/imported/eyes-lashes-1.png-1460ddc60d7a087da2d517ce8f1a5faa.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/eyes-lashes-1.png" source_file="res://external/test portrait/farmer_f/eyes-lashes-1.png"
dest_files=["res://.godot/imported/eyes-lashes-1.png-8a4535f7647af11ff99b165ee021e8cc.ctex"] dest_files=["res://.godot/imported/eyes-lashes-1.png-1460ddc60d7a087da2d517ce8f1a5faa.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dd063tm4qo5nc" uid="uid://dd063tm4qo5nc"
path="res://.godot/imported/eyes.png-1384a95ac331738bfe48af30a8953f10.ctex" path="res://.godot/imported/eyes.png-da6eb5fdf7f113844fe8e5414a1f2331.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/eyes.png" source_file="res://external/test portrait/farmer_f/eyes.png"
dest_files=["res://.godot/imported/eyes.png-1384a95ac331738bfe48af30a8953f10.ctex"] dest_files=["res://.godot/imported/eyes.png-da6eb5fdf7f113844fe8e5414a1f2331.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://li44lgsa0ky" uid="uid://li44lgsa0ky"
path="res://.godot/imported/eyes_shadow.png-639516c9b7d6a71a22fcd4597236a89e.ctex" path="res://.godot/imported/eyes_shadow.png-c0450e5470a67b3e212b544dfeadc885.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/eyes_shadow.png" source_file="res://external/test portrait/farmer_f/eyes_shadow.png"
dest_files=["res://.godot/imported/eyes_shadow.png-639516c9b7d6a71a22fcd4597236a89e.ctex"] dest_files=["res://.godot/imported/eyes_shadow.png-c0450e5470a67b3e212b544dfeadc885.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://can8npg0ufr3f" uid="uid://can8npg0ufr3f"
path="res://.godot/imported/hair_bg.png-07f942d8008a0d2581909922002bbbe2.ctex" path="res://.godot/imported/hair_bg.png-71bd584ff51ea6c704ba2eb2b8124703.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/hair_bg.png" source_file="res://external/test portrait/farmer_f/hair_bg.png"
dest_files=["res://.godot/imported/hair_bg.png-07f942d8008a0d2581909922002bbbe2.ctex"] dest_files=["res://.godot/imported/hair_bg.png-71bd584ff51ea6c704ba2eb2b8124703.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://vt17lekvchdg" uid="uid://vt17lekvchdg"
path="res://.godot/imported/hair_fg.png-9f5c6bb27fb0349d9ddfba99f87aa5c6.ctex" path="res://.godot/imported/hair_fg.png-9dfae38fbf9812dad9b45d15a1cbd791.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/hair_fg.png" source_file="res://external/test portrait/farmer_f/hair_fg.png"
dest_files=["res://.godot/imported/hair_fg.png-9f5c6bb27fb0349d9ddfba99f87aa5c6.ctex"] dest_files=["res://.godot/imported/hair_fg.png-9dfae38fbf9812dad9b45d15a1cbd791.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cru775pghpate" uid="uid://cru775pghpate"
path="res://.godot/imported/hair_fg_shadow.png-41de10e26ae2147aace92ba197b28075.ctex" path="res://.godot/imported/hair_fg_shadow.png-609d7f961008e48f548f0e05277dafb4.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/hair_fg_shadow.png" source_file="res://external/test portrait/farmer_f/hair_fg_shadow.png"
dest_files=["res://.godot/imported/hair_fg_shadow.png-41de10e26ae2147aace92ba197b28075.ctex"] dest_files=["res://.godot/imported/hair_fg_shadow.png-609d7f961008e48f548f0e05277dafb4.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dj6fagfp2sbrx" uid="uid://dj6fagfp2sbrx"
path="res://.godot/imported/hat-bg.png-00e20fcd79ddb550d12459624be7d9b1.ctex" path="res://.godot/imported/hat-bg.png-972a86d8449c11d1a72a4f21b15efd0a.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/hat-bg.png" source_file="res://external/test portrait/farmer_f/hat-bg.png"
dest_files=["res://.godot/imported/hat-bg.png-00e20fcd79ddb550d12459624be7d9b1.ctex"] dest_files=["res://.godot/imported/hat-bg.png-972a86d8449c11d1a72a4f21b15efd0a.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://b303qa76o5r1m" uid="uid://b303qa76o5r1m"
path="res://.godot/imported/hat.png-9bb6fa9d1f7f7503ee26b1749cdf7c0a.ctex" path="res://.godot/imported/hat.png-21e48868d0218210b390afa680a1202d.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/hat.png" source_file="res://external/test portrait/farmer_f/hat.png"
dest_files=["res://.godot/imported/hat.png-9bb6fa9d1f7f7503ee26b1749cdf7c0a.ctex"] dest_files=["res://.godot/imported/hat.png-21e48868d0218210b390afa680a1202d.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dyeu4kwwnxjn5" uid="uid://dyeu4kwwnxjn5"
path="res://.godot/imported/hat_fg.png-e2cae14f649780ea2aba38b34358b587.ctex" path="res://.godot/imported/hat_fg.png-2dddd61ae84da22b32d123d3533338c5.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/hat_fg.png" source_file="res://external/test portrait/farmer_f/hat_fg.png"
dest_files=["res://.godot/imported/hat_fg.png-e2cae14f649780ea2aba38b34358b587.ctex"] dest_files=["res://.godot/imported/hat_fg.png-2dddd61ae84da22b32d123d3533338c5.ctex"]
[params] [params]

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dbdjaye6srxhx" uid="uid://dbdjaye6srxhx"
path="res://.godot/imported/head.png-df46fa0b8e2741bbf0fad9b3a03fedea.ctex" path="res://.godot/imported/head.png-47039f8abc285b87bb176b5b43ee9a5f.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://external/Test Portrait/Farmer_F/head.png" source_file="res://external/test portrait/farmer_f/head.png"
dest_files=["res://.godot/imported/head.png-df46fa0b8e2741bbf0fad9b3a03fedea.ctex"] dest_files=["res://.godot/imported/head.png-47039f8abc285b87bb176b5b43ee9a5f.ctex"]
[params] [params]

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://cxecub83q07gq"]
[sub_resource type="Gradient" id="Gradient_u7u0c"]
offsets = PackedFloat32Array(0, 0.49604222, 0.89973617, 1)
colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0.68, 1, 0.86, 0.86, 1, 1, 0, 0, 1, 1)
[resource]
gradient = SubResource("Gradient_u7u0c")

View File

@@ -1,8 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://cd4jsivokd6sk"] [gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://cd4jsivokd6sk"]
[sub_resource type="Gradient" id="Gradient_u7u0c"] [sub_resource type="Gradient" id="Gradient_u7u0c"]
offsets = PackedFloat32Array(0, 0.49604222, 0.89973617, 1) offsets = PackedFloat32Array(0, 0.5252918, 0.8774319, 1)
colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0.68, 1, 0.86, 0.86, 1, 1, 0, 0, 1, 1) colors = PackedColorArray(0, 0, 0, 1, 0.68, 0.13600004, 0, 1, 1, 0.6533333, 0.19999999, 1, 1, 0.6, 0, 1)
[resource] [resource]
gradient = SubResource("Gradient_u7u0c") gradient = SubResource("Gradient_u7u0c")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://bpiu6d7lbhyw"]
[sub_resource type="Gradient" id="Gradient_s3ye8"]
offsets = PackedFloat32Array(0, 0.8385214, 0.99416345)
colors = PackedColorArray(0, 0, 0, 1, 0.4313402, 0.43134028, 0.43134007, 1, 0.7, 0.7, 0.7, 1)
[resource]
gradient = SubResource("Gradient_s3ye8")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://khdd0qlqn4jy"]
[sub_resource type="Gradient" id="Gradient_qpr8j"]
offsets = PackedFloat32Array(0, 0.33333334, 0.7829978)
colors = PackedColorArray(0.36862746, 0, 1, 1, 0.66, 0.30359998, 0.30359998, 1, 0.6997569, 0.41199392, 0.19485885, 1)
[resource]
gradient = SubResource("Gradient_qpr8j")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://spgxsr4e3q7v"]
[sub_resource type="Gradient" id="Gradient_qpr8j"]
offsets = PackedFloat32Array(0, 0.33333334, 0.7829978)
colors = PackedColorArray(0.36862746, 0, 1, 1, 0.66, 0.30359998, 0.30359998, 1, 0.6997569, 0.41199392, 0.19485885, 1)
[resource]
gradient = SubResource("Gradient_qpr8j")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://cxe2e2cp44nke"]
[sub_resource type="Gradient" id="Gradient_qpr8j"]
offsets = PackedFloat32Array(0, 0.33333334, 0.7829978)
colors = PackedColorArray(0.36862746, 0, 1, 1, 0.66, 0.30359998, 0.30359998, 1, 0.6997569, 0.41199392, 0.19485885, 1)
[resource]
gradient = SubResource("Gradient_qpr8j")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://ulft7ngl80hw"]
[sub_resource type="Gradient" id="Gradient_qpr8j"]
offsets = PackedFloat32Array(0, 0.33333334, 0.7829978)
colors = PackedColorArray(0.36862746, 0, 1, 1, 0.66, 0.30359998, 0.30359998, 1, 0.6997569, 0.41199392, 0.19485885, 1)
[resource]
gradient = SubResource("Gradient_qpr8j")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://dan3oxihr3rfl"]
[sub_resource type="Gradient" id="Gradient_qpr8j"]
offsets = PackedFloat32Array(0, 0.33333334, 0.7829978)
colors = PackedColorArray(0.36862746, 0, 1, 1, 0.66, 0.30359998, 0.30359998, 1, 0.6997569, 0.41199392, 0.19485885, 1)
[resource]
gradient = SubResource("Gradient_qpr8j")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://cj6b262y57ouo"]
[sub_resource type="Gradient" id="Gradient_qpr8j"]
offsets = PackedFloat32Array(0, 0.33333334, 0.7829978)
colors = PackedColorArray(0.36862746, 0, 1, 1, 0.66, 0.30359998, 0.30359998, 1, 0.6997569, 0.41199392, 0.19485885, 1)
[resource]
gradient = SubResource("Gradient_qpr8j")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://c2q21glbldxao"]
[sub_resource type="Gradient" id="Gradient_qpr8j"]
offsets = PackedFloat32Array(0, 0.33333334, 0.7829978)
colors = PackedColorArray(0.36862746, 0, 1, 1, 0.66, 0.30359998, 0.30359998, 1, 0.6997569, 0.41199392, 0.19485885, 1)
[resource]
gradient = SubResource("Gradient_qpr8j")

BIN
external/Test Portrait/player/eye-a.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cygn0xfsayykd"
path="res://.godot/imported/eye-a.png-4ae928c135fabbb6dbe591d1f658a054.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test portrait/player/eye-a.png"
dest_files=["res://.godot/imported/eye-a.png-4ae928c135fabbb6dbe591d1f658a054.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/Test Portrait/player/eye-b.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bg6lac6nl5k84"
path="res://.godot/imported/eye-b.png-8a340a04655f91a439de6b55293f607d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test portrait/player/eye-b.png"
dest_files=["res://.godot/imported/eye-b.png-8a340a04655f91a439de6b55293f607d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/Test Portrait/player/eye-c.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bxdclvopvj75q"
path="res://.godot/imported/eye-c.png-b34d6d5c940d727416bc135e5e88a9ca.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test portrait/player/eye-c.png"
dest_files=["res://.godot/imported/eye-c.png-b34d6d5c940d727416bc135e5e88a9ca.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -1,10 +1,7 @@
[gd_resource type="ShaderMaterial" load_steps=4 format=3 uid="uid://ca43sapn4p61w"] [gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://ca43sapn4p61w"]
[ext_resource type="Shader" uid="uid://dbcokq5fn2les" path="res://shaders/trigradient.tres" id="1_sifog"] [ext_resource type="Shader" uid="uid://dbcokq5fn2les" path="res://shaders/trigradient.tres" id="1_sifog"]
[ext_resource type="Texture2D" uid="uid://0dwdi7m62trg" path="res://external/test portrait/gradients/hair/(c)red.tres" id="2_2qy1r"]
[ext_resource type="Texture2D" uid="uid://s2ok31sncevx" path="res://external/test portrait/gradients/dark-hair.tres" id="3_5udns"]
[resource] [resource]
resource_local_to_scene = true
shader = ExtResource("1_sifog") shader = ExtResource("1_sifog")
shader_parameter/Color_Gradient = ExtResource("2_2qy1r")
shader_parameter/Luminosity_Gradient = ExtResource("3_5udns")

View File

@@ -3,4 +3,8 @@
[ext_resource type="Shader" uid="uid://cru1otvka0qn5" path="res://external/test portrait/variant_color.gdshader" id="1_n3xwv"] [ext_resource type="Shader" uid="uid://cru1otvka0qn5" path="res://external/test portrait/variant_color.gdshader" id="1_n3xwv"]
[resource] [resource]
resource_local_to_scene = true
shader = ExtResource("1_n3xwv") shader = ExtResource("1_n3xwv")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.0
shader_parameter/highlight = Color(0, 0, 0, 0)

View File

@@ -3,7 +3,9 @@ render_mode blend_mix;
uniform sampler2D color_gradient; uniform sampler2D color_gradient;
uniform sampler2D luminosity_gradient; uniform sampler2D luminosity_gradient;
uniform bool flash;
uniform float flash_strength = 0.4;
uniform vec4 highlight : source_color = vec4(1,1,1,0);
void vertex() { void vertex() {
@@ -30,8 +32,11 @@ void fragment() {
K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
vec3 p2 = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); vec3 p2 = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
vec3 fin_rgb = c.z * mix(K.xxx, clamp(p2 - K.xxx, 0.0, 1.0), c.y); vec3 fin_rgb = c.z * mix(K.xxx, clamp(p2 - K.xxx, 0.0, 1.0), c.y);
vec4 h = highlight;
COLOR.rgb = fin_rgb; if(flash){
h.a = flash_strength * (sin(TIME * 10.0) + 1.0)/2.0;
}
COLOR.rgb = mix(fin_rgb, h.rgb, h.a);
COLOR.a = col.a; COLOR.a = col.a;

BIN
external/dialogue-box.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

40
external/dialogue-box.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://wjhyhe1jeli4"
path="res://.godot/imported/dialogue-box.png-0ceee6d4dcb665e8f8b014ee6968168b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/dialogue-box.png"
dest_files=["res://.godot/imported/dialogue-box.png-0ceee6d4dcb665e8f8b014ee6968168b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/dialogue.clip vendored Normal file

Binary file not shown.

BIN
external/lock-icon1.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 B

40
external/lock-icon1.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://6qi7xvvrlng3"
path="res://.godot/imported/lock-icon1.png-a5ad14bd088bcb5d0798e4260e205cca.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/lock-icon1.png"
dest_files=["res://.godot/imported/lock-icon1.png-a5ad14bd088bcb5d0798e4260e205cca.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/lock-icon2.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 B

40
external/lock-icon2.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cl4ff2juk3qmm"
path="res://.godot/imported/lock-icon2.png-6bdf747dfc894aa3d8731285a75b1353.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/lock-icon2.png"
dest_files=["res://.godot/imported/lock-icon2.png-6bdf747dfc894aa3d8731285a75b1353.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/name-banner.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

40
external/name-banner.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://en58nd1oju64"
path="res://.godot/imported/name-banner.png-469d81ea212fc04dcb4a650664d0eb10.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/name-banner.png"
dest_files=["res://.godot/imported/name-banner.png-469d81ea212fc04dcb4a650664d0eb10.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/pom-intro.clip vendored Normal file

Binary file not shown.

BIN
external/portrait.clip vendored

Binary file not shown.

View File

@@ -21,34 +21,62 @@
[sub_resource type="ShaderMaterial" id="ShaderMaterial_6ofx4"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_6ofx4"]
shader = ExtResource("3_8fwpu") shader = ExtResource("3_8fwpu")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.0
shader_parameter/highlight = Color(0, 0, 0, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_4lhir"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_4lhir"]
shader = ExtResource("3_8fwpu") shader = ExtResource("3_8fwpu")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.4
shader_parameter/highlight = Color(1, 1, 1, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ufq70"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_ufq70"]
shader = ExtResource("3_8fwpu") shader = ExtResource("3_8fwpu")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.0
shader_parameter/highlight = Color(0, 0, 0, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_n24t2"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_n24t2"]
shader = ExtResource("3_8fwpu") shader = ExtResource("3_8fwpu")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.0
shader_parameter/highlight = Color(0, 0, 0, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_d4dbv"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_d4dbv"]
shader = ExtResource("3_8fwpu") shader = ExtResource("3_8fwpu")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.0
shader_parameter/highlight = Color(0, 0, 0, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_8lmmt"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_8lmmt"]
resource_local_to_scene = true resource_local_to_scene = true
shader = ExtResource("3_8fwpu") shader = ExtResource("3_8fwpu")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.0
shader_parameter/highlight = Color(0, 0, 0, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkia"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkia"]
shader = ExtResource("3_8fwpu") shader = ExtResource("3_8fwpu")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.0
shader_parameter/highlight = Color(0, 0, 0, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fa2yd"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_fa2yd"]
shader = ExtResource("3_8fwpu") shader = ExtResource("3_8fwpu")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.0
shader_parameter/highlight = Color(0, 0, 0, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_5uixj"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_5uixj"]
shader = ExtResource("3_8fwpu") shader = ExtResource("3_8fwpu")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.0
shader_parameter/highlight = Color(0, 0, 0, 0)
[node name="Portrait" type="Control"] [node name="Portrait" type="Control"]
layout_mode = 3 layout_mode = 3
anchors_preset = 0
offset_right = 40.0 offset_right = 40.0
offset_bottom = 40.0 offset_bottom = 40.0
scale = Vector2(0.5, 0.5) scale = Vector2(0.5, 0.5)

View File

@@ -21,6 +21,10 @@ Guild="*res://scripts/guild.gd"
Game="*res://scripts/game_manager.gd" Game="*res://scripts/game_manager.gd"
Dialogic="*res://addons/dialogic/Core/DialogicGameHandler.gd" Dialogic="*res://addons/dialogic/Core/DialogicGameHandler.gd"
[data]
quests/directory="res://data/quests"
[dialogic] [dialogic]
directories/dch_directory={ directories/dch_directory={
@@ -52,8 +56,8 @@ choices/reveal_by_input=false
save/autosave_delay=60.0 save/autosave_delay=60.0
save/encryption_on_exports_only=true save/encryption_on_exports_only=true
text/autopauses={} text/autopauses={}
layout/style_list=[] layout/style_list=["res://dialogic/test-style.tres"]
layout/default_style="Default" layout/default_style="res://dialogic/test-style.tres"
variables={} variables={}
[display] [display]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=13 format=3 uid="uid://dfa6ep4o53s08"] [gd_scene load_steps=12 format=3 uid="uid://dfa6ep4o53s08"]
[ext_resource type="Script" uid="uid://cci652umkym1f" path="res://scripts/test_scene.gd" id="1_752n1"] [ext_resource type="Script" uid="uid://cci652umkym1f" path="res://scripts/test_scene.gd" id="1_752n1"]
[ext_resource type="Texture2D" uid="uid://c5yxq22ao1oyf" path="res://graphics/doorlight.png" id="2_oi1nh"] [ext_resource type="Texture2D" uid="uid://c5yxq22ao1oyf" path="res://graphics/doorlight.png" id="2_oi1nh"]
@@ -7,7 +7,6 @@
[ext_resource type="PackedScene" uid="uid://c8ofw6na082gv" path="res://templates/main_panel.tscn" id="4_4k18p"] [ext_resource type="PackedScene" uid="uid://c8ofw6na082gv" path="res://templates/main_panel.tscn" id="4_4k18p"]
[ext_resource type="PackedScene" uid="uid://c7jagw4y7w42l" path="res://templates/top_menu.tscn" id="5_p1w2f"] [ext_resource type="PackedScene" uid="uid://c7jagw4y7w42l" path="res://templates/top_menu.tscn" id="5_p1w2f"]
[ext_resource type="AudioStream" uid="uid://cmray2frojcd" path="res://sounds/Door Hinge Creaking Door.wav" id="7_oi1nh"] [ext_resource type="AudioStream" uid="uid://cmray2frojcd" path="res://sounds/Door Hinge Creaking Door.wav" id="7_oi1nh"]
[ext_resource type="Texture2D" uid="uid://c25xtpn3k8s8d" path="res://external/mage.png" id="8_4k18p"]
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_752n1"] [sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_752n1"]
blend_mode = 3 blend_mode = 3
@@ -124,10 +123,4 @@ layout_mode = 2
stream = ExtResource("7_oi1nh") stream = ExtResource("7_oi1nh")
volume_db = -24.535 volume_db = -24.535
[node name="Mage" type="Sprite2D" parent="."]
z_index = 4096
position = Vector2(952, 354)
scale = Vector2(0.1890599, 0.1890599)
texture = ExtResource("8_4k18p")
[connection signal="timeout" from="Guildhall/VisitorSpawner/Timer" to="Guildhall/VisitorSpawner" method="_on_timer_timeout"] [connection signal="timeout" from="Guildhall/VisitorSpawner/Timer" to="Guildhall/VisitorSpawner" method="_on_timer_timeout"]

View File

@@ -90,7 +90,7 @@ gradient = SubResource("Gradient_3vymb")
resource_local_to_scene = true resource_local_to_scene = true
shader = ExtResource("3_3vymb") shader = ExtResource("3_3vymb")
shader_parameter/gradient = SubResource("GradientTexture1D_ht11g") shader_parameter/gradient = SubResource("GradientTexture1D_ht11g")
shader_parameter/fringe = 0.008000000001629815 shader_parameter/fringe = 0.00800000000162981
[node name="Guild Card Scene" type="Control"] [node name="Guild Card Scene" type="Control"]
layout_mode = 3 layout_mode = 3

View File

@@ -17,7 +17,7 @@ shader = ExtResource("3_2lpho")
shader_parameter/add_color = Color(1, 1, 1, 0) shader_parameter/add_color = Color(1, 1, 1, 0)
shader_parameter/fringe_color = SubResource("GradientTexture1D_blm8a") shader_parameter/fringe_color = SubResource("GradientTexture1D_blm8a")
shader_parameter/fringe_threshold = 0.10000000000582077 shader_parameter/fringe_threshold = 0.10000000000582077
shader_parameter/threshold = 0.3606666537395989 shader_parameter/threshold = 0.361
[node name="Control" type="Control"] [node name="Control" type="Control"]
layout_mode = 3 layout_mode = 3
@@ -38,11 +38,16 @@ texture = ExtResource("1_2klcf")
[node name="Map Pin2" parent="." instance=ExtResource("2_paxxb")] [node name="Map Pin2" parent="." instance=ExtResource("2_paxxb")]
layout_mode = 0 layout_mode = 0
anchors_preset = 0
offset_left = 389.0 offset_left = 389.0
offset_top = 554.0 offset_top = 554.0
offset_right = 459.0 offset_right = 459.0
offset_bottom = 624.0 offset_bottom = 624.0
label = ""
locked_brief = null
unlocked_brief = null
[node name="Brief" parent="Map Pin2/Panel" index="0"]
text = ""
[node name="CanvasGroup" parent="Map Pin2" index="1"] [node name="CanvasGroup" parent="Map Pin2" index="1"]
material = SubResource("ShaderMaterial_gldc4") material = SubResource("ShaderMaterial_gldc4")
@@ -51,18 +56,35 @@ material = SubResource("ShaderMaterial_gldc4")
mouse_filter = 2 mouse_filter = 2
[node name="Banner" parent="Map Pin2/CanvasGroup" index="1"] [node name="Banner" parent="Map Pin2/CanvasGroup" index="1"]
offset_left = 0.0
offset_top = 0.0
offset_right = 188.0
offset_bottom = 188.0
mouse_filter = 2 mouse_filter = 2
[node name="Label" parent="Map Pin2/CanvasGroup/Banner" index="0"] [node name="Label" parent="Map Pin2/CanvasGroup/Banner" index="0"]
text = "Avara Plains" text = ""
[node name="Map Pin3" parent="." instance=ExtResource("2_paxxb")] [node name="Map Pin3" parent="." instance=ExtResource("2_paxxb")]
layout_mode = 0 layout_mode = 0
anchors_preset = 0
offset_left = 144.0 offset_left = 144.0
offset_top = 382.0 offset_top = 382.0
offset_right = 214.0 offset_right = 214.0
offset_bottom = 452.0 offset_bottom = 452.0
primed = true primed = true
label = "Nestor's Woods"
locked_brief = null
unlocked_brief = null
[node name="Map Pin4" parent="." instance=ExtResource("2_paxxb")]
layout_mode = 0
offset_left = 229.0
offset_top = 89.0
offset_right = 299.0
offset_bottom = 159.0
primed = true
label = "Iko Gorge"
locked_brief = "Mysterious cliffs in the frozen north."
unlocked_brief = "One of the few northernmost lands uninhabited by [giants]. The snowy creatures of the Iko region run rampant here. Some say they are protected by the [giant] goddess, [Nakari]."
[editable path="Map Pin2"] [editable path="Map Pin2"]

79
scenes/options.tscn Normal file
View File

@@ -0,0 +1,79 @@
[gd_scene load_steps=2 format=3 uid="uid://dpe7by8lvno0h"]
[ext_resource type="Script" uid="uid://b2jhi1k8mktqm" path="res://scripts/options.gd" id="1_c2u1v"]
[node name="Options" type="Control"]
z_index = 1000
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_c2u1v")
[node name="ColorRect" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 0.5921569)
[node name="PanelContainer" type="PanelContainer" parent="."]
custom_minimum_size = Vector2(500, 500)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -250.0
offset_top = -250.0
offset_right = 250.0
offset_bottom = 250.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 92
text = "Options"
horizontal_alignment = 1
[node name="Control" type="Control" parent="PanelContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 100)
layout_mode = 2
[node name="QuitButton" type="Button" parent="PanelContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
text = "Quit to Main Menu"
[node name="SuperquitButton" type="Button" parent="PanelContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
text = "Quit Game"
[node name="BackButton" type="Button" parent="PanelContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
text = "BACK"
[node name="ConfirmationDialog" type="ConfirmationDialog" parent="."]
oversampling_override = 1.0
title = "Confirm Quit"
initial_position = 2
size = Vector2i(256, 106)
ok_button_text = "QUIT"
dialog_text = "Are you sure you want to quit?
(Progress will be saved first)"
[connection signal="pressed" from="PanelContainer/VBoxContainer/QuitButton" to="." method="_on_quit_button_pressed"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/SuperquitButton" to="." method="_on_superquit_button_pressed"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/BackButton" to="." method="_on_back_button_pressed"]
[connection signal="confirmed" from="ConfirmationDialog" to="." method="_on_confirmation_dialog_confirmed"]

View File

@@ -1,6 +1,6 @@
class_name AdventurerPortrait extends Control class_name AdventurerPortrait extends Control
var option_sets : Dictionary
var cv_lists : Array var cv_lists : Array
func _ready() -> void: func _ready() -> void:
@@ -8,9 +8,18 @@ func _ready() -> void:
cv_lists.resize(ColorVariant.Types.size()) cv_lists.resize(ColorVariant.Types.size())
for i in range(len(cv_lists)): for i in range(len(cv_lists)):
cv_lists[i] = [] cv_lists[i] = []
for child in get_children(): add_color_variants(get_children())
for child : Control in get_children():
if child.get_child_count() > 0:
option_sets[child.name.to_lower()] = child
func add_color_variants(list : Array) -> void:
for child : Control in list:
if child is ColorVariant: if child is ColorVariant:
cv_lists[child.type].append(child) cv_lists[child.type].append(child)
if child.get_child_count() > 0:
add_color_variants(child.get_children())
func set_appearance(appearance) -> void: func set_appearance(appearance) -> void:
set_color(ColorVariant.Types.HAIR, appearance.hair_color) set_color(ColorVariant.Types.HAIR, appearance.hair_color)
@@ -39,3 +48,13 @@ static func random_color(type : ColorVariant.Types) -> String:
func set_color(type : ColorVariant.Types, color : String) -> void: func set_color(type : ColorVariant.Types, color : String) -> void:
for cv : ColorVariant in cv_lists[type]: for cv : ColorVariant in cv_lists[type]:
cv.set_color(color) cv.set_color(color)
func flash_color_variants(node : Control, flashing : bool) -> void:
if node is ColorVariant:
node.flash(flashing)
for child in node.get_children():
flash_color_variants(child, flashing)
func flash_option(key : String, flashing : bool) -> void:
flash_color_variants(option_sets[key], flashing)

View File

@@ -52,7 +52,7 @@ static var hair_colors = {
"brown":{ "brown":{
"weight": 100, "weight": 100,
"color": preload("res://external/test portrait/gradients/hair/(c)brown.tres"), "color": preload("res://external/test portrait/gradients/hair/(c)brown.tres"),
"luminosity": preload("res://external/test portrait/gradients/hair/(l)dark.tres"), "luminosity": preload("res://external/test portrait/gradients/hair/(l)mid.tres"),
}, },
"black":{ "black":{
"weight": 100, "weight": 100,
@@ -74,17 +74,17 @@ static var hair_colors = {
static var skin_colors = { static var skin_colors = {
"pale":{ "pale":{
"weight": 100, "weight": 100,
"color": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"), "color": preload("res://external/test portrait/gradients/skin/(c)pale.tres"),
"luminosity": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"), "luminosity": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"),
}, },
"medium":{ "medium":{
"weight": 100, "weight": 100,
"color": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"), "color": preload("res://external/test portrait/gradients/skin/(c)medium.tres"),
"luminosity": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"), "luminosity": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"),
}, },
"olive":{ "olive":{
"weight": 100, "weight": 100,
"color": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"), "color": preload("res://external/test portrait/gradients/skin/(c)blue.tres"),
"luminosity": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"), "luminosity": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"),
}, },
"brown":{ "brown":{
@@ -94,17 +94,22 @@ static var skin_colors = {
}, },
"dark":{ "dark":{
"weight": 100, "weight": 100,
"color": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"), "color": preload("res://external/test portrait/gradients/skin/(c)dark.tres"),
"luminosity": preload("res://external/test portrait/gradients/eyes/(l)default.tres"), "luminosity": preload("res://external/test portrait/gradients/eyes/(l)default.tres"),
}, },
"white":{ "white":{
"weight": 0, "weight": 0,
"color": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"), "color": preload("res://external/test portrait/gradients/skin/(c)white.tres"),
"luminosity": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"), "luminosity": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"),
}, },
"red":{ "red":{
"weight": 0, "weight": 0,
"color": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"), "color": preload("res://external/test portrait/gradients/skin/(c)red.tres"),
"luminosity": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"),
},
"blue":{
"weight": 0,
"color": preload("res://external/test portrait/gradients/skin/(c)blue.tres"),
"luminosity": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"), "luminosity": preload("res://external/test portrait/gradients/eyes/(c)blue.tres"),
}, },
} }
@@ -133,3 +138,6 @@ func set_color(color : String) -> void:
var mat = material var mat = material
mat.set_shader_parameter("color_gradient",col_gradients.color) mat.set_shader_parameter("color_gradient",col_gradients.color)
mat.set_shader_parameter("luminosity_gradient",col_gradients.luminosity) mat.set_shader_parameter("luminosity_gradient",col_gradients.luminosity)
func flash(flashing : bool) -> void:
material.set_shader_parameter("flash",flashing)

View File

@@ -1,5 +1,6 @@
extends Node extends Node
var player_data : Adventurer = null
var player : Player = null var player : Player = null
var panel : GamePanel = null var panel : GamePanel = null
var player_profile : Window = null var player_profile : Window = null
@@ -11,6 +12,8 @@ var end_shift_confirm_template = preload("res://templates/end_shift_confirmation
var player_profile_template = preload("res://templates/player_profile_window.tscn") var player_profile_template = preload("res://templates/player_profile_window.tscn")
var last_screenshot : Image var last_screenshot : Image
func _ready() -> void: func _ready() -> void:
player_data = Adventurer.new()
Quest.load_quest_list()
DisplayServer.register_additional_output(self) DisplayServer.register_additional_output(self)
end_shift_confirmation = end_shift_confirm_template.instantiate() end_shift_confirmation = end_shift_confirm_template.instantiate()
add_child(end_shift_confirmation) add_child(end_shift_confirmation)
@@ -88,8 +91,9 @@ func test_save() -> void:
save_dict["guildname"] = Guild.name save_dict["guildname"] = Guild.name
save_dict["guildlevel"] = Guild.level save_dict["guildlevel"] = Guild.level
#Save the player data #Save the player data
save_dict["playername"] = player.data.full_name() if player:
save_dict["playerlevel"] = player.data.level save_dict["playername"] = player.data.full_name()
save_dict["playerlevel"] = player.data.level
#Save the employee data #Save the employee data
#Save the adventurer data #Save the adventurer data
#Save the quest data #Save the quest data
@@ -133,3 +137,9 @@ func switch_scenes(scene_name : String) -> void:
func switch_dialogue(timeline_name : String, label : String) -> void: func switch_dialogue(timeline_name : String, label : String) -> void:
Dialogic.start("res://dialogic/timelines/" + timeline_name + ".dtl", label) Dialogic.start("res://dialogic/timelines/" + timeline_name + ".dtl", label)
func save_quests(save_dict : Dictionary) -> void:
var lst = []
for quest in Guild.quests:
lst.append(quest.save_dict())
save_dict.quests = lst

View File

@@ -40,9 +40,12 @@ func update_signature_threshold(value : float) -> void:
func _on_sign_button_pressed() -> void: func _on_sign_button_pressed() -> void:
signButton.visible = false signButton.visible = false
var tween = create_tween() var tween = create_tween()
Game.player_data.name = %FirstNameEdit.text
Game.player_data.surname = %LastNameEdit.text
write_sound.play() write_sound.play()
tween.tween_method(update_signature_threshold, -0.1, 1.1, .5) tween.tween_method(update_signature_threshold, -0.1, 1.1, .5)
tween.tween_interval(1)
tween.tween_callback(Game.switch_dialogue.bind("game_start", "Start Schedule"))
#Sign the card. #Sign the card.
#Dialogic.paused = false #Dialogic.paused = false
#Dialogic.Jump.jump_to_label("") #Dialogic.Jump.jump_to_label("")

View File

@@ -3,6 +3,7 @@ class_name GamePanel extends MarginContainer
const notice_template = preload("res://templates/notice_panel.tscn") const notice_template = preload("res://templates/notice_panel.tscn")
const quest_progress_bar_template = preload("res://templates/quest_progress_bar.tscn") const quest_progress_bar_template = preload("res://templates/quest_progress_bar.tscn")
const quest_view_template = preload("res://templates/quest_view.tscn") const quest_view_template = preload("res://templates/quest_view.tscn")
const options_template = preload("res://scenes/options.tscn")
signal time_changed(time : float) signal time_changed(time : float)
@@ -100,3 +101,9 @@ func _on_drag_region_gui_input(event: InputEvent) -> void:
func _on_quest_viewer_button_pressed() -> void: func _on_quest_viewer_button_pressed() -> void:
%QuestView.visible = !%QuestView.visible %QuestView.visible = !%QuestView.visible
func _on_options_button_pressed() -> void:
var opt = options_template.instantiate()
get_tree().root.add_child(opt)
pass # Replace with function body.

View File

@@ -2,24 +2,31 @@
extends TextureButton extends TextureButton
@onready var panel : PanelContainer = $Panel @onready var panel : PanelContainer = %BriefPanel
@onready var anim_player : AnimationPlayer = $AnimationPlayer @onready var anim_player : AnimationPlayer = $AnimationPlayer
var panel_shown : bool = false var panel_shown : bool = false
@export var primed : bool = false @export var primed : bool = false
var locked : bool = true var locked : bool = true
var mat : ShaderMaterial var mat : ShaderMaterial
var _circle_size : float = 0 var _circle_size : float = 0
@export var circle_size: float: var circle_size: float:
get(): return _circle_size get(): return _circle_size
set(value): set(value):
_circle_size = value _circle_size = value
queue_redraw() queue_redraw()
@export var add_color : Color var add_color : Color = Color(1,1,1,0)
@export var threshold : float var threshold : float = .361
@export var thickness : float = 5 var thickness : float = 5
@export var max_circle_size : float = 200 var max_circle_size : float = 200
@export var label : String = ""
@export var locked_brief : String = ""
@export var unlocked_brief : String = ""
func _ready() -> void: func _ready() -> void:
#TODO: Add a nine-patch and resize the banner based on the label contents
%Label.text = label
%Brief.text = locked_brief
mat = %CanvasGroup.material mat = %CanvasGroup.material
if primed: if primed:
anim_player.play("primed") anim_player.play("primed")
@@ -28,10 +35,21 @@ func _process(delta: float) -> void:
mat.set_shader_parameter("add_color", add_color) mat.set_shader_parameter("add_color", add_color)
mat.set_shader_parameter("threshold", threshold) mat.set_shader_parameter("threshold", threshold)
func reposition_brief() -> void:
print(%BriefPanel.size.y)
print(%Brief.size.y)
%BriefPanel.pivot_offset = Vector2(0, %Brief.size.y)
%BriefPanel.position.y += %BriefPanel.size.y - %Brief.size.y
%Brief.get_line_height()
func unlock() -> void: func unlock() -> void:
locked = false locked = false
primed = false primed = false
anim_player.play("unlock") anim_player.play("unlock")
print(%Brief.size.y)
%Brief.text = unlocked_brief
print(%Brief.size.y)
reposition_brief.call_deferred()
$AudioStreamPlayer2D.play() $AudioStreamPlayer2D.play()
func _on_mouse_entered() -> void: func _on_mouse_entered() -> void:

29
scripts/options.gd Normal file
View File

@@ -0,0 +1,29 @@
extends Control
var superquitting: bool = false
func show_quit_confirm() -> void:
$ConfirmationDialog.popup_centered()
func _on_back_button_pressed() -> void:
queue_free()
func _on_quit_button_pressed() -> void:
superquitting = false
show_quit_confirm()
pass # Replace with function body.
func _on_superquit_button_pressed() -> void:
superquitting = true
show_quit_confirm()
pass # Replace with function body.
func _on_confirmation_dialog_confirmed() -> void:
Game.test_save()
queue_free()
if superquitting:
get_tree().quit()
else:
Game.switch_scenes("start_menu")

1
scripts/options.gd.uid Normal file
View File

@@ -0,0 +1 @@
uid://b2jhi1k8mktqm

View File

@@ -0,0 +1,50 @@
extends Control
@onready var portrait : AdventurerPortrait = $HeroPortrait
var option = 0
var opt_key : String = ""
var choices : Array = []
func _ready() -> void:
choices.resize(portrait.option_sets.size())
choices.fill(0)
opt_key = portrait.option_sets.keys()[option]
portrait.flash_option(portrait.option_sets.keys()[option], true)
func _on_left_button_pressed() -> void:
portrait.option_sets[opt_key].get_child(choices[option]).visible = false
choices[option] -= 1
if choices[option] < 0:
choices[option] = portrait.option_sets[opt_key].get_child_count() - 1
portrait.option_sets[opt_key].get_child(choices[option]).visible = true
func _on_right_button_pressed() -> void:
portrait.option_sets[opt_key].get_child(choices[option]).visible = false
choices[option] += 1
if choices[option] >= portrait.option_sets[opt_key].get_child_count():
choices[option] -= portrait.option_sets[opt_key].get_child_count()
portrait.option_sets[opt_key].get_child(choices[option]).visible = true
pass # Replace with function body.
func _on_up_button_pressed() -> void:
portrait.flash_option(portrait.option_sets.keys()[option], false)
option -= 1
if option < 0:
option = portrait.option_sets.keys().size() - 1
opt_key = portrait.option_sets.keys()[option]
portrait.flash_option(portrait.option_sets.keys()[option], true)
func _on_down_button_pressed() -> void:
portrait.flash_option(portrait.option_sets.keys()[option], false)
option += 1
if option >= portrait.option_sets.keys().size():
option -= portrait.option_sets.keys().size()
opt_key = portrait.option_sets.keys()[option]
portrait.flash_option(portrait.option_sets.keys()[option], true)
func _on_color_pressed(slot : ColorVariant.Types, col : String) -> void:
portrait.set_color(slot, col)

View File

@@ -0,0 +1 @@
uid://y86x71nakgkl

View File

@@ -46,18 +46,23 @@ func generate_waypoints():
waypoints = [] waypoints = []
#Include the "end" in the count #Include the "end" in the count
var num = quest.num_events()+1 var num = quest.num_events()
for i in range(1,num): #add_waypoint(0, Quest.Event.new())
var pct : float = i / float(num) #waypoints[0].
add_waypoint( pct, quest.events[i-1]) for evt : Quest.Event in quest.events:
add_waypoint( evt.progress_point, evt)
#add_waypoint(1, Quest.Event.new())
func add_waypoint(pct : float, event : Quest.Event): func add_waypoint(pct : float, event : Quest.Event):
var wp = waypoint_template.instantiate() var wp = waypoint_template.instantiate()
waypoints.append(wp) waypoints.append(wp)
wp.percent = pct wp.percent = pct
#TODO: Make events matter #TODO: Make events matter
wp.event = event wp.event = event
%Waypoints.add_child(wp) %Waypoints.add_child(wp)
if event.hidden:
wp.visible = false
wp.global_position = %Waypoints.global_position + Vector2(pct * length - 16, -9) wp.global_position = %Waypoints.global_position + Vector2(pct * length - 16, -9)
if bar.value / bar.max_value >= pct: if bar.value / bar.max_value >= pct:
wp.fill = true wp.fill = true
@@ -86,7 +91,10 @@ func setup(quest : Quest) -> void:
func progress_quest() -> void: func progress_quest() -> void:
var pct = time_elapsed / quest.length var pct = time_elapsed / quest.length
quest.progress = pct
if next_waypoint < len(waypoints) and pct >= waypoints[next_waypoint].percent: if next_waypoint < len(waypoints) and pct >= waypoints[next_waypoint].percent:
if waypoints[next_waypoint].visible == false:
waypoints[next_waypoint].visible = true
start_event(waypoints[next_waypoint].event, (pct - waypoints[next_waypoint].percent) * quest.length) start_event(waypoints[next_waypoint].event, (pct - waypoints[next_waypoint].percent) * quest.length)
pct = waypoints[next_waypoint].percent pct = waypoints[next_waypoint].percent
waypoints[next_waypoint].blink(true) waypoints[next_waypoint].blink(true)

View File

@@ -31,3 +31,8 @@ func pause_setting() -> void:
func unpause_setting() -> void: func unpause_setting() -> void:
setting.process_mode = Node.PROCESS_MODE_INHERIT setting.process_mode = Node.PROCESS_MODE_INHERIT
func show_quest_complete() -> void:
%QuestComplete.visible = true
set_questor_animation("idle")
setting.process_mode = Node.PROCESS_MODE_DISABLED

View File

@@ -5,12 +5,9 @@ var test_item = preload("res://data/items/pitchfork.tres")
func _ready() -> void: func _ready() -> void:
#var adv : Adventurer = test_adv.instantiate() as Adventurer #var adv : Adventurer = test_adv.instantiate() as Adventurer
#Guild.register_guild_member(adv) #Guild.register_guild_member(adv)
var quest : Quest = Quest.new() var lst = Quest.list
var evt : Quest.Event = Quest.Event.new() var quest : Quest = Quest.list[1].duplicate(true)
evt.type = Quest.Event.Type.COMBAT quest.setup()
evt.enemies = ["goo"]
evt.time = 10
quest.events.append(evt)
Guild.add_quest(quest) Guild.add_quest(quest)
Guild.assign_quest(Game.player.data, quest) Guild.assign_quest(Game.player.data, quest)
var itm = test_item.duplicate() var itm = test_item.duplicate()

View File

@@ -24,4 +24,4 @@ func appear(show_time : float):
func _on_timer_timeout() -> void: func _on_timer_timeout() -> void:
var tween = create_tween() var tween = create_tween()
tween.tween_property(self, "modulate", Color(1,1,1,0), .5) tween.tween_property(self, "modulate", Color(1,1,1,0), .5)
tween.tween_callback(queue_free) #tween.tween_callback(queue_free)

View File

@@ -0,0 +1,329 @@
[gd_scene load_steps=36 format=3 uid="uid://drshemnag35re"]
[ext_resource type="Script" uid="uid://m86jmtwv1a22" path="res://scripts/adventurer_portrait.gd" id="1_ovplg"]
[ext_resource type="Texture2D" uid="uid://b303qa76o5r1m" path="res://external/test portrait/farmer_f/hat.png" id="2_rvj82"]
[ext_resource type="Shader" uid="uid://cru1otvka0qn5" path="res://external/test portrait/variant_color.gdshader" id="3_op84m"]
[ext_resource type="Texture2D" uid="uid://dbdjaye6srxhx" path="res://external/test portrait/farmer_f/head.png" id="4_dcd5x"]
[ext_resource type="Texture2D" uid="uid://bpiu6d7lbhyw" path="res://external/test portrait/gradients/hair/(l)mid.tres" id="4_rvj82"]
[ext_resource type="Script" uid="uid://cdi0oxcug1hup" path="res://scripts/color_variant.gd" id="5_riel4"]
[ext_resource type="Texture2D" uid="uid://can8npg0ufr3f" path="res://external/test portrait/farmer_f/hair_bg.png" id="7_nwmjm"]
[ext_resource type="Texture2D" uid="uid://cru775pghpate" path="res://external/test portrait/farmer_f/hair_fg_shadow.png" id="8_2gbpo"]
[ext_resource type="Texture2D" uid="uid://x4e86o28672u" path="res://external/test portrait/farmer_f/brow_shadow-2.png" id="9_qslms"]
[ext_resource type="Texture2D" uid="uid://caow8dqiog7j4" path="res://external/test portrait/farmer_f/ear.png" id="10_3uw50"]
[ext_resource type="Texture2D" uid="uid://csp7xbtu0tpn7" path="res://external/test portrait/farmer_f/eye-white-1.png" id="11_06xpe"]
[ext_resource type="Texture2D" uid="uid://mygmunn3voie" path="res://external/test portrait/farmer_f/eyes-iris-1.png" id="13_h52hx"]
[ext_resource type="Texture2D" uid="uid://cygn0xfsayykd" path="res://external/test portrait/player/eye-a.png" id="13_riel4"]
[ext_resource type="Texture2D" uid="uid://vt17lekvchdg" path="res://external/test portrait/farmer_f/hair_fg.png" id="14_wbk3e"]
[ext_resource type="Texture2D" uid="uid://bg6lac6nl5k84" path="res://external/test portrait/player/eye-b.png" id="14_yemgt"]
[ext_resource type="Texture2D" uid="uid://brmta1rtiau4a" path="res://external/test portrait/farmer_f/brows-2.png" id="15_dx3tu"]
[ext_resource type="Texture2D" uid="uid://bxdclvopvj75q" path="res://external/test portrait/player/eye-c.png" id="15_nwmjm"]
[ext_resource type="Texture2D" uid="uid://wnkr20dtf734" path="res://external/test portrait/farmer_f/eyes-lashes-1.png" id="16_grsle"]
[ext_resource type="Texture2D" uid="uid://0dwdi7m62trg" path="res://external/test portrait/gradients/hair/(c)red.tres" id="16_outqi"]
[ext_resource type="Texture2D" uid="uid://bqmnbsxgbrcpw" path="res://external/test portrait/gradients/hair/(l)red.tres" id="17_dcd5x"]
[ext_resource type="Texture2D" uid="uid://crrd8mpcuync2" path="res://external/test portrait/farmer_f/body.png" id="17_m1scf"]
[ext_resource type="Texture2D" uid="uid://dyeu4kwwnxjn5" path="res://external/test portrait/farmer_f/hat_fg.png" id="18_prh5n"]
[sub_resource type="Gradient" id="Gradient_riel4"]
offsets = PackedFloat32Array(0.4870968, 0.6, 0.88387096, 1)
colors = PackedColorArray(0.69, 0.045999996, 0, 1, 1, 0.67700005, 0.49, 1, 1, 0.85942566, 0.78655404, 1, 1, 0.88, 0.82, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_yemgt"]
gradient = SubResource("Gradient_riel4")
[sub_resource type="Gradient" id="Gradient_nwmjm"]
offsets = PackedFloat32Array(0, 0.5387097, 0.6967742, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.38549262, 0.38549247, 0.3854924, 1, 0.8064516, 0.8064516, 0.8064516, 1, 1, 1, 1, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_2gbpo"]
gradient = SubResource("Gradient_nwmjm")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_rvj82"]
resource_local_to_scene = true
shader = ExtResource("3_op84m")
shader_parameter/color_gradient = SubResource("GradientTexture1D_yemgt")
shader_parameter/luminosity_gradient = SubResource("GradientTexture1D_2gbpo")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.4
shader_parameter/highlight = Color(1, 1, 1, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ovplg"]
resource_local_to_scene = true
shader = ExtResource("3_op84m")
shader_parameter/luminosity_gradient = ExtResource("4_rvj82")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.4
shader_parameter/highlight = Color(0, 0, 0, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_outqi"]
resource_local_to_scene = true
shader = ExtResource("3_op84m")
shader_parameter/luminosity_gradient = ExtResource("4_rvj82")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.4
shader_parameter/highlight = Color(1, 1, 1, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_isphy"]
resource_local_to_scene = true
shader = ExtResource("3_op84m")
shader_parameter/luminosity_gradient = ExtResource("4_rvj82")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.4
shader_parameter/highlight = Color(1, 1, 1, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_riel4"]
resource_local_to_scene = true
shader = ExtResource("3_op84m")
shader_parameter/luminosity_gradient = ExtResource("4_rvj82")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.4
shader_parameter/highlight = Color(1, 1, 1, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_nwmjm"]
resource_local_to_scene = true
shader = ExtResource("3_op84m")
shader_parameter/luminosity_gradient = ExtResource("4_rvj82")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.4
shader_parameter/highlight = Color(1, 1, 1, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_dcd5x"]
resource_local_to_scene = true
shader = ExtResource("3_op84m")
shader_parameter/luminosity_gradient = ExtResource("4_rvj82")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.4
shader_parameter/highlight = Color(1, 1, 1, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_yemgt"]
resource_local_to_scene = true
shader = ExtResource("3_op84m")
shader_parameter/color_gradient = ExtResource("16_outqi")
shader_parameter/luminosity_gradient = ExtResource("17_dcd5x")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.4
shader_parameter/highlight = Color(1, 1, 1, 0)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_op84m"]
resource_local_to_scene = true
shader = ExtResource("3_op84m")
shader_parameter/luminosity_gradient = ExtResource("4_rvj82")
shader_parameter/flash = false
shader_parameter/flash_strength = 0.4
shader_parameter/highlight = Color(1, 1, 1, 0)
[node name="HeroPortrait" type="Control"]
custom_minimum_size = Vector2(512, 512)
layout_mode = 3
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
script = ExtResource("1_ovplg")
metadata/_custom_type_script = "uid://m86jmtwv1a22"
[node name="Hat BG" type="TextureRect" parent="."]
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
texture = ExtResource("2_rvj82")
[node name="Head" type="TextureRect" parent="."]
z_index = 2
material = SubResource("ShaderMaterial_rvj82")
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
texture = ExtResource("4_dcd5x")
script = ExtResource("5_riel4")
[node name="Ear" type="TextureRect" parent="."]
z_index = 3
material = SubResource("ShaderMaterial_ovplg")
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
texture = ExtResource("10_3uw50")
script = ExtResource("5_riel4")
[node name="Hair" type="Control" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="A" type="Control" parent="Hair"]
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="FG Shadow" type="TextureRect" parent="Hair/A"]
z_index = 4
material = SubResource("ShaderMaterial_outqi")
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
texture = ExtResource("8_2gbpo")
script = ExtResource("5_riel4")
[node name="BG" type="TextureRect" parent="Hair/A"]
z_index = 1
material = SubResource("ShaderMaterial_isphy")
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
texture = ExtResource("7_nwmjm")
script = ExtResource("5_riel4")
type = 1
[node name="FG" type="TextureRect" parent="Hair/A"]
z_index = 5
material = SubResource("ShaderMaterial_riel4")
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
texture = ExtResource("14_wbk3e")
script = ExtResource("5_riel4")
type = 1
[node name="Body" type="TextureRect" parent="."]
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
texture = ExtResource("17_m1scf")
[node name="Hat FG" type="TextureRect" parent="."]
z_index = 6
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
texture = ExtResource("18_prh5n")
[node name="Eyes" type="Control" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="A" type="Control" parent="Eyes"]
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="Eyelids" type="TextureRect" parent="Eyes/A"]
z_index = 4
material = SubResource("ShaderMaterial_nwmjm")
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
texture = ExtResource("13_riel4")
script = ExtResource("5_riel4")
[node name="B" type="Control" parent="Eyes"]
visible = false
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="Eyelids" type="TextureRect" parent="Eyes/B"]
z_index = 4
material = SubResource("ShaderMaterial_nwmjm")
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
texture = ExtResource("14_yemgt")
script = ExtResource("5_riel4")
[node name="C" type="Control" parent="Eyes"]
visible = false
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="Eyelids" type="TextureRect" parent="Eyes/C"]
z_index = 4
material = SubResource("ShaderMaterial_nwmjm")
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
texture = ExtResource("15_nwmjm")
script = ExtResource("5_riel4")
[node name="D" type="Control" parent="Eyes"]
visible = false
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="Eyelids" type="TextureRect" parent="Eyes/D"]
z_index = 4
material = SubResource("ShaderMaterial_nwmjm")
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
texture = ExtResource("16_grsle")
script = ExtResource("5_riel4")
[node name="Eye White" type="TextureRect" parent="Eyes/D"]
z_index = 2
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
texture = ExtResource("11_06xpe")
[node name="Irises" type="TextureRect" parent="Eyes/D"]
z_index = 3
material = SubResource("ShaderMaterial_dcd5x")
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
texture = ExtResource("13_h52hx")
script = ExtResource("5_riel4")
type = 2
[node name="Brows" type="Control" parent="."]
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="A" type="Control" parent="Brows"]
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="Brows" type="TextureRect" parent="Brows/A"]
z_index = 6
material = SubResource("ShaderMaterial_yemgt")
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
texture = ExtResource("15_dx3tu")
script = ExtResource("5_riel4")
type = 1
[node name="Brow Shadows" type="TextureRect" parent="Brows/A"]
z_index = 4
material = SubResource("ShaderMaterial_op84m")
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
texture = ExtResource("9_qslms")
script = ExtResource("5_riel4")

View File

@@ -22,7 +22,6 @@ corner_radius_bottom_left = 3
corner_detail = 5 corner_detail = 5
[node name="MainPanel" type="MarginContainer"] [node name="MainPanel" type="MarginContainer"]
anchors_preset = -1
offset_right = 401.0 offset_right = 401.0
offset_bottom = 853.0 offset_bottom = 853.0
theme_override_constants/margin_left = 0 theme_override_constants/margin_left = 0
@@ -44,6 +43,14 @@ custom_minimum_size = Vector2(401, 216)
layout_mode = 2 layout_mode = 2
theme_override_styles/panel = ExtResource("2_b7y1i") theme_override_styles/panel = ExtResource("2_b7y1i")
[node name="TextureButton" type="TextureButton" parent="VBoxContainer/OpenShift"]
layout_mode = 0
offset_left = 358.0
offset_top = 5.0
offset_right = 397.0
offset_bottom = 44.0
texture_normal = ExtResource("5_6vw8v")
[node name="NinePatchRect" type="NinePatchRect" parent="VBoxContainer/OpenShift"] [node name="NinePatchRect" type="NinePatchRect" parent="VBoxContainer/OpenShift"]
layout_mode = 0 layout_mode = 0
offset_left = 9.0 offset_left = 9.0
@@ -107,6 +114,7 @@ theme_override_styles/panel = ExtResource("4_b7y1i")
[node name="DragRegion" type="Control" parent="VBoxContainer/WorkingShift"] [node name="DragRegion" type="Control" parent="VBoxContainer/WorkingShift"]
layout_mode = 1 layout_mode = 1
anchors_preset = 0
offset_left = 4.0 offset_left = 4.0
offset_top = 3.0 offset_top = 3.0
offset_right = 399.0 offset_right = 399.0
@@ -212,6 +220,7 @@ layout_mode = 2
stream = ExtResource("6_osxme") stream = ExtResource("6_osxme")
volume_db = -10.31 volume_db = -10.31
[connection signal="pressed" from="VBoxContainer/OpenShift/TextureButton" to="." method="_on_options_button_pressed"]
[connection signal="pressed" from="VBoxContainer/OpenShift/Margin/OpenList/Button" to="." method="_on_end_shift_pressed"] [connection signal="pressed" from="VBoxContainer/OpenShift/Margin/OpenList/Button" to="." method="_on_end_shift_pressed"]
[connection signal="gui_input" from="VBoxContainer/WorkingShift/DragRegion" to="." method="_on_drag_region_gui_input"] [connection signal="gui_input" from="VBoxContainer/WorkingShift/DragRegion" to="." method="_on_drag_region_gui_input"]
[connection signal="pressed" from="VBoxContainer/WorkingShift/MarginContainer/WorkingList/HBoxContainer/QuestViewerButton" to="." method="_on_quest_viewer_button_pressed"] [connection signal="pressed" from="VBoxContainer/WorkingShift/MarginContainer/WorkingList/HBoxContainer/QuestViewerButton" to="." method="_on_quest_viewer_button_pressed"]

View File

@@ -22,7 +22,7 @@ shader = ExtResource("2_lqa1n")
shader_parameter/add_color = Color(1, 1, 1, 0) shader_parameter/add_color = Color(1, 1, 1, 0)
shader_parameter/fringe_color = SubResource("GradientTexture1D_blm8a") shader_parameter/fringe_color = SubResource("GradientTexture1D_blm8a")
shader_parameter/fringe_threshold = 0.10000000000582077 shader_parameter/fringe_threshold = 0.10000000000582077
shader_parameter/threshold = 1.0 shader_parameter/threshold = 0.3606666537395989
[sub_resource type="Animation" id="Animation_jh32y"] [sub_resource type="Animation" id="Animation_jh32y"]
length = 0.001 length = 0.001
@@ -189,17 +189,18 @@ _data = {
} }
[node name="Map Pin" type="TextureButton"] [node name="Map Pin" type="TextureButton"]
anchors_preset = -1 offset_left = -35.0
offset_left = 69.0 offset_top = -35.0
offset_top = 410.0 offset_right = 35.0
offset_right = 139.0 offset_bottom = 35.0
offset_bottom = 480.0 pivot_offset = Vector2(35, 35)
script = ExtResource("1_ymuo7") script = ExtResource("1_ymuo7")
circle_size = 200.0 label = null
add_color = Color(1, 1, 1, 0) locked_brief = null
threshold = 0.3606666537395989 unlocked_brief = null
[node name="Panel" type="PanelContainer" parent="."] [node name="BriefPanel" type="PanelContainer" parent="."]
unique_name_in_owner = true
visible = false visible = false
custom_minimum_size = Vector2(300, 100) custom_minimum_size = Vector2(300, 100)
layout_mode = 0 layout_mode = 0
@@ -209,7 +210,8 @@ offset_right = 334.0
offset_bottom = 30.0 offset_bottom = 30.0
mouse_filter = 2 mouse_filter = 2
[node name="Label" type="Label" parent="Panel"] [node name="Brief" type="Label" parent="BriefPanel"]
unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
size_flags_vertical = 1 size_flags_vertical = 1
theme_override_constants/line_spacing = -3 theme_override_constants/line_spacing = -3
@@ -225,6 +227,7 @@ material = SubResource("ShaderMaterial_ymuo7")
[node name="Pin" type="Control" parent="CanvasGroup"] [node name="Pin" type="Control" parent="CanvasGroup"]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 3 layout_mode = 3
anchors_preset = 0
offset_right = 40.0 offset_right = 40.0
offset_bottom = 40.0 offset_bottom = 40.0
@@ -267,7 +270,6 @@ texture = ExtResource("6_vq4p4")
[node name="Banner" type="TextureRect" parent="CanvasGroup"] [node name="Banner" type="TextureRect" parent="CanvasGroup"]
visible = false visible = false
anchors_preset = -1
offset_left = -59.0 offset_left = -59.0
offset_top = -59.0 offset_top = -59.0
offset_right = 129.0 offset_right = 129.0
@@ -275,6 +277,7 @@ offset_bottom = 129.0
texture = ExtResource("7_175dc") texture = ExtResource("7_175dc")
[node name="Label" type="Label" parent="CanvasGroup/Banner"] [node name="Label" type="Label" parent="CanvasGroup/Banner"]
unique_name_in_owner = true
custom_minimum_size = Vector2(125, 0) custom_minimum_size = Vector2(125, 0)
layout_mode = 0 layout_mode = 0
offset_left = 34.0 offset_left = 34.0

View File

@@ -1,4 +1,48 @@
[gd_scene format=3 uid="uid://dno0a4457twd4"] [gd_scene load_steps=14 format=3 uid="uid://dno0a4457twd4"]
[ext_resource type="Texture2D" uid="uid://c3wwe6r000gpq" path="res://external/test portrait/farmer_f/composite.png" id="1_h8465"]
[ext_resource type="Script" uid="uid://y86x71nakgkl" path="res://scripts/portrait_customizer.gd" id="1_qv0tv"]
[ext_resource type="PackedScene" uid="uid://drshemnag35re" path="res://templates/hero_portrait.tscn" id="3_wkmmk"]
[sub_resource type="Gradient" id="Gradient_v2k53"]
offsets = PackedFloat32Array(0)
colors = PackedColorArray(1, 0.73333335, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_6y6h7"]
gradient = SubResource("Gradient_v2k53")
width = 1
[sub_resource type="Gradient" id="Gradient_5l11s"]
offsets = PackedFloat32Array(0)
colors = PackedColorArray(0.46, 0.23, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_uwnmi"]
gradient = SubResource("Gradient_5l11s")
width = 1
[sub_resource type="Gradient" id="Gradient_x374a"]
offsets = PackedFloat32Array(0)
colors = PackedColorArray(0.8, 0.18666668, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_72sxj"]
gradient = SubResource("Gradient_x374a")
width = 1
[sub_resource type="Gradient" id="Gradient_xot8x"]
offsets = PackedFloat32Array(0)
colors = PackedColorArray(0.13682577, 0.13682574, 0.13682571, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_ac3np"]
gradient = SubResource("Gradient_xot8x")
width = 1
[sub_resource type="Gradient" id="Gradient_osq0m"]
offsets = PackedFloat32Array(0)
colors = PackedColorArray(0, 0, 0.7647059, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_5l84q"]
gradient = SubResource("Gradient_osq0m")
width = 1
[node name="Portrait Customizer" type="Control"] [node name="Portrait Customizer" type="Control"]
layout_mode = 3 layout_mode = 3
@@ -7,3 +51,412 @@ anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
script = ExtResource("1_qv0tv")
[node name="ColorRect" type="ColorRect" parent="."]
custom_minimum_size = Vector2(600, 600)
layout_mode = 0
offset_left = 1024.0
offset_top = 79.0
offset_right = 1624.0
offset_bottom = 679.0
color = Color(0.6872149, 0.68721503, 0.6872149, 1)
[node name="ColorRect2" type="ColorRect" parent="."]
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_left = 1070.0
offset_top = 120.0
offset_right = 1582.0
offset_bottom = 632.0
[node name="Base" type="TextureRect" parent="."]
visible = false
custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_left = 692.0
offset_top = 129.0
offset_right = 1204.0
offset_bottom = 641.0
texture = ExtResource("1_h8465")
[node name="HeroPortrait" parent="." instance=ExtResource("3_wkmmk")]
layout_mode = 0
offset_left = 1070.0
offset_top = 120.0
offset_right = 1582.0
offset_bottom = 632.0
[node name="LeftButton" type="Button" parent="."]
layout_mode = 0
offset_left = 957.0
offset_top = 338.0
offset_right = 1022.0
offset_bottom = 483.0
theme_override_font_sizes/font_size = 100
text = "<"
[node name="UpButton" type="Button" parent="."]
layout_mode = 0
offset_left = 1396.0
offset_top = 12.000006
offset_right = 1461.0
offset_bottom = 157.0
rotation = 1.5707964
theme_override_font_sizes/font_size = 100
text = "<"
[node name="DownButton" type="Button" parent="."]
layout_mode = 0
offset_left = 1259.0
offset_top = 747.0
offset_right = 1324.0
offset_bottom = 892.0
rotation = -1.5707964
theme_override_font_sizes/font_size = 100
text = "<"
[node name="RightButton" type="Button" parent="."]
layout_mode = 0
offset_left = 1625.0
offset_top = 338.0
offset_right = 1690.0
offset_bottom = 483.0
theme_override_font_sizes/font_size = 100
text = ">"
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 0
offset_left = 925.0
offset_top = 765.0
offset_right = 1770.0
offset_bottom = 1059.0
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
layout_mode = 2
alignment = 1
[node name="Button" type="Button" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_font_sizes/font_size = 100
text = "RESET"
[node name="Button2" type="Button" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_font_sizes/font_size = 100
text = "Random"
[node name="Button3" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 100
text = "ACCEPT"
[node name="VBoxContainer2" type="VBoxContainer" parent="."]
layout_mode = 0
offset_left = 138.0
offset_top = 19.0
offset_right = 768.0
offset_bottom = 1062.0
theme_override_constants/separation = 10
[node name="HairPanel" type="PanelContainer" parent="VBoxContainer2"]
layout_mode = 2
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer2/HairPanel"]
layout_mode = 2
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="HBoxContainer" type="VBoxContainer" parent="VBoxContainer2/HairPanel/MarginContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 48
text = "Hair"
horizontal_alignment = 1
[node name="HairGrid" type="GridContainer" parent="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/h_separation = 20
theme_override_constants/v_separation = 20
columns = 5
[node name="BlondHairButton" type="TextureButton" parent="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_6y6h7")
ignore_texture_size = true
stretch_mode = 0
[node name="BrownHairButton" type="TextureButton" parent="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_uwnmi")
ignore_texture_size = true
stretch_mode = 0
[node name="RedHairButton" type="TextureButton" parent="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_72sxj")
ignore_texture_size = true
stretch_mode = 0
[node name="BlackHairButton" type="TextureButton" parent="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_ac3np")
ignore_texture_size = true
stretch_mode = 0
[node name="BlueHairButton" type="TextureButton" parent="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_5l84q")
ignore_texture_size = true
stretch_mode = 0
[node name="BlondHairButton2" type="TextureButton" parent="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_6y6h7")
ignore_texture_size = true
stretch_mode = 0
[node name="BrownHairButton2" type="TextureButton" parent="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_uwnmi")
ignore_texture_size = true
stretch_mode = 0
[node name="RedHairButton2" type="TextureButton" parent="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_72sxj")
ignore_texture_size = true
stretch_mode = 0
[node name="BlackHairButton2" type="TextureButton" parent="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_ac3np")
ignore_texture_size = true
stretch_mode = 0
[node name="BlueHairButton2" type="TextureButton" parent="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_5l84q")
ignore_texture_size = true
stretch_mode = 0
[node name="SkinPanel" type="PanelContainer" parent="VBoxContainer2"]
layout_mode = 2
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer2/SkinPanel"]
layout_mode = 2
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="HBoxContainer" type="VBoxContainer" parent="VBoxContainer2/SkinPanel/MarginContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 48
text = "Skin"
horizontal_alignment = 1
[node name="HairGrid" type="GridContainer" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/h_separation = 20
theme_override_constants/v_separation = 20
columns = 5
[node name="BlondHairButton" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_6y6h7")
ignore_texture_size = true
stretch_mode = 0
[node name="BrownHairButton" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_uwnmi")
ignore_texture_size = true
stretch_mode = 0
[node name="RedHairButton" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_72sxj")
ignore_texture_size = true
stretch_mode = 0
[node name="BlackHairButton" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_ac3np")
ignore_texture_size = true
stretch_mode = 0
[node name="BlueHairButton" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_5l84q")
ignore_texture_size = true
stretch_mode = 0
[node name="BlondHairButton2" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_6y6h7")
ignore_texture_size = true
stretch_mode = 0
[node name="BrownHairButton2" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_uwnmi")
ignore_texture_size = true
stretch_mode = 0
[node name="RedHairButton2" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_72sxj")
ignore_texture_size = true
stretch_mode = 0
[node name="BlackHairButton2" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_ac3np")
ignore_texture_size = true
stretch_mode = 0
[node name="BlueHairButton2" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_5l84q")
ignore_texture_size = true
stretch_mode = 0
[node name="EyePanel" type="PanelContainer" parent="VBoxContainer2"]
layout_mode = 2
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer2/EyePanel"]
layout_mode = 2
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="HBoxContainer" type="VBoxContainer" parent="VBoxContainer2/EyePanel/MarginContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="VBoxContainer2/EyePanel/MarginContainer/HBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 48
text = "Eye"
horizontal_alignment = 1
[node name="HairGrid" type="GridContainer" parent="VBoxContainer2/EyePanel/MarginContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/h_separation = 20
theme_override_constants/v_separation = 20
columns = 5
[node name="BlondHairButton" type="TextureButton" parent="VBoxContainer2/EyePanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_6y6h7")
ignore_texture_size = true
stretch_mode = 0
[node name="BrownHairButton" type="TextureButton" parent="VBoxContainer2/EyePanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_uwnmi")
ignore_texture_size = true
stretch_mode = 0
[node name="RedHairButton" type="TextureButton" parent="VBoxContainer2/EyePanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_72sxj")
ignore_texture_size = true
stretch_mode = 0
[node name="BlackHairButton" type="TextureButton" parent="VBoxContainer2/EyePanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_ac3np")
ignore_texture_size = true
stretch_mode = 0
[node name="BlueHairButton" type="TextureButton" parent="VBoxContainer2/EyePanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_5l84q")
ignore_texture_size = true
stretch_mode = 0
[node name="BlondHairButton2" type="TextureButton" parent="VBoxContainer2/EyePanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_6y6h7")
ignore_texture_size = true
stretch_mode = 0
[node name="BrownHairButton2" type="TextureButton" parent="VBoxContainer2/EyePanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_uwnmi")
ignore_texture_size = true
stretch_mode = 0
[node name="RedHairButton2" type="TextureButton" parent="VBoxContainer2/EyePanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_72sxj")
ignore_texture_size = true
stretch_mode = 0
[node name="BlackHairButton2" type="TextureButton" parent="VBoxContainer2/EyePanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_ac3np")
ignore_texture_size = true
stretch_mode = 0
[node name="BlueHairButton2" type="TextureButton" parent="VBoxContainer2/EyePanel/MarginContainer/HBoxContainer/HairGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_5l84q")
ignore_texture_size = true
stretch_mode = 0
[connection signal="pressed" from="LeftButton" to="." method="_on_left_button_pressed"]
[connection signal="pressed" from="UpButton" to="." method="_on_up_button_pressed"]
[connection signal="pressed" from="DownButton" to="." method="_on_down_button_pressed"]
[connection signal="pressed" from="RightButton" to="." method="_on_right_button_pressed"]
[connection signal="pressed" from="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid/BlondHairButton" to="." method="_on_color_pressed" binds= [1, "blonde"]]
[connection signal="pressed" from="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid/BrownHairButton" to="." method="_on_color_pressed" binds= [1, "brown"]]
[connection signal="pressed" from="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid/RedHairButton" to="." method="_on_color_pressed" binds= [1, "red"]]
[connection signal="pressed" from="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid/BlackHairButton" to="." method="_on_color_pressed" binds= [1, "black"]]
[connection signal="pressed" from="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid/BlueHairButton" to="." method="_on_color_pressed" binds= [1, "blue"]]
[connection signal="pressed" from="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid/BlondHairButton2" to="." method="_on_color_pressed" binds= [1, "blonde"]]
[connection signal="pressed" from="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid/BrownHairButton2" to="." method="_on_color_pressed" binds= [1, "brown"]]
[connection signal="pressed" from="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid/RedHairButton2" to="." method="_on_color_pressed" binds= [1, "red"]]
[connection signal="pressed" from="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid/BlackHairButton2" to="." method="_on_color_pressed" binds= [1, "black"]]
[connection signal="pressed" from="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid/BlueHairButton2" to="." method="_on_color_pressed" binds= [1, "blue"]]

View File

@@ -8,15 +8,14 @@
[node name="QuestView" type="Panel"] [node name="QuestView" type="Panel"]
custom_minimum_size = Vector2(375, 325) custom_minimum_size = Vector2(375, 325)
anchors_preset = -1 offset_right = 375.0
offset_left = 12.0
offset_right = 387.0
offset_bottom = 325.0 offset_bottom = 325.0
script = ExtResource("1_gmxj1") script = ExtResource("1_gmxj1")
[node name="Setting" type="Control" parent="."] [node name="Setting" type="Control" parent="."]
clip_contents = true clip_contents = true
layout_mode = 1 layout_mode = 1
anchors_preset = 0
offset_right = 375.0 offset_right = 375.0
offset_bottom = 325.0 offset_bottom = 325.0
@@ -31,7 +30,6 @@ autoscroll = Vector2(-30, 0)
ignore_camera_scroll = true ignore_camera_scroll = true
[node name="Background" type="TextureRect" parent="Setting/Control/StageParallax"] [node name="Background" type="TextureRect" parent="Setting/Control/StageParallax"]
anchors_preset = -1
offset_top = -50.0 offset_top = -50.0
offset_right = 750.0 offset_right = 750.0
offset_bottom = 375.0 offset_bottom = 375.0
@@ -45,7 +43,6 @@ ignore_camera_scroll = true
[node name="Background" type="TextureRect" parent="Setting/Control/StageParallax3"] [node name="Background" type="TextureRect" parent="Setting/Control/StageParallax3"]
modulate = Color(1.179842, 1.179842, 1.179842, 1) modulate = Color(1.179842, 1.179842, 1.179842, 1)
anchors_preset = -1
offset_right = 750.0 offset_right = 750.0
offset_bottom = 425.0 offset_bottom = 425.0
texture = ExtResource("3_dvgqk") texture = ExtResource("3_dvgqk")
@@ -56,7 +53,6 @@ autoscroll = Vector2(-45, 0)
ignore_camera_scroll = true ignore_camera_scroll = true
[node name="TextureRect" type="TextureRect" parent="Setting/Control/BackgroundParallax"] [node name="TextureRect" type="TextureRect" parent="Setting/Control/BackgroundParallax"]
anchors_preset = -1
offset_top = -50.0 offset_top = -50.0
offset_right = 475.0 offset_right = 475.0
offset_bottom = 375.0 offset_bottom = 375.0
@@ -68,7 +64,6 @@ autoscroll = Vector2(-45, 0)
ignore_camera_scroll = true ignore_camera_scroll = true
[node name="Foreground" type="TextureRect" parent="Setting/Control/StageParallax2"] [node name="Foreground" type="TextureRect" parent="Setting/Control/StageParallax2"]
anchors_preset = -1
offset_top = -50.0 offset_top = -50.0
offset_right = 750.0 offset_right = 750.0
offset_bottom = 375.0 offset_bottom = 375.0
@@ -83,7 +78,39 @@ offset_bottom = 276.0
[node name="QuestorPosition" type="Control" parent="."] [node name="QuestorPosition" type="Control" parent="."]
layout_mode = 1 layout_mode = 1
anchors_preset = 0
offset_left = 89.0 offset_left = 89.0
offset_top = 272.0 offset_top = 272.0
offset_right = 89.0 offset_right = 89.0
offset_bottom = 272.0 offset_bottom = 272.0
[node name="QuestComplete" type="Control" parent="."]
unique_name_in_owner = true
visible = false
z_index = 10
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="ColorRect" type="ColorRect" parent="QuestComplete"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 0.42352942)
[node name="Label" type="Label" parent="QuestComplete"]
layout_mode = 0
offset_left = 1.0
offset_top = 119.0
offset_right = 376.0
offset_bottom = 238.0
theme_override_font_sizes/font_size = 42
text = "QUEST
COMPLETE!"
horizontal_alignment = 1