Area 2 all rooms preliminary lighting setup, a few with unapplied scale but maybe fine.

This commit is contained in:
Pal
2025-10-07 21:38:27 -07:00
parent 4c5281c852
commit 9ed5f8600c
43 changed files with 3963 additions and 1195 deletions

View File

@@ -1,21 +1,11 @@
[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://b03wrq6l0mi15"]
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://b03wrq6l0mi15"]
[ext_resource type="Shader" uid="uid://dcx6kdi1s2ueh" path="res://src/vfx/shaders/MinimapShader.gdshader" id="1_51rab"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_51rab"]
render_priority = 0
shader = ExtResource("1_51rab")
shader_parameter/border_thickness = 0.075
shader_parameter/dot_spacing = 0.0
shader_parameter/opacity = 1.0
shader_parameter/line_color = Color(1, 1, 1, 1)
shader_parameter/rotation_speed = 0.0
[ext_resource type="Texture2D" uid="uid://jk0ysk54nrpc" path="res://src/minimap/textures/Room Maps/mi_2ante.png" id="1_thb07"]
[resource]
next_pass = SubResource("ShaderMaterial_51rab")
transparency = 1
cull_mode = 2
depth_draw_mode = 1
shading_mode = 0
vertex_color_use_as_albedo = true
albedo_color = Color(0.929412, 0.454902, 0.117647, 0.843137)
albedo_texture = ExtResource("1_thb07")
texture_filter = 0
texture_repeat = false

View File

@@ -17798,7 +17798,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -350.758, -3.90238, 113.556)
environment = SubResource("Environment_8isf0")
camera_attributes = SubResource("CameraAttributesPractical_8nnl3")
[node name="SpotLight3D2" type="SpotLight3D" parent="Lighting And Environment"]
[node name="Well Spotlight 2" type="SpotLight3D" parent="Lighting And Environment"]
transform = Transform3D(0.961194, 0.00660055, -0.275793, 0.275872, -0.0229976, 0.960919, 0, -0.999714, -0.0239261, -283.819, 49.9075, -104.243)
light_energy = 0.369
light_volumetric_fog_energy = 0.809
@@ -17806,7 +17806,7 @@ spot_range = 60.8934
spot_attenuation = -0.73
spot_angle = 24.82
[node name="SpotLight3D" type="SpotLight3D" parent="Lighting And Environment"]
[node name="Altar Spotlight" type="SpotLight3D" parent="Lighting And Environment"]
transform = Transform3D(-0.967593, -0.0729725, -0.241739, -0.251104, 0.177078, 0.951625, -0.0266357, 0.981488, -0.189663, 8.75449, 31.1184, 12.7081)
light_energy = 0.273
spot_range = 32.091
@@ -17824,35 +17824,35 @@ shadow_opacity = 0.99
shadow_blur = 1.419
directional_shadow_max_distance = 739.4
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Lighting And Environment"]
[node name="Temple Godrays" type="CSGCylinder3D" parent="Lighting And Environment"]
transform = Transform3D(20.185, 0, 0, 0, 20.185, 0, 0, 0, 20.185, 118.599, 42.8541, -66.0835)
radius = 1.10986
height = 3.94248
cone = true
material = SubResource("ShaderMaterial_l0fgw")
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Lighting And Environment"]
[node name="Well Godrays 2" type="CSGCylinder3D" parent="Lighting And Environment"]
transform = Transform3D(-4.40941, -6.76658, -18.4988, -4.16682, 18.848, -5.90112, 19.2517, 2.52963, -5.51418, -284.433, 44.3825, -104.809)
radius = 0.147461
height = 5.5284
cone = true
material = SubResource("ShaderMaterial_l0fgw")
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="Lighting And Environment"]
[node name="Altar Godrays" type="CSGCylinder3D" parent="Lighting And Environment"]
transform = Transform3D(-4.40941, -6.76658, -18.4988, -4.16682, 18.848, -5.90112, 19.2517, 2.52963, -5.51418, -1.15381, 49.8989, 21.97)
radius = 0.147461
height = 5.5485
cone = true
material = SubResource("ShaderMaterial_l0fgw")
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="Lighting And Environment"]
[node name="Well Godrays" type="CSGCylinder3D" parent="Lighting And Environment"]
transform = Transform3D(-4.40941, -6.76658, -18.4988, -4.16682, 18.848, -5.90112, 19.2517, 2.52963, -5.51418, -292.074, 47.864, -101.821)
radius = 0.0449219
height = 5.18228
cone = true
material = SubResource("ShaderMaterial_l0fgw")
[node name="SpotLight3D3" type="SpotLight3D" parent="Lighting And Environment"]
[node name="Temple Spotlight" type="SpotLight3D" parent="Lighting And Environment"]
transform = Transform3D(1, 0, 0, 0, -0.107531, 0.994202, 0, -0.994202, -0.107531, 116.319, 40.0846, -62.5124)
light_energy = 8.623
shadow_enabled = true
@@ -17860,7 +17860,7 @@ spot_range = 62.606
spot_attenuation = 0.32
spot_angle = 28.5323
[node name="OmniLight3D" type="OmniLight3D" parent="Lighting And Environment"]
[node name="Interior Passage Light 2" type="OmniLight3D" parent="Lighting And Environment"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 195.404, 9.06882, -59.5851)
light_volumetric_fog_energy = 1.671
shadow_enabled = true
@@ -17868,27 +17868,27 @@ shadow_blur = 1.12
omni_range = 20.0
omni_attenuation = 1.583
[node name="OmniLight3D2" type="OmniLight3D" parent="Lighting And Environment"]
[node name="Interior Passage Light" type="OmniLight3D" parent="Lighting And Environment"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 167.985, 10.4049, -60.2912)
shadow_enabled = true
shadow_blur = 3.832
omni_range = 20.163
omni_attenuation = 1.347
[node name="OmniLight3D3" type="OmniLight3D" parent="Lighting And Environment"]
[node name="Water Light" type="OmniLight3D" parent="Lighting And Environment"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 119.48, 0, 23.4559)
light_color = Color(0.672, 1, 0.59, 1)
light_energy = 1.115
omni_range = 45.654
omni_attenuation = 0.538
[node name="OmniLight3D4" type="OmniLight3D" parent="Lighting And Environment"]
[node name="Temple Entrance Light 2" type="OmniLight3D" parent="Lighting And Environment"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 83.0614, 8.63657, -61.4086)
light_energy = 0.329
shadow_enabled = true
omni_range = 60.893
[node name="OmniLight3D5" type="OmniLight3D" parent="Lighting And Environment"]
[node name="Temple Entrance Light" type="OmniLight3D" parent="Lighting And Environment"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 66.9977, 8.63657, -61.4086)
light_energy = 0.329
shadow_enabled = true

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://byh4w8smx17vn"
path="res://.godot/imported/A2-Proscenium_mottled.png-f40dbdc369c8f9842d2fc4477a2603a8.ctex"
metadata={
"vram_texture": false
}
generator_parameters={
"md5": "54f201920cc39079cdcde8f0880ce398"
}
[deps]
source_file="res://src/map/dungeon/models/Area 2/Proscenium/A2-Proscenium_mottled.png"
dest_files=["res://.godot/imported/A2-Proscenium_mottled.png-f40dbdc369c8f9842d2fc4477a2603a8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
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=0

View File

@@ -3,13 +3,13 @@
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://saepqdyeepyn"
path="res://.godot/imported/A2-Puer.glb-3b11ccd8f9ba6f91fbb05537c52490b0.scn"
uid="uid://dh8ji8g36mmx5"
path="res://.godot/imported/a2-puer.glb-20bdcd533f2a6024a2fa1d9a726cae55.scn"
[deps]
source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer.glb"
dest_files=["res://.godot/imported/A2-Puer.glb-3b11ccd8f9ba6f91fbb05537c52490b0.scn"]
source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer.glb"
dest_files=["res://.godot/imported/a2-puer.glb-20bdcd533f2a6024a2fa1d9a726cae55.scn"]
[params]

View File

@@ -510,10 +510,7 @@ shadow_mesh = SubResource("ArrayMesh_psnf0")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rd0mx"]
resource_name = "FLOOR SYMBOL2"
transparency = 2
alpha_scissor_threshold = 0.5
alpha_antialiasing_mode = 0
cull_mode = 2
transparency = 4
albedo_texture = ExtResource("13_2q6hq")
[sub_resource type="ArrayMesh" id="ArrayMesh_o5883"]
@@ -683,7 +680,7 @@ _limits = [-2.0, 2.0, 0.0, 1.0]
_data = [Vector2(0.00358423, 0.230769), 0.0, 0.0, 0, 0, Vector2(0.982079, -1.03846), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_312b8"]
[sub_resource type="CurveTexture" id="CurveTexture_1up8d"]
curve = SubResource("Curve_k6i88")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_4bxb6"]
@@ -694,12 +691,12 @@ angle_min = -245.3
angle_max = 417.9
orbit_velocity_min = -0.0269999
orbit_velocity_max = 0.0400001
orbit_velocity_curve = SubResource("CurveTexture_312b8")
orbit_velocity_curve = SubResource("CurveTexture_1up8d")
gravity = Vector3(0, -0.07, 0)
scale_min = 0.0
scale_max = 0.0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jig7d"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6jb2l"]
transparency = 1
cull_mode = 2
shading_mode = 0
@@ -708,7 +705,7 @@ albedo_texture = ExtResource("17_6jb2l")
billboard_mode = 2
[sub_resource type="QuadMesh" id="QuadMesh_sasor"]
material = SubResource("StandardMaterial3D_jig7d")
material = SubResource("StandardMaterial3D_6jb2l")
size = Vector2(0.1, 0.1)
subdivide_width = 1
subdivide_depth = 1
@@ -809,7 +806,7 @@ mesh = SubResource("ArrayMesh_gia0o")
skeleton = NodePath("")
[node name="Circle" type="MeshInstance3D" parent="A1-Balcony"]
transform = Transform3D(-4.16688, 0, 0, 0, -4.16688, 0, 0, 0, -4.16688, -0.097109, 8.04889, -1.84557)
transform = Transform3D(-4.16688, 0, 0, 0, -4.16688, 0, 0, 0, -4.16688, -0.0971088, 8.04889, -1.84557)
mesh = SubResource("ArrayMesh_n0el2")
skeleton = NodePath("")
@@ -846,7 +843,6 @@ draw_pass_1 = SubResource("QuadMesh_sasor")
[node name="Collision" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
visible = false
[node name="StaticBody3D" type="StaticBody3D" parent="Collision"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15.5355, -69.5131, -79.2895)
@@ -1017,7 +1013,6 @@ size = Vector3(2, 20, 12)
[node name="Spawn Points" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
visible = false
[node name="PlayerSpawn" type="Marker3D" parent="Spawn Points"]
unique_name_in_owner = true
@@ -1042,7 +1037,6 @@ unique_name_in_owner = true
[node name="Room" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2, 0)
visible = false
[node name="Room" type="Area3D" parent="Room"]
unique_name_in_owner = true
@@ -1063,7 +1057,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.171951, -10.2003, -1.80546
[node name="Minimap" type="MeshInstance3D" parent="Minimap"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10.1785, 1.98844)
visible = false
layers = 2
mesh = SubResource("PlaneMesh_f286s")
surface_material_override/0 = SubResource("StandardMaterial3D_awhym")

View File

@@ -781,7 +781,7 @@ mesh = SubResource("PlaneMesh_owv6l")
surface_material_override/0 = SubResource("StandardMaterial3D_ay4ur")
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.91044, 1.88644, -4.87515)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.91044, 3.88644, -4.87515)
light_color = Color(0.902303, 0.889942, 0.693891, 1)
light_energy = 5.049
shadow_enabled = true

View File

@@ -1013,21 +1013,21 @@ process_material = SubResource("ParticleProcessMaterial_s3puq")
draw_pass_1 = SubResource("QuadMesh_fq8gy")
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.1624, 7.31366, -0.0442629)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.1624, 6.74928, -0.0442629)
light_energy = 5.0
shadow_enabled = true
omni_range = 22.064
omni_attenuation = 1.469
[node name="OmniLight3D2" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.716, 7.73823, -0.0442629)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.716, 7.17385, -0.0442629)
light_energy = 5.0
shadow_enabled = true
omni_range = 14.0
omni_attenuation = 1.5
[node name="OmniLight3D3" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.18115, 7.73823, -0.0442629)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.18115, 7.17385, -0.0442629)
light_energy = 5.0
shadow_enabled = true
omni_range = 14.0

View File

@@ -1018,8 +1018,8 @@ process_material = SubResource("ParticleProcessMaterial_1p4ye")
draw_pass_1 = SubResource("QuadMesh_s0dni")
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.68808, 2.50541, 1.14748)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.68808, 5.1024, -0.181477)
light_energy = 3.174
shadow_enabled = true
omni_range = 7.805
omni_range = 9.46
omni_attenuation = 1.469

View File

@@ -198,24 +198,24 @@ process_material = SubResource("ParticleProcessMaterial_s7fpw")
draw_pass_1 = SubResource("QuadMesh_nopim")
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.2159, 6.1146, -0.382709)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.2159, 9.44069, -0.382709)
light_energy = 5.0
shadow_enabled = true
omni_range = 18.0
omni_range = 26.443
omni_attenuation = 1.781
[node name="OmniLight3D3" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.86789, 6.1146, -0.382709)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.86789, 9.44069, -0.382709)
light_energy = 6.665
shadow_enabled = true
shadow_blur = 10.0
omni_range = 18.0
omni_range = 26.443
omni_attenuation = 1.781
[node name="OmniLight3D2" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.98437, 6.1146, -0.382709)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.98437, 9.44069, -0.382709)
light_energy = 6.48
shadow_enabled = true
shadow_blur = 10.0
omni_range = 18.0
omni_range = 26.443
omni_attenuation = 1.781

