diff --git a/data/quests/quest.gd b/data/quests/quest.gd index 49f65a4..f32741c 100644 --- a/data/quests/quest.gd +++ b/data/quests/quest.gd @@ -1,6 +1,7 @@ class_name Quest extends Resource - +#The list of available quests +static var list : Array[Quest] enum Status{ @@ -31,10 +32,13 @@ class Event: VICTORY, DEFEAT } + var hidden : bool = false var type : Type = Type.WAIT var enemies : Array[String] = [] + var progress_point : float = 0 var time : float = 1 var time_elapsed + var complete : bool = false signal completed() signal failed() @@ -43,6 +47,21 @@ class Event: var busy_list : Array = [] var combat_state 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: match(type): Type.WAIT: @@ -91,7 +110,7 @@ class Event: func add_to_turn_queue(combatant) -> void: #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 var idx = -1 for i in range(len(turn_queue)): @@ -191,12 +210,15 @@ class Event: CombatState.VICTORY: time_elapsed += delta if time_elapsed >= time: + complete = true completed.emit() Type.WAIT: time_elapsed += delta if time_elapsed >= time: + complete = true completed.emit() +var base_name : String = "" var name : String = "A Basic Quest" var desc : String = "The default quest, with no special anything." var difficulty : int = 1 @@ -233,6 +255,7 @@ func fail() -> void: func complete() -> void: status = Status.COMPLETED status_changed.emit(Status.COMPLETED) + questview.show_quest_complete() for reward in rewards.keys(): if reward == "gold": questor.gain_gold(rewards[reward]) @@ -268,3 +291,46 @@ func difficulty_name() -> String: 4: return "Extreme" 5: return "Legendary" _: 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 diff --git a/data/quests/sticky_situation.gd b/data/quests/sticky_situation.gd index d50adf7..2b50d23 100644 --- a/data/quests/sticky_situation.gd +++ b/data/quests/sticky_situation.gd @@ -1,15 +1,35 @@ extends Quest -func _init() -> void: +func setup() -> void: 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 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): var evt : Quest.Event = Quest.Event.new() evt.type = Quest.Event.Type.COMBAT evt.enemies = ["goo"] 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.sort_custom(func(a,b): return a.progress_point < b.progress_point) desc = "Nestor’s 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 rewards = {"exp":10, "gold":5} diff --git a/dialogic/test-style.tres b/dialogic/test-style.tres new file mode 100644 index 0000000..b744773 --- /dev/null +++ b/dialogic/test-style.tres @@ -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" diff --git a/dialogic/test_textbox_layer.tscn b/dialogic/test_textbox_layer.tscn new file mode 100644 index 0000000..71d95ed --- /dev/null +++ b/dialogic/test_textbox_layer.tscn @@ -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") diff --git a/dialogic/timelines/game_start.dtl b/dialogic/timelines/game_start.dtl index 1970c28..3d20e5f 100644 --- a/dialogic/timelines/game_start.dtl +++ b/dialogic/timelines/game_start.dtl @@ -1,5 +1,6 @@ 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. +[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. do Game.switch_scenes("letter") [end_timeline] @@ -9,7 +10,7 @@ do Game.switch_scenes("guild_card") Ugh, I hated paperwork and there sure was a lot of it. [end_timeline] label Start Schedule -[wait_input] -do +And MORE paperwork. I was starting to understand why grandma thought risking death was better. +do Game.switch_scenes("set_shifts") [end_timeline] label First Portrait Open diff --git a/external/Test Portrait/Farmer_F/body.png.import b/external/Test Portrait/Farmer_F/body.png.import index b385871..8e18bae 100644 --- a/external/Test Portrait/Farmer_F/body.png.import +++ b/external/Test Portrait/Farmer_F/body.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://crrd8mpcuync2" -path="res://.godot/imported/body.png-5a897720f599ec630383f1f3dd8e9e9e.ctex" +path="res://.godot/imported/body.png-efd5e53b6f03adc4a57de5ce8dc4d3cd.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/body.png" -dest_files=["res://.godot/imported/body.png-5a897720f599ec630383f1f3dd8e9e9e.ctex"] +source_file="res://external/test portrait/farmer_f/body.png" +dest_files=["res://.godot/imported/body.png-efd5e53b6f03adc4a57de5ce8dc4d3cd.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/brow_shadow-1.png.import b/external/Test Portrait/Farmer_F/brow_shadow-1.png.import index 04efe38..b6487ec 100644 --- a/external/Test Portrait/Farmer_F/brow_shadow-1.png.import +++ b/external/Test Portrait/Farmer_F/brow_shadow-1.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://pp5ssn5m2n3i" -path="res://.godot/imported/brow_shadow-1.png-94d923d93f9bc0db18f7b963da1021dd.ctex" +path="res://.godot/imported/brow_shadow-1.png-8dff8c187d59ecaaefbb84e877b32e20.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/brow_shadow-1.png" -dest_files=["res://.godot/imported/brow_shadow-1.png-94d923d93f9bc0db18f7b963da1021dd.ctex"] +source_file="res://external/test portrait/farmer_f/brow_shadow-1.png" +dest_files=["res://.godot/imported/brow_shadow-1.png-8dff8c187d59ecaaefbb84e877b32e20.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/brow_shadow-2.png.import b/external/Test Portrait/Farmer_F/brow_shadow-2.png.import index a89758a..6f63278 100644 --- a/external/Test Portrait/Farmer_F/brow_shadow-2.png.import +++ b/external/Test Portrait/Farmer_F/brow_shadow-2.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://x4e86o28672u" -path="res://.godot/imported/brow_shadow-2.png-85a8d07465b9b109e67ad99a37d690d1.ctex" +path="res://.godot/imported/brow_shadow-2.png-b5d8d416acf1ddb95fd785200da8d3ce.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/brow_shadow-2.png" -dest_files=["res://.godot/imported/brow_shadow-2.png-85a8d07465b9b109e67ad99a37d690d1.ctex"] +source_file="res://external/test portrait/farmer_f/brow_shadow-2.png" +dest_files=["res://.godot/imported/brow_shadow-2.png-b5d8d416acf1ddb95fd785200da8d3ce.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/brow_shadow.png.import b/external/Test Portrait/Farmer_F/brow_shadow.png.import index 3183cba..e584536 100644 --- a/external/Test Portrait/Farmer_F/brow_shadow.png.import +++ b/external/Test Portrait/Farmer_F/brow_shadow.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://sv7bxo8a12i6" -path="res://.godot/imported/brow_shadow.png-e4497bbbff21d0b56dc81b07de4f06bc.ctex" +path="res://.godot/imported/brow_shadow.png-f653be07b461bc5d7a18192996ffb73a.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/brow_shadow.png" -dest_files=["res://.godot/imported/brow_shadow.png-e4497bbbff21d0b56dc81b07de4f06bc.ctex"] +source_file="res://external/test portrait/farmer_f/brow_shadow.png" +dest_files=["res://.godot/imported/brow_shadow.png-f653be07b461bc5d7a18192996ffb73a.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/brows-1.png.import b/external/Test Portrait/Farmer_F/brows-1.png.import index 9fdac8e..c3e6ee8 100644 --- a/external/Test Portrait/Farmer_F/brows-1.png.import +++ b/external/Test Portrait/Farmer_F/brows-1.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://tpg08bgn2on7" -path="res://.godot/imported/brows-1.png-70092c4bb56529f3cdeb7b51925eb071.ctex" +path="res://.godot/imported/brows-1.png-86a51529282fffa26d497e35e4cc9367.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/brows-1.png" -dest_files=["res://.godot/imported/brows-1.png-70092c4bb56529f3cdeb7b51925eb071.ctex"] +source_file="res://external/test portrait/farmer_f/brows-1.png" +dest_files=["res://.godot/imported/brows-1.png-86a51529282fffa26d497e35e4cc9367.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/brows-2.png.import b/external/Test Portrait/Farmer_F/brows-2.png.import index bf44252..b6faa7b 100644 --- a/external/Test Portrait/Farmer_F/brows-2.png.import +++ b/external/Test Portrait/Farmer_F/brows-2.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://brmta1rtiau4a" -path="res://.godot/imported/brows-2.png-227c9708d0b7fde57b1ef42021508fcf.ctex" +path="res://.godot/imported/brows-2.png-01beea1c4e9cadf04c529dc849682c8a.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/brows-2.png" -dest_files=["res://.godot/imported/brows-2.png-227c9708d0b7fde57b1ef42021508fcf.ctex"] +source_file="res://external/test portrait/farmer_f/brows-2.png" +dest_files=["res://.godot/imported/brows-2.png-01beea1c4e9cadf04c529dc849682c8a.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/composite.png.import b/external/Test Portrait/Farmer_F/composite.png.import index f32ac68..e799e0f 100644 --- a/external/Test Portrait/Farmer_F/composite.png.import +++ b/external/Test Portrait/Farmer_F/composite.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://c3wwe6r000gpq" -path="res://.godot/imported/composite.png-b2c2e474fe243b72bd3471af031774d6.ctex" +path="res://.godot/imported/composite.png-a68e5c4a777094ce447b89a2ab45b35b.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/composite.png" -dest_files=["res://.godot/imported/composite.png-b2c2e474fe243b72bd3471af031774d6.ctex"] +source_file="res://external/test portrait/farmer_f/composite.png" +dest_files=["res://.godot/imported/composite.png-a68e5c4a777094ce447b89a2ab45b35b.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/ear.png.import b/external/Test Portrait/Farmer_F/ear.png.import index c287ccf..e495de0 100644 --- a/external/Test Portrait/Farmer_F/ear.png.import +++ b/external/Test Portrait/Farmer_F/ear.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://caow8dqiog7j4" -path="res://.godot/imported/ear.png-a1b457892f7236464123f2229af36695.ctex" +path="res://.godot/imported/ear.png-74df11e092bb05fcc54c7e7478ed4d95.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/ear.png" -dest_files=["res://.godot/imported/ear.png-a1b457892f7236464123f2229af36695.ctex"] +source_file="res://external/test portrait/farmer_f/ear.png" +dest_files=["res://.godot/imported/ear.png-74df11e092bb05fcc54c7e7478ed4d95.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/eye-white-1.png.import b/external/Test Portrait/Farmer_F/eye-white-1.png.import index cc08b8e..74019a2 100644 --- a/external/Test Portrait/Farmer_F/eye-white-1.png.import +++ b/external/Test Portrait/Farmer_F/eye-white-1.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://csp7xbtu0tpn7" -path="res://.godot/imported/eye-white-1.png-fb75b817d294c00ebeee3e6996a2c02e.ctex" +path="res://.godot/imported/eye-white-1.png-a31a2b044ab6206c129b0739fd4c0c80.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/eye-white-1.png" -dest_files=["res://.godot/imported/eye-white-1.png-fb75b817d294c00ebeee3e6996a2c02e.ctex"] +source_file="res://external/test portrait/farmer_f/eye-white-1.png" +dest_files=["res://.godot/imported/eye-white-1.png-a31a2b044ab6206c129b0739fd4c0c80.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/eyes-iris-1.png.import b/external/Test Portrait/Farmer_F/eyes-iris-1.png.import index 1901ca1..e279de5 100644 --- a/external/Test Portrait/Farmer_F/eyes-iris-1.png.import +++ b/external/Test Portrait/Farmer_F/eyes-iris-1.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://mygmunn3voie" -path="res://.godot/imported/eyes-iris-1.png-3c96067ab402ea99f8e1b1b7db594f4c.ctex" +path="res://.godot/imported/eyes-iris-1.png-d2077e2e658acf3840075cfe98f86f4e.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/eyes-iris-1.png" -dest_files=["res://.godot/imported/eyes-iris-1.png-3c96067ab402ea99f8e1b1b7db594f4c.ctex"] +source_file="res://external/test portrait/farmer_f/eyes-iris-1.png" +dest_files=["res://.godot/imported/eyes-iris-1.png-d2077e2e658acf3840075cfe98f86f4e.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/eyes-lashes-1.png.import b/external/Test Portrait/Farmer_F/eyes-lashes-1.png.import index 6121c9e..fa0ee94 100644 --- a/external/Test Portrait/Farmer_F/eyes-lashes-1.png.import +++ b/external/Test Portrait/Farmer_F/eyes-lashes-1.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://wnkr20dtf734" -path="res://.godot/imported/eyes-lashes-1.png-8a4535f7647af11ff99b165ee021e8cc.ctex" +path="res://.godot/imported/eyes-lashes-1.png-1460ddc60d7a087da2d517ce8f1a5faa.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/eyes-lashes-1.png" -dest_files=["res://.godot/imported/eyes-lashes-1.png-8a4535f7647af11ff99b165ee021e8cc.ctex"] +source_file="res://external/test portrait/farmer_f/eyes-lashes-1.png" +dest_files=["res://.godot/imported/eyes-lashes-1.png-1460ddc60d7a087da2d517ce8f1a5faa.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/eyes.png.import b/external/Test Portrait/Farmer_F/eyes.png.import index 12b4ae4..0977200 100644 --- a/external/Test Portrait/Farmer_F/eyes.png.import +++ b/external/Test Portrait/Farmer_F/eyes.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://dd063tm4qo5nc" -path="res://.godot/imported/eyes.png-1384a95ac331738bfe48af30a8953f10.ctex" +path="res://.godot/imported/eyes.png-da6eb5fdf7f113844fe8e5414a1f2331.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/eyes.png" -dest_files=["res://.godot/imported/eyes.png-1384a95ac331738bfe48af30a8953f10.ctex"] +source_file="res://external/test portrait/farmer_f/eyes.png" +dest_files=["res://.godot/imported/eyes.png-da6eb5fdf7f113844fe8e5414a1f2331.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/eyes_shadow.png.import b/external/Test Portrait/Farmer_F/eyes_shadow.png.import index 1f02358..ac345e4 100644 --- a/external/Test Portrait/Farmer_F/eyes_shadow.png.import +++ b/external/Test Portrait/Farmer_F/eyes_shadow.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://li44lgsa0ky" -path="res://.godot/imported/eyes_shadow.png-639516c9b7d6a71a22fcd4597236a89e.ctex" +path="res://.godot/imported/eyes_shadow.png-c0450e5470a67b3e212b544dfeadc885.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/eyes_shadow.png" -dest_files=["res://.godot/imported/eyes_shadow.png-639516c9b7d6a71a22fcd4597236a89e.ctex"] +source_file="res://external/test portrait/farmer_f/eyes_shadow.png" +dest_files=["res://.godot/imported/eyes_shadow.png-c0450e5470a67b3e212b544dfeadc885.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/hair_bg.png.import b/external/Test Portrait/Farmer_F/hair_bg.png.import index 0810aed..d83bb4b 100644 --- a/external/Test Portrait/Farmer_F/hair_bg.png.import +++ b/external/Test Portrait/Farmer_F/hair_bg.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://can8npg0ufr3f" -path="res://.godot/imported/hair_bg.png-07f942d8008a0d2581909922002bbbe2.ctex" +path="res://.godot/imported/hair_bg.png-71bd584ff51ea6c704ba2eb2b8124703.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/hair_bg.png" -dest_files=["res://.godot/imported/hair_bg.png-07f942d8008a0d2581909922002bbbe2.ctex"] +source_file="res://external/test portrait/farmer_f/hair_bg.png" +dest_files=["res://.godot/imported/hair_bg.png-71bd584ff51ea6c704ba2eb2b8124703.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/hair_fg.png.import b/external/Test Portrait/Farmer_F/hair_fg.png.import index 60f342e..5170c99 100644 --- a/external/Test Portrait/Farmer_F/hair_fg.png.import +++ b/external/Test Portrait/Farmer_F/hair_fg.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://vt17lekvchdg" -path="res://.godot/imported/hair_fg.png-9f5c6bb27fb0349d9ddfba99f87aa5c6.ctex" +path="res://.godot/imported/hair_fg.png-9dfae38fbf9812dad9b45d15a1cbd791.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/hair_fg.png" -dest_files=["res://.godot/imported/hair_fg.png-9f5c6bb27fb0349d9ddfba99f87aa5c6.ctex"] +source_file="res://external/test portrait/farmer_f/hair_fg.png" +dest_files=["res://.godot/imported/hair_fg.png-9dfae38fbf9812dad9b45d15a1cbd791.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/hair_fg_shadow.png.import b/external/Test Portrait/Farmer_F/hair_fg_shadow.png.import index 13e85b8..7dbf97c 100644 --- a/external/Test Portrait/Farmer_F/hair_fg_shadow.png.import +++ b/external/Test Portrait/Farmer_F/hair_fg_shadow.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://cru775pghpate" -path="res://.godot/imported/hair_fg_shadow.png-41de10e26ae2147aace92ba197b28075.ctex" +path="res://.godot/imported/hair_fg_shadow.png-609d7f961008e48f548f0e05277dafb4.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/hair_fg_shadow.png" -dest_files=["res://.godot/imported/hair_fg_shadow.png-41de10e26ae2147aace92ba197b28075.ctex"] +source_file="res://external/test portrait/farmer_f/hair_fg_shadow.png" +dest_files=["res://.godot/imported/hair_fg_shadow.png-609d7f961008e48f548f0e05277dafb4.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/hat-bg.png.import b/external/Test Portrait/Farmer_F/hat-bg.png.import index 41b5407..107e0a5 100644 --- a/external/Test Portrait/Farmer_F/hat-bg.png.import +++ b/external/Test Portrait/Farmer_F/hat-bg.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://dj6fagfp2sbrx" -path="res://.godot/imported/hat-bg.png-00e20fcd79ddb550d12459624be7d9b1.ctex" +path="res://.godot/imported/hat-bg.png-972a86d8449c11d1a72a4f21b15efd0a.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/hat-bg.png" -dest_files=["res://.godot/imported/hat-bg.png-00e20fcd79ddb550d12459624be7d9b1.ctex"] +source_file="res://external/test portrait/farmer_f/hat-bg.png" +dest_files=["res://.godot/imported/hat-bg.png-972a86d8449c11d1a72a4f21b15efd0a.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/hat.png.import b/external/Test Portrait/Farmer_F/hat.png.import index ad9b8b0..db6f143 100644 --- a/external/Test Portrait/Farmer_F/hat.png.import +++ b/external/Test Portrait/Farmer_F/hat.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://b303qa76o5r1m" -path="res://.godot/imported/hat.png-9bb6fa9d1f7f7503ee26b1749cdf7c0a.ctex" +path="res://.godot/imported/hat.png-21e48868d0218210b390afa680a1202d.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/hat.png" -dest_files=["res://.godot/imported/hat.png-9bb6fa9d1f7f7503ee26b1749cdf7c0a.ctex"] +source_file="res://external/test portrait/farmer_f/hat.png" +dest_files=["res://.godot/imported/hat.png-21e48868d0218210b390afa680a1202d.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/hat_fg.png.import b/external/Test Portrait/Farmer_F/hat_fg.png.import index c8bdc32..b24f1f6 100644 --- a/external/Test Portrait/Farmer_F/hat_fg.png.import +++ b/external/Test Portrait/Farmer_F/hat_fg.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://dyeu4kwwnxjn5" -path="res://.godot/imported/hat_fg.png-e2cae14f649780ea2aba38b34358b587.ctex" +path="res://.godot/imported/hat_fg.png-2dddd61ae84da22b32d123d3533338c5.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/hat_fg.png" -dest_files=["res://.godot/imported/hat_fg.png-e2cae14f649780ea2aba38b34358b587.ctex"] +source_file="res://external/test portrait/farmer_f/hat_fg.png" +dest_files=["res://.godot/imported/hat_fg.png-2dddd61ae84da22b32d123d3533338c5.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/head.png.import b/external/Test Portrait/Farmer_F/head.png.import index df71f44..3d2f1a0 100644 --- a/external/Test Portrait/Farmer_F/head.png.import +++ b/external/Test Portrait/Farmer_F/head.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://dbdjaye6srxhx" -path="res://.godot/imported/head.png-df46fa0b8e2741bbf0fad9b3a03fedea.ctex" +path="res://.godot/imported/head.png-47039f8abc285b87bb176b5b43ee9a5f.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/head.png" -dest_files=["res://.godot/imported/head.png-df46fa0b8e2741bbf0fad9b3a03fedea.ctex"] +source_file="res://external/test portrait/farmer_f/head.png" +dest_files=["res://.godot/imported/head.png-47039f8abc285b87bb176b5b43ee9a5f.ctex"] [params] diff --git a/external/Test Portrait/gradients/hair/(c)blue.tres b/external/Test Portrait/gradients/hair/(c)blue.tres new file mode 100644 index 0000000..b42513a --- /dev/null +++ b/external/Test Portrait/gradients/hair/(c)blue.tres @@ -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") diff --git a/external/Test Portrait/gradients/hair/(c)brown.tres b/external/Test Portrait/gradients/hair/(c)brown.tres index abe5eb5..00600f2 100644 --- a/external/Test Portrait/gradients/hair/(c)brown.tres +++ b/external/Test Portrait/gradients/hair/(c)brown.tres @@ -1,8 +1,8 @@ [gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://cd4jsivokd6sk"] [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) +offsets = PackedFloat32Array(0, 0.5252918, 0.8774319, 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] gradient = SubResource("Gradient_u7u0c") diff --git a/external/Test Portrait/gradients/hair/(l)mid.tres b/external/Test Portrait/gradients/hair/(l)mid.tres new file mode 100644 index 0000000..356c782 --- /dev/null +++ b/external/Test Portrait/gradients/hair/(l)mid.tres @@ -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") diff --git a/external/Test Portrait/gradients/skin/(c)blue.tres b/external/Test Portrait/gradients/skin/(c)blue.tres new file mode 100644 index 0000000..4fe9335 --- /dev/null +++ b/external/Test Portrait/gradients/skin/(c)blue.tres @@ -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") diff --git a/external/Test Portrait/gradients/skin/(c)dark.tres b/external/Test Portrait/gradients/skin/(c)dark.tres new file mode 100644 index 0000000..9d5a64c --- /dev/null +++ b/external/Test Portrait/gradients/skin/(c)dark.tres @@ -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") diff --git a/external/Test Portrait/gradients/skin/(c)medium.tres b/external/Test Portrait/gradients/skin/(c)medium.tres new file mode 100644 index 0000000..d6939d2 --- /dev/null +++ b/external/Test Portrait/gradients/skin/(c)medium.tres @@ -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") diff --git a/external/Test Portrait/gradients/skin/(c)olive.tres b/external/Test Portrait/gradients/skin/(c)olive.tres new file mode 100644 index 0000000..c98e76d --- /dev/null +++ b/external/Test Portrait/gradients/skin/(c)olive.tres @@ -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") diff --git a/external/Test Portrait/gradients/skin/(c)pale.tres b/external/Test Portrait/gradients/skin/(c)pale.tres new file mode 100644 index 0000000..b7abefe --- /dev/null +++ b/external/Test Portrait/gradients/skin/(c)pale.tres @@ -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") diff --git a/external/Test Portrait/gradients/skin/(c)red.tres b/external/Test Portrait/gradients/skin/(c)red.tres new file mode 100644 index 0000000..2b06160 --- /dev/null +++ b/external/Test Portrait/gradients/skin/(c)red.tres @@ -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") diff --git a/external/Test Portrait/gradients/skin/(c)white.tres b/external/Test Portrait/gradients/skin/(c)white.tres new file mode 100644 index 0000000..3a069ce --- /dev/null +++ b/external/Test Portrait/gradients/skin/(c)white.tres @@ -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") diff --git a/external/Test Portrait/player/eye-a.png b/external/Test Portrait/player/eye-a.png new file mode 100644 index 0000000..2c22464 Binary files /dev/null and b/external/Test Portrait/player/eye-a.png differ diff --git a/external/Test Portrait/player/eye-a.png.import b/external/Test Portrait/player/eye-a.png.import new file mode 100644 index 0000000..1b907d0 --- /dev/null +++ b/external/Test Portrait/player/eye-a.png.import @@ -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 diff --git a/external/Test Portrait/player/eye-b.png b/external/Test Portrait/player/eye-b.png new file mode 100644 index 0000000..1b2a082 Binary files /dev/null and b/external/Test Portrait/player/eye-b.png differ diff --git a/external/Test Portrait/player/eye-b.png.import b/external/Test Portrait/player/eye-b.png.import new file mode 100644 index 0000000..aa20cee --- /dev/null +++ b/external/Test Portrait/player/eye-b.png.import @@ -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 diff --git a/external/Test Portrait/player/eye-c.png b/external/Test Portrait/player/eye-c.png new file mode 100644 index 0000000..c185aab Binary files /dev/null and b/external/Test Portrait/player/eye-c.png differ diff --git a/external/Test Portrait/player/eye-c.png.import b/external/Test Portrait/player/eye-c.png.import new file mode 100644 index 0000000..962c364 --- /dev/null +++ b/external/Test Portrait/player/eye-c.png.import @@ -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 diff --git a/external/Test Portrait/tri-hair.tres b/external/Test Portrait/tri-hair.tres index 2cb8720..862e485 100644 --- a/external/Test Portrait/tri-hair.tres +++ b/external/Test Portrait/tri-hair.tres @@ -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="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_local_to_scene = true shader = ExtResource("1_sifog") -shader_parameter/Color_Gradient = ExtResource("2_2qy1r") -shader_parameter/Luminosity_Gradient = ExtResource("3_5udns") diff --git a/external/Test Portrait/tri-skin.tres b/external/Test Portrait/tri-skin.tres index 33082b6..63d00ff 100644 --- a/external/Test Portrait/tri-skin.tres +++ b/external/Test Portrait/tri-skin.tres @@ -3,4 +3,8 @@ [ext_resource type="Shader" uid="uid://cru1otvka0qn5" path="res://external/test portrait/variant_color.gdshader" id="1_n3xwv"] [resource] +resource_local_to_scene = true shader = ExtResource("1_n3xwv") +shader_parameter/flash = false +shader_parameter/flash_strength = 0.0 +shader_parameter/highlight = Color(0, 0, 0, 0) diff --git a/external/Test Portrait/variant_color.gdshader b/external/Test Portrait/variant_color.gdshader index 1c2a4cc..41b087e 100644 --- a/external/Test Portrait/variant_color.gdshader +++ b/external/Test Portrait/variant_color.gdshader @@ -3,7 +3,9 @@ render_mode blend_mix; uniform sampler2D color_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() { @@ -30,8 +32,11 @@ void fragment() { 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 fin_rgb = c.z * mix(K.xxx, clamp(p2 - K.xxx, 0.0, 1.0), c.y); - - COLOR.rgb = fin_rgb; + vec4 h = highlight; + 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; diff --git a/external/dialogue-box.png b/external/dialogue-box.png new file mode 100644 index 0000000..8c424e2 Binary files /dev/null and b/external/dialogue-box.png differ diff --git a/external/dialogue-box.png.import b/external/dialogue-box.png.import new file mode 100644 index 0000000..c5322a4 --- /dev/null +++ b/external/dialogue-box.png.import @@ -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 diff --git a/external/dialogue.clip b/external/dialogue.clip new file mode 100644 index 0000000..b99516e Binary files /dev/null and b/external/dialogue.clip differ diff --git a/external/lock-icon1.png b/external/lock-icon1.png new file mode 100644 index 0000000..c6dbbd0 Binary files /dev/null and b/external/lock-icon1.png differ diff --git a/external/lock-icon1.png.import b/external/lock-icon1.png.import new file mode 100644 index 0000000..1a90239 --- /dev/null +++ b/external/lock-icon1.png.import @@ -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 diff --git a/external/lock-icon2.png b/external/lock-icon2.png new file mode 100644 index 0000000..91263b0 Binary files /dev/null and b/external/lock-icon2.png differ diff --git a/external/lock-icon2.png.import b/external/lock-icon2.png.import new file mode 100644 index 0000000..81c1221 --- /dev/null +++ b/external/lock-icon2.png.import @@ -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 diff --git a/external/name-banner.png b/external/name-banner.png new file mode 100644 index 0000000..dd497a9 Binary files /dev/null and b/external/name-banner.png differ diff --git a/external/name-banner.png.import b/external/name-banner.png.import new file mode 100644 index 0000000..6c2de28 --- /dev/null +++ b/external/name-banner.png.import @@ -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 diff --git a/external/pom-intro.clip b/external/pom-intro.clip new file mode 100644 index 0000000..ac2c7a5 Binary files /dev/null and b/external/pom-intro.clip differ diff --git a/external/portrait.clip b/external/portrait.clip index 8ed372d..0f8da5c 100644 Binary files a/external/portrait.clip and b/external/portrait.clip differ diff --git a/graphics/portraits/farmer.tscn b/graphics/portraits/farmer.tscn index 89d607c..65dd22e 100644 --- a/graphics/portraits/farmer.tscn +++ b/graphics/portraits/farmer.tscn @@ -21,34 +21,62 @@ [sub_resource type="ShaderMaterial" id="ShaderMaterial_6ofx4"] 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"] 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"] 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"] 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"] 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"] resource_local_to_scene = true 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"] 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"] 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"] 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"] layout_mode = 3 +anchors_preset = 0 offset_right = 40.0 offset_bottom = 40.0 scale = Vector2(0.5, 0.5) diff --git a/project.godot b/project.godot index bbc2a66..a70b99a 100644 --- a/project.godot +++ b/project.godot @@ -21,6 +21,10 @@ Guild="*res://scripts/guild.gd" Game="*res://scripts/game_manager.gd" Dialogic="*res://addons/dialogic/Core/DialogicGameHandler.gd" +[data] + +quests/directory="res://data/quests" + [dialogic] directories/dch_directory={ @@ -52,8 +56,8 @@ choices/reveal_by_input=false save/autosave_delay=60.0 save/encryption_on_exports_only=true text/autopauses={} -layout/style_list=[] -layout/default_style="Default" +layout/style_list=["res://dialogic/test-style.tres"] +layout/default_style="res://dialogic/test-style.tres" variables={} [display] diff --git a/scenes/active_scene.tscn b/scenes/active_scene.tscn index c9d82d2..5188682 100644 --- a/scenes/active_scene.tscn +++ b/scenes/active_scene.tscn @@ -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="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://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="Texture2D" uid="uid://c25xtpn3k8s8d" path="res://external/mage.png" id="8_4k18p"] [sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_752n1"] blend_mode = 3 @@ -124,10 +123,4 @@ layout_mode = 2 stream = ExtResource("7_oi1nh") 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"] diff --git a/scenes/guild_card.tscn b/scenes/guild_card.tscn index fe6a021..9b7fedf 100644 --- a/scenes/guild_card.tscn +++ b/scenes/guild_card.tscn @@ -90,7 +90,7 @@ gradient = SubResource("Gradient_3vymb") resource_local_to_scene = true shader = ExtResource("3_3vymb") shader_parameter/gradient = SubResource("GradientTexture1D_ht11g") -shader_parameter/fringe = 0.008000000001629815 +shader_parameter/fringe = 0.00800000000162981 [node name="Guild Card Scene" type="Control"] layout_mode = 3 diff --git a/scenes/map.tscn b/scenes/map.tscn index 09e5816..f785f0a 100644 --- a/scenes/map.tscn +++ b/scenes/map.tscn @@ -17,7 +17,7 @@ shader = ExtResource("3_2lpho") shader_parameter/add_color = Color(1, 1, 1, 0) shader_parameter/fringe_color = SubResource("GradientTexture1D_blm8a") shader_parameter/fringe_threshold = 0.10000000000582077 -shader_parameter/threshold = 0.3606666537395989 +shader_parameter/threshold = 0.361 [node name="Control" type="Control"] layout_mode = 3 @@ -38,11 +38,16 @@ texture = ExtResource("1_2klcf") [node name="Map Pin2" parent="." instance=ExtResource("2_paxxb")] layout_mode = 0 -anchors_preset = 0 offset_left = 389.0 offset_top = 554.0 offset_right = 459.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"] material = SubResource("ShaderMaterial_gldc4") @@ -51,18 +56,35 @@ material = SubResource("ShaderMaterial_gldc4") mouse_filter = 2 [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 [node name="Label" parent="Map Pin2/CanvasGroup/Banner" index="0"] -text = "Avara Plains" +text = "" [node name="Map Pin3" parent="." instance=ExtResource("2_paxxb")] layout_mode = 0 -anchors_preset = 0 offset_left = 144.0 offset_top = 382.0 offset_right = 214.0 offset_bottom = 452.0 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"] diff --git a/scenes/options.tscn b/scenes/options.tscn new file mode 100644 index 0000000..0f54a7e --- /dev/null +++ b/scenes/options.tscn @@ -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"] diff --git a/scripts/adventurer_portrait.gd b/scripts/adventurer_portrait.gd index f401ba1..d25037a 100644 --- a/scripts/adventurer_portrait.gd +++ b/scripts/adventurer_portrait.gd @@ -1,6 +1,6 @@ class_name AdventurerPortrait extends Control - +var option_sets : Dictionary var cv_lists : Array func _ready() -> void: @@ -8,9 +8,18 @@ func _ready() -> void: cv_lists.resize(ColorVariant.Types.size()) for i in range(len(cv_lists)): 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: cv_lists[child.type].append(child) + if child.get_child_count() > 0: + add_color_variants(child.get_children()) + func set_appearance(appearance) -> void: 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: for cv : ColorVariant in cv_lists[type]: 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) diff --git a/scripts/color_variant.gd b/scripts/color_variant.gd index f8a5565..65a0529 100644 --- a/scripts/color_variant.gd +++ b/scripts/color_variant.gd @@ -52,7 +52,7 @@ static var hair_colors = { "brown":{ "weight": 100, "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":{ "weight": 100, @@ -74,17 +74,17 @@ static var hair_colors = { static var skin_colors = { "pale":{ "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"), }, "medium":{ "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"), }, "olive":{ "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"), }, "brown":{ @@ -94,17 +94,22 @@ static var skin_colors = { }, "dark":{ "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"), }, "white":{ "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"), }, "red":{ "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"), }, } @@ -133,3 +138,6 @@ func set_color(color : String) -> void: var mat = material mat.set_shader_parameter("color_gradient",col_gradients.color) mat.set_shader_parameter("luminosity_gradient",col_gradients.luminosity) + +func flash(flashing : bool) -> void: + material.set_shader_parameter("flash",flashing) diff --git a/scripts/game_manager.gd b/scripts/game_manager.gd index 65ec95c..e4386d1 100644 --- a/scripts/game_manager.gd +++ b/scripts/game_manager.gd @@ -1,5 +1,6 @@ extends Node +var player_data : Adventurer = null var player : Player = null var panel : GamePanel = 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 last_screenshot : Image func _ready() -> void: + player_data = Adventurer.new() + Quest.load_quest_list() DisplayServer.register_additional_output(self) end_shift_confirmation = end_shift_confirm_template.instantiate() add_child(end_shift_confirmation) @@ -88,8 +91,9 @@ func test_save() -> void: save_dict["guildname"] = Guild.name save_dict["guildlevel"] = Guild.level #Save the player data - save_dict["playername"] = player.data.full_name() - save_dict["playerlevel"] = player.data.level + if player: + save_dict["playername"] = player.data.full_name() + save_dict["playerlevel"] = player.data.level #Save the employee data #Save the adventurer 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: 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 diff --git a/scripts/guild_card_scene.gd b/scripts/guild_card_scene.gd index c6e1b7b..f986d11 100644 --- a/scripts/guild_card_scene.gd +++ b/scripts/guild_card_scene.gd @@ -40,9 +40,12 @@ func update_signature_threshold(value : float) -> void: func _on_sign_button_pressed() -> void: signButton.visible = false var tween = create_tween() + Game.player_data.name = %FirstNameEdit.text + Game.player_data.surname = %LastNameEdit.text write_sound.play() 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. #Dialogic.paused = false #Dialogic.Jump.jump_to_label("") diff --git a/scripts/main_panel.gd b/scripts/main_panel.gd index 67c78cd..eee046e 100644 --- a/scripts/main_panel.gd +++ b/scripts/main_panel.gd @@ -3,6 +3,7 @@ class_name GamePanel extends MarginContainer const notice_template = preload("res://templates/notice_panel.tscn") const quest_progress_bar_template = preload("res://templates/quest_progress_bar.tscn") const quest_view_template = preload("res://templates/quest_view.tscn") +const options_template = preload("res://scenes/options.tscn") 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: %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. diff --git a/scripts/map_point.gd b/scripts/map_point.gd index 371264a..1089d9a 100644 --- a/scripts/map_point.gd +++ b/scripts/map_point.gd @@ -2,24 +2,31 @@ extends TextureButton -@onready var panel : PanelContainer = $Panel +@onready var panel : PanelContainer = %BriefPanel @onready var anim_player : AnimationPlayer = $AnimationPlayer var panel_shown : bool = false @export var primed : bool = false var locked : bool = true var mat : ShaderMaterial var _circle_size : float = 0 -@export var circle_size: float: +var circle_size: float: get(): return _circle_size set(value): _circle_size = value queue_redraw() -@export var add_color : Color -@export var threshold : float -@export var thickness : float = 5 -@export var max_circle_size : float = 200 +var add_color : Color = Color(1,1,1,0) +var threshold : float = .361 +var thickness : float = 5 +var max_circle_size : float = 200 + +@export var label : String = "" +@export var locked_brief : String = "" +@export var unlocked_brief : String = "" 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 if 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("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: locked = false primed = false anim_player.play("unlock") + print(%Brief.size.y) + %Brief.text = unlocked_brief + print(%Brief.size.y) + reposition_brief.call_deferred() $AudioStreamPlayer2D.play() func _on_mouse_entered() -> void: diff --git a/scripts/options.gd b/scripts/options.gd new file mode 100644 index 0000000..71e7b5d --- /dev/null +++ b/scripts/options.gd @@ -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") diff --git a/scripts/options.gd.uid b/scripts/options.gd.uid new file mode 100644 index 0000000..2df2ed8 --- /dev/null +++ b/scripts/options.gd.uid @@ -0,0 +1 @@ +uid://b2jhi1k8mktqm diff --git a/scripts/portrait_customizer.gd b/scripts/portrait_customizer.gd new file mode 100644 index 0000000..eb32f73 --- /dev/null +++ b/scripts/portrait_customizer.gd @@ -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) diff --git a/scripts/portrait_customizer.gd.uid b/scripts/portrait_customizer.gd.uid new file mode 100644 index 0000000..b9b68ad --- /dev/null +++ b/scripts/portrait_customizer.gd.uid @@ -0,0 +1 @@ +uid://y86x71nakgkl diff --git a/scripts/quest_progress_bar.gd b/scripts/quest_progress_bar.gd index c4f3eea..db21597 100644 --- a/scripts/quest_progress_bar.gd +++ b/scripts/quest_progress_bar.gd @@ -46,18 +46,23 @@ func generate_waypoints(): waypoints = [] #Include the "end" in the count - var num = quest.num_events()+1 - for i in range(1,num): - var pct : float = i / float(num) - add_waypoint( pct, quest.events[i-1]) + var num = quest.num_events() + #add_waypoint(0, Quest.Event.new()) + #waypoints[0]. + 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): var wp = waypoint_template.instantiate() + waypoints.append(wp) wp.percent = pct #TODO: Make events matter wp.event = event %Waypoints.add_child(wp) + if event.hidden: + wp.visible = false wp.global_position = %Waypoints.global_position + Vector2(pct * length - 16, -9) if bar.value / bar.max_value >= pct: wp.fill = true @@ -86,7 +91,10 @@ func setup(quest : Quest) -> void: func progress_quest() -> void: var pct = time_elapsed / quest.length + quest.progress = pct 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) pct = waypoints[next_waypoint].percent waypoints[next_waypoint].blink(true) diff --git a/scripts/quest_view.gd b/scripts/quest_view.gd index 0028479..1907eb8 100644 --- a/scripts/quest_view.gd +++ b/scripts/quest_view.gd @@ -31,3 +31,8 @@ func pause_setting() -> void: func unpause_setting() -> void: 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 diff --git a/scripts/test_scene.gd b/scripts/test_scene.gd index 08477d5..a05c2f3 100644 --- a/scripts/test_scene.gd +++ b/scripts/test_scene.gd @@ -5,12 +5,9 @@ var test_item = preload("res://data/items/pitchfork.tres") func _ready() -> void: #var adv : Adventurer = test_adv.instantiate() as Adventurer #Guild.register_guild_member(adv) - var quest : Quest = Quest.new() - var evt : Quest.Event = Quest.Event.new() - evt.type = Quest.Event.Type.COMBAT - evt.enemies = ["goo"] - evt.time = 10 - quest.events.append(evt) + var lst = Quest.list + var quest : Quest = Quest.list[1].duplicate(true) + quest.setup() Guild.add_quest(quest) Guild.assign_quest(Game.player.data, quest) var itm = test_item.duplicate() diff --git a/scripts/update_bubble.gd b/scripts/update_bubble.gd index e5312ea..9df1e1e 100644 --- a/scripts/update_bubble.gd +++ b/scripts/update_bubble.gd @@ -24,4 +24,4 @@ func appear(show_time : float): func _on_timer_timeout() -> void: var tween = create_tween() tween.tween_property(self, "modulate", Color(1,1,1,0), .5) - tween.tween_callback(queue_free) + #tween.tween_callback(queue_free) diff --git a/templates/hero_portrait.tscn b/templates/hero_portrait.tscn new file mode 100644 index 0000000..ca26880 --- /dev/null +++ b/templates/hero_portrait.tscn @@ -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") diff --git a/templates/main_panel.tscn b/templates/main_panel.tscn index 20e413f..49c31d7 100644 --- a/templates/main_panel.tscn +++ b/templates/main_panel.tscn @@ -22,7 +22,6 @@ corner_radius_bottom_left = 3 corner_detail = 5 [node name="MainPanel" type="MarginContainer"] -anchors_preset = -1 offset_right = 401.0 offset_bottom = 853.0 theme_override_constants/margin_left = 0 @@ -44,6 +43,14 @@ custom_minimum_size = Vector2(401, 216) layout_mode = 2 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"] layout_mode = 0 offset_left = 9.0 @@ -107,6 +114,7 @@ theme_override_styles/panel = ExtResource("4_b7y1i") [node name="DragRegion" type="Control" parent="VBoxContainer/WorkingShift"] layout_mode = 1 +anchors_preset = 0 offset_left = 4.0 offset_top = 3.0 offset_right = 399.0 @@ -212,6 +220,7 @@ layout_mode = 2 stream = ExtResource("6_osxme") 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="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"] diff --git a/templates/map_pin.tscn b/templates/map_pin.tscn index f78aa1a..510f43b 100644 --- a/templates/map_pin.tscn +++ b/templates/map_pin.tscn @@ -22,7 +22,7 @@ shader = ExtResource("2_lqa1n") shader_parameter/add_color = Color(1, 1, 1, 0) shader_parameter/fringe_color = SubResource("GradientTexture1D_blm8a") shader_parameter/fringe_threshold = 0.10000000000582077 -shader_parameter/threshold = 1.0 +shader_parameter/threshold = 0.3606666537395989 [sub_resource type="Animation" id="Animation_jh32y"] length = 0.001 @@ -189,17 +189,18 @@ _data = { } [node name="Map Pin" type="TextureButton"] -anchors_preset = -1 -offset_left = 69.0 -offset_top = 410.0 -offset_right = 139.0 -offset_bottom = 480.0 +offset_left = -35.0 +offset_top = -35.0 +offset_right = 35.0 +offset_bottom = 35.0 +pivot_offset = Vector2(35, 35) script = ExtResource("1_ymuo7") -circle_size = 200.0 -add_color = Color(1, 1, 1, 0) -threshold = 0.3606666537395989 +label = null +locked_brief = null +unlocked_brief = null -[node name="Panel" type="PanelContainer" parent="."] +[node name="BriefPanel" type="PanelContainer" parent="."] +unique_name_in_owner = true visible = false custom_minimum_size = Vector2(300, 100) layout_mode = 0 @@ -209,7 +210,8 @@ offset_right = 334.0 offset_bottom = 30.0 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 size_flags_vertical = 1 theme_override_constants/line_spacing = -3 @@ -225,6 +227,7 @@ material = SubResource("ShaderMaterial_ymuo7") [node name="Pin" type="Control" parent="CanvasGroup"] unique_name_in_owner = true layout_mode = 3 +anchors_preset = 0 offset_right = 40.0 offset_bottom = 40.0 @@ -267,7 +270,6 @@ texture = ExtResource("6_vq4p4") [node name="Banner" type="TextureRect" parent="CanvasGroup"] visible = false -anchors_preset = -1 offset_left = -59.0 offset_top = -59.0 offset_right = 129.0 @@ -275,6 +277,7 @@ offset_bottom = 129.0 texture = ExtResource("7_175dc") [node name="Label" type="Label" parent="CanvasGroup/Banner"] +unique_name_in_owner = true custom_minimum_size = Vector2(125, 0) layout_mode = 0 offset_left = 34.0 diff --git a/templates/portrait_customizer.tscn b/templates/portrait_customizer.tscn index c23be89..efd6568 100644 --- a/templates/portrait_customizer.tscn +++ b/templates/portrait_customizer.tscn @@ -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"] layout_mode = 3 @@ -7,3 +51,412 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 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"]] diff --git a/templates/quest_view.tscn b/templates/quest_view.tscn index 1a3a8ab..982fd62 100644 --- a/templates/quest_view.tscn +++ b/templates/quest_view.tscn @@ -8,15 +8,14 @@ [node name="QuestView" type="Panel"] custom_minimum_size = Vector2(375, 325) -anchors_preset = -1 -offset_left = 12.0 -offset_right = 387.0 +offset_right = 375.0 offset_bottom = 325.0 script = ExtResource("1_gmxj1") [node name="Setting" type="Control" parent="."] clip_contents = true layout_mode = 1 +anchors_preset = 0 offset_right = 375.0 offset_bottom = 325.0 @@ -31,7 +30,6 @@ autoscroll = Vector2(-30, 0) ignore_camera_scroll = true [node name="Background" type="TextureRect" parent="Setting/Control/StageParallax"] -anchors_preset = -1 offset_top = -50.0 offset_right = 750.0 offset_bottom = 375.0 @@ -45,7 +43,6 @@ ignore_camera_scroll = true [node name="Background" type="TextureRect" parent="Setting/Control/StageParallax3"] modulate = Color(1.179842, 1.179842, 1.179842, 1) -anchors_preset = -1 offset_right = 750.0 offset_bottom = 425.0 texture = ExtResource("3_dvgqk") @@ -56,7 +53,6 @@ autoscroll = Vector2(-45, 0) ignore_camera_scroll = true [node name="TextureRect" type="TextureRect" parent="Setting/Control/BackgroundParallax"] -anchors_preset = -1 offset_top = -50.0 offset_right = 475.0 offset_bottom = 375.0 @@ -68,7 +64,6 @@ autoscroll = Vector2(-45, 0) ignore_camera_scroll = true [node name="Foreground" type="TextureRect" parent="Setting/Control/StageParallax2"] -anchors_preset = -1 offset_top = -50.0 offset_right = 750.0 offset_bottom = 375.0 @@ -83,7 +78,39 @@ offset_bottom = 276.0 [node name="QuestorPosition" type="Control" parent="."] layout_mode = 1 +anchors_preset = 0 offset_left = 89.0 offset_top = 272.0 offset_right = 89.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