Work on quest locations and the first, brokedown guildhall scene.

This commit is contained in:
2025-09-27 18:19:22 -04:00
parent 023e88b84e
commit 00ef506689
19 changed files with 854 additions and 121 deletions

View File

@@ -1,3 +1,6 @@
And after that, all that was left was to... just open the guild gate, I guess?
It took me a little while to find the thing in the middle of Nestor's Woods despite growing up there. I knew Guildhalls were hidden in another dimension, but I'd always pictured the Guild Gates would be more... magical looking?
do Game.switch_scenes("first_guildhall")
player: (Wow this is a mess... nobody's been here for a while. I should...)
- set up some lights.
Hey, no touching! This isn't your home! Get out!

BIN
external/questor-shadow.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

40
external/questor-shadow.png.import vendored Normal file
View File

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

View File

@@ -104,6 +104,7 @@ total_visitors = 1
[node name="Timer" type="Timer" parent="Guildhall/VisitorSpawner"]
[node name="UI" type="CanvasLayer" parent="."]
visible = false
[node name="VBoxContainer" type="VBoxContainer" parent="UI"]
offset_left = 1485.0

431
scenes/first_guildhall.tscn Normal file
View File

@@ -0,0 +1,431 @@
[gd_scene load_steps=42 format=3 uid="uid://bd1wvujdcnpqk"]
[ext_resource type="Script" uid="uid://cci652umkym1f" path="res://scripts/test_scene.gd" id="1_7nayx"]
[ext_resource type="Texture2D" uid="uid://c5yxq22ao1oyf" path="res://graphics/doorlight.png" id="2_ivnss"]
[ext_resource type="Script" uid="uid://ccorfvcfa84gf" path="res://scripts/guildhall.gd" id="3_sxwyg"]
[ext_resource type="Shader" uid="uid://hr8vdp56p4yo" path="res://shaders/void.tres" id="4_ej4lk"]
[ext_resource type="PackedScene" uid="uid://c8ofw6na082gv" path="res://templates/main_panel.tscn" id="5_blfjh"]
[ext_resource type="Texture2D" uid="uid://bbh444vapab3y" path="res://graphics/voidcircle.png" id="5_dpsgu"]
[ext_resource type="PackedScene" uid="uid://c7jagw4y7w42l" path="res://templates/top_menu.tscn" id="6_2j6ej"]
[ext_resource type="Shader" uid="uid://cenbje61a2wi6" path="res://shaders/void_composite.gdshader" id="6_l1y25"]
[ext_resource type="AudioStream" uid="uid://cmray2frojcd" path="res://sounds/Door Hinge Creaking Door.wav" id="7_g53ee"]
[ext_resource type="Script" uid="uid://2g4ja3a7o2l" path="res://scripts/void_ripple.gd" id="7_us1d4"]
[ext_resource type="Texture2D" uid="uid://do4gn21x5bmdm" path="res://graphics/first-guild-base.png" id="8_kc45t"]
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="9_5rxjm"]
[ext_resource type="Script" uid="uid://dyn5wwocvkqds" path="res://scripts/guild_facade.gd" id="9_64ojl"]
[ext_resource type="Texture2D" uid="uid://bg5ip7ni3n7qd" path="res://graphics/first-guild-front.png" id="10_q48tf"]
[ext_resource type="Script" uid="uid://bh54wpqgau8hc" path="res://scripts/npc.gd" id="11_1w0p3"]
[ext_resource type="Texture2D" uid="uid://dcrhry67g00vk" path="res://graphics/pom.png" id="12_1i8kt"]
[ext_resource type="PackedScene" uid="uid://jbqw0n6dlj08" path="res://templates/speech_bubble.tscn" id="13_qcjjg"]
[ext_resource type="Script" uid="uid://dolqtw1ye4ras" path="res://scripts/player.gd" id="16_olx4l"]
[ext_resource type="Texture2D" uid="uid://cg6ptmynq0aq0" path="res://graphics/basic-sprite.png" id="17_fufi5"]
[ext_resource type="Shader" uid="uid://dvdm8x66gwu2v" path="res://shaders/starfield.tres" id="19_3llh7"]
[ext_resource type="Texture2D" uid="uid://bhupleoa6pkkb" path="res://external/test_star.png" id="20_jgl1l"]
[ext_resource type="Texture2D" uid="uid://ct7y401wpmcdf" path="res://external/test_star2.png" id="21_iy8s4"]
[sub_resource type="ViewportTexture" id="ViewportTexture_sxwyg"]
viewport_path = NodePath("Guildhall/SubViewport")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_0ypcf"]
resource_local_to_scene = true
shader = ExtResource("4_ej4lk")
shader_parameter/void_view = SubResource("ViewportTexture_sxwyg")
[sub_resource type="Curve" id="Curve_0aygh"]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="ShaderMaterial" id="ShaderMaterial_nfvtf"]
shader = ExtResource("6_l1y25")
shader_parameter/line_thickness = 3.8570001832075
shader_parameter/line_color = Color(0.7666664, 0, 1, 1)
[sub_resource type="Gradient" id="Gradient_ggqxp"]
offsets = PackedFloat32Array(0, 0.27842227, 0.7447796, 0.9976798, 1)
colors = PackedColorArray(1, 0, 1, 1, 0.6414714, 0, 1, 1, 0.3529412, 0, 1, 1, 0.13464576, 8.6924134e-05, 0.43542284, 1, 0.3529412, 0, 1, 1)
[sub_resource type="NavigationPolygon" id="NavigationPolygon_28dkg"]
vertices = PackedVector2Array(318, 11, 318, -19, 689, -14, 689, 12, 493, 432, 702, 15, 703, 416, 694, 416, 493, 578, 399, 578, 399, 431, 694, 431, 305, 431, 302, 51, 307, 31)
polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3, 4), PackedInt32Array(5, 6, 7), PackedInt32Array(4, 8, 9, 10), PackedInt32Array(7, 11, 4), PackedInt32Array(10, 12, 13), PackedInt32Array(5, 7, 4, 3), PackedInt32Array(13, 14, 0, 4, 10)])
outlines = Array[PackedVector2Array]([PackedVector2Array(689, 12, 702, 15, 703, 416, 694, 416, 694, 431, 493, 432, 493, 578, 399, 578, 399, 431, 305, 431, 302, 51, 307, 31, 318, 11, 318, -19, 689, -14)])
source_geometry_mode = 2
source_geometry_group_name = &"room_obstacles"
agent_radius = 0.0
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_752n1"]
blend_mode = 3
[sub_resource type="RectangleShape2D" id="RectangleShape2D_a3e6t"]
size = Vector2(211, 203)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_lsfle"]
size = Vector2(91.5, 203)
[sub_resource type="Animation" id="Animation_p1w2f"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_4k18p"]
resource_name = "open"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.099999994, 0.13333333, 0.16666667, 0.2, 0.23333333),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.09737283),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_dtjin"]
_data = {
&"RESET": SubResource("Animation_p1w2f"),
&"open": SubResource("Animation_4k18p")
}
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_l3mu1"]
radius = 15.0
height = 54.0
[sub_resource type="Gradient" id="Gradient_28dkg"]
offsets = PackedFloat32Array(0, 0.15085158, 0.63017035, 1)
colors = PackedColorArray(0, 0, 0, 1, 0, 0.07479378, 0.21630663, 1, 0.11818864, 0.00013856843, 0.3326036, 1, 1.1310726e-06, 1.2032687e-07, 0.37330782, 1)
[sub_resource type="FastNoiseLite" id="FastNoiseLite_ggqxp"]
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_lsfle"]
width = 384
height = 216
noise = SubResource("FastNoiseLite_ggqxp")
color_ramp = SubResource("Gradient_28dkg")
seamless = true
normalize = false
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ggqxp"]
shader = ExtResource("19_3llh7")
shader_parameter/stars_speed = Vector2(25, 0)
shader_parameter/stars_density = 0.0050000002375
[sub_resource type="ShaderMaterial" id="ShaderMaterial_b2pr6"]
shader = ExtResource("19_3llh7")
shader_parameter/stars_speed = Vector2(10, 0)
shader_parameter/stars_density = 0.0030000001425
[sub_resource type="ShaderMaterial" id="ShaderMaterial_o230c"]
shader = ExtResource("19_3llh7")
shader_parameter/stars_speed = Vector2(15, 0)
shader_parameter/stars_density = 0.0
[node name="Active Scene" type="Node2D"]
script = ExtResource("1_7nayx")
[node name="Guildhall" type="Node2D" parent="."]
position = Vector2(421, 289)
script = ExtResource("3_sxwyg")
[node name="CanvasLayer" type="CanvasLayer" parent="Guildhall"]
layer = -1
scale = Vector2(2, 2)
transform = Transform2D(2, 0, 0, 2, 0, 0)
[node name="ColorRect" type="ColorRect" parent="Guildhall/CanvasLayer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -801.5
offset_top = -413.5
offset_right = -801.5
offset_bottom = -413.5
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
color = Color(0.018666686, 0, 0.08, 1)
[node name="CPUParticles2D2" type="CPUParticles2D" parent="Guildhall"]
visible = false
material = SubResource("ShaderMaterial_0ypcf")
position = Vector2(-800, 176)
scale = Vector2(4.9999995, 4.9999995)
amount = 1000
texture = ExtResource("5_dpsgu")
preprocess = 5.0
speed_scale = 0.13
emission_shape = 2
emission_sphere_radius = 30.0
spread = 180.0
gravity = Vector2(0, 0)
initial_velocity_min = 100.0
initial_velocity_max = 120.0
linear_accel_min = -300.0
linear_accel_max = -150.0
scale_amount_min = 1.1
scale_amount_max = 4.2
scale_amount_curve = SubResource("Curve_0aygh")
[node name="CanvasGroup" type="CanvasGroup" parent="Guildhall"]
material = SubResource("ShaderMaterial_nfvtf")
position = Vector2(509, 176)
scale = Vector2(5, 5)
[node name="CPUParticles2D" type="CPUParticles2D" parent="Guildhall/CanvasGroup"]
material = SubResource("ShaderMaterial_0ypcf")
scale = Vector2(0.99999994, 0.99999994)
amount = 1000
texture = ExtResource("5_dpsgu")
preprocess = 5.0
speed_scale = 0.13
emission_shape = 2
emission_sphere_radius = 30.0
spread = 180.0
gravity = Vector2(0, 0)
initial_velocity_min = 100.0
initial_velocity_max = 120.0
linear_accel_min = -300.0
linear_accel_max = -150.0
scale_amount_min = 1.1
scale_amount_max = 4.2
scale_amount_curve = SubResource("Curve_0aygh")
[node name="VoidRipple" type="Node2D" parent="Guildhall"]
z_index = 1
script = ExtResource("7_us1d4")
speed = 0.01000000000931322
ripple_width = 4.5
gradient = SubResource("Gradient_ggqxp")
[node name="Center" type="Node2D" parent="Guildhall/VoidRipple"]
position = Vector2(486, 158)
[node name="Line2D" type="Line2D" parent="Guildhall/VoidRipple"]
visible = false
points = PackedVector2Array(312, 440, 312, 480, 241, 479, 250, 417, 279, 417, 253, 17, 244, 17, 241, -51, 303, -51, 306, -21, 701, -20, 701, -47, 771, -47, 770, 16, 759, 17, 732, 418, 763, 419, 769, 482, 700, 481, 698, 441, 543, 441, 544, 454, 507, 454, 501, 439, 389, 439, 385, 452, 347, 452, 347, 440, 312, 440)
width = 5.0
[node name="Line2D2" type="Line2D" parent="Guildhall/VoidRipple"]
z_index = -1
points = PackedVector2Array(312, 440, 312, 480, 241, 479, 250, 417, 279, 417, 253, 17, 244, 17, 241, -51, 303, -51, 306, -21, 701, -20, 701, -47, 771, -47, 770, 16, 759, 17, 732, 418, 763, 419, 769, 482, 700, 481, 698, 441, 543, 441, 544, 454, 507, 454, 501, 439, 389, 439, 385, 452, 347, 452, 347, 440, 312, 440)
width = 50.0
default_color = Color(0, 0, 0, 0.46666667)
joint_mode = 2
round_precision = 16
antialiased = true
[node name="RoomRegion" type="NavigationRegion2D" parent="Guildhall"]
z_index = 1
navigation_polygon = SubResource("NavigationPolygon_28dkg")
[node name="Base" type="TextureRect" parent="Guildhall"]
clip_children = 2
z_index = 1
clip_contents = true
offset_left = 200.0
offset_top = -265.0
offset_right = 810.0
offset_bottom = 480.0
texture = ExtResource("8_kc45t")
[node name="ColorRect" type="ColorRect" parent="Guildhall/Base"]
material = SubResource("CanvasItemMaterial_752n1")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
color = Color(0.2925, 0.29512504, 0.45, 1)
[node name="TextureRect" type="TextureRect" parent="Guildhall/Base"]
visible = false
layout_mode = 0
offset_left = -54.0
offset_top = -27.0
offset_right = 74.0
offset_bottom = 101.0
texture = ExtResource("9_5rxjm")
[node name="Facade" type="Area2D" parent="Guildhall"]
z_index = 50
position = Vector2(473, 427)
script = ExtResource("9_64ojl")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Guildhall/Facade"]
position = Vector2(130.5, -78.5)
shape = SubResource("RectangleShape2D_a3e6t")
[node name="CollisionShape2D2" type="CollisionShape2D" parent="Guildhall/Facade"]
position = Vector2(-127.25, -78.5)
shape = SubResource("RectangleShape2D_lsfle")
[node name="Front" type="Sprite2D" parent="Guildhall/Facade"]
z_index = 1
position = Vector2(32, -86)
texture = ExtResource("10_q48tf")
[node name="DoorLight" type="Sprite2D" parent="Guildhall"]
visible = false
self_modulate = Color(2.5713813, 2.5713813, 2.5713813, 0.36078432)
z_index = 1
position = Vector2(447, 373)
scale = Vector2(2, 2)
texture = ExtResource("2_ivnss")
hframes = 5
frame = 4
[node name="AnimationPlayer" type="AnimationPlayer" parent="Guildhall/DoorLight"]
libraries = {
&"": SubResource("AnimationLibrary_dtjin")
}
[node name="Sprites" type="Node2D" parent="Guildhall"]
z_index = 20
y_sort_enabled = true
[node name="Pom" type="CharacterBody2D" parent="Guildhall/Sprites"]
z_index = 1
position = Vector2(357, -27)
script = ExtResource("11_1w0p3")
metadata/_custom_type_script = "uid://bh54wpqgau8hc"
[node name="CollisionShape2D" type="CollisionShape2D" parent="Guildhall/Sprites/Pom"]
position = Vector2(1, 16)
rotation = 1.5707964
shape = SubResource("CapsuleShape2D_l3mu1")
[node name="Sprite2D" type="Sprite2D" parent="Guildhall/Sprites/Pom"]
texture = ExtResource("12_1i8kt")
[node name="SpeechBubble" parent="Guildhall/Sprites/Pom" instance=ExtResource("13_qcjjg")]
position = Vector2(44, -93)
[node name="NavigationAgent2D" type="NavigationAgent2D" parent="Guildhall/Sprites/Pom"]
path_desired_distance = 30.0
avoidance_enabled = true
[node name="Player" type="CharacterBody2D" parent="Guildhall/Sprites"]
position = Vector2(451, 430)
script = ExtResource("16_olx4l")
stop_range = 15.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="Guildhall/Sprites/Player"]
rotation = 1.5707964
shape = SubResource("CapsuleShape2D_l3mu1")
[node name="Sprite2D" type="Sprite2D" parent="Guildhall/Sprites/Player"]
position = Vector2(0, -43)
texture = ExtResource("17_fufi5")
[node name="NavigationAgent2D" type="NavigationAgent2D" parent="Guildhall/Sprites/Player"]
path_desired_distance = 30.0
avoidance_enabled = true
[node name="SubViewport" type="SubViewport" parent="Guildhall"]
size = Vector2i(1920, 1080)
[node name="ColorRect" type="ColorRect" parent="Guildhall/SubViewport"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
color = Color(0, 0, 0.12941177, 1)
[node name="Parallax2D" type="Parallax2D" parent="Guildhall/SubViewport"]
repeat_size = Vector2(1920, 1080)
autoscroll = Vector2(-10, 0)
follow_viewport = false
ignore_camera_scroll = true
[node name="TextureRect2" type="TextureRect" parent="Guildhall/SubViewport/Parallax2D"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_right = 1920.0
offset_bottom = 1080.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = SubResource("NoiseTexture2D_lsfle")
[node name="TextureRect" type="TextureRect" parent="Guildhall/SubViewport"]
modulate = Color(0.45840502, 0.45840508, 0.45840502, 1)
material = SubResource("ShaderMaterial_ggqxp")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("20_jgl1l")
[node name="TextureRect4" type="TextureRect" parent="Guildhall/SubViewport"]
modulate = Color(0.45840502, 0.45840508, 0.45840502, 1)
material = SubResource("ShaderMaterial_b2pr6")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("20_jgl1l")
[node name="TextureRect3" type="TextureRect" parent="Guildhall/SubViewport"]
material = SubResource("ShaderMaterial_o230c")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("21_iy8s4")
[node name="UI" type="CanvasLayer" parent="."]
visible = false
[node name="VBoxContainer" type="VBoxContainer" parent="UI"]
offset_left = 1485.0
offset_top = 23.0
offset_right = 1886.0
offset_bottom = 351.0
[node name="MainPanel" parent="UI/VBoxContainer" instance=ExtResource("5_blfjh")]
layout_mode = 2
[node name="Notices" type="Control" parent="UI/VBoxContainer"]
layout_mode = 2
[node name="Control" parent="UI" instance=ExtResource("6_2j6ej")]
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("7_g53ee")
volume_db = -24.535
[connection signal="body_entered" from="Guildhall/Facade" to="Guildhall/Facade" method="_on_body_entered"]
[connection signal="body_exited" from="Guildhall/Facade" to="Guildhall/Facade" method="_on_body_exited"]

View File

@@ -1,10 +1,12 @@
[gd_scene load_steps=17 format=3 uid="uid://dcpuaq3fcwyxs"]
[gd_scene load_steps=19 format=3 uid="uid://dcpuaq3fcwyxs"]
[ext_resource type="Script" uid="uid://dkrxdaq8d6q55" path="res://scripts/guild_card_scene.gd" id="1_hj0e5"]
[ext_resource type="Texture2D" uid="uid://c5hcva1k5qee0" path="res://external/guildcard-portrait-placeholder.png" id="1_mmvi8"]
[ext_resource type="Shader" uid="uid://uxrvcuhjnjgl" path="res://shaders/animated_gradient.gdshader" id="3_3vymb"]
[ext_resource type="PackedScene" uid="uid://drshemnag35re" path="res://templates/hero_portrait.tscn" id="3_tnttg"]
[ext_resource type="Texture2D" uid="uid://hdjte1ipyyio" path="res://external/signature.png" id="4_ht11g"]
[ext_resource type="AudioStream" uid="uid://bmm8jhojdt31a" path="res://sounds/Writing in paper 19.wav" id="5_ht11g"]
[ext_resource type="PackedScene" uid="uid://dno0a4457twd4" path="res://templates/portrait_customizer.tscn" id="7_q4kfw"]
[sub_resource type="Gradient" id="Gradient_hj0e5"]
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1)
@@ -205,6 +207,41 @@ mouse_filter = 2
texture = ExtResource("1_mmvi8")
expand_mode = 1
[node name="PortraitContainer" type="Control" parent="GuildCard"]
unique_name_in_owner = true
visible = false
anchors_preset = 0
offset_left = 9.0
offset_top = 58.0
offset_right = 213.0
offset_bottom = 263.0
mouse_filter = 2
[node name="ColorRect" type="ColorRect" parent="GuildCard/PortraitContainer"]
layout_mode = 0
offset_right = 204.8
offset_bottom = 205.0
mouse_filter = 2
[node name="ColorRect2" type="ColorRect" parent="GuildCard/PortraitContainer"]
clip_contents = true
layout_mode = 0
offset_left = 14.0
offset_top = 14.0
offset_right = 189.0
offset_bottom = 189.0
mouse_filter = 2
color = Color(0.48570347, 0.48570353, 0.48570347, 1)
[node name="HeroPortrait" parent="GuildCard/PortraitContainer/ColorRect2" instance=ExtResource("3_tnttg")]
unique_name_in_owner = true
layout_mode = 0
offset_left = -2.0
offset_right = 510.0
offset_bottom = 512.0
scale = Vector2(0.35, 0.35)
mouse_filter = 1
[node name="Label" type="Label" parent="GuildCard"]
layout_mode = 0
offset_left = 187.0
@@ -272,6 +309,7 @@ offset_bottom = 380.0
theme_override_colors/font_color = Color(0.2775273, 0.27752793, 0.27752748, 1)
theme_override_font_sizes/font_size = 48
theme_override_styles/normal = SubResource("StyleBoxFlat_q4kfw")
disabled = true
text = "(Sign Here)"
[node name="HSeparator" type="HSeparator" parent="GuildCard"]
@@ -317,7 +355,13 @@ texture = ExtResource("4_ht11g")
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("5_ht11g")
[node name="PortraitCustomizer" parent="." instance=ExtResource("7_q4kfw")]
visible = false
z_index = 10
layout_mode = 1
[connection signal="pressed" from="GuildCard/PortraitButton" to="." method="_on_portrait_button_pressed"]
[connection signal="text_changed" from="GuildCard/FirstNameEdit" to="." method="_on_first_name_edit_text_changed"]
[connection signal="text_changed" from="GuildCard/LastNameEdit" to="." method="_on_last_name_edit_text_changed"]
[connection signal="pressed" from="GuildCard/SignButton" to="." method="_on_sign_button_pressed"]
[connection signal="portrait_customized" from="PortraitCustomizer" to="." method="_on_portrait_customized"]

View File

@@ -1,11 +1,5 @@
class_name Adventurer extends Node
class Appearance extends Resource:
var hair_color : String
var hair_type : int
var skin_color : String
var eye_color : String
var eye_type : int
enum Gender{
MASC,
@@ -23,7 +17,7 @@ var max_energy : int = 1
var level : int = 1
var exp : int = 0
var job : JobData
var appearance : Appearance
var appearance : Dictionary
var stats : StatBlock
var gold : int = 0
var quest : Quest
@@ -177,11 +171,24 @@ func move_item(from : Vector2, to: Vector2) -> void:
func generate_appearance(features=null) -> void:
if features == null:
appearance = Appearance.new()
appearance = {
"hair":{
"color":"",
"type":""
},
"skin":{
"color":"",
"type":""
},
"eyes":{
"color":"",
"type":""
}
}
#TODO: Handle different types of hair and eyes
appearance.hair_color = AdventurerPortrait.random_color(ColorVariant.Types.HAIR)
appearance.hair.color = AdventurerPortrait.random_color(ColorVariant.Types.HAIR)
#appearance.hair_type = randi_range(0,len(job.portrait.hair_types) - 1)
appearance.eye_color = AdventurerPortrait.random_color(ColorVariant.Types.EYES)
appearance.eyes.color = AdventurerPortrait.random_color(ColorVariant.Types.EYES)
#appearance.eye_type = randi_range(0,len(job.portrait.eye_types) - 1)
appearance.skin_color = AdventurerPortrait.random_color(ColorVariant.Types.SKIN)
appearance.skin.color = AdventurerPortrait.random_color(ColorVariant.Types.SKIN)
changed.emit()

View File

@@ -22,9 +22,29 @@ func add_color_variants(list : Array) -> void:
func set_appearance(appearance) -> void:
set_color(ColorVariant.Types.HAIR, appearance.hair_color)
set_color(ColorVariant.Types.SKIN, appearance.skin_color)
set_color(ColorVariant.Types.EYES, appearance.eye_color)
set_color(ColorVariant.Types.HAIR, appearance.hair.color)
#set_type(ColorVariant.Types.HAIR, appearance.hair.type)
set_color(ColorVariant.Types.SKIN, appearance.skin.color)
#set_color(ColorVariant.Types.SKIN, appearance.skin.type)
set_color(ColorVariant.Types.EYES, appearance.eyes.color)
#set_color(ColorVariant.Types.EYES, appearance.eyes.type)
func get_random_appearance() -> Dictionary:
var app = {
"hair":{
"type":"",
"color": random_color(ColorVariant.Types.HAIR)
},
"skin":{
"type":"",
"color": random_color(ColorVariant.Types.SKIN)
},
"eyes":{
"type":"",
"color": random_color(ColorVariant.Types.EYES)
},
}
return app
static func random_color(type : ColorVariant.Types) -> String:
var lst

View File

@@ -1,26 +1,39 @@
extends Control
@onready var firstEdit : TextEdit = %FirstNameEdit
@onready var lastEdit : TextEdit = %LastNameEdit
@onready var signButton : Button = %SignButton
@onready var portraitButton : TextureButton = %PortraitButton
@onready var first_edit : TextEdit = %FirstNameEdit
@onready var last_edit : TextEdit = %LastNameEdit
@onready var sign_button : Button = %SignButton
@onready var portrait_button : TextureButton = %PortraitButton
@onready var signature : TextureRect = %Signature
@onready var write_sound : AudioStreamPlayer = $AudioStreamPlayer
@onready var portrait_customizer = $PortraitCustomizer
@onready var portrait : AdventurerPortrait = %HeroPortrait
@onready var portrait_container = %PortraitContainer
var first_set : bool = false
var last_set : bool = false
var portrait_set : bool = false
func validate_signature() -> void:
signButton.disabled = !(first_set and last_set and portrait_set)
func _on_portrait_button_pressed() -> void:
#Open the Portrait Screesn
sign_button.disabled = !(first_set and last_set and portrait_set)
func _on_portrait_customized() -> void:
Game.player_data.appearance = portrait_customizer.appearance
portrait.set_appearance(portrait_customizer.appearance)
portrait_container.visible = true
portrait_customizer.visible = false
portrait_set = true
validate_signature()
func _on_portrait_button_pressed() -> void:
#Open the Portrait Screen
portrait_customizer.visible = true
func _on_first_name_edit_text_changed() -> void:
if firstEdit.text != "":
if first_edit.text != "":
first_set = true
else:
last_set = true
@@ -28,7 +41,7 @@ func _on_first_name_edit_text_changed() -> void:
func _on_last_name_edit_text_changed() -> void:
if lastEdit.text != "":
if last_edit.text != "":
last_set = true
else:
last_set = false
@@ -38,7 +51,7 @@ func update_signature_threshold(value : float) -> void:
signature.set_instance_shader_parameter("threshold", value)
func _on_sign_button_pressed() -> void:
signButton.visible = false
sign_button.visible = false
var tween = create_tween()
Game.player_data.name = %FirstNameEdit.text
Game.player_data.surname = %LastNameEdit.text

View File

@@ -1,11 +1,20 @@
extends Control
@onready var portrait : AdventurerPortrait = $HeroPortrait
var option = 0
var opt_key : String = ""
var choices : Array = []
var appearance : Dictionary
signal portrait_customized()
func _ready() -> void:
if Game.player_data.appearance.size() != 0:
appearance = Game.player_data.appearance
else:
appearance = portrait.get_random_appearance()
portrait.set_appearance(appearance)
choices.resize(portrait.option_sets.size())
choices.fill(0)
opt_key = portrait.option_sets.keys()[option]
@@ -16,7 +25,9 @@ func _on_left_button_pressed() -> void:
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
var node = portrait.option_sets[opt_key].get_child(choices[option])
appearance[opt_key].type = node.name
node.visible = true
func _on_right_button_pressed() -> void:
@@ -24,8 +35,9 @@ func _on_right_button_pressed() -> void:
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.
var node = portrait.option_sets[opt_key].get_child(choices[option])
appearance[opt_key].type = node.name
node.visible = true
func _on_up_button_pressed() -> void:
@@ -47,4 +59,19 @@ func _on_down_button_pressed() -> void:
func _on_color_pressed(slot : ColorVariant.Types, col : String) -> void:
var key : String
match(slot):
ColorVariant.Types.SKIN: key = "skin"
ColorVariant.Types.HAIR: key = "hair"
ColorVariant.Types.EYES: key = "eyes"
appearance[key].color = col
portrait.set_color(slot, col)
func _on_accept_button_pressed() -> void:
portrait_customized.emit()
func _on_random_button_pressed() -> void:
appearance = portrait.get_random_appearance()
portrait.set_appearance(appearance)

View File

@@ -0,0 +1,14 @@
extends Control
var view : QuestView
var quest : Quest
var event : Quest.Event
var speed : float
func _ready():
position.x = (quest.progress - event.progress_point) * quest.length
func _process(delta: float) -> void:
position.x -= view.base_speed * delta
func activate(...params):
pass

View File

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

View File

@@ -1,5 +1,8 @@
class_name QuestSprite extends Control
@onready var lifebar : TextureProgressBar = $LifeBar
var life : int = 1
var max_life : int = 1
var energy : int = 1
@@ -25,6 +28,7 @@ func attack(target : QuestSprite) -> void:
func take_damage(source : QuestSprite, amount : int) -> void:
busy.emit()
life = clampi(life - amount, 0, max_life)
lifebar.value = life * 100 / max_life
if life == 0:
print("%s killed %s!" % [source.name, name])
die(source)

View File

@@ -14,6 +14,7 @@ func _ready() -> void:
exp = data.exp
stats = StatBlock.copy(data.stats)
gold = data.gold
data.changed.connect(_on_questor_changed)
func _process(delta) -> void:
if banner_lag > 0:

View File

@@ -31,4 +31,9 @@ func _on_add_shift_button_pressed() -> void:
func _on_accept_button_pressed() -> void:
var schedule = []
for child : ShiftCycle in cycle_list:
schedule.append([child.work_shift, child.open_shift])
Guild.shift_schedule = schedule
Game.switch_dialogue("game_start", "")
pass # Replace with function body.

View File

@@ -117,6 +117,7 @@ layout_mode = 3
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
mouse_filter = 2
script = ExtResource("1_ovplg")
metadata/_custom_type_script = "uid://m86jmtwv1a22"
@@ -125,6 +126,7 @@ custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
mouse_filter = 2
texture = ExtResource("2_rvj82")
[node name="Head" type="TextureRect" parent="."]
@@ -134,6 +136,7 @@ custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
mouse_filter = 2
texture = ExtResource("4_dcd5x")
script = ExtResource("5_riel4")
@@ -144,6 +147,7 @@ custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
mouse_filter = 2
texture = ExtResource("10_3uw50")
script = ExtResource("5_riel4")
@@ -154,11 +158,13 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="A" type="Control" parent="Hair"]
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
mouse_filter = 2
[node name="FG Shadow" type="TextureRect" parent="Hair/A"]
z_index = 4
@@ -167,6 +173,7 @@ custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
mouse_filter = 2
texture = ExtResource("8_2gbpo")
script = ExtResource("5_riel4")
@@ -177,6 +184,7 @@ custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
mouse_filter = 2
texture = ExtResource("7_nwmjm")
script = ExtResource("5_riel4")
type = 1
@@ -188,6 +196,7 @@ custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
mouse_filter = 2
texture = ExtResource("14_wbk3e")
script = ExtResource("5_riel4")
type = 1
@@ -197,6 +206,7 @@ custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
mouse_filter = 2
texture = ExtResource("17_m1scf")
[node name="Hat FG" type="TextureRect" parent="."]
@@ -205,6 +215,7 @@ custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
mouse_filter = 2
texture = ExtResource("18_prh5n")
[node name="Eyes" type="Control" parent="."]
@@ -214,11 +225,13 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="A" type="Control" parent="Eyes"]
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
mouse_filter = 2
[node name="Eyelids" type="TextureRect" parent="Eyes/A"]
z_index = 4
@@ -227,6 +240,7 @@ custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
mouse_filter = 2
texture = ExtResource("13_riel4")
script = ExtResource("5_riel4")
@@ -235,6 +249,7 @@ visible = false
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
mouse_filter = 2
[node name="Eyelids" type="TextureRect" parent="Eyes/B"]
z_index = 4
@@ -243,6 +258,7 @@ custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
mouse_filter = 2
texture = ExtResource("14_yemgt")
script = ExtResource("5_riel4")
@@ -251,6 +267,7 @@ visible = false
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
mouse_filter = 2
[node name="Eyelids" type="TextureRect" parent="Eyes/C"]
z_index = 4
@@ -259,6 +276,7 @@ custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
mouse_filter = 2
texture = ExtResource("15_nwmjm")
script = ExtResource("5_riel4")
@@ -267,6 +285,7 @@ visible = false
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
mouse_filter = 2
[node name="Eyelids" type="TextureRect" parent="Eyes/D"]
z_index = 4
@@ -275,6 +294,7 @@ custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
mouse_filter = 2
texture = ExtResource("16_grsle")
script = ExtResource("5_riel4")
@@ -284,6 +304,7 @@ custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
mouse_filter = 2
texture = ExtResource("11_06xpe")
[node name="Irises" type="TextureRect" parent="Eyes/D"]
@@ -293,6 +314,7 @@ custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
mouse_filter = 2
texture = ExtResource("13_h52hx")
script = ExtResource("5_riel4")
type = 2
@@ -301,11 +323,13 @@ type = 2
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
mouse_filter = 2
[node name="A" type="Control" parent="Brows"]
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
mouse_filter = 2
[node name="Brows" type="TextureRect" parent="Brows/A"]
z_index = 6
@@ -314,6 +338,7 @@ custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
mouse_filter = 2
texture = ExtResource("15_dx3tu")
script = ExtResource("5_riel4")
type = 1
@@ -325,5 +350,6 @@ custom_minimum_size = Vector2(512, 512)
layout_mode = 0
offset_right = 512.0
offset_bottom = 512.0
mouse_filter = 2
texture = ExtResource("9_qslms")
script = ExtResource("5_riel4")