View File

@@ -256,7 +256,6 @@ shape = SubResource("BoxShape3D_2nfuf")
[node name="Minimap" type="MeshInstance3D" parent="Minimap"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1)
visible = false
layers = 2
mesh = SubResource("PlaneMesh_44h5a")
skeleton = NodePath("")
@@ -271,7 +270,7 @@ process_material = SubResource("ParticleProcessMaterial_iskcw")
draw_pass_1 = SubResource("QuadMesh_0ydkh")
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15.4526, 3.48991, 26.2586)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15.4526, 4.83975, 26.2586)
light_color = Color(0.939964, 0.858607, 0.64025, 1)
light_energy = 4.956
light_specular = 0.0
@@ -280,7 +279,7 @@ omni_range = 20.0
omni_attenuation = 1.231
[node name="OmniLight3D2" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.0944, 3.48784, 26.2237)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.0944, 4.97055, 26.2237)
light_color = Color(0.939964, 0.858607, 0.64025, 1)
light_energy = 4.956
light_specular = 0.0
@@ -316,7 +315,7 @@ omni_range = 20.0
omni_attenuation = 1.231
[node name="OmniLight3D4" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.0944, 3.48784, -24.361)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.0944, 5.00923, -24.361)
light_color = Color(0.939964, 0.858607, 0.64025, 1)
light_energy = 4.956
light_specular = 0.0
@@ -327,6 +326,7 @@ omni_attenuation = 1.231
[node name="SpotLight3D" type="SpotLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 6, -10)
light_energy = 10.618
shadow_enabled = true
spot_range = 12.0
spot_attenuation = 0.65
spot_angle = 38.9975
@@ -334,6 +334,7 @@ spot_angle = 38.9975
[node name="SpotLight3D2" type="SpotLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 7, 11)
light_energy = 10.618
shadow_enabled = true
spot_range = 12.0
spot_attenuation = 0.65
spot_angle = 38.9975
@@ -348,10 +349,12 @@ size = Vector3(6, 5, 8)
[node name="OmniLight3D7" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, -10)
shadow_enabled = true
omni_range = 3.747
omni_attenuation = -0.85
[node name="OmniLight3D8" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 10.1454)
shadow_enabled = true
omni_range = 3.747
omni_attenuation = -0.85

View File

@@ -1703,31 +1703,53 @@ process_material = SubResource("ParticleProcessMaterial_x03a5")
draw_pass_1 = SubResource("QuadMesh_06lbc")
[node name="OmniLight3D" type="OmniLight3D" parent="Minimap"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.41476, 2.20402, 8.51936)
light_energy = 5.0
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.41476, 2.94534, 8.58951)
light_energy = 1.743
shadow_enabled = true
shadow_blur = 3.948
omni_range = 14.948
[node name="OmniLight3D2" type="OmniLight3D" parent="Minimap"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.72707, 2.19548, -9.48356)
light_energy = 5.0
[node name="OmniLight3D" type="OmniLight3D" parent="Minimap/OmniLight3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.96407, 2.43493, -5.06341)
light_color = Color(0.524667, 0.38, 1, 1)
light_energy = 3.312
shadow_enabled = true
omni_range = 6.06
omni_attenuation = 0.538
[node name="OmniLight3D" type="OmniLight3D" parent="Minimap/OmniLight3D/OmniLight3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.01471, -2.22861, -3.78778)
light_color = Color(0, 0.633333, 1, 1)
light_energy = 8.306
shadow_enabled = true
omni_range = 6.672
omni_attenuation = 0.769
[node name="OmniLight3D" type="OmniLight3D" parent="Minimap/OmniLight3D/OmniLight3D/OmniLight3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.21145, 1.02543, -2.81817)
light_color = Color(0, 0.88, 0.572, 1)
light_energy = 10.434
shadow_enabled = true
omni_range = 5.776
omni_attenuation = 0.306
[node name="OmniLight3D2" type="OmniLight3D" parent="Minimap"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.72707, 3.02174, -9.48356)
light_energy = 2.317
shadow_enabled = true
shadow_blur = 4.41
omni_range = 14.948
[node name="OmniLight3D4" type="OmniLight3D" parent="Minimap"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.044, 1.95528, 5.23326)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.044, 3.00693, 5.23326)
light_energy = 5.0
shadow_enabled = true
omni_range = 14.948
shadow_blur = 2.965
omni_range = 12.94
[node name="OmniLight3D5" type="OmniLight3D" parent="Minimap"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.5059, 1.89116, -4.60656)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.5059, 3.14913, -4.60656)
light_energy = 5.0
shadow_enabled = true
omni_range = 14.948
[node name="OmniLight3D3" type="OmniLight3D" parent="Minimap"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.78605, 9.43229, -0.0695076)
light_energy = 5.0
shadow_enabled = true
omni_range = 5.446
shadow_blur = 3.023
omni_range = 12.94

View File

@@ -177,14 +177,16 @@ process_material = SubResource("ParticleProcessMaterial_aviq7")
draw_pass_1 = SubResource("QuadMesh_30nhy")
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0240078, 2.08061, -0.0732279)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0240078, 2.86704, -0.0732279)
light_energy = 5.049
shadow_enabled = true
shadow_blur = 5.566
omni_range = 14.948
[node name="OmniLight3D2" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.8771, 2.32407, -0.033761)
light_energy = 1.812
shadow_enabled = true
shadow_blur = 5.566
omni_range = 15.684
omni_attenuation = 1.116

View File

@@ -1,9 +1,9 @@
[gd_scene load_steps=13 format=3 uid="uid://dadl2rua1ovhq"]
[gd_scene load_steps=17 format=3 uid="uid://dadl2rua1ovhq"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_rsrpd"]
[ext_resource type="PackedScene" uid="uid://0p07shc8wsja" path="res://src/map/dungeon/models/Area 2/Antechamber/A2-Antechamber.glb" id="2_v2k4g"]
[ext_resource type="Texture2D" uid="uid://dw50ys561j8no" path="res://src/map/assets/DUST_1.png" id="5_dirfg"]
[ext_resource type="Texture2D" uid="uid://ncu0fsnqyede" path="res://src/minimap/textures/Room Maps/mi_antechamber.png" id="7_qn47s"]
[ext_resource type="Texture2D" uid="uid://dvast710lxrmw" path="res://src/map/dungeon/door/A2_BLOCKED_DOOR.png" id="19_0qmwl"]
[ext_resource type="PackedScene" uid="uid://twrj4wixcbu7" path="res://src/items/ItemDatabase.tscn" id="23_ocw1o"]
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_0qmwl"]
@@ -12,12 +12,6 @@ data = PackedVector3Array(34.7912, -0.0015, 13.9163, 34.7912, 13.9165, 27.8321,
[sub_resource type="BoxShape3D" id="BoxShape3D_dhety"]
size = Vector3(2.73511, 7.17236, 3.05108)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dhety"]
albedo_texture = ExtResource("19_0qmwl")
texture_filter = 0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hwsho"]
[sub_resource type="BoxShape3D" id="BoxShape3D_nuwng"]
size = Vector3(20, 6, 16)
@@ -28,6 +22,53 @@ size = Vector2(20, 16)
albedo_texture = ExtResource("7_qn47s")
texture_filter = 0
[sub_resource type="Curve" id="Curve_v2k4g"]
_limits = [-2.0, 2.0, 0.0, 1.0]
_data = [Vector2(0.00358423, 0.230769), 0.0, 0.0, 0, 0, Vector2(0.982079, -1.03846), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_dirfg"]
curve = SubResource("Curve_v2k4g")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_qn47s"]
lifetime_randomness = 0.05
emission_shape = 3
emission_box_extents = Vector3(22.2, 22.505, 22)
angle_min = -245.3
angle_max = 417.9
orbit_velocity_min = -0.0269999
orbit_velocity_max = 0.0400001
orbit_velocity_curve = SubResource("CurveTexture_dirfg")
gravity = Vector3(0, -0.07, 0)
scale_min = 0.0
scale_max = 0.0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_726dd"]
transparency = 1
cull_mode = 2
shading_mode = 0
albedo_color = Color(1, 1, 1, 0.0862745)
albedo_texture = ExtResource("5_dirfg")
billboard_mode = 2
[sub_resource type="QuadMesh" id="QuadMesh_63r54"]
material = SubResource("StandardMaterial3D_726dd")
size = Vector2(0.1, 0.1)
subdivide_width = 1
subdivide_depth = 1
[sub_resource type="Environment" id="Environment_726dd"]
background_mode = 1
background_color = Color(0.295867, 0.295866, 0.295866, 1)
sdfgi_enabled = true
glow_enabled = true
glow_intensity = 3.02
glow_strength = 0.98
glow_bloom = 1.0
fog_enabled = true
volumetric_fog_enabled = true
volumetric_fog_density = 0.02
[node name="Antechamber 3" type="Node3D"]
script = ExtResource("2_rsrpd")
@@ -62,40 +103,6 @@ shape = SubResource("BoxShape3D_dhety")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.76738, 1.4514, 6.26201)
shape = SubResource("BoxShape3D_dhety")
[node name="Doors" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.11434, 0)
[node name="CSGBox3D" type="CSGBox3D" parent="Doors"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0224749, 1.83591, -0.00639793)
visible = false
operation = 1
flip_faces = true
size = Vector3(20.0113, 8, 16.0328)
[node name="CSGBox2" type="CSGBox3D" parent="Doors"]
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 4.043, 0.0355635, -7.91259)
use_collision = true
size = Vector3(4.05, 4.05, 0.01)
material = SubResource("StandardMaterial3D_dhety")
[node name="DOOR?1" type="CSGBox3D" parent="Doors/CSGBox2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.400031, 0.065979, 0.0686455)
material_override = SubResource("StandardMaterial3D_hwsho")
operation = 2
size = Vector3(4.98703, 4.44788, 2)
[node name="CSGBox" type="CSGBox3D" parent="Doors"]
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, -4.03649, 0.0119586, 8.01941)
use_collision = true
size = Vector3(4.05, 4.05, 0.01)
material = SubResource("StandardMaterial3D_dhety")
[node name="DOOR?1" type="CSGBox3D" parent="Doors/CSGBox"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0247293, 0.0278339, 0.0686455)
material_override = SubResource("StandardMaterial3D_hwsho")
operation = 2
size = Vector3(4.19556, 4.18787, 2)
[node name="Spawn Points" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.62099, 0)
@@ -140,8 +147,25 @@ shape = SubResource("BoxShape3D_nuwng")
[node name="Minimap" type="MeshInstance3D" parent="Minimap"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.524475, 0)
layers = 2
mesh = SubResource("PlaneMesh_63r54")
skeleton = NodePath("")
surface_material_override/0 = SubResource("StandardMaterial3D_e02pa")
[node name="GPUParticles3D2" type="GPUParticles3D" parent="."]
transform = Transform3D(0.459, 0, 0, 0, 0.197, 0, 0, 0, 0.407, 0.361126, 4.14917, -0.438256)
amount = 20
lifetime = 41.19
local_coords = true
process_material = SubResource("ParticleProcessMaterial_qn47s")
draw_pass_1 = SubResource("QuadMesh_63r54")
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_726dd")
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.288392, 7.66531, -0.0836668)
light_energy = 4.5
shadow_enabled = true
shadow_blur = 1.24
omni_range = 13.0

File diff suppressed because one or more lines are too long

View File