View File

@@ -53,6 +53,15 @@ grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_qv0tv")
[node name="ColorRect3" 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.5686275)
[node name="ColorRect" type="ColorRect" parent="."]
custom_minimum_size = Vector2(600, 600)
layout_mode = 0
@@ -136,19 +145,13 @@ offset_bottom = 1059.0
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"]
[node name="RandomButton" 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"]
[node name="AcceptButton" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 100
text = "ACCEPT"
@@ -186,76 +189,48 @@ 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"]
[node name="BlondeButton" 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"]
[node name="BrownButton" 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"]
[node name="RedButton" 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"]
[node name="BlackButton" 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"]
[node name="BlueButton" 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"]
[node name="SilverButton" 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
@@ -275,79 +250,52 @@ theme_override_font_sizes/font_size = 48
text = "Skin"
horizontal_alignment = 1
[node name="HairGrid" type="GridContainer" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer"]
[node name="SkinGrid" type="GridContainer" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer"]
custom_minimum_size = Vector2(0, 220)
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"]
[node name="PaleButton" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/SkinGrid"]
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"]
[node name="MediumButton" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/SkinGrid"]
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"]
[node name="OliveButton" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/SkinGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_uwnmi")
texture_normal = SubResource("GradientTexture1D_6y6h7")
ignore_texture_size = true
stretch_mode = 0
[node name="RedHairButton2" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/HairGrid"]
[node name="BrownButton" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/SkinGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_72sxj")
texture_normal = SubResource("GradientTexture1D_6y6h7")
ignore_texture_size = true
stretch_mode = 0
[node name="BlackHairButton2" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/HairGrid"]
[node name="RedButton" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/SkinGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_ac3np")
texture_normal = SubResource("GradientTexture1D_6y6h7")
ignore_texture_size = true
stretch_mode = 0
[node name="BlueHairButton2" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/HairGrid"]
[node name="BlueButton" type="TextureButton" parent="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/SkinGrid"]
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
texture_normal = SubResource("GradientTexture1D_5l84q")
texture_normal = SubResource("GradientTexture1D_6y6h7")
ignore_texture_size = true
stretch_mode = 0
@@ -450,13 +398,17 @@ stretch_mode = 0
[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"]]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/RandomButton" to="." method="_on_random_button_pressed"]
[connection signal="pressed" from="VBoxContainer/AcceptButton" to="." method="_on_accept_button_pressed"]
[connection signal="pressed" from="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid/BlondeButton" to="." method="_on_color_pressed" binds= [1, "blonde"]]
[connection signal="pressed" from="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid/BrownButton" to="." method="_on_color_pressed" binds= [1, "brown"]]
[connection signal="pressed" from="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid/RedButton" to="." method="_on_color_pressed" binds= [1, "red"]]
[connection signal="pressed" from="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid/BlackButton" to="." method="_on_color_pressed" binds= [1, "black"]]
[connection signal="pressed" from="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid/BlueButton" to="." method="_on_color_pressed" binds= [1, "blue"]]
[connection signal="pressed" from="VBoxContainer2/HairPanel/MarginContainer/HBoxContainer/HairGrid/SilverButton" to="." method="_on_color_pressed" binds= [1, "silver"]]
[connection signal="pressed" from="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/SkinGrid/PaleButton" to="." method="_on_color_pressed" binds= [0, "pale"]]
[connection signal="pressed" from="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/SkinGrid/MediumButton" to="." method="_on_color_pressed" binds= [0, "medium"]]
[connection signal="pressed" from="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/SkinGrid/OliveButton" to="." method="_on_color_pressed" binds= [0, "olive"]]
[connection signal="pressed" from="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/SkinGrid/BrownButton" to="." method="_on_color_pressed" binds= [0, "brown"]]
[connection signal="pressed" from="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/SkinGrid/RedButton" to="." method="_on_color_pressed" binds= [0, "red"]]
[connection signal="pressed" from="VBoxContainer2/SkinPanel/MarginContainer/HBoxContainer/SkinGrid/BlueButton" to="." method="_on_color_pressed" binds= [0, "blue"]]

View File

@@ -0,0 +1,37 @@
[gd_scene load_steps=3 format=3 uid="uid://b4u7eih00dhdu"]
[ext_resource type="Script" uid="uid://b0majitpmpdoq" path="res://scripts/quest_event_location.gd" id="1_1dp57"]
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="2_dcjvv"]
[node name="Quest Event Location" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_1dp57")
[node name="TextureRect" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("2_dcjvv")
offset = Vector2(0, -64)
[node name="ColorRect" type="ColorRect" parent="."]
layout_mode = 0
offset_left = -49.0
offset_top = -100.0
offset_right = 51.0
color = Color(0, 0, 0, 1)
[node name="Label" type="Label" parent="ColorRect"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
text = "Event
Location"
horizontal_alignment = 1
vertical_alignment = 1

View File

@@ -1,8 +1,9 @@
[gd_scene load_steps=8 format=3 uid="uid://cdtpyg5ohniax"]
[gd_scene load_steps=13 format=3 uid="uid://cdtpyg5ohniax"]
[ext_resource type="Script" uid="uid://ce0vugvrwvppb" path="res://scripts/questor_sprite.gd" id="1_0ev5i"]
[ext_resource type="Texture2D" uid="uid://bu0e077vc8qo1" path="res://graphics/questview/lvlup-circle.png" id="2_nqdtq"]
[ext_resource type="Texture2D" uid="uid://c5d0u7ir1y0t2" path="res://graphics/testchar.png" id="2_w1b7t"]
[ext_resource type="Texture2D" uid="uid://67wavev1pifc" path="res://external/questor-shadow.png" id="3_cr46e"]
[sub_resource type="Animation" id="Animation_7jhts"]
length = 0.001
@@ -18,6 +19,42 @@ tracks/0/keys = {
"update": 1,
"values": [0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite2D:scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite2D:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, -45)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Sprite2D:self_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)]
}
[sub_resource type="Animation" id="Animation_gy3gd"]
resource_name = "idle"
@@ -50,6 +87,42 @@ tracks/0/keys = {
"update": 1,
"values": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite2D:self_modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.2, 0.4, 0.53333336, 0.6666667),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0.88235295), Color(1, 1, 1, 0.78431374), Color(1, 1, 1, 1), Color(1, 1, 1, 0.78431374), Color(1, 1, 1, 1), Color(1, 1, 1, 0.88235587)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite2D:scale")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.2, 0.4, 0.53333336, 0.6666062),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
"update": 0,
"values": [Vector2(1, 1), Vector2(0.9, 0.9), Vector2(1, 1), Vector2(0.9, 0.9), Vector2(1, 1), Vector2(1, 1)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Sprite2D:position")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.20000002, 0.4, 0.53333336),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [Vector2(0, -45), Vector2(0, -40), Vector2(0, -45), Vector2(0, -40), Vector2(0, -45)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_pylgq"]
_data = {
@@ -58,8 +131,25 @@ _data = {
&"running": SubResource("Animation_5om5g")
}
[sub_resource type="Gradient" id="Gradient_nqdtq"]
offsets = PackedFloat32Array(0)
colors = PackedColorArray(0, 0, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_36qe6"]
gradient = SubResource("Gradient_nqdtq")
width = 1
[sub_resource type="Gradient" id="Gradient_yy18h"]
offsets = PackedFloat32Array(1)
colors = PackedColorArray(1, 1, 1, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_3ywd1"]
gradient = SubResource("Gradient_yy18h")
width = 1
[node name="QuestorSprite" type="Control"]
layout_mode = 3
anchors_preset = 0
offset_left = 89.0
offset_top = 274.0
offset_right = 89.0
@@ -76,6 +166,11 @@ texture = ExtResource("2_nqdtq")
hframes = 4
vframes = 2
[node name="Sprite2D" type="Sprite2D" parent="."]
modulate = Color(0, 0, 0, 0.39215687)
position = Vector2(0, -45)
texture = ExtResource("3_cr46e")
[node name="Sprite" type="Sprite2D" parent="."]
position = Vector2(0, -53)
texture = ExtResource("2_w1b7t")
@@ -90,3 +185,15 @@ autoplay = "running"
[node name="BannerOffset" type="Node2D" parent="."]
position = Vector2(0, -94)
[node name="LifeBar" type="TextureProgressBar" parent="."]
layout_mode = 0
offset_left = -37.0
offset_top = 16.0
offset_right = 38.0
offset_bottom = 26.0
nine_patch_stretch = true
texture_under = SubResource("GradientTexture1D_36qe6")
texture_progress = SubResource("GradientTexture1D_3ywd1")
tint_over = Color(1, 0, 0, 1)
tint_progress = Color(1, 0, 0, 1)