@@ -1,9 +1,9 @@
[gd_scene load_steps=14 format=3 uid="uid://cq82tqhlshn1k"]
[gd_scene load_steps=19 format=3 uid="uid://cq82tqhlshn1k"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_7fo8x"]
[ext_resource type="PackedScene" uid="uid://dycfeab5r3s1w" path="res://src/map/dungeon/models/Area 2/Pit/A2-Pit.glb" id="2_ycerh"]
[ext_resource type="Texture2D" uid="uid://dw50ys561j8no" path="res://src/map/assets/DUST_1.png" id="5_6mfs2"]
[ext_resource type="Texture2D" uid="uid://psqcaww3ufpx" path="res://src/minimap/textures/Room Maps/mi_pit_room.png" id="6_xpqkd"]
[ext_resource type="Texture2D" uid="uid://dvast710lxrmw" path="res://src/map/dungeon/door/A2_BLOCKED_DOOR.png" id="17_exoe5"]
[ext_resource type="PackedScene" uid="uid://twrj4wixcbu7" path="res://src/items/ItemDatabase.tscn" id="19_y4v80"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4f64f"]
@@ -20,10 +20,6 @@ data = PackedVector3Array(-0.9985, 0.3627, -0.6691, -0.9985, 0.6961, -1.0024, -0
height = 12.0
radius = 2.0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2xv0l"]
albedo_texture = ExtResource("17_exoe5")
texture_filter = 0
[sub_resource type="BoxShape3D" id="BoxShape3D_d346t"]
size = Vector3(36, 6, 36)
@@ -34,6 +30,44 @@ size = Vector2(36, 36)
albedo_texture = ExtResource("6_xpqkd")
texture_filter = 0
[sub_resource type="Curve" id="Curve_ycerh"]
_limits = [-2.0, 2.0, 0.0, 1.0]
_data = [Vector2(0.00358423, 0.230769), 0.0, 0.0, 0, 0, Vector2(0.982079, -1.03846), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_xpqkd"]
curve = SubResource("Curve_ycerh")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_x0sr3"]
lifetime_randomness = 0.05
emission_shape = 3
emission_box_extents = Vector3(22.2, 22.505, 22)
angle_min = -245.3
angle_max = 417.9
orbit_velocity_min = -0.0269999
orbit_velocity_max = 0.0400001
orbit_velocity_curve = SubResource("CurveTexture_xpqkd")
gravity = Vector3(0, -0.07, 0)
scale_min = 0.0
scale_max = 0.0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4aqt8"]
transparency = 1
cull_mode = 2
shading_mode = 0
albedo_color = Color(1, 1, 1, 0.0862745)
albedo_texture = ExtResource("5_6mfs2")
billboard_mode = 2
[sub_resource type="QuadMesh" id="QuadMesh_bom1w"]
material = SubResource("StandardMaterial3D_4aqt8")
size = Vector2(0.1, 0.1)
subdivide_width = 1
subdivide_depth = 1
[sub_resource type="FogMaterial" id="FogMaterial_qjo7v"]
density = 1.5486
[node name="Pit Room B" type="Node3D"]
script = ExtResource("2_7fo8x")
@@ -41,6 +75,7 @@ script = ExtResource("2_7fo8x")
[node name="Collision" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
visible = false
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Collision"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.051639, -0.480896, -0.013773)
@@ -106,59 +141,6 @@ shape = SubResource("CylinderShape3D_uo0xi")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.99243, 73.283, 133.365)
shape = SubResource("CylinderShape3D_uo0xi")
[node name="Doors" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.25569, 0)
[node name="CSGBox3D" type="CSGBox3D" parent="Doors"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0496787, 4.31423, -0.329679)
visible = false
operation = 1
size = Vector3(36, 12, 35.4266)
[node name="CSGBox2" type="CSGBox3D" parent="Doors"]
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0.0660033, 0.0621085, 17.8854)
use_collision = true
size = Vector3(4.05, 4.05, 0.01)
material = SubResource("StandardMaterial3D_2xv0l")
[node name="DOOR?" type="CSGBox3D" parent="Doors/CSGBox2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0249815, -0.0408936, 0.612764)
operation = 2
size = Vector3(4.19995, 4.33325, 2)
[node name="CSGBox3" type="CSGBox3D" parent="Doors"]
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0.0660033, 0.0178824, -17.9531)
use_collision = true
size = Vector3(4.05, 4.05, 0.01)
material = SubResource("StandardMaterial3D_2xv0l")
[node name="DOOR?" type="CSGBox3D" parent="Doors/CSGBox3"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0208922, 0.0557782, -0.305267)
operation = 2
size = Vector3(4.30115, 4.12695, 1.27979)
[node name="CSGBox4" type="CSGBox3D" parent="Doors"]
transform = Transform3D(1.91069e-15, 4.37114e-08, 1, 1, -4.37114e-08, 0, 4.37114e-08, 1, -4.37114e-08, 17.9379, -0.0712214, 0.0194186)
use_collision = true
size = Vector3(4.05, 4.05, 0.01)
material = SubResource("StandardMaterial3D_2xv0l")
[node name="DOOR?" type="CSGBox3D" parent="Doors/CSGBox4"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0216799, -0.0299683, 0.550755)
operation = 2
size = Vector3(4.28522, 4.33264, 2)
[node name="CSGBox5" type="CSGBox3D" parent="Doors"]
transform = Transform3D(1.91069e-15, 4.37114e-08, 1, 1, -4.37114e-08, 0, 4.37114e-08, 1, -4.37114e-08, -17.8995, 0.0140357, 0.0194186)
use_collision = true
size = Vector3(4.05, 4.05, 0.01)
material = SubResource("StandardMaterial3D_2xv0l")
[node name="DOOR?" type="CSGBox3D" parent="Doors/CSGBox5"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0323915, 0.0638427, 0.0474663)
operation = 2
size = Vector3(4.31909, 4.34351, 0.881348)
[node name="Spawn Points" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.82181, 0)
@@ -206,10 +188,33 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, -10.6408, -1.19209e-
shape = SubResource("BoxShape3D_d346t")
[node name="Minimap" type="Node3D" parent="."]
visible = false
[node name="Minimap" type="MeshInstance3D" parent="Minimap"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00409305, -0.480896, 0.025076)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.004, 0, 0.025)
mesh = SubResource("PlaneMesh_x0sr3")
skeleton = NodePath("")
surface_material_override/0 = SubResource("StandardMaterial3D_pqndw")
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.288392, 3.74148, -0.0836668)
light_energy = 4.5
shadow_enabled = true
shadow_blur = 3.428
omni_range = 13.64
omni_attenuation = 0.769
[node name="GPUParticles3D2" type="GPUParticles3D" parent="."]
transform = Transform3D(0.879, 0, 0, 0, 0.407, 0, 0, 0, 0.832, 0.649518, 7.89065, -0.521923)
amount = 20
lifetime = 41.19
local_coords = true
process_material = SubResource("ParticleProcessMaterial_x0sr3")
draw_pass_1 = SubResource("QuadMesh_bom1w")
[node name="FogVolume" type="FogVolume" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.106932, 9.40369, -0.564365)
size = Vector3(6.32806, 2.79297, 5.94653)
shape = 2
material = SubResource("FogMaterial_qjo7v")

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +1,9 @@
[gd_scene load_steps=18 format=3 uid="uid://b8tiuu3l181ke"]
[gd_scene load_steps=24 format=3 uid="uid://b8tiuu3l181ke"]
[ext_resource type="PackedScene" uid="uid://xahptbyj5wfn" path="res://src/map/dungeon/models/Area 2/Longroom/A2-Longroom.glb" id="2_kp5lh"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_oayuk"]
[ext_resource type="Texture2D" uid="uid://deggm1f2vn0et" path="res://src/minimap/textures/Room Maps/mi_long_room.png" id="7_7b6f1"]
[ext_resource type="Texture2D" uid="uid://b8q6l0tl2383a" path="res://src/minimap/textures/Room Maps/mi_long_rooma2.png" id="5_erovx"]
[ext_resource type="Texture2D" uid="uid://dw50ys561j8no" path="res://src/map/assets/DUST_1.png" id="6_7i5m1"]
[ext_resource type="PackedScene" uid="uid://twrj4wixcbu7" path="res://src/items/ItemDatabase.tscn" id="15_wjalf"]
[ext_resource type="Texture2D" uid="uid://dvast710lxrmw" path="res://src/map/dungeon/door/A2_BLOCKED_DOOR.png" id="19_xb78s"]
@@ -41,9 +42,44 @@ size = Vector2(48, 28)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yrga2"]
transparency = 1
albedo_texture = ExtResource("7_7b6f1")
albedo_texture = ExtResource("5_erovx")
texture_filter = 0
[sub_resource type="Curve" id="Curve_kp5lh"]
_limits = [-2.0, 2.0, 0.0, 1.0]
_data = [Vector2(0.00358423, 0.230769), 0.0, 0.0, 0, 0, Vector2(0.982079, -1.03846), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_rum6r"]
curve = SubResource("Curve_kp5lh")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_7b6f1"]
lifetime_randomness = 0.05
emission_shape = 3
emission_box_extents = Vector3(22.2, 22.505, 22)
angle_min = -245.3
angle_max = 417.9
orbit_velocity_min = -0.0269999
orbit_velocity_max = 0.0400001
orbit_velocity_curve = SubResource("CurveTexture_rum6r")
gravity = Vector3(0, -0.07, 0)
scale_min = 0.0
scale_max = 0.0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_aejdd"]
transparency = 1
cull_mode = 2
shading_mode = 0
albedo_color = Color(1, 1, 1, 0.0862745)
albedo_texture = ExtResource("6_7i5m1")
billboard_mode = 2
[sub_resource type="QuadMesh" id="QuadMesh_0nke0"]
material = SubResource("StandardMaterial3D_aejdd")
size = Vector2(0.1, 0.1)
subdivide_width = 1
subdivide_depth = 1
[node name="Long Room B" type="Node3D"]
script = ExtResource("2_oayuk")
@@ -240,8 +276,38 @@ shape = SubResource("BoxShape3D_w5a3p")
[node name="Minimap" type="MeshInstance3D" parent="Minimap"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.0419, 0)
layers = 2
mesh = SubResource("PlaneMesh_0nke0")
skeleton = NodePath("")
surface_material_override/0 = SubResource("StandardMaterial3D_yrga2")
[node name="GPUParticles3D2" type="GPUParticles3D" parent="."]
transform = Transform3D(1.084, 0, 0, 0, 0.257, 0, 0, 0, 0.682, 0.688172, 4.22838, 0.00214195)
amount = 20
lifetime = 41.19
local_coords = true
process_material = SubResource("ParticleProcessMaterial_7b6f1")
draw_pass_1 = SubResource("QuadMesh_0nke0")
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.2159, 5.26953, -0.382709)
light_energy = 5.0
shadow_enabled = true
omni_range = 26.443
omni_attenuation = 1.781
[node name="OmniLight3D3" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.86789, 5.26953, -0.382709)
light_energy = 6.665
shadow_enabled = true
shadow_blur = 10.0
omni_range = 26.443
omni_attenuation = 1.781
[node name="OmniLight3D2" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.98437, 5.26953, -0.382709)
light_energy = 6.48
shadow_enabled = true
shadow_blur = 10.0
omni_range = 26.443
omni_attenuation = 1.781

View File

@@ -1,7 +1,8 @@
[gd_scene load_steps=13 format=3 uid="uid://5cstpejxygy6"]
[gd_scene load_steps=19 format=3 uid="uid://5cstpejxygy6"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_i2lux"]
[ext_resource type="PackedScene" uid="uid://bglktekocmksl" path="res://src/map/dungeon/models/Area 2/CircleColumn/A2-CircleColumn.glb" id="2_nqsfp"]
[ext_resource type="Texture2D" uid="uid://dw50ys561j8no" path="res://src/map/assets/DUST_1.png" id="6_vfp5g"]
[ext_resource type="Texture2D" uid="uid://bo32lieutx4fr" path="res://src/minimap/textures/Room Maps/mi_column_circle.png" id="7_be25c"]
[ext_resource type="PackedScene" uid="uid://twrj4wixcbu7" path="res://src/items/ItemDatabase.tscn" id="15_28m48"]
[ext_resource type="Texture2D" uid="uid://dvast710lxrmw" path="res://src/map/dungeon/door/A2_BLOCKED_DOOR.png" id="19_p6lr6"]
@@ -29,6 +30,41 @@ transparency = 1
albedo_texture = ExtResource("7_be25c")
texture_filter = 0
[sub_resource type="Curve" id="Curve_nqsfp"]
_limits = [-2.0, 2.0, 0.0, 1.0]
_data = [Vector2(0.00358423, 0.230769), 0.0, 0.0, 0, 0, Vector2(0.982079, -1.03846), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_be25c"]
curve = SubResource("Curve_nqsfp")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_6drtk"]
lifetime_randomness = 0.05
emission_shape = 3
emission_box_extents = Vector3(22.2, 22.505, 22)
angle_min = -245.3
angle_max = 417.9
orbit_velocity_min = -0.0269999
orbit_velocity_max = 0.0400001
orbit_velocity_curve = SubResource("CurveTexture_be25c")
gravity = Vector3(0, -0.07, 0)
scale_min = 0.0
scale_max = 0.0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5a2sq"]
transparency = 1
cull_mode = 2
shading_mode = 0
albedo_color = Color(1, 1, 1, 0.0862745)
albedo_texture = ExtResource("6_vfp5g")
billboard_mode = 2
[sub_resource type="QuadMesh" id="QuadMesh_oelme"]
material = SubResource("StandardMaterial3D_5a2sq")
size = Vector2(0.1, 0.1)
subdivide_width = 1
subdivide_depth = 1
[node name="Column Circle Room" type="Node3D"]
script = ExtResource("2_i2lux")
@@ -203,8 +239,31 @@ shape = SubResource("BoxShape3D_6sers")
[node name="Minimap" type="MeshInstance3D" parent="Minimap"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.524475, 0)
layers = 2
mesh = SubResource("PlaneMesh_6drtk")
skeleton = NodePath("")
surface_material_override/0 = SubResource("StandardMaterial3D_ixa6b")
[node name="GPUParticles3D2" type="GPUParticles3D" parent="."]
transform = Transform3D(0.499, 0, 0, 0, 0.307, 0, 0, 0, 0.507, 0.281, 6.094, -0.438)
amount = 20
lifetime = 41.19
local_coords = true
process_material = SubResource("ParticleProcessMaterial_6drtk")
draw_pass_1 = SubResource("QuadMesh_oelme")
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.082139, 4.86582, -0.0836668)
light_energy = 4.5
shadow_enabled = true
shadow_blur = 0.373
omni_range = 13.0
[node name="FogVolume" type="FogVolume" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.279114, 11.441, -0.138376)
size = Vector3(20.0836, 8.33643, 19.1257)
[node name="FogVolume" type="FogVolume" parent="FogVolume"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.353651, -5.22283, 0.0979897)
size = Vector3(3.38, 2.69, 3.08)
shape = 2

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,8 @@
[gd_scene load_steps=17 format=3 uid="uid://cuau7xgx3rkxu"]
[gd_scene load_steps=24 format=3 uid="uid://cuau7xgx3rkxu"]
[ext_resource type="Script" uid="uid://bccyfmj8ikewh" path="res://src/map/dungeon/code/SpecialRoom.cs" id="1_w3a78"]
[ext_resource type="PackedScene" uid="uid://dekf66gxvufrt" path="res://src/map/dungeon/models/Area 2/Proscenium/A2-Proscenium.glb" id="2_vbs5p"]
[ext_resource type="Texture2D" uid="uid://dw50ys561j8no" path="res://src/map/assets/DUST_1.png" id="5_wpyu0"]
[ext_resource type="Texture2D" uid="uid://dvast710lxrmw" path="res://src/map/dungeon/door/A2_BLOCKED_DOOR.png" id="24_wjhqq"]
[ext_resource type="PackedScene" uid="uid://bhsoehmr37aws" path="res://src/npc/Proscenium/Proscenium.tscn" id="32_t4lrk"]
@@ -42,14 +43,52 @@ texture_filter = 0
[sub_resource type="BoxShape3D" id="BoxShape3D_nu4bg"]
size = Vector3(36, 6, 28)
[sub_resource type="PlaneMesh" id="PlaneMesh_w3a78"]
size = Vector2(36, 28)
[sub_resource type="Curve" id="Curve_vbs5p"]
_limits = [-2.0, 2.0, 0.0, 1.0]
_data = [Vector2(0.00358423, 0.230769), 0.0, 0.0, 0, 0, Vector2(0.982079, -1.03846), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_dirfg"]
curve = SubResource("Curve_vbs5p")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_vwwuc"]
lifetime_randomness = 0.05
emission_shape = 3
emission_box_extents = Vector3(22.2, 22.505, 22)
angle_min = -245.3
angle_max = 417.9
orbit_velocity_min = -0.0269999
orbit_velocity_max = 0.0400001
orbit_velocity_curve = SubResource("CurveTexture_dirfg")
gravity = Vector3(0, -0.07, 0)
scale_min = 0.0
scale_max = 0.0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_726dd"]
transparency = 1
cull_mode = 2
shading_mode = 0
albedo_color = Color(1, 1, 1, 0.0862745)
albedo_texture = ExtResource("5_wpyu0")
billboard_mode = 2
[sub_resource type="QuadMesh" id="QuadMesh_386pt"]
material = SubResource("StandardMaterial3D_726dd")
size = Vector2(0.1, 0.1)
subdivide_width = 1
subdivide_depth = 1
[node name="Proscenium\'s Room" type="Node3D"]
script = ExtResource("1_w3a78")
[node name="A2-Proscenium" parent="." instance=ExtResource("2_vbs5p")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.494374, 0)
[node name="Collision" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.32238, 0)
visible = false
[node name="StaticBody3D" type="StaticBody3D" parent="Collision"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.301441, 2.71136, -0.0148315)
@@ -167,9 +206,10 @@ shape = SubResource("BoxShape3D_nu4bg")
[node name="Minimap" type="MeshInstance3D" parent="Minimap"]
unique_name_in_owner = true
mesh = SubResource("PlaneMesh_w3a78")
[node name="NPC" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.21583, 2.60919, 0)
transform = Transform3D(0.535, 0, 0, 0, 0.535, 0, 0, 0, 0.535, 1.27456, 1.75386, 0)
[node name="Proscenium" parent="NPC" instance=ExtResource("32_t4lrk")]
transform = Transform3D(-5.24537e-08, 0, 1.2, 0, 1.2, 0, -1.2, 0, -5.24537e-08, 8.65444, 1.80024, -0.184306)
@@ -195,4 +235,20 @@ visible = false
[node name="CollisionShape3D" parent="NPC/Proscenium/Hitbox" index="0"]
visible = false
[node name="GPUParticles3D2" type="GPUParticles3D" parent="."]
transform = Transform3D(0.854, 0, 0, 0, 0.502, 0, 0, 0, 0.672, 0.361126, 4.14917, -0.438256)
amount = 20
lifetime = 41.19
local_coords = true
process_material = SubResource("ParticleProcessMaterial_vwwuc")
draw_pass_1 = SubResource("QuadMesh_386pt")
[node name="OmniLight3D2" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.38779, 4.05302, -0.0836668)
light_energy = 3.012
shadow_enabled = true
shadow_blur = 1.24
omni_range = 7.66
omni_attenuation = 0.19
[editable path="NPC/Proscenium"]

File diff suppressed because one or more lines are too long

View File

@@ -1,9 +1,10 @@
[gd_scene load_steps=17 format=3 uid="uid://02v033xrh6xi"]
[gd_scene load_steps=67 format=3 uid="uid://02v033xrh6xi"]
[ext_resource type="Script" uid="uid://bd824eigybu51" path="res://src/map/dungeon/code/ExitRoom.cs" id="2_7o05s"]
[ext_resource type="PackedScene" uid="uid://bpihpjlg5mcq" path="res://src/map/dungeon/models/Area 2/Exit/A2-Exit.glb" id="2_d13sj"]
[ext_resource type="Texture2D" uid="uid://dw50ys561j8no" path="res://src/map/assets/DUST_1.png" id="4_kx0t3"]
[ext_resource type="Texture2D" uid="uid://b7kj1pxt7wx1g" path="res://src/vfx/World/BLUE_FLAME.png" id="5_pmpee"]
[ext_resource type="Texture2D" uid="uid://dw8vvn66qqfj2" path="res://src/minimap/textures/Room Maps/mi_exit.png" id="7_vsgtq"]
[ext_resource type="Texture2D" uid="uid://dvast710lxrmw" path="res://src/map/dungeon/door/A2_BLOCKED_DOOR.png" id="21_7o05s"]
[sub_resource type="BoxShape3D" id="BoxShape3D_umdkt"]
size = Vector3(0.391602, 21, 37)
@@ -21,14 +22,6 @@ radius = 1.40381
[sub_resource type="BoxShape3D" id="BoxShape3D_bracd"]
size = Vector3(1.31396, 11.3767, 3.75488)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_51rrf"]
albedo_texture = ExtResource("21_7o05s")
texture_filter = 0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_alrge"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_x3ul8"]
[sub_resource type="BoxShape3D" id="BoxShape3D_7o05s"]
size = Vector3(20, 20, 36)
@@ -43,6 +36,454 @@ transparency = 1
albedo_texture = ExtResource("7_vsgtq")
texture_filter = 0
[sub_resource type="Curve" id="Curve_d13sj"]
_limits = [-2.0, 2.0, 0.0, 1.0]
_data = [Vector2(0.00358423, 0.230769), 0.0, 0.0, 0, 0, Vector2(0.982079, -1.03846), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_xbcfg"]
curve = SubResource("Curve_d13sj")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_vsgtq"]
lifetime_randomness = 0.05
emission_shape = 3
emission_box_extents = Vector3(22.2, 22.505, 22)
angle_min = -245.3
angle_max = 417.9
orbit_velocity_min = -0.0269999
orbit_velocity_max = 0.0400001
orbit_velocity_curve = SubResource("CurveTexture_xbcfg")
gravity = Vector3(0, -0.07, 0)
scale_min = 0.0
scale_max = 0.0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ecy5p"]
transparency = 1
cull_mode = 2
shading_mode = 0
albedo_color = Color(1, 1, 1, 0.0862745)
albedo_texture = ExtResource("4_kx0t3")
billboard_mode = 2
[sub_resource type="QuadMesh" id="QuadMesh_fnbln"]
material = SubResource("StandardMaterial3D_ecy5p")
size = Vector2(0.1, 0.1)
subdivide_width = 1
subdivide_depth = 1
[sub_resource type="AtlasTexture" id="AtlasTexture_fa0yd"]
atlas = ExtResource("5_pmpee")
region = Rect2(1024, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_xvxtm"]
atlas = ExtResource("5_pmpee")
region = Rect2(1536, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_yckbp"]
atlas = ExtResource("5_pmpee")
region = Rect2(2048, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_k3wb6"]
atlas = ExtResource("5_pmpee")
region = Rect2(2560, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_lvx8f"]
atlas = ExtResource("5_pmpee")
region = Rect2(3072, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_5jf3f"]
atlas = ExtResource("5_pmpee")
region = Rect2(3584, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_yaek2"]
atlas = ExtResource("5_pmpee")
region = Rect2(4096, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_m7ked"]
atlas = ExtResource("5_pmpee")
region = Rect2(4608, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_tgauh"]
atlas = ExtResource("5_pmpee")
region = Rect2(5120, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_23ip1"]
atlas = ExtResource("5_pmpee")
region = Rect2(5632, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_xwq6u"]
atlas = ExtResource("5_pmpee")
region = Rect2(6144, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_dvh5e"]
atlas = ExtResource("5_pmpee")
region = Rect2(6656, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_oryp2"]
atlas = ExtResource("5_pmpee")
region = Rect2(7168, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_vnvpj"]
atlas = ExtResource("5_pmpee")
region = Rect2(7680, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_huh6d"]
atlas = ExtResource("5_pmpee")
region = Rect2(8192, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_vwdtx"]
atlas = ExtResource("5_pmpee")
region = Rect2(8704, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_wj4rl"]
atlas = ExtResource("5_pmpee")
region = Rect2(9216, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_ufqel"]
atlas = ExtResource("5_pmpee")
region = Rect2(9728, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_gm2xs"]
atlas = ExtResource("5_pmpee")
region = Rect2(10240, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_6qdtc"]
atlas = ExtResource("5_pmpee")
region = Rect2(10752, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_7doc0"]
atlas = ExtResource("5_pmpee")
region = Rect2(11264, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_bastv"]
atlas = ExtResource("5_pmpee")
region = Rect2(11776, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_7wx2a"]
atlas = ExtResource("5_pmpee")
region = Rect2(12288, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_2oybq"]
atlas = ExtResource("5_pmpee")
region = Rect2(12800, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_ajic6"]
atlas = ExtResource("5_pmpee")
region = Rect2(13312, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_york4"]
atlas = ExtResource("5_pmpee")
region = Rect2(13824, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_en15j"]
atlas = ExtResource("5_pmpee")
region = Rect2(14336, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_18mqb"]
atlas = ExtResource("5_pmpee")
region = Rect2(14848, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_2fevs"]
atlas = ExtResource("5_pmpee")
region = Rect2(15360, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_r4nju"]
atlas = ExtResource("5_pmpee")
region = Rect2(15872, 0, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_fia20"]
atlas = ExtResource("5_pmpee")
region = Rect2(0, 502, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_nhfcs"]
atlas = ExtResource("5_pmpee")
region = Rect2(512, 502, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_8btat"]
atlas = ExtResource("5_pmpee")
region = Rect2(1024, 502, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_62cid"]
atlas = ExtResource("5_pmpee")
region = Rect2(1536, 502, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_f43j4"]
atlas = ExtResource("5_pmpee")
region = Rect2(2048, 502, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_8almt"]
atlas = ExtResource("5_pmpee")
region = Rect2(2560, 502, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_8nqox"]
atlas = ExtResource("5_pmpee")
region = Rect2(3072, 502, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_7fvd3"]
atlas = ExtResource("5_pmpee")
region = Rect2(3584, 502, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_44yh0"]
atlas = ExtResource("5_pmpee")
region = Rect2(4096, 502, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_76xwn"]
atlas = ExtResource("5_pmpee")
region = Rect2(4608, 502, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_wep0j"]
atlas = ExtResource("5_pmpee")
region = Rect2(5120, 502, 512, 502)
[sub_resource type="AtlasTexture" id="AtlasTexture_i6qdo"]
atlas = ExtResource("5_pmpee")
region = Rect2(5632, 502, 512, 502)
[sub_resource type="SpriteFrames" id="SpriteFrames_chrua"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_fa0yd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_xvxtm")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_yckbp")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_k3wb6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_lvx8f")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5jf3f")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_yaek2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_m7ked")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_tgauh")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_23ip1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_xwq6u")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dvh5e")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_oryp2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_vnvpj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_huh6d")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_vwdtx")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wj4rl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ufqel")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_gm2xs")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6qdtc")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7doc0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_bastv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7wx2a")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_2oybq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ajic6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_york4")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_en15j")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_18mqb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_2fevs")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_r4nju")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_fia20")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nhfcs")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8btat")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_62cid")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_f43j4")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8almt")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8nqox")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7fvd3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_44yh0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_76xwn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wep0j")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_i6qdo")
}],
"loop": true,
"name": &"default",
"speed": 16.0
}]
[sub_resource type="Animation" id="Animation_k6ywg"]
resource_name = "Flame Flicker"
length = 2.62501
loop_mode = 1
step = 0.0625
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, 2.5625),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0, 41]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("../AnimatedSprite3D2:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 2.5625),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0, 41]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("../OmniLight3D:light_energy")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1, 1.125, 1.25, 1.375, 1.5, 1.625, 1.75, 1.875, 2, 2.125, 2.25, 2.375, 2.5),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [6.436, 6.0, 6.9, 5.6, 6.2, 5.5, 6.0, 6.436, 6.0, 6.9, 5.6, 6.2, 5.5, 6.0, 6.436, 6.0, 6.9, 5.6, 6.2, 5.5, 6.0]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("../OmniLight3D2:light_energy")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1, 1.125, 1.25, 1.375, 1.5, 1.625, 1.75, 1.875, 2, 2.125, 2.25, 2.375, 2.5),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [6.436, 6.0, 6.9, 5.6, 6.2, 5.5, 6.0, 6.436, 6.0, 6.9, 5.6, 6.2, 5.5, 6.0, 6.436, 6.0, 6.9, 5.6, 6.2, 5.5, 6.0]
}
[sub_resource type="Animation" id="Animation_54fgm"]
length = 0.001
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),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("../AnimatedSprite3D2:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("../OmniLight3D:light_energy")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [6.436]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ljhl3"]
_data = {
&"Flame Flicker": SubResource("Animation_k6ywg"),
&"RESET": SubResource("Animation_54fgm")
}
[sub_resource type="Environment" id="Environment_nka2x"]
background_mode = 1
background_color = Color(0.295867, 0.295866, 0.295866, 1)
sdfgi_enabled = true
glow_enabled = true
glow_intensity = 3.02
glow_strength = 0.98
glow_bloom = 1.0
fog_enabled = true
volumetric_fog_enabled = true
volumetric_fog_density = 0.02
[node name="Floor Exit B" type="Node3D"]
script = ExtResource("2_7o05s")
@@ -90,29 +531,6 @@ shape = SubResource("BoxShape3D_bracd")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.99862, -5.18835, 9.61777)
shape = SubResource("BoxShape3D_bracd")
[node name="Doors" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.27408, -2.796)
[node name="CSGBox3D" type="CSGBox3D" parent="Doors"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0314088, 4.23029, -0.0385468)
visible = false
operation = 1
flip_faces = true
size = Vector3(20, 10, 16)
[node name="CSGBox2" type="CSGBox3D" parent="Doors"]
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, -0.209171, 0.0366807, 17.9545)
use_collision = true
size = Vector3(4, 4, 0.01)
material = SubResource("StandardMaterial3D_51rrf")
[node name="DOOR" type="CSGBox3D" parent="Doors/CSGBox2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.396216, 0.0720215, -0.104668)
material_override = SubResource("StandardMaterial3D_alrge")
operation = 2
size = Vector3(5.19281, 4.49561, 2)
material = SubResource("StandardMaterial3D_x3ul8")
[node name="Spawn Points" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.93856, 9.80872)
@@ -144,10 +562,66 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00295544, 1.56831, 4.23168)
shape = SubResource("BoxShape3D_wu8s2")
[node name="Minimap" type="Node3D" parent="."]
visible = false
[node name="Minimap" type="MeshInstance3D" parent="Minimap"]
unique_name_in_owner = true
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, -1.36053, -1.81937)
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, -1.819)
mesh = SubResource("PlaneMesh_fnbln")
skeleton = NodePath("")
surface_material_override/0 = SubResource("StandardMaterial3D_chrua")
[node name="GPUParticles3D2" type="GPUParticles3D" parent="."]
transform = Transform3D(0.464, 0, 0, 0, 0.227, 0, 0, 0, 0.462, 10.4639, 4.40841, 7.92556)
amount = 20
lifetime = 41.19
local_coords = true
process_material = SubResource("ParticleProcessMaterial_vsgtq")
draw_pass_1 = SubResource("QuadMesh_fnbln")
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.86203, 4.919, 0.443518)
light_energy = 6.436
shadow_enabled = true
shadow_blur = 10.0
omni_range = 20.929
omni_attenuation = 1.346
[node name="OmniLight3D2" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.09453, 4.919, 0.443518)
light_energy = 6.69992
shadow_enabled = true
shadow_blur = 10.0
omni_range = 20.929
omni_attenuation = 1.346
[node name="AnimatedSprite3D" type="AnimatedSprite3D" parent="."]
transform = Transform3D(0.615, 0, 0, 0, 0.445, 0, 0, 0, 0.445, -8.06807, 5.73564, 0.45137)
billboard = 2
sprite_frames = SubResource("SpriteFrames_chrua")
autoplay = "default"
[node name="AnimatedSprite3D2" type="AnimatedSprite3D" parent="."]
transform = Transform3D(0.615, 0, 0, 0, 0.445, 0, 0, 0, 0.445, 7.74296, 5.70896, 0.45137)
billboard = 2
sprite_frames = SubResource("SpriteFrames_chrua")
autoplay = "default"
[node name="OmniLight3D3" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 13.623, -5.91127)
light_energy = 4.7
omni_range = 14.399
[node name="FogVolume" type="FogVolume" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.482666, 20.6513, -16.0869)
size = Vector3(30.7642, 10.3584, 24.915)
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
root_node = NodePath("../AnimatedSprite3D")
libraries = {
&"": SubResource("AnimationLibrary_ljhl3")
}
autoplay = "Flame Flicker"
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_nka2x")

View File

@@ -1,8 +1,9 @@
[gd_scene load_steps=14 format=3 uid="uid://dqppy7sj8pial"]
[gd_scene load_steps=20 format=3 uid="uid://dqppy7sj8pial"]
[ext_resource type="PackedScene" uid="uid://bb1cwg2xq5exh" path="res://src/map/dungeon/models/Area 2/Gesthemii/A2-Gesthemii.glb" id="2_bh4f4"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_kprvd"]
[ext_resource type="Texture2D" uid="uid://dien6vkw71nya" path="res://src/minimap/textures/Room Maps/mi_gesthemi_room.png" id="6_hawfc"]
[ext_resource type="Texture2D" uid="uid://dw50ys561j8no" path="res://src/map/assets/DUST_1.png" id="6_yiuxf"]
[ext_resource type="PackedScene" uid="uid://bxybc56hq0566" path="res://src/npc/Gesthesemii/Gesthemii2.tscn" id="10_trgx2"]
[ext_resource type="Texture2D" uid="uid://dvast710lxrmw" path="res://src/map/dungeon/door/A2_BLOCKED_DOOR.png" id="23_djym4"]
@@ -30,6 +31,41 @@ transparency = 1
albedo_texture = ExtResource("6_hawfc")
texture_filter = 0
[sub_resource type="Curve" id="Curve_bh4f4"]
_limits = [-2.0, 2.0, 0.0, 1.0]
_data = [Vector2(0.00358423, 0.230769), 0.0, 0.0, 0, 0, Vector2(0.982079, -1.03846), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_acc61"]
curve = SubResource("Curve_bh4f4")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_hawfc"]
lifetime_randomness = 0.05
emission_shape = 3
emission_box_extents = Vector3(22.2, 22.505, 22)
angle_min = -245.3
angle_max = 417.9
orbit_velocity_min = -0.0269999
orbit_velocity_max = 0.0400001
orbit_velocity_curve = SubResource("CurveTexture_acc61")
gravity = Vector3(0, -0.07, 0)
scale_min = 0.0
scale_max = 0.0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5b7ch"]
transparency = 1
cull_mode = 2
shading_mode = 0
albedo_color = Color(1, 1, 1, 0.0862745)
albedo_texture = ExtResource("6_yiuxf")
billboard_mode = 2
[sub_resource type="QuadMesh" id="QuadMesh_61va6"]
material = SubResource("StandardMaterial3D_5b7ch")
size = Vector2(0.1, 0.1)
subdivide_width = 1
subdivide_depth = 1
[node name="GesthemiisRoom" type="Node3D"]
script = ExtResource("2_kprvd")
@@ -41,7 +77,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0.604996)
[node name="StaticBody3D" type="StaticBody3D" parent="Collision"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Collision/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.62428, -0.96248, 2.08093)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.26095, -0.96248, 2.08093)
shape = SubResource("BoxShape3D_gwfk4")
[node name="StaticBody3D2" type="StaticBody3D" parent="Collision"]
@@ -111,3 +147,32 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.569493, 2.38497, 1.51063)
[node name="Gesthemii2" parent="NPC" instance=ExtResource("10_trgx2")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0431279, -0.710172, 2.12679)
[node name="GPUParticles3D2" type="GPUParticles3D" parent="."]
transform = Transform3D(0.884, 0, 0, 0, 0.142, 0, 0, 0, 0.512, 0.111471, 2.97166, -0.291562)
amount = 20
lifetime = 41.19
local_coords = true
process_material = SubResource("ParticleProcessMaterial_hawfc")
draw_pass_1 = SubResource("QuadMesh_61va6")
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.114901, 3.12703, 0.918317)
light_color = Color(0.930926, 0.916068, 0.913116, 1)
light_energy = 1.848
omni_range = 11.263
omni_attenuation = 0.573
[node name="OmniLight3D3" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.2922, 2.2254, -3.78773)
light_color = Color(0.930926, 0.916068, 0.913116, 1)
light_energy = 0.5
omni_range = 8.044
omni_attenuation = 0.573
[node name="OmniLight3D4" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.4843, 2.2254, -3.78773)
light_color = Color(0.930926, 0.916068, 0.913116, 1)
light_energy = 0.5
omni_range = 8.044
omni_attenuation = 0.573

View File

@@ -1,63 +0,0 @@
shader_type particles;
//this defines how far out the particles will spawn
uniform float particle_diameter = 5.0f;
//input a value that changes over time and can also be a coordinate
//use vec(TIME,0) if you got no coordinates
float rand(vec2 co){
//this will give a pseudorandom value between 0-1
return fract(sin(dot(co.xy ,vec2(23.21,101.83))) * 34759.214);
}
void vertex(){
//this sets all the stuff necesary
//spawn them in a given radius around the emmitor
//set the position to be randomly dispersed in an area
float x_modifier = (rand(vec2(TIME,0))*particle_diameter);
float z_modifier = (rand(vec2(TIME+1f,0))*particle_diameter);
//centers effect
TRANSFORM[3][0] = x_modifier - 0.5f*particle_diameter;
TRANSFORM[3][2] = z_modifier- 0.5f*particle_diameter;
//VELOCITY.y = -rand(vec2(TIME+2f,0));
VELOCITY.y = -1f;
}
//apply a changing wind that changes with time with a noticable variation
VELOCITY.x = 3f*sin(TIME/4f)*sin(TIME)*rand(vec2(float(INDEX),0f));
VELOCITY.z = 3f*cos(TIME/4f)*cos(TIME)*rand(vec2(float(INDEX)+1f,0f));
//gives a consistent rotation that depends on the index
float x_rotation = TIME*rand(vec2(float(INDEX),0f));
float y_rotation = TIME*rand(vec2(float(INDEX)+1f,0f));
float z_rotation = TIME*rand(vec2(float(INDEX)+2f,0f));
//these just rotate the leaf using matrix math
//x rotation
TRANSFORM[1][1] = cos(x_rotation);
TRANSFORM[2][1] = -sin(x_rotation);
TRANSFORM[1][2] = sin(x_rotation);
TRANSFORM[2][2] = cos(x_rotation);
//y rotation
TRANSFORM[0][0] = cos(y_rotation);
TRANSFORM[2][0] = -sin(y_rotation);
TRANSFORM[0][2] = sin(y_rotation);
TRANSFORM[2][2] = cos(y_rotation);
//z rotation
TRANSFORM[0][0] = cos(z_rotation);
TRANSFORM[1][0] = -sin(z_rotation);
TRANSFORM[0][1] = sin(z_rotation);
TRANSFORM[1][1] = cos(z_rotation);
}

View File

@@ -1,46 +1,83 @@
shader_type spatial;
render_mode diffuse_burley, specular_schlick_ggx, blend_mix;
group_uniforms albedo;
uniform vec4 albedo : source_color = vec4(1.0, 1.0, 1.0, 0.0);
uniform sampler2D albedo_texture : source_color, hint_default_white;
uniform float Emission_Power = 1.0;
uniform vec3 Color:source_color;
group_uniforms roughness;
uniform float roughness : hint_range(0.0, 1.0) = 0.15;
uniform sampler2D roughness_texture : hint_roughness_r;
group_uniforms Fresnel;
uniform sampler2D Fresnel_Noise_Texture:source_color;
uniform vec3 Fresnel_Color : source_color;
uniform float Fresnel_Power : hint_range(0.1, 10.0) = 3.0;
group_uniforms normal;
uniform float normal_strength : hint_range(-16.0, 16.0) = 1.0;
uniform sampler2D normal_map : hint_normal;
group_uniforms Lines_Alpha;
uniform sampler2D Line_Texture:source_color;
uniform float Repetitions = 2.0;
uniform float Speed = 1.0;
group_uniforms misc;
uniform vec4 edge_color : source_color = vec4(0.0, 0.0, 0.0, 1.0);
group_uniforms Alpha_Fade;
uniform sampler2D Fade_Texture:source_color;
uniform float Fade_Offset = 0.0;
uniform float Fade_Scale = 1.0;
group_uniforms Lines_Color;
uniform sampler2D Color_Line_Texture:source_color;
uniform float Color_Line_Repetitions = 2.0;
uniform float Color_Line_Speed = 1.0;
group_uniforms Vertex_Shift;
uniform sampler2D Vertex_Shift_Texture:source_color;
uniform float Vertex_Shift_Repetitions = 2.0;
uniform float Vertex_Shift_Speed = 1.0;
uniform float Shift_Power = 0.2;
uniform float Shift_X_Mult = 1.0;
uniform float Shift_Z_Mult = 1.0;
varying vec3 Wave_WorldCoords;
void vertex() {
Wave_WorldCoords = (MODEL_MATRIX * vec4(VERTEX, 1.0)).xyz;
vec2 uv = UV;
uv.y = Wave_WorldCoords.y;
uv.y = fract(uv.y * Vertex_Shift_Repetitions);
uv.y += fract(TIME * -Vertex_Shift_Speed);
float shift = texture(Vertex_Shift_Texture, uv).r * Shift_Power;
VERTEX.x += shift * Shift_X_Mult;
VERTEX.z += shift * Shift_Z_Mult;
float SchlickFresnel(float u) {
float m = 1.0 - u;
float m2 = m * m;
return m2 * m2 * m;
}
void fragment() {
// calculate fresnel values
float VdotN = dot(VIEW, NORMAL);
float fresnel = clamp(SchlickFresnel(VdotN), 0.0, 1.0);
float Fresnel = pow(1.0 - dot(NORMAL, VIEW), Fresnel_Power);
float Noise_Value = texture(Fresnel_Noise_Texture,UV).r;
float Noise_Fresnel = Fresnel * Noise_Value;
// sample and mix textures
vec4 _albedo = texture(albedo_texture, UV) * albedo;
float _roughness = texture(roughness_texture, UV).r * roughness;
vec3 Final_Color = mix(Color,Fresnel_Color,Noise_Fresnel);
// apply glass look
float a = mix(0.001, 1.0, _albedo.a);
ALPHA = mix(fresnel * edge_color.a, 1.0, a);
ALBEDO = mix(edge_color.rgb * edge_color.a, _albedo.rgb, a);
ROUGHNESS = _roughness;
NORMAL_MAP = texture(normal_map, UV).xyz;
NORMAL_MAP_DEPTH = normal_strength;
vec2 uv = UV;
uv.y = Wave_WorldCoords.y;
uv.y = fract(uv.y * Repetitions);
uv.y += fract(TIME * -Speed);
float Line_Alpha = texture(Line_Texture,uv).a;
vec2 uv2 = UV;
uv2.y = Wave_WorldCoords.y;
uv2.y = fract(uv2.y * Color_Line_Repetitions);
uv2.y += fract(TIME * -Color_Line_Speed);
vec3 Line_Color = texture(Color_Line_Texture,uv2).rgb;
Final_Color += Line_Color;
vec2 uv3 = UV;
uv3.y = (Wave_WorldCoords.y + Fade_Offset) * Fade_Scale;
float Fade_Value = texture(Fade_Texture,uv3).a;
ALBEDO = Final_Color;
EMISSION = Final_Color * Emission_Power;
ALPHA = Line_Alpha * Fade_Value;
// function to compensate specular for alpha blend
// 0.5 * ALPHA^-0.5
SPECULAR = 0.5 * inversesqrt(ALPHA);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://jk0ysk54nrpc"
path="res://.godot/imported/mi_2ante.png-400cb1b24a28aad80646a412ff159e7f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/minimap/textures/Room Maps/mi_2ante.png"
dest_files=["res://.godot/imported/mi_2ante.png-400cb1b24a28aad80646a412ff159e7f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b8q6l0tl2383a"
path="res://.godot/imported/mi_long_rooma2.png-5f41e14c46c3ef3094438fb0df113fa6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/minimap/textures/Room Maps/mi_long_rooma2.png"
dest_files=["res://.godot/imported/mi_long_rooma2.png-5f41e14c46c3ef3094438fb0df113fa6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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=0

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=15 format=3 uid="uid://b6a0erl0euhgq"]
[gd_scene load_steps=18 format=3 uid="uid://b6a0erl0euhgq"]
[ext_resource type="Script" uid="uid://dcqssoikr3pl7" path="res://src/npc/Npc.cs" id="1_5qwnr"]
[ext_resource type="Resource" uid="uid://lao0opxww3ib" path="res://src/dialog/Dialogue.dialogue" id="2_j753f"]
@@ -11,6 +11,59 @@
[ext_resource type="Texture2D" uid="uid://bd7ppby0qecc2" path="res://src/npc/Puer/Frames - Puer/PUER7.png" id="9_tujwi"]
[ext_resource type="Texture2D" uid="uid://cmf3kho87qrss" path="res://src/npc/Puer/Frames - Puer/PUER8.png" id="10_1bgq4"]
[sub_resource type="Animation" id="Animation_tty5x"]
resource_name = "Idle"
length = 3.00002
loop_mode = 1
step = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("AnimatedSprite3D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1.4, 1.6, 3),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [0, 7, 0, 7]
}
tracks/1/type = "position_3d"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("AnimatedSprite3D")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = PackedFloat32Array(0, 1, 0, 0, 0, 1.6, 1, 0, 0.15, 0, 3, 1, 0, 0, 0)
[sub_resource type="Animation" id="Animation_vbqit"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("AnimatedSprite3D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
tracks/1/type = "position_3d"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("AnimatedSprite3D")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = PackedFloat32Array(0, 1, 0, 0, 0)
[sub_resource type="AnimationLibrary" id="AnimationLibrary_moxl4"]
_data = {
&"Idle": SubResource("Animation_tty5x"),
&"RESET": SubResource("Animation_vbqit")
}
[sub_resource type="SpriteFrames" id="SpriteFrames_7w2s0"]
animations = [{
"frames": [{
@@ -58,9 +111,15 @@ radius = 1.941
script = ExtResource("1_5qwnr")
Dialogue = ExtResource("2_j753f")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_moxl4")
}
autoplay = "Idle"
[node name="AnimatedSprite3D" type="AnimatedSprite3D" parent="."]
billboard = 2
sprite_frames = SubResource("SpriteFrames_7w2s0")
frame_progress = 0.105423
[node name="DialogueZone" type="Area3D" parent="."]
unique_name_in_owner = true

View File

@@ -254,9 +254,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1, 0)
gi_mode = 0
pixel_size = 0.02
billboard = 2
shaded = true
double_sided = false
alpha_cut = 2
alpha_cut = 3
texture_filter = 1
texture = SubResource("ViewportTexture_3udpp")

View File

@@ -96,555 +96,555 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<ISaveChunk<Play
#region Initialization
public void InitializePlayerState()
{
Inventory = new Inventory();
Stats = InitializePlayerStats();
SetProcessInput(false);
SetPhysicsProcess(false);
Inventory = new Inventory();
Stats = InitializePlayerStats();
SetProcessInput(false);
SetPhysicsProcess(false);
EquippedWeapon.Changed += EquippedWeapon_Sync;
EquippedArmor.Changed += EquippedArmor_Sync;
EquippedAccessory.Changed += EquippedAccessory_Sync;
Stats.CurrentHP.Changed += CurrentHP_Sync;
Stats.CurrentExp.Changed += CurrentEXP_Sync;
HealthTimer.WaitTime = _healthTimerWaitTime;
HealthTimer.Timeout += OnHealthTimerTimeout;
EquippedWeapon.Changed += EquippedWeapon_Sync;
EquippedArmor.Changed += EquippedArmor_Sync;
EquippedAccessory.Changed += EquippedAccessory_Sync;
Stats.CurrentHP.Changed += CurrentHP_Sync;
Stats.CurrentExp.Changed += CurrentEXP_Sync;
HealthTimer.WaitTime = _healthTimerWaitTime;
HealthTimer.Timeout += OnHealthTimerTimeout;
}
public void Setup()
{
var container = new SimpleInjector.Container();
container.Register<IPlayerLogic, PlayerLogic>(Lifestyle.Singleton);
//container.Verify();
var container = new SimpleInjector.Container();
container.Register<IPlayerLogic, PlayerLogic>(Lifestyle.Singleton);
//container.Verify();
PlayerLogic = container.GetInstance<IPlayerLogic>();
PlayerLogic.Set(this as IPlayer);
PlayerLogic.Set(Settings);
PlayerLogic.Set(Stats);
PlayerLogic.Set(_gameRepo);
PlayerLogic = container.GetInstance<IPlayerLogic>();
PlayerLogic.Set(this as IPlayer);
PlayerLogic.Set(Settings);
PlayerLogic.Set(Stats);
PlayerLogic.Set(_gameRepo);
_damageCalculator = new DamageCalculator();
_damageCalculator = new DamageCalculator();
Hitbox.AreaEntered += Hitbox_AreaEntered;
CollisionDetector.AreaEntered += CollisionDetector_AreaEntered;
AnimationPlayer.AnimationFinished += OnAnimationFinished;
Hitbox.AreaEntered += Hitbox_AreaEntered;
CollisionDetector.AreaEntered += CollisionDetector_AreaEntered;
AnimationPlayer.AnimationFinished += OnAnimationFinished;
}
public void OnResolved()
{
Settings = new PlayerLogic.Settings() { RotationSpeed = _playerStatResource.RotationSpeed, MoveSpeed = _playerStatResource.MoveSpeed, Acceleration = _playerStatResource.Acceleration };
Settings = new PlayerLogic.Settings() { RotationSpeed = _playerStatResource.RotationSpeed, MoveSpeed = _playerStatResource.MoveSpeed, Acceleration = _playerStatResource.Acceleration };
PlayerChunk = new SaveChunk<PlayerData>(
onSave: (chunk) => new PlayerData()
{
PlayerStats = Stats,
Inventory = Inventory
},
onLoad: (chunk, data) =>
{
Stats = new PlayerStats(
data.PlayerStats.CurrentHP,
data.PlayerStats.MaximumHP,
data.PlayerStats.CurrentVT,
data.PlayerStats.MaximumVT,
data.PlayerStats.CurrentAttack,
data.PlayerStats.BonusAttack,
data.PlayerStats.MaxAttack,
data.PlayerStats.CurrentDefense,
data.PlayerStats.BonusDefense,
data.PlayerStats.MaxDefense,
data.PlayerStats.CurrentExp,
data.PlayerStats.CurrentLevel,
data.PlayerStats.ExpToNextLevel,
data.PlayerStats.Luck);
Inventory = data.Inventory;
}
);
PlayerChunk = new SaveChunk<PlayerData>(
onSave: (chunk) => new PlayerData()
{
PlayerStats = Stats,
Inventory = Inventory
},
onLoad: (chunk, data) =>
{
Stats = new PlayerStats(
data.PlayerStats.CurrentHP,
data.PlayerStats.MaximumHP,
data.PlayerStats.CurrentVT,
data.PlayerStats.MaximumVT,
data.PlayerStats.CurrentAttack,
data.PlayerStats.BonusAttack,
data.PlayerStats.MaxAttack,
data.PlayerStats.CurrentDefense,
data.PlayerStats.BonusDefense,
data.PlayerStats.MaxDefense,
data.PlayerStats.CurrentExp,
data.PlayerStats.CurrentLevel,
data.PlayerStats.ExpToNextLevel,
data.PlayerStats.Luck);
Inventory = data.Inventory;
}
);
PlayerBinding = PlayerLogic.Bind();
PlayerBinding = PlayerLogic.Bind();
PlayerBinding
.Handle((in PlayerLogic.Output.Animations.Attack output) =>
{
if (PlayerIsHittingGeometry())
{
AnimationPlayer.Play("hit_wall");
_gameRepo.OnPlayerAttackedWall();
}
else
{
PlayAttackAnimation();
}
})
.Handle((in PlayerLogic.Output.ThrowItem output) =>
{
})
.Handle((in PlayerLogic.Output.Move output) =>
{
Move(output.delta);
});
PlayerBinding
.Handle((in PlayerLogic.Output.Animations.Attack output) =>
{
if (PlayerIsHittingGeometry())
{
AnimationPlayer.Play("hit_wall");
_gameRepo.OnPlayerAttackedWall();
}
else
{
PlayAttackAnimation();
}
})
.Handle((in PlayerLogic.Output.ThrowItem output) =>
{
})
.Handle((in PlayerLogic.Output.Move output) =>
{
Move(output.delta);
});
GameChunk.AddChunk(PlayerChunk);
GameChunk.AddChunk(PlayerChunk);
PlayerLogic.Start();
this.Provide();
PlayerLogic.Start();
this.Provide();
SetProcessInput(false);
SetPhysicsProcess(false);
SetProcessInput(false);
SetPhysicsProcess(false);
}
public void OnReady()
{
SwordSlashAnimation.Position = GetViewport().GetVisibleRect().Size / 2;
SwordSlashAnimation.Position = GetViewport().GetVisibleRect().Size / 2;
}
#endregion
public void Activate()
{
SetProcessInput(true);
SetPhysicsProcess(true);
SetHealthTimerStatus(HealthTimerIsActive);
SetProcessInput(true);
SetPhysicsProcess(true);
SetHealthTimerStatus(HealthTimerIsActive);
}
public void Deactivate()
{
SetProcessInput(false);
SetPhysicsProcess(false);
SetHealthTimerStatus(false);
SetProcessInput(false);
SetPhysicsProcess(false);
SetHealthTimerStatus(false);
}
public void Attack()
{
PlayerLogic.Input(new PlayerLogic.Input.Attack());
PlayerLogic.Input(new PlayerLogic.Input.Attack());
}
public void RaiseHP(int amountToRaise)
{
Stats.SetMaximumHP(Stats.MaximumHP.Value + amountToRaise);
Stats.SetCurrentHP(Stats.MaximumHP.Value);
_gameRepo.AnnounceMessageInInventory($"{amountToRaise}MAXHP Up.");
Stats.SetMaximumHP(Stats.MaximumHP.Value + amountToRaise);
Stats.SetCurrentHP(Stats.MaximumHP.Value);
_gameRepo.AnnounceMessageInInventory($"{amountToRaise}MAXHP Up.");
}
public void HealHP(int amountToRestore)
{
Stats.SetCurrentHP(Stats.CurrentHP.Value + amountToRestore);
var raiseString = amountToRestore == 1000 ? "MAX" : $"{amountToRestore}";
_gameRepo.AnnounceMessageInInventory($"{raiseString}HP Restored.");
Stats.SetCurrentHP(Stats.CurrentHP.Value + amountToRestore);
var raiseString = amountToRestore == 1000 ? "MAX" : $"{amountToRestore}";
_gameRepo.AnnounceMessageInInventory($"{raiseString}HP Restored.");
}
public void RaiseVT(int amountToRaise)
{
if (Stats.CurrentVT == Stats.MaximumVT)
{
Stats.SetMaximumVT(Stats.MaximumVT.Value + amountToRaise);
Stats.SetCurrentVT(Stats.MaximumVT.Value);
_gameRepo.AnnounceMessageInInventory($"{amountToRaise}MAXVT Up.");
}
if (Stats.CurrentVT == Stats.MaximumVT)
{
Stats.SetMaximumVT(Stats.MaximumVT.Value + amountToRaise);
Stats.SetCurrentVT(Stats.MaximumVT.Value);
_gameRepo.AnnounceMessageInInventory($"{amountToRaise}MAXVT Up.");
}
}
public void HealVT(int amountToRestore)
{
Stats.SetCurrentVT(Stats.CurrentVT.Value + amountToRestore);
var raiseString = amountToRestore == 1000 ? "MAX" : $"{amountToRestore}";
_gameRepo.AnnounceMessageInInventory($"{raiseString}VT Restored.");
Stats.SetCurrentVT(Stats.CurrentVT.Value + amountToRestore);
var raiseString = amountToRestore == 1000 ? "MAX" : $"{amountToRestore}";
_gameRepo.AnnounceMessageInInventory($"{raiseString}VT Restored.");
}
public void ModifyBonusAttack(int amount)
{
Stats.SetBonusAttack(Stats.BonusAttack.Value + amount);
Stats.SetBonusAttack(Stats.BonusAttack.Value + amount);
}
public void ModifyBonusDefense(int amount)
{
Stats.SetBonusDefense(Stats.BonusDefense.Value + amount);
Stats.SetBonusDefense(Stats.BonusDefense.Value + amount);
}
public void ModifyMaximumHP(int amount)
{
Stats.SetMaximumHP(Stats.MaximumHP.Value + amount);
Stats.SetMaximumHP(Stats.MaximumHP.Value + amount);
}
public void ModifyMaximumVT(int amount)
{
Stats.SetMaximumVT(Stats.MaximumVT.Value + amount);
Stats.SetMaximumVT(Stats.MaximumVT.Value + amount);
}
public void ModifyBonusLuck(double amount)
{
Stats.SetLuck(Stats.Luck.Value + amount);
Stats.SetLuck(Stats.Luck.Value + amount);
}
public void SetHealthTimerStatus(bool isActive)
{
if (isActive)
HealthTimer.Start();
else
HealthTimer.Stop();
if (isActive)
HealthTimer.Start();
else
HealthTimer.Stop();
}
public void Move(float delta)
{
var rawInput = GlobalInputVector;
var strafeLeftInput = LeftStrafeInputVector;
var strafeRightInput = RightStrafeInputVector;
var rawInput = GlobalInputVector;
var strafeLeftInput = LeftStrafeInputVector;
var strafeRightInput = RightStrafeInputVector;
var transform = Transform;
transform.Basis = new Basis(Vector3.Up, Settings.RotationSpeed * -rawInput.X * delta) * transform.Basis;
var moveDirection = new Vector3(strafeRightInput - strafeLeftInput, 0, rawInput.Z).Normalized();
var velocity = Basis * moveDirection * Settings.MoveSpeed * Settings.Acceleration;
_knockbackStrength *= 0.9f;
Transform = Transform with { Basis = transform.Basis };
Velocity = velocity + (_knockbackDirection * _knockbackStrength);
MoveAndSlide();
var transform = Transform;
transform.Basis = new Basis(Vector3.Up, Settings.RotationSpeed * -rawInput.X * delta) * transform.Basis;
var moveDirection = new Vector3(strafeRightInput - strafeLeftInput, 0, rawInput.Z).Normalized();
var velocity = Basis * moveDirection * Settings.MoveSpeed * Settings.Acceleration;
_knockbackStrength *= 0.9f;
Transform = Transform with { Basis = transform.Basis };
Velocity = velocity + (_knockbackDirection * _knockbackStrength);
MoveAndSlide();
}
public void TeleportPlayer(Transform3D newTransform)
{
Transform = newTransform;
Transform = newTransform;
}
public void TakeDamage(double damage, ElementType elementType, bool isCriticalHit = false)
{
if (Stats.CurrentHP.Value > 0)
{
_damageCalculator.CalculateDamage(damage, elementType, Stats.CurrentDefense.Value + Stats.BonusDefense.Value, ((Armor)_equippedArmor.Value).Stats.ElementalResistanceSet);
Stats.SetCurrentHP(Stats.CurrentHP.Value - (int)damage);
}
if (Stats.CurrentHP.Value > 0)
{
_damageCalculator.CalculateDamage(damage, elementType, Stats.CurrentDefense.Value + Stats.BonusDefense.Value, ((Armor)_equippedArmor.Value).Stats.ElementalResistanceSet);
Stats.SetCurrentHP(Stats.CurrentHP.Value - (int)damage);
}
}
public void Knockback(float impulse)
{
_knockbackStrength = impulse;
_knockbackDirection = GlobalBasis.Z.Normalized();
_knockbackStrength = impulse;
_knockbackDirection = GlobalBasis.Z.Normalized();
}
public void GainExp(double expGained)
{
Stats.SetCurrentExp(Stats.CurrentExp.Value + expGained);
Stats.SetCurrentExp(Stats.CurrentExp.Value + expGained);
}
public void LevelUp()
{
var rng = new RandomNumberGenerator();
rng.Randomize();
var hpIncrease = rng.RandiRange(3, 6);
Stats.SetMaximumHP(Stats.MaximumHP.Value + hpIncrease);
var nextLevel = Stats.CurrentLevel.Value + 1;
var expToNextLevel = (int)(6.5 * nextLevel + 4.5 * Mathf.Pow(nextLevel, 2) + Mathf.Pow(nextLevel, 3));
var newCurrentExp = Mathf.Max(Stats.CurrentExp.Value - Stats.ExpToNextLevel.Value, 0);
Stats.SetCurrentLevel(nextLevel);
Stats.SetExpToNextLevel(expToNextLevel);
Stats.SetCurrentExp(newCurrentExp);
var rng = new RandomNumberGenerator();
rng.Randomize();
var hpIncrease = rng.RandiRange(3, 6);
Stats.SetMaximumHP(Stats.MaximumHP.Value + hpIncrease);
var nextLevel = Stats.CurrentLevel.Value + 1;
var expToNextLevel = (int)(6.5 * nextLevel + 4.5 * Mathf.Pow(nextLevel, 2) + Mathf.Pow(nextLevel, 3));
var newCurrentExp = Mathf.Max(Stats.CurrentExp.Value - Stats.ExpToNextLevel.Value, 0);
Stats.SetCurrentLevel(nextLevel);
Stats.SetExpToNextLevel(expToNextLevel);
Stats.SetCurrentExp(newCurrentExp);
}
public void Die()
{
EquippedWeapon.Sync -= EquippedWeapon_Sync;
EquippedArmor.Sync -= EquippedArmor_Sync;
EquippedAccessory.Sync -= EquippedAccessory_Sync;
Stats.CurrentHP.Sync -= CurrentHP_Sync;
Stats.CurrentExp.Sync -= CurrentEXP_Sync;
EquippedWeapon.Sync -= EquippedWeapon_Sync;
EquippedArmor.Sync -= EquippedArmor_Sync;
EquippedAccessory.Sync -= EquippedAccessory_Sync;
Stats.CurrentHP.Sync -= CurrentHP_Sync;
Stats.CurrentExp.Sync -= CurrentEXP_Sync;
HealthTimer.WaitTime = _healthTimerWaitTime;
HealthTimer.Timeout -= OnHealthTimerTimeout;
SwordSlashAnimation.Stop();
SetProcessInput(false);
SetPhysicsProcess(false);
//Hitbox.AreaEntered -= Hitbox_AreaEntered;
//CollisionDetector.AreaEntered -= CollisionDetector_AreaEntered;
//AnimationPlayer.AnimationFinished -= OnAnimationFinished;
HealthTimer.WaitTime = _healthTimerWaitTime;
HealthTimer.Timeout -= OnHealthTimerTimeout;
SwordSlashAnimation.Stop();
SetProcessInput(false);
SetPhysicsProcess(false);
//Hitbox.AreaEntered -= Hitbox_AreaEntered;
//CollisionDetector.AreaEntered -= CollisionDetector_AreaEntered;
//AnimationPlayer.AnimationFinished -= OnAnimationFinished;
Game.GameOver();
Game.GameOver();
}
public override void _Input(InputEvent @event)
{
if (@event.IsActionPressed(GameInputs.Attack))
Attack();
if (@event.IsActionPressed(GameInputs.Sprint))
Settings.MoveSpeed *= 2;
if (@event.IsActionReleased(GameInputs.Sprint))
Settings.MoveSpeed /= 2;
if (@event.IsActionPressed(GameInputs.Attack))
Attack();
if (@event.IsActionPressed(GameInputs.Sprint))
Settings.MoveSpeed *= 2;
if (@event.IsActionReleased(GameInputs.Sprint))
Settings.MoveSpeed /= 2;
}
public void OnPhysicsProcess(double delta)
{
PlayerLogic.Input(new PlayerLogic.Input.PhysicsTick(delta));
PlayerLogic.Input(new PlayerLogic.Input.Moved(GlobalPosition, GlobalTransform));
PlayerLogic.Input(new PlayerLogic.Input.PhysicsTick(delta));
PlayerLogic.Input(new PlayerLogic.Input.Moved(GlobalPosition, GlobalTransform));
}
public void Equip(EquipableItem equipable)
{
if (equipable.ItemTag == ItemTag.MysteryItem)
{
var rerolledItem = Game.RerollItem(equipable) as EquipableItem;
Equip(rerolledItem);
return;
}
if (equipable.ItemTag == ItemTag.MysteryItem)
{
var rerolledItem = Game.RerollItem(equipable) as EquipableItem;
Equip(rerolledItem);
return;
}
if (equipable is Weapon weapon)
{
Unequip(_equippedWeapon.Value);
weapon.IsEquipped = true;
_equippedWeapon.OnNext(weapon);
}
else if (equipable is Armor armor)
{
Unequip(_equippedArmor.Value);
armor.IsEquipped = true;
_equippedArmor.OnNext(armor);
}
else if (equipable is Accessory accessory)
{
Unequip(_equippedAccessory.Value);
accessory.IsEquipped = true;
_equippedAccessory.OnNext(accessory);
}
else
throw new NotImplementedException("Item type is not supported.");
if (equipable is Weapon weapon)
{
Unequip(_equippedWeapon.Value);
weapon.IsEquipped = true;
_equippedWeapon.OnNext(weapon);
}
else if (equipable is Armor armor)
{
Unequip(_equippedArmor.Value);
armor.IsEquipped = true;
_equippedArmor.OnNext(armor);
}
else if (equipable is Accessory accessory)
{
Unequip(_equippedAccessory.Value);
accessory.IsEquipped = true;
_equippedAccessory.OnNext(accessory);
}
else
throw new NotImplementedException("Item type is not supported.");
}
public void Unequip(EquipableItem equipable)
{
if (equipable is Weapon weapon)
{
weapon.IsEquipped = false;
ModifyBonusAttack(-weapon.Damage);
_equippedWeapon.OnNext(new Weapon());
}
else if (equipable is Armor armor)
{
armor.IsEquipped = false;
ModifyBonusDefense(-armor.Defense);
_equippedArmor.OnNext(new Armor());
}
else if (equipable is Accessory accessory)
{
accessory.IsEquipped = false;
ModifyMaximumHP(-accessory.MaxHPUp);
ModifyMaximumVT(-accessory.MaxVTUp);
ModifyBonusAttack(-accessory.ATKUp);
ModifyBonusDefense(-accessory.DEFUp);
ModifyBonusLuck(-accessory.LuckUp);
_equippedAccessory.OnNext(new Accessory());
}
else
throw new NotImplementedException("Item type is not supported.");
if (equipable is Weapon weapon)
{
weapon.IsEquipped = false;
ModifyBonusAttack(-weapon.Damage);
_equippedWeapon.OnNext(new Weapon());
}
else if (equipable is Armor armor)
{
armor.IsEquipped = false;
ModifyBonusDefense(-armor.Defense);
_equippedArmor.OnNext(new Armor());
}
else if (equipable is Accessory accessory)
{
accessory.IsEquipped = false;
ModifyMaximumHP(-accessory.MaxHPUp);
ModifyMaximumVT(-accessory.MaxVTUp);
ModifyBonusAttack(-accessory.ATKUp);
ModifyBonusDefense(-accessory.DEFUp);
ModifyBonusLuck(-accessory.LuckUp);
_equippedAccessory.OnNext(new Accessory());
}
else
throw new NotImplementedException("Item type is not supported.");
}
private static Vector3 GlobalInputVector
{
get
{
var rawInput = Input.GetVector(GameInputs.MoveLeft, GameInputs.MoveRight, GameInputs.MoveUp, GameInputs.MoveDown);
var input = new Vector3
{
X = rawInput.X,
Z = rawInput.Y
};
return input with { Y = 0f };
}
get
{
var rawInput = Input.GetVector(GameInputs.MoveLeft, GameInputs.MoveRight, GameInputs.MoveUp, GameInputs.MoveDown);
var input = new Vector3
{
X = rawInput.X,
Z = rawInput.Y
};
return input with { Y = 0f };
}
}
private static float LeftStrafeInputVector
{
get
{
return Input.GetActionStrength(GameInputs.StrafeLeft);
}
get
{
return Input.GetActionStrength(GameInputs.StrafeLeft);
}
}
private static float RightStrafeInputVector
{
get
{
return Input.GetActionStrength(GameInputs.StrafeRight);
}
get
{
return Input.GetActionStrength(GameInputs.StrafeRight);
}
}
private void ThrowItem()
{
var itemScene = GD.Load<PackedScene>("res://src/items/throwable/ThrowableItem.tscn");
var throwItem = itemScene.Instantiate<ThrowableItem>();
GetTree().Root.AddChildEx(throwItem);
throwItem.GlobalPosition = CurrentPosition + new Vector3(0, 3.5f, 0);
throwItem.GlobalRotation = GlobalRotation;
var itemScene = GD.Load<PackedScene>("res://src/items/throwable/ThrowableItem.tscn");
var throwItem = itemScene.Instantiate<ThrowableItem>();
GetTree().Root.AddChildEx(throwItem);
throwItem.GlobalPosition = CurrentPosition + new Vector3(0, 3.5f, 0);
throwItem.GlobalRotation = GlobalRotation;
}
private void PlayAttackAnimation()
{
var attackSpeed = ((Weapon)EquippedWeapon.Value).AttackSpeed;
AnimationPlayer.SetSpeedScale((float)attackSpeed);
if (EquippedWeapon.Value.ItemName == "Atonement")
AnimationPlayer.Play("atonement_attack");
else
AnimationPlayer.Play("attack");
_gameRepo.OnPlayerAttack();
var attackSpeed = ((Weapon)EquippedWeapon.Value).AttackSpeed;
AnimationPlayer.SetSpeedScale((float)attackSpeed);
if (EquippedWeapon.Value.ItemName == "Atonement")
AnimationPlayer.Play("atonement_attack");
else
AnimationPlayer.Play("attack");
_gameRepo.OnPlayerAttack();
}
private void OnAnimationFinished(StringName animation)
{
PlayerLogic.Input(new PlayerLogic.Input.AttackAnimationFinished());
PlayerLogic.Input(new PlayerLogic.Input.AttackAnimationFinished());
}
private void OnExitTree()
{
PlayerLogic.Stop();
PlayerBinding.Dispose();
AnimationPlayer.AnimationFinished -= OnAnimationFinished;
PlayerLogic.Stop();
PlayerBinding.Dispose();
AnimationPlayer.AnimationFinished -= OnAnimationFinished;
}
private void OnPlayerPositionUpdated(Vector3 globalPosition) => GlobalPosition = globalPosition;
private void OnHealthTimerTimeout()
{
if (Stats.CurrentHP.Value <= 0)
return;
if (Stats.CurrentHP.Value <= 0)
return;
if (Stats.CurrentVT.Value > 0)
{
if (((Accessory)EquippedAccessory.Value).AccessoryTag == AccessoryTag.HalfVTConsumption)
{
reduceOnTick = !reduceOnTick;
}
Stats.SetCurrentHP(Stats.CurrentHP.Value + 1);
if (reduceOnTick)
Stats.SetCurrentVT(Stats.CurrentVT.Value - 1);
}
else
Stats.SetCurrentHP(Stats.CurrentHP.Value - 1);
if (Stats.CurrentVT.Value > 0)
{
if (((Accessory)EquippedAccessory.Value).AccessoryTag == AccessoryTag.HalfVTConsumption)
{
reduceOnTick = !reduceOnTick;
}
Stats.SetCurrentHP(Stats.CurrentHP.Value + 1);
if (reduceOnTick)
Stats.SetCurrentVT(Stats.CurrentVT.Value - 1);
}
else
Stats.SetCurrentHP(Stats.CurrentHP.Value - 1);
}
private void EquippedWeapon_Sync(EquipableItem obj)
{
ModifyBonusAttack(((Weapon)obj).Damage);
ModifyBonusAttack(((Weapon)obj).Damage);
}
private void EquippedArmor_Sync(EquipableItem obj)
{
ModifyBonusDefense(((Armor)obj).Defense);
ModifyBonusDefense(((Armor)obj).Defense);
}
private void EquippedAccessory_Sync(EquipableItem accessory)
{
ModifyMaximumHP(((Accessory)accessory).MaxHPUp);
ModifyMaximumVT(((Accessory)accessory).MaxVTUp);
ModifyBonusAttack(((Accessory)accessory).ATKUp);
ModifyBonusDefense(((Accessory)accessory).DEFUp);
ModifyBonusLuck(((Accessory)accessory).LuckUp);
ModifyMaximumHP(((Accessory)accessory).MaxHPUp);
ModifyMaximumVT(((Accessory)accessory).MaxVTUp);
ModifyBonusAttack(((Accessory)accessory).ATKUp);
ModifyBonusDefense(((Accessory)accessory).DEFUp);
ModifyBonusLuck(((Accessory)accessory).LuckUp);
}
private void CurrentHP_Sync(int newHealth)
{
if (newHealth <= 0)
Die();
if (newHealth <= 0)
Die();
}
private void CurrentEXP_Sync(double newExp)
{
if (Stats.CurrentExp.Value >= Stats.ExpToNextLevel.Value)
LevelUp();
if (Stats.CurrentExp.Value >= Stats.ExpToNextLevel.Value)
LevelUp();
}
private void Hitbox_AreaEntered(Area3D area)
{
var target = area.GetOwner();
if (target is IEnemy enemy)
HitEnemy(enemy);
var target = area.GetOwner();
if (target is IEnemy enemy)
HitEnemy(enemy);
}
private void HitEnemy(IEnemy enemy)
{
var attackValue = Stats.CurrentAttack.Value + Stats.BonusAttack.Value;
var ignoreElementalResistance = ((Weapon)EquippedWeapon.Value).WeaponTag == WeaponTag.IgnoreAffinity;
var isCriticalHit = BattleExtensions.IsCriticalHit(Stats.Luck.Value);
var element = ((Weapon)EquippedWeapon.Value).WeaponElement;
var attackValue = Stats.CurrentAttack.Value + Stats.BonusAttack.Value;
var ignoreElementalResistance = ((Weapon)EquippedWeapon.Value).WeaponTag == WeaponTag.IgnoreAffinity;
var isCriticalHit = BattleExtensions.IsCriticalHit(Stats.Luck.Value);
var element = ((Weapon)EquippedWeapon.Value).WeaponElement;
enemy.TakeDamage(
attackValue * ((Weapon)EquippedWeapon.Value).ElementalDamageBonus,
element,
isCriticalHit,
false,
ignoreElementalResistance);
enemy.TakeDamage(
attackValue * ((Weapon)EquippedWeapon.Value).ElementalDamageBonus,
element,
isCriticalHit,
false,
ignoreElementalResistance);
if (((Weapon)EquippedWeapon.Value).WeaponTag == WeaponTag.Knockback)
enemy.Knockback(0.3f, -CurrentBasis.Z.Normalized());
if (((Weapon)EquippedWeapon.Value).WeaponTag == WeaponTag.Knockback)
enemy.Knockback(0.3f, -CurrentBasis.Z.Normalized());
_gameRepo.OnPlayerAttackedEnemy();
_gameRepo.OnPlayerAttackedEnemy();
}
private void CollisionDetector_AreaEntered(Area3D area)
{
if (area.GetParent() is InventoryItem inventoryItem)
{
var isAdded = Inventory.TryAdd(inventoryItem);
if (isAdded)
{
_gameRepo.AnnounceMessageOnMainScreen($"{inventoryItem.ItemName} picked up.");
inventoryItem.QueueFree();
}
else
_gameRepo.AnnounceMessageOnMainScreen($"Could not pick up {inventoryItem.ItemName}.");
}
if (area.GetParent() is DroppedItem droppedItem)
{
var isAdded = Inventory.TryAdd(droppedItem.Item);
if (isAdded)
{
_gameRepo.AnnounceMessageOnMainScreen($"{droppedItem.Item.ItemName} picked up.");
droppedItem.QueueFree();
}
else
_gameRepo.AnnounceMessageOnMainScreen($"Could not pick up {droppedItem.Item.ItemName}.");
}
if (area.GetParent() is ThrownItem thrownItem)
{
var isAdded = Inventory.TryAdd(thrownItem.ItemThatIsThrown);
if (isAdded)
{
_gameRepo.AnnounceMessageOnMainScreen($"{thrownItem.ItemThatIsThrown.ItemName} picked up.");
thrownItem.QueueFree();
}
else
_gameRepo.AnnounceMessageOnMainScreen($"Could not pick up {thrownItem.ItemThatIsThrown.ItemName}.");
}
if (area.GetParent() is Restorative restorative)
{
_gameRepo.OnRestorativePickedUp(restorative);
restorative.QueueFree();
}
if (area.GetParent() is InventoryItem inventoryItem)
{
var isAdded = Inventory.TryAdd(inventoryItem);
if (isAdded)
{
_gameRepo.AnnounceMessageOnMainScreen($"{inventoryItem.ItemName} picked up.");
inventoryItem.QueueFree();
}
else
_gameRepo.AnnounceMessageOnMainScreen($"Could not pick up {inventoryItem.ItemName}.");
}
if (area.GetParent() is DroppedItem droppedItem)
{
var isAdded = Inventory.TryAdd(droppedItem.Item);
if (isAdded)
{
_gameRepo.AnnounceMessageOnMainScreen($"{droppedItem.Item.ItemName} picked up.");
droppedItem.QueueFree();
}
else
_gameRepo.AnnounceMessageOnMainScreen($"Could not pick up {droppedItem.Item.ItemName}.");
}
if (area.GetParent() is ThrownItem thrownItem)
{
var isAdded = Inventory.TryAdd(thrownItem.ItemThatIsThrown);
if (isAdded)
{
_gameRepo.AnnounceMessageOnMainScreen($"{thrownItem.ItemThatIsThrown.ItemName} picked up.");
thrownItem.QueueFree();
}
else
_gameRepo.AnnounceMessageOnMainScreen($"Could not pick up {thrownItem.ItemThatIsThrown.ItemName}.");
}
if (area.GetParent() is Restorative restorative)
{
_gameRepo.OnRestorativePickedUp(restorative);
restorative.QueueFree();
}
}
private PlayerStats InitializePlayerStats()
{
var playerStats = new PlayerStats(
currentHP: new AutoProp<int>(_playerStatResource.CurrentHP),
maximumHP: new AutoProp<int>(_playerStatResource.MaximumHP),
currentVT: new AutoProp<int>(_playerStatResource.CurrentVT),
maximumVT: new AutoProp<int>(_playerStatResource.MaximumVT),
currentAttack: new AutoProp<int>(_playerStatResource.CurrentAttack),
currentDefense: new AutoProp<int>(_playerStatResource.CurrentDefense),
maxAttack: new AutoProp<int>(_playerStatResource.MaxAttack),
maxDefense: new AutoProp<int>(_playerStatResource.MaxDefense),
bonusAttack: new AutoProp<int>(_playerStatResource.BonusAttack),
bonusDefense: new AutoProp<int>(_playerStatResource.BonusDefense),
currentExp: new AutoProp<double>(_playerStatResource.CurrentExp),
expToNextLevel: new AutoProp<int>(_playerStatResource.ExpToNextLevel),
currentLevel: new AutoProp<int>(_playerStatResource.CurrentLevel),
luck: new AutoProp<double>(_playerStatResource.Luck));
var playerStats = new PlayerStats(
currentHP: new AutoProp<int>(_playerStatResource.CurrentHP),
maximumHP: new AutoProp<int>(_playerStatResource.MaximumHP),
currentVT: new AutoProp<int>(_playerStatResource.CurrentVT),
maximumVT: new AutoProp<int>(_playerStatResource.MaximumVT),
currentAttack: new AutoProp<int>(_playerStatResource.CurrentAttack),
currentDefense: new AutoProp<int>(_playerStatResource.CurrentDefense),
maxAttack: new AutoProp<int>(_playerStatResource.MaxAttack),
maxDefense: new AutoProp<int>(_playerStatResource.MaxDefense),
bonusAttack: new AutoProp<int>(_playerStatResource.BonusAttack),
bonusDefense: new AutoProp<int>(_playerStatResource.BonusDefense),
currentExp: new AutoProp<double>(_playerStatResource.CurrentExp),
expToNextLevel: new AutoProp<int>(_playerStatResource.ExpToNextLevel),
currentLevel: new AutoProp<int>(_playerStatResource.CurrentLevel),
luck: new AutoProp<double>(_playerStatResource.Luck));
return playerStats;
return playerStats;
}
private bool PlayerIsHittingGeometry()
{
var collisions = WallCheck.GetCollidingBodies();
return collisions.Count > 0;
var collisions = WallCheck.GetCollidingBodies();
return collisions.Count > 0;
}
private void WallCheck_BodyEntered(Node body)
{
PlayerLogic.Input(new PlayerLogic.Input.AttackAnimationFinished());
GD.Print("Hit wall");
AnimationPlayer.Stop();
PlayerLogic.Input(new PlayerLogic.Input.AttackAnimationFinished());
GD.Print("Hit wall");
AnimationPlayer.Stop();
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cl4tuxjoouokq"
path="res://.godot/imported/rose petal 1.png-4e0947a3babd88adaeb1d406c623c82e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/vfx/World/rose petal 1.png"
dest_files=["res://.godot/imported/rose petal 1.png-4e0947a3babd88adaeb1d406c623c82e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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=0