feat: updated enemy

main
Sara 2024-12-11 18:39:41 +01:00
parent c3a4f8baae
commit 84673c6c29
9 changed files with 257 additions and 147 deletions

View File

@ -22,7 +22,7 @@ size = Vector3(3.69043, 1, 8.0553)
[node name="Environment" parent="." instance=ExtResource("2_og5hb")]
[node name="Enemy" parent="." instance=ExtResource("3_ppe0x")]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 9.02629, 0.258895, -7.46576)
transform = Transform3D(-0.388047, -3.32609e-06, -0.92164, 7.28825e-07, 1, -3.91574e-06, 0.92164, -2.1912e-06, -0.388047, 5.68389, 0.50111, -12.4121)
[node name="Area3D" type="Area3D" parent="."]
transform = Transform3D(0.734015, 0, -0.679134, 0, 1, 0, 0.679134, 0, 0.734015, 2.09421, 0.536154, -14.1446)
@ -33,7 +33,8 @@ transform = Transform3D(1, 0, -4.91743e-07, 0, 1, 0, 4.91743e-07, 0, 1, 0, 0, 0)
shape = SubResource("BoxShape3D_ggysn")
[node name="Enemy2" parent="." instance=ExtResource("3_ppe0x")]
transform = Transform3D(0.139795, 0, -0.990181, 0, 1, 0, 0.990181, 0, 0.139795, 8.69408, 0.536154, -15.4052)
update_interval = 0.2
transform = Transform3D(0.470242, 0, -0.882538, 0, 1, 0, 0.882538, 0, 0.470242, 8.36392, 0.536154, -17.3654)
[node name="Player" parent="." instance=ExtResource("1_7kr4i")]
transform = Transform3D(0.0816776, 0, 0.996659, 0, 1, 0, -0.996659, 0, 0.0816776, -2.58966, 0.891191, -2.77265)

View File

@ -6,12 +6,12 @@ cutoff_hz = 1810.0
resonance = 0.19
[resource]
bus/0/volume_db = 0.0672607
bus/0/volume_db = -0.526013
bus/1/name = &"Artillery"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = 4.63125
bus/1/volume_db = 0.185026
bus/1/send = &"Master"
bus/1/effect/0/effect = SubResource("AudioEffectLowPassFilter_i7nkl")
bus/1/effect/0/enabled = true

BIN
godot/models/character.glb (Stored with Git LFS)

Binary file not shown.

View File

@ -116,11 +116,13 @@ collision_mask = 3
[node name="MuzzleAudio" type="AudioStreamPlayer3D" parent="skeleton_character/Skeleton3D/BoneAttachment3D" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.11411e-08, 0.275409, 0.0357741)
unit_size = 5.0
volume_db = 17.297
unit_size = 2.3
max_db = 6.0
autoplay = true
max_distance = 100.0
max_distance = 321.41
max_polyphony = 3
panning_strength = 0.82
[node name="BayonetHitscan" type="HitscanMuzzle" parent="skeleton_character/Skeleton3D/BoneAttachment3D" index="2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.91257e-05, -0.0191353, -0.00675189)

View File

@ -7,6 +7,7 @@ radius = 0.370388
height = 2.38725
[node name="Enemy" type="Enemy"]
update_interval = 0.25
collision_layer = 3
collision_mask = 3

View File

@ -2,7 +2,6 @@
[ext_resource type="Environment" uid="uid://c1vy5rxxddw78" path="res://lighting/foggy_morning.tres" id="1_5ixfb"]
[ext_resource type="ArrayOccluder3D" uid="uid://br22mqb65v0hg" path="res://occlusion/boot.occ" id="2_07v50"]
[ext_resource type="PackedScene" uid="uid://bmminombn1t0k" path="res://models/props/dirt_ramp.glb" id="3_2vit1"]
[ext_resource type="LightmapGIData" uid="uid://6pvqgw5obful" path="res://lighting/section_2.lmbake" id="3_h3v2c"]
[ext_resource type="PackedScene" uid="uid://b5inibbfdco0d" path="res://models/props/trenchwall_2m.glb" id="4_hbo2r"]
[ext_resource type="PackedScene" uid="uid://cesooq708ot6t" path="res://models/props/dirtpile_wall.glb" id="7_63acg"]
@ -13,12 +12,13 @@
[ext_resource type="PackedScene" uid="uid://dhj8jxrjui8u0" path="res://models/props/trenchwall_5m_dirt.glb" id="12_t2jcw"]
[ext_resource type="PackedScene" uid="uid://c24vfe6oekknf" path="res://models/props/walkover.glb" id="13_bq7v3"]
[ext_resource type="PackedScene" uid="uid://6x5ka3l7b6b7" path="res://objects/artillery_target.tscn" id="13_rl1f8"]
[ext_resource type="PackedScene" uid="uid://c71yj2qpupn33" path="res://models/props/dirtpile_large.glb" id="14_c2meq"]
[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_ikuna"]
[sub_resource type="NavigationMesh" id="NavigationMesh_e0njj"]
vertices = PackedVector3Array(8.61544, 0.535281, -18.2397, 9.36544, 0.535281, -18.2397, 9.36544, 0.535281, -19.4897, 8.36544, 0.785281, -19.4897, 10.1154, 3.03528, -18.2397, 10.3654, 3.03528, -18.7397, 10.3654, 3.03528, -19.2397, 7.61544, 3.03528, -19.2397, 7.61544, 3.03528, -18.4897, 13.6154, 0.285281, 3.76033, 12.3654, 0.535281, 3.01033, 11.8654, 0.535281, 3.26033, 10.3654, 0.785281, 3.76033, 11.6154, 0.785281, 2.76033, 9.86544, 0.285281, 2.51033, 8.86544, 0.535281, 2.51033, 15.6154, 0.535281, 5.26033, 15.6154, 0.535281, 4.01033, 8.61544, 0.785281, -13.7397, 9.61544, 1.28528, -17.2397, 8.61544, 1.28528, -17.2397, 7.86544, 1.28528, -14.9897, 7.86544, 1.03528, -14.2397, 8.36544, 0.785281, -2.23967, 9.36544, 0.285281, 1.76033, 9.53852, 0.535281, -11.3935, 1.36544, 1.53528, -14.9897, 0.365438, 1.28528, -14.4897, 1.11544, 1.03528, -13.9897, 0.115438, 1.03528, -3.23967, -0.384562, 1.03528, -2.73967, 1.11544, 1.28528, -2.23967, -4.13456, 1.78528, -2.98967, -3.88456, 1.53528, -1.98967, -1.38456, 1.03528, -2.11467, 10.3654, 3.03528, 5.01033, 10.6154, 3.03528, 4.51033, 9.86544, 3.03528, 4.76033, 11.8654, 3.03528, 6.76033, 11.8654, 3.03528, 5.76033, 6.61544, 3.03528, 4.26033, 8.36544, 3.03528, 4.01033, 6.36544, 3.03528, -6.98967, 7.61544, 3.03528, 3.01033, 7.61544, 3.03528, -7.23967, -6.13456, 3.28528, -1.48967, -5.63456, 3.03528, -0.989666, -4.88456, 3.03528, -1.23967, -4.88456, 3.28528, -3.73967, -6.13456, 3.03528, -3.73967)
polygons = [PackedInt32Array(1, 0, 2), PackedInt32Array(2, 0, 3), PackedInt32Array(5, 4, 6), PackedInt32Array(6, 4, 8), PackedInt32Array(6, 8, 7), PackedInt32Array(9, 11, 10), PackedInt32Array(11, 12, 13), PackedInt32Array(13, 12, 14), PackedInt32Array(14, 12, 15), PackedInt32Array(9, 17, 16), PackedInt32Array(22, 21, 18), PackedInt32Array(18, 21, 20), PackedInt32Array(18, 20, 19), PackedInt32Array(11, 9, 12), PackedInt32Array(12, 9, 16), PackedInt32Array(15, 23, 24), PackedInt32Array(24, 23, 25), PackedInt32Array(25, 23, 18), PackedInt32Array(25, 18, 19), PackedInt32Array(27, 26, 28), PackedInt32Array(28, 26, 22), PackedInt32Array(22, 26, 21), PackedInt32Array(31, 30, 29), PackedInt32Array(24, 14, 15), PackedInt32Array(31, 34, 30), PackedInt32Array(30, 34, 33), PackedInt32Array(30, 33, 32), PackedInt32Array(27, 28, 29), PackedInt32Array(29, 28, 31), PackedInt32Array(37, 36, 35), PackedInt32Array(35, 39, 38), PackedInt32Array(37, 35, 38), PackedInt32Array(41, 37, 40), PackedInt32Array(40, 37, 38), PackedInt32Array(44, 43, 42), PackedInt32Array(42, 43, 40), PackedInt32Array(43, 41, 40), PackedInt32Array(46, 45, 47), PackedInt32Array(47, 45, 49), PackedInt32Array(47, 49, 48)]
vertices = PackedVector3Array(-0.384562, 0.877347, -22.9788, -0.384562, 0.877347, -22.4788, 0.615438, 0.877347, -22.9788, 8.11544, 3.12735, -22.9788, 9.11544, 3.12735, -22.7288, 8.61544, 3.12735, -23.2288, 1.61544, 3.12735, -22.9788, 1.61544, 3.12735, -20.2288, 4.36544, 3.12735, -20.2288, 4.36544, 3.12735, -22.9788, 9.36544, 3.12735, -22.7288, 9.86544, 3.12735, -22.2288, 9.86544, 3.12735, -22.9788, -2.38456, 0.877347, -21.2288, -1.13456, 0.877347, -21.9788, -2.13456, 0.877347, -22.2288, -2.63456, 0.877347, -21.7288, 8.61544, 0.877347, -20.4788, 8.36544, 1.12735, -18.4788, 8.86544, 1.12735, -18.4788, 9.61544, 1.12735, -19.7288, 9.11544, 1.12735, -21.9788, 1.36544, 0.877347, -14.7288, 0.115438, 0.877347, -15.2288, 0.365438, 0.877347, -13.7288, 0.365438, 0.877347, -3.47876, 1.11544, 1.37735, -2.47876, 0.865438, 0.877347, -13.7288, 1.08419, 0.877347, -3.88501, 7.86544, 0.877347, -20.9788, 2.61544, 0.877347, -21.2288, 4.61544, 1.37735, -20.7288, 5.36544, 0.877347, -21.2288, 9.61544, 1.12735, -14.4788, 9.36544, 1.12735, -17.9788, 7.36544, 0.877347, -16.7288, -4.13456, 1.87735, -2.97876, -4.13456, 2.12735, -1.97876, -0.634562, 1.37735, -1.97876, -0.384562, 1.12735, -2.72876, 2.61544, 0.877347, -14.4788, 3.11544, 1.37735, -15.9788, 0.240438, 0.877347, -2.22876, -0.884562, 1.37735, -15.9788, -0.384562, 0.877347, -17.4788, -1.38456, 1.37735, -18.4788, 1.36544, 1.37735, -21.9788, 0.365438, 0.877347, -20.9788, -1.13456, 1.12735, -20.9788, -0.134562, 0.877347, -20.4788, -2.88456, 0.877347, -20.7288, -2.88456, 0.877347, -19.9788, -2.38456, 0.877347, -19.7288, 1.11544, 3.12735, -16.4788, 0.615438, 3.12735, -16.7288, 0.615438, 3.12735, -15.9788, 1.61544, 2.87735, -15.9788, 9.11544, 3.37735, -20.2288, 7.36544, 3.37735, -20.2288, 7.36544, 3.12735, -18.4788, 1.36544, 3.12735, -17.2288, 2.36544, 3.12735, -16.7288, 4.11544, 2.87735, -17.7288, 4.36544, 2.87735, -17.2288, 10.6154, 3.12735, -18.2288, 2.61544, 3.12735, -17.9788, 3.11544, 2.62735, -16.4788, 10.3654, 3.12735, -20.7288, 9.86544, 3.12735, -20.7288, 0.865438, 0.877347, -16.4788, 1.36544, 0.877347, -16.2288, 1.61544, 0.877347, -16.9788, 1.61544, 0.877347, -19.4788, 0.865438, 0.877347, -19.4788, 13.6154, 0.377347, 3.77124, 12.3654, 0.627347, 3.02124, 11.8654, 0.377347, 3.27124, 10.6154, 0.877347, 3.77124, 11.6154, 0.627347, 2.77124, 9.86544, 0.377347, 2.52124, 8.86544, 0.627347, 2.52124, 15.6154, 0.627347, 5.27124, 15.6154, 0.377347, 4.02124, 8.61544, 0.627347, -9.97876, 8.61544, 0.627347, -2.22876, 8.86544, 0.377347, -0.978758, 8.11544, 0.627347, -2.47876, 9.36544, 0.377347, 1.77124, 9.56998, 0.627347, -11.5242, 4.11544, 1.12735, -11.7288, 4.61544, 3.12735, -9.47876, 7.61544, 3.12735, -8.97876, 7.11544, 3.12735, -9.72876, 3.36544, 3.12735, -10.9788, 2.36544, 3.12735, -10.7288, 1.61544, 3.12735, -10.4788, 2.61544, 2.87735, -12.9788, 1.61544, 3.12735, -13.4788, 10.3654, 2.87735, 5.02124, 10.3654, 3.12735, 4.27124, 9.36544, 2.87735, 4.52124, 9.11544, 2.87735, 5.52124, 7.61544, 3.12735, -6.97876, 6.61544, 2.87735, -6.97876, 6.36544, 2.87735, -6.47876, 7.36544, 2.87735, -5.47876, 7.86544, 3.12735, -6.47876, 11.8654, 3.12735, 6.52124, 11.6154, 2.87735, 5.52124, 10.3654, 3.12735, -6.22876, 10.3654, 3.12735, -8.97876, 6.86544, 3.12735, 4.02124, 8.11544, 2.87735, 3.77124, 7.36544, 2.87735, 0.771242, -5.13456, 2.87735, -3.22876, -4.63456, 3.12735, -3.47876, -5.88456, 3.12735, -3.72876, -5.63456, 3.12735, -1.22876, -4.88456, 3.12735, -1.22876, 10.6154, 0.377347, 0.0212421, 10.6154, 0.377347, 1.02124, 11.3654, 0.377347, 1.52124)
polygons = [PackedInt32Array(2, 1, 0), PackedInt32Array(4, 3, 5), PackedInt32Array(9, 8, 6), PackedInt32Array(6, 8, 7), PackedInt32Array(12, 11, 10), PackedInt32Array(16, 15, 13), PackedInt32Array(13, 15, 14), PackedInt32Array(19, 18, 20), PackedInt32Array(20, 18, 17), PackedInt32Array(20, 17, 21), PackedInt32Array(24, 23, 22), PackedInt32Array(26, 25, 28), PackedInt32Array(28, 25, 27), PackedInt32Array(27, 25, 24), PackedInt32Array(21, 17, 29), PackedInt32Array(32, 31, 30), PackedInt32Array(35, 34, 33), PackedInt32Array(38, 37, 39), PackedInt32Array(39, 37, 36), PackedInt32Array(24, 22, 27), PackedInt32Array(27, 22, 40), PackedInt32Array(40, 22, 41), PackedInt32Array(38, 39, 42), PackedInt32Array(42, 39, 25), PackedInt32Array(42, 25, 26), PackedInt32Array(24, 43, 23), PackedInt32Array(23, 43, 44), PackedInt32Array(44, 43, 45), PackedInt32Array(21, 29, 32), PackedInt32Array(30, 46, 32), PackedInt32Array(32, 46, 21), PackedInt32Array(41, 35, 40), PackedInt32Array(40, 35, 33), PackedInt32Array(30, 47, 46), PackedInt32Array(46, 47, 48), PackedInt32Array(48, 49, 45), PackedInt32Array(45, 49, 44), PackedInt32Array(48, 47, 49), PackedInt32Array(52, 51, 50), PackedInt32Array(54, 53, 55), PackedInt32Array(55, 53, 56), PackedInt32Array(59, 58, 57), PackedInt32Array(53, 60, 56), PackedInt32Array(56, 60, 61), PackedInt32Array(62, 59, 63), PackedInt32Array(63, 59, 64), PackedInt32Array(63, 66, 62), PackedInt32Array(62, 66, 61), PackedInt32Array(62, 61, 65), PackedInt32Array(65, 61, 60), PackedInt32Array(68, 67, 57), PackedInt32Array(57, 67, 64), PackedInt32Array(57, 64, 59), PackedInt32Array(70, 69, 71), PackedInt32Array(71, 69, 72), PackedInt32Array(72, 69, 73), PackedInt32Array(74, 76, 75), PackedInt32Array(76, 77, 78), PackedInt32Array(78, 77, 79), PackedInt32Array(79, 77, 80), PackedInt32Array(74, 82, 81), PackedInt32Array(76, 74, 77), PackedInt32Array(77, 74, 81), PackedInt32Array(85, 84, 83), PackedInt32Array(84, 86, 83), PackedInt32Array(33, 88, 83), PackedInt32Array(83, 88, 85), PackedInt32Array(85, 88, 87), PackedInt32Array(87, 79, 80), PackedInt32Array(87, 80, 85), PackedInt32Array(89, 40, 83), PackedInt32Array(83, 40, 33), PackedInt32Array(94, 93, 90), PackedInt32Array(90, 93, 92), PackedInt32Array(90, 92, 91), PackedInt32Array(94, 95, 96), PackedInt32Array(96, 95, 97), PackedInt32Array(96, 93, 94), PackedInt32Array(99, 98, 100), PackedInt32Array(100, 98, 101), PackedInt32Array(102, 106, 103), PackedInt32Array(103, 106, 104), PackedInt32Array(104, 106, 105), PackedInt32Array(108, 107, 98), PackedInt32Array(98, 107, 101), PackedInt32Array(102, 91, 106), PackedInt32Array(106, 91, 110), PackedInt32Array(106, 110, 109), PackedInt32Array(113, 112, 111), PackedInt32Array(100, 101, 112), PackedInt32Array(112, 101, 111), PackedInt32Array(105, 113, 104), PackedInt32Array(104, 113, 111), PackedInt32Array(116, 115, 114), PackedInt32Array(118, 117, 114), PackedInt32Array(114, 117, 116), PackedInt32Array(121, 120, 119)]
sample_partition_type = 1
agent_height = 1.75
agent_radius = 0.25
@ -27,22 +27,8 @@ agent_max_slope = 24.58
[node name="Environment" type="WorldEnvironment"]
environment = ExtResource("1_5ixfb")
[node name="OccluderInstance3D" type="OccluderInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 0)
occluder = ExtResource("2_07v50")
bake_mask = 4294967293
bake_simplification_distance = 0.2
[node name="LightmapGI" type="LightmapGI" parent="."]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -3.95704, 0, -2.80582)
quality = 2
directional = true
camera_attributes = SubResource("CameraAttributesPractical_ikuna")
generate_probes_subdiv = 1
light_data = ExtResource("3_h3v2c")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(-0.205165, -0.725053, 0.657423, 0.0262249, 0.667398, 0.744238, -0.978376, 0.169933, -0.117912, -1.48634, 3.22867, -2.51018)
transform = Transform3D(-0.205165, -0.649364, 0.73228, 0.0262249, 0.744279, 0.667353, -0.978376, 0.156122, -0.13567, -1.48634, 3.22867, -2.51018)
light_color = Color(0.95484, 0.837153, 0.722321, 1)
shadow_enabled = true
shadow_bias = 0.01
@ -52,12 +38,23 @@ directional_shadow_split_2 = 0.408
directional_shadow_split_3 = 0.646
directional_shadow_blend_splits = true
[node name="LightmapGI" type="LightmapGI" parent="."]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -3.95704, 0, -2.80582)
quality = 2
directional = true
camera_attributes = SubResource("CameraAttributesPractical_ikuna")
generate_probes_subdiv = 1
light_data = ExtResource("3_h3v2c")
[node name="OccluderInstance3D" type="OccluderInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 0)
occluder = ExtResource("2_07v50")
bake_mask = 4294967293
bake_simplification_distance = 0.2
[node name="NavigationRegion3D" type="NavigationRegion3D" parent="."]
navigation_mesh = SubResource("NavigationMesh_e0njj")
[node name="dirt_ramp2" parent="NavigationRegion3D" instance=ExtResource("3_2vit1")]
transform = Transform3D(-1, 0, 8.74228e-08, -1.9032e-08, 0.976016, -0.2177, -8.5326e-08, -0.2177, -0.976016, 8.97292, -0.455602, -11.143)
[node name="trenchwall_2m" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -3.61252, 0, -3.0716)
@ -106,17 +103,62 @@ transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0.0557
[node name="trenchwall_2m12" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0.0557587, 0, -12.5187)
[node name="trenchwall_2m13" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, 2.80878, 0, -15.1156)
[node name="trenchwall_2m48" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-0.213371, 0, 0.976971, 0, 1, 0, -0.976971, 0, -0.213371, 1.0041, 0, -14.8983)
transform = Transform3D(-0.982245, 6.44651e-07, -0.187604, 6.4406e-07, 1, 6.41039e-08, 0.187604, -5.78625e-08, -0.982245, -0.934928, 0, -16.1974)
[node name="trenchwall_2m52" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-0.983413, 0, -0.181377, 0, 1, 0, 0.181377, 0, -0.983413, -1.30998, 0, -18.0615)
[node name="trenchwall_2m53" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-0.999989, -6.40485e-07, -0.0045201, -6.4022e-07, 1, -6.00056e-08, 0.0045201, -5.71111e-08, -0.999989, -1.47101, 0, -19.9056)
[node name="trenchwall_2m54" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-0.624002, -1.3336e-06, 0.781422, -1.92498e-06, 1, 1.69447e-07, -0.781422, -1.39849e-06, -0.624002, -1.08963, 0, -20.9422)
[node name="trenchwall_2m55" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-0.363235, -3.55529e-06, 0.931697, -4.02932e-06, 1, 2.24504e-06, -0.931697, -2.93863e-06, -0.363235, 0.343411, 0, -21.7627)
[node name="trenchwall_2m56" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-0.0611527, -3.59344e-06, 0.998128, -4.2698e-06, 1, 3.33857e-06, -0.998128, -4.05764e-06, -0.0611527, 2.06559, 0, -22.0744)
[node name="trenchwall_2m58" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-0.0107332, -3.56679e-06, 0.999942, -4.27636e-06, 1, 3.52109e-06, -0.999942, -4.23833e-06, -0.0107332, 4.02478, 0, -22.1515)
[node name="trenchwall_2m60" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-0.0107332, -3.56679e-06, 0.999942, -4.27636e-06, 1, 3.52109e-06, -0.999942, -4.23833e-06, -0.0107332, 5.96645, 0, -22.1634)
[node name="trenchwall_2m62" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-0.0107332, -3.56679e-06, 0.999942, -4.27636e-06, 1, 3.52109e-06, -0.999942, -4.23833e-06, -0.0107332, 7.96971, 7.05407e-06, -22.1849)
[node name="trenchwall_2m63" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(0.550831, -2.60953e-06, 0.834617, -3.67789e-06, 1, 5.55395e-06, -0.834617, -6.12891e-06, 0.550831, 8.70018, 7.05407e-06, -22.3437)
[node name="trenchwall_2m64" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(0.974714, -1.55502e-07, 0.223454, -1.46549e-06, 1, 7.0884e-06, -0.223454, -7.23664e-06, 0.974714, 9.38733, 7.05407e-06, -22.0122)
[node name="trenchwall_2m65" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(0.999927, 6.13543e-07, 0.012077, -7.00303e-07, 1, 7.17967e-06, -0.012077, -7.18761e-06, 0.999927, 9.62248, 7.05407e-06, -20.3307)
[node name="trenchwall_2m50" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(0.999953, 0, 0.00968616, 0, 1, 0, -0.00968616, 0, 0.999953, 0.00496352, 0, -16.8262)
[node name="trenchwall_2m51" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(0.996909, -3.31801e-07, 0.0785632, 3.29578e-07, 1, 4.12585e-08, -0.0785632, -1.52382e-08, 0.996909, -0.0964465, 0, -18.6704)
[node name="trenchwall_2m57" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(0.0781457, -3.60461e-06, -0.996942, 4.2229e-06, 1, -3.28465e-06, 0.996942, -3.9533e-06, 0.0781457, 1.69303, 0, -20.8287)
[node name="trenchwall_2m61" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-0.00455553, -3.60461e-06, -0.999989, 3.93684e-06, 1, -3.62258e-06, 0.999989, -3.9533e-06, -0.00455553, 6.56317, 7.10543e-15, -20.8905)
[node name="trenchwall_2m68" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-0.0734124, -3.5731e-06, -0.997301, 3.92711e-06, 1, -3.87184e-06, 0.997301, -4.20075e-06, -0.0734124, 3.65404, 7.10543e-15, -20.7402)
[node name="trenchwall_2m69" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-0.0382659, -3.59132e-06, -0.999267, 3.93423e-06, 1, -3.74461e-06, 0.999267, -4.07464e-06, -0.0382659, 5.02965, 7.10543e-15, -20.7453)
[node name="trenchwall_2m49" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-0.954026, 0, 0.299724, 0, 1, 0, -0.299724, 0, -0.954026, 0.239106, 0, -14.1092)
[node name="trenchwall_2m14" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, 4.71428, 0, -15.1156)
transform = Transform3D(-0.911662, 4.40115e-07, -0.410942, 5.3912e-07, 1, -1.25031e-07, 0.410942, -3.35532e-07, -0.911662, -0.3548, 0, -14.5001)
[node name="trenchwall_2m21" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(1, 0, -1.74845e-07, 0, 1, 0, 1.74845e-07, 0, 1, 9.62828, 0, -14.3814)
@ -133,15 +175,6 @@ transform = Transform3D(1, 0, -1.74845e-07, 0, 1, 0, 1.74845e-07, 0, 1, 9.62828,
[node name="trenchwall_2m25" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(1, 0, -1.74845e-07, 0, 1, 0, 1.74845e-07, 0, 1, 9.62828, 0, -18.3814)
[node name="trenchwall_2m15" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, 6.67398, 0, -15.1156)
[node name="trenchwall_2m26" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 8.30548, -2.38419e-07, -16.833)
[node name="trenchwall_2m28" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 8.30548, -2.38419e-07, -12.5172)
[node name="trenchwall_2m27" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 8.30548, -2.38419e-07, -18.833)
@ -151,21 +184,9 @@ transform = Transform3D(1, 0, -1.74846e-07, 0, 1, 0, 1.74846e-07, 0, 1, 1.09151,
[node name="trenchwall_2m17" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(1, 0, -1.74846e-07, 0, 1, 0, 1.74846e-07, 0, 1, 1.09151, 0, -12.5187)
[node name="trenchwall_2m18" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-2.18557e-07, 0, -1, 0, 1, 0, 1, 0, -2.18557e-07, 2.80878, 0, -14.0798)
[node name="trenchwall_2m19" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-2.18557e-07, 0, -1, 0, 1, 0, 1, 0, -2.18557e-07, 4.71428, 0, -14.0798)
[node name="trenchwall_2m20" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-2.18557e-07, 0, -1, 0, 1, 0, 1, 0, -2.18557e-07, 6.67398, 0, -14.0798)
[node name="dirtpile_wall" parent="NavigationRegion3D" instance=ExtResource("7_63acg")]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.296655, 4.76837e-07, -11.4797)
[node name="dirtpile_wall2" parent="NavigationRegion3D" instance=ExtResource("7_63acg")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 3.58818, 0, -13.6769)
[node name="trenchfloor2" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(-4.32117e-08, 0.150778, -0.988568, 6.59071e-09, 0.988568, 0.150778, 1, 0, -4.37114e-08, -3.38752, 1.01918, -2.43765)
@ -190,26 +211,53 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6897, 0.502504, -10.7771)
[node name="trenchfloor8" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6897, 0.502504, -12.7771)
[node name="trenchfloor9" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 3.16158, 0.502504, -14.4816)
[node name="trenchfloor30" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(0.727331, 0.0632634, -0.683365, 0.00127361, 0.995616, 0.0935263, 0.686286, -0.0688944, 0.724062, 4.13014, 0.32145, -12.3986)
[node name="trenchfloor33" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(-0.795115, 0.0133116, 0.606313, 0.0224584, 0.999719, 0.00750234, -0.606043, 0.0195818, -0.795191, 5.61923, 0.401438, -15.5874)
[node name="trenchfloor29" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(1, 0, -1.06581e-14, 0, 1, 0, 1.06581e-14, 0, 1, 0.102167, 0.502503, -16.9068)
[node name="trenchfloor34" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(0.995476, 3.43942e-07, 0.0950118, -3.43942e-07, 1, -1.63764e-08, -0.0950118, -1.63764e-08, 0.995476, -0.194781, 0.502381, -18.8103)
[node name="trenchfloor35" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(0.963378, -9.70688e-07, -0.268147, 9.70687e-07, 1, -1.32571e-07, 0.268147, -1.32571e-07, 0.963378, 0.128155, 0.502381, -20.1159)
[node name="trenchfloor36" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(0.264058, -3.49151e-06, -0.964507, 3.49151e-06, 1, -2.6641e-06, 0.964507, -2.6641e-06, 0.264058, 2.29016, 0.502381, -21.1561)
[node name="trenchfloor37" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(0.0179934, -3.61941e-06, -0.999838, 3.61941e-06, 1, -3.55485e-06, 0.999838, -3.55486e-06, 0.0179934, 3.8865, 0.502381, -21.3492)
[node name="trenchfloor38" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(0.0179934, -3.61941e-06, -0.999838, 3.61941e-06, 1, -3.55485e-06, 0.999838, -3.55486e-06, 0.0179934, 5.94263, 0.502381, -21.3573)
[node name="trenchfloor39" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(0.0179934, -3.61941e-06, -0.999838, 3.61941e-06, 1, -3.55485e-06, 0.999838, -3.55486e-06, 0.0179934, 7.91722, 0.502381, -21.409)
[node name="trenchfloor40" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(-0.745476, -2.41284e-06, -0.666533, 2.41284e-06, 1, -6.31861e-06, 0.666533, -6.31861e-06, -0.745476, 8.93058, 0.502381, -20.3743)
[node name="trenchfloor28" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 1.16158, 0.502504, -14.4816)
[node name="trenchfloor10" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 5.16158, 0.502504, -14.4816)
[node name="trenchfloor11" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 7.16158, 0.502504, -14.4816)
transform = Transform3D(0.242955, 8.79494e-07, -0.970038, -1.08463e-07, 1, 8.79494e-07, 0.970038, -1.08463e-07, 0.242955, 0.375111, 0.502504, -14.6214)
[node name="trenchfloor12" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(0.992548, -0.119669, -0.0229919, 0.119637, 0.992814, -0.00277134, 0.0231583, 5.19146e-10, 0.999732, 9.10488, 0.493173, -14.4816)
transform = Transform3D(0.999036, -0.0390482, -0.0200945, 0.0373617, 0.996223, -0.0783852, 0.0230794, 0.0775588, 0.996721, 9.10567, 0.472966, -14.5855)
[node name="trenchfloor41" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(0.99962, -0.0171433, -0.02159, 0.0151519, 0.995895, -0.0892457, 0.0230313, 0.0888847, 0.995776, 9.08643, 0.311359, -12.7145)
[node name="trenchfloor13" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 9.23828, -2.38419e-07, -12.465)
[node name="trenchwall_2m30" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 8.30548, -2.38419e-07, -10.5172)
[node name="trenchwall_2m66" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(0.990693, -0.136113, -2.11179e-14, 0.136113, 0.990693, -2.90142e-15, 2.13163e-14, 0, 1, 7.23394, -0.0176902, -8.5763)
[node name="trenchwall_2m67" parent="NavigationRegion3D" instance=ExtResource("4_hbo2r")]
transform = Transform3D(0.979747, -0.20024, -2.08846e-14, 0.20024, 0.979747, -4.26837e-15, 2.13163e-14, 0, 1, 7.42873, 0.0783378, -18.7594)
[node name="trenchfloor16" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 9.23828, 0.189088, -10.465)
@ -290,23 +338,26 @@ transform = Transform3D(-0.251698, 0, -0.967806, 0, 1, 0, 0.967806, 0, -0.251698
transform = Transform3D(-0.99452, -0.0848907, 0.0610269, -0.077975, 0.991095, 0.107938, -0.0696463, 0.102588, -0.992283, 9.14388, 0.575037, -16.4858)
[node name="trenchfloor15" parent="NavigationRegion3D" instance=ExtResource("8_14rhs")]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 9.16158, -2.38419e-07, -18.7331)
[node name="dirtpile_wall_large" parent="NavigationRegion3D" instance=ExtResource("9_y6ebv")]
transform = Transform3D(-0.985639, 0, -0.168868, 0, 1, 0, 0.168868, 0, -0.985639, 8.33217, 0.109982, -16.5982)
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 9.16158, 0.598945, -18.6672)
[node name="wooden_bar_large" parent="NavigationRegion3D" instance=ExtResource("10_r53rh")]
transform = Transform3D(0.57707, 0.0101483, -0.816632, -0.00080363, 0.999929, 0.0118582, 0.816694, -0.00618675, 0.577037, 10.1047, -0.256461, 1.7068)
[node name="wooden_bar_large2" parent="NavigationRegion3D" instance=ExtResource("10_r53rh")]
transform = Transform3D(0.714546, 0, 0.699589, 0, 1, 0, -0.699589, 0, 0.714546, 7.77538, -0.242456, -15.6482)
transform = Transform3D(0.714546, 0, 0.699589, 0, 1, 0, -0.699589, 0, 0.714546, 7.69112, -0.242578, -17.6495)
[node name="wooden_bar_large3" parent="NavigationRegion3D" instance=ExtResource("10_r53rh")]
transform = Transform3D(-0.833992, 0, 0.551777, 0, 1, 0, -0.551777, 0, -0.833992, 7.78188, -0.242456, -13.6035)
transform = Transform3D(-0.993322, -0.102175, -0.0535815, -0.0964711, 0.990302, -0.0999826, 0.0632779, -0.0941458, -0.993545, 7.89379, -0.259672, -9.5068)
[node name="wooden_bar_large4" parent="NavigationRegion3D" instance=ExtResource("10_r53rh")]
transform = Transform3D(-0.741191, 0, -0.671294, 0, 1, 0, 0.671294, 0, -0.741191, 1.68311, -0.242456, -13.5949)
[node name="wooden_bar_large7" parent="NavigationRegion3D" instance=ExtResource("10_r53rh")]
transform = Transform3D(0.494139, 0, -0.869383, 0, 1, 0, 0.869383, 0, 0.494139, 0.644925, -0.242456, -15.6507)
[node name="wooden_bar_large8" parent="NavigationRegion3D" instance=ExtResource("10_r53rh")]
transform = Transform3D(0.951078, -0.0435904, -0.305861, 0.0557394, 0.997961, 0.0310957, 0.303881, -0.0466229, 0.951568, 1.05927, -0.244253, -15.2906)
[node name="wooden_bar_large5" parent="NavigationRegion3D" instance=ExtResource("10_r53rh")]
transform = Transform3D(0.748527, -0.0242061, 0.662662, 0, 0.999334, 0.0365042, -0.663104, -0.0273244, 0.748028, -0.437476, -0.242475, -3.45243)
@ -316,26 +367,86 @@ transform = Transform3D(-0.665803, 0.0843217, -0.741347, 0, 0.993594, 0.113012,
[node name="trenchwall_2m_dirt" parent="NavigationRegion3D" instance=ExtResource("11_kca0e")]
transform = Transform3D(-0.997274, 0, -0.0737775, 0, 1, 0, 0.0737775, 0, -0.997274, -3.9281, -0.119269, -2.51586)
[node name="trenchwall_2m_dirt3" parent="NavigationRegion3D" instance=ExtResource("11_kca0e")]
transform = Transform3D(-0.0737775, 0, 0.997274, 0, 1, 0, -0.997274, 0, -0.0737775, 9.06163, -0.119269, -17.3266)
[node name="trenchwall_5m_dirt" parent="NavigationRegion3D" instance=ExtResource("12_t2jcw")]
transform = Transform3D(-0.981195, 0.186002, -0.0515864, 0.18625, 0.982503, 2.32831e-10, 0.0506838, -0.00960795, -0.998668, 7.92201, -0.290734, -4.4115)
transform = Transform3D(-0.362879, 0.0419217, -0.930893, 0.18625, 0.982093, -0.0283762, 0.913034, -0.183675, -0.364189, 4.94153, -0.213727, -11.0694)
[node name="trenchwall_5m_dirt4" parent="NavigationRegion3D" instance=ExtResource("12_t2jcw")]
transform = Transform3D(-0.22519, 0.0426892, 0.973379, 0.18625, 0.982503, -6.39481e-07, -0.956348, 0.181292, -0.2292, 4.91116, -0.448668, -16.5879)
[node name="trenchwall_5m_dirt2" parent="NavigationRegion3D" instance=ExtResource("12_t2jcw")]
transform = Transform3D(-0.998686, 0, -0.0512378, 0, 1, 0, 0.0512378, 0, -0.998686, 8.43778, -0.110156, 0.664297)
[node name="trenchwall_5m_dirt5" parent="NavigationRegion3D" instance=ExtResource("12_t2jcw")]
transform = Transform3D(-0.989048, 0.146138, 0.0206807, 0.146169, 0.98926, 0, -0.0204586, 0.00302289, -0.999786, 7.8421, -0.383126, -4.00691)
[node name="trenchwall_5m_dirt3" parent="NavigationRegion3D" instance=ExtResource("12_t2jcw")]
transform = Transform3D(-0.474211, 0, -0.880411, 0, 1, 0, 0.880411, 0, -0.474211, 10.0754, -0.110156, 3.8129)
[node name="trenchwall_2m_dirt2" parent="NavigationRegion3D" instance=ExtResource("11_kca0e")]
transform = Transform3D(-0.826945, 0.0284296, -0.561564, 0.0343588, 0.99941, 1.04599e-09, 0.561232, -0.0192946, -0.827434, 8.64298, -0.221343, 2.6185)
[node name="walkover3" parent="." instance=ExtResource("13_bq7v3")]
transform = Transform3D(0.146791, 0, -0.989167, 0, 1, 0, 0.989167, 0, 0.146791, 6.2642, 0.4036, -14.6069)
[node name="trenchwall_2m_dirt8" parent="NavigationRegion3D" instance=ExtResource("11_kca0e")]
transform = Transform3D(-0.945259, 0.107492, -0.308109, 0.131618, 0.98957, -0.0585557, 0.2986, -0.0959028, -0.949547, 3.5767, -0.261367, -12.1952)
[node name="walkover4" parent="." instance=ExtResource("13_bq7v3")]
transform = Transform3D(-0.996345, -0.0854169, 8.7263e-08, -0.0854169, 0.996345, 3.73369e-09, -8.7263e-08, -3.73369e-09, -1, 9.09391, 0.20791, -10.4648)
[node name="trenchwall_2m_dirt6" parent="NavigationRegion3D" instance=ExtResource("11_kca0e")]
transform = Transform3D(-0.641993, 0.0852411, 0.761956, 0.131614, 0.991301, -5.95275e-06, -0.755329, 0.10028, -0.647628, 2.78888, -0.286762, -16.074)
[node name="wooden_bar_large11" parent="NavigationRegion3D" instance=ExtResource("10_r53rh")]
transform = Transform3D(-0.304698, 0.00933874, -0.952403, 3.44822e-06, 0.999952, 0.00980387, 0.952449, 0.00298394, -0.304683, 0.259645, -0.226604, -19.9535)
[node name="wooden_bar_large15" parent="NavigationRegion3D" instance=ExtResource("10_r53rh")]
transform = Transform3D(0.243581, -0.0469861, 0.968742, -3.51015e-06, 0.998826, 0.0484461, -0.969881, -0.011804, 0.243295, -1.66399, -0.226604, -20.6514)
[node name="wooden_bar_large13" parent="NavigationRegion3D" instance=ExtResource("10_r53rh")]
transform = Transform3D(-0.83296, -0.00542542, 0.553307, -2.0027e-06, 0.999952, 0.00980196, -0.553333, 0.00816353, -0.83292, 7.77366, -0.226604, -20.3749)
[node name="wooden_bar_large14" parent="NavigationRegion3D" instance=ExtResource("10_r53rh")]
transform = Transform3D(-0.00191975, -0.00980496, 0.99995, -3.62025e-06, 0.999952, 0.00980497, -0.999998, 1.52057e-05, -0.00191961, 7.96167, -0.226604, -19.9825)
[node name="wooden_bar_large12" parent="NavigationRegion3D" instance=ExtResource("10_r53rh")]
transform = Transform3D(-0.888689, 0.0167756, -0.458203, 1.39326e-06, 0.999331, 0.0365845, 0.45851, 0.0325116, -0.888094, 0.514215, -0.226604, -20.3381)
[node name="dirtpile_wall_large" parent="NavigationRegion3D" instance=ExtResource("9_y6ebv")]
transform = Transform3D(0.439103, -0.100271, -0.892824, 0.125113, 0.990894, -0.049753, 0.889683, -0.0898574, 0.44765, 2.57891, 0.829828, -13.7665)
[node name="dirtpile_large" parent="NavigationRegion3D" instance=ExtResource("14_c2meq")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.47735, 0.447742, -13.561)
[node name="dirtpile_large6" parent="NavigationRegion3D" instance=ExtResource("14_c2meq")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.47076, 0.549203, -21.7556)
[node name="dirtpile_large10" parent="NavigationRegion3D" instance=ExtResource("14_c2meq")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.50558, 0.548562, -20.8316)
[node name="dirtpile_large4" parent="NavigationRegion3D" instance=ExtResource("14_c2meq")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.62594, 0.469081, -11.7851)
[node name="dirtpile_large5" parent="NavigationRegion3D" instance=ExtResource("14_c2meq")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.2681, 0.366858, -14.1004)
[node name="dirtpile_large7" parent="NavigationRegion3D" instance=ExtResource("14_c2meq")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.10884, 0.267856, -11.8789)
[node name="dirtpile_large8" parent="NavigationRegion3D" instance=ExtResource("14_c2meq")]
transform = Transform3D(0.997595, 0.0693002, -0.00152311, -0.0693168, 0.997325, -0.0231967, -8.84988e-05, 0.0232464, 0.99973, 7.27675, 0.359377, -11.861)
[node name="dirtpile_large3" parent="NavigationRegion3D" instance=ExtResource("14_c2meq")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.95609, 0.490884, -16.4943)
[node name="dirtpile_large2" parent="NavigationRegion3D" instance=ExtResource("14_c2meq")]
transform = Transform3D(0.999455, 0.0329982, 0, -0.0329982, 0.999455, 0, 0, 0, 1, 2.58199, 0.482922, -14.8697)
[node name="dirtpile_large9" parent="NavigationRegion3D" instance=ExtResource("14_c2meq")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.26991, 0.464068, -15.0431)
[node name="walkover4" parent="NavigationRegion3D" instance=ExtResource("13_bq7v3")]
transform = Transform3D(-0.999999, -0.00108211, 8.7263e-08, -0.00108211, 0.999999, 3.73369e-09, -8.7267e-08, 3.63926e-09, -1, 8.97338, 0.315681, -7.50491)
[node name="walkover5" parent="NavigationRegion3D" instance=ExtResource("13_bq7v3")]
transform = Transform3D(0.00262426, 0.000418055, 0.999996, -0.0172848, 0.99985, -0.00037264, -0.999847, -0.0172838, 0.00263109, 3.02625, 0.279988, -21.4537)
[node name="walkover6" parent="NavigationRegion3D" instance=ExtResource("13_bq7v3")]
transform = Transform3D(-0.992974, 0.0306176, -0.114305, 0.0271223, 0.999119, 0.0320095, 0.115184, 0.0286844, -0.99293, 8.92164, 0.329272, -19.2989)
[node name="ArtilleryTarget" parent="." instance=ExtResource("13_rl1f8")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.965554, 2.51555, 4.10178)
@ -344,17 +455,17 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.965554, 2.51555, 4.10178)
spread = 3.0
frequency_min = 3.0
frequency_max = 5.0
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.95139, 2.51555, -10.4458)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.22744, 2.51555, -3.20633)
[node name="ArtilleryTarget5" parent="." instance=ExtResource("13_rl1f8")]
spread = 2.0
frequency_min = 3.0
frequency_max = 5.0
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.66028, 2.51555, -0.763191)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.3206, 2.51555, 11.1819)
[node name="ArtilleryTarget3" parent="." instance=ExtResource("13_rl1f8")]
frequency_max = 8.0
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.977764, 2.51555, -22.0148)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.16313, 2.51555, -29.9782)
[node name="ArtilleryTarget6" parent="." instance=ExtResource("13_rl1f8")]
frequency_max = 8.0

Binary file not shown.

View File

@ -19,31 +19,30 @@ void Enemy::_ready() {
this->add_child(timer);
timer->start(this->update_interval);
timer->connect("timeout", callable_mp(this, &Enemy::update));
this->target_rotation = this->get_rotation().y;
}
void Enemy::_process(double delta) {
float const angle_left{this->target_rotation - this->get_rotation().y};
float const step(gd::Math::sign(angle_left) * delta * this->TURN_SPEED);
if(gd::Math::abs(angle_left) <= gd::Math::abs(step)) {
this->rotate_y(angle_left);
this->at_target_angle = true;
} else {
this->rotate_y(step);
this->at_target_angle = false;
}
}
void Enemy::update() {
if(this->can_see_player)
this->last_known_player_position = this->player->get_global_position();
if(this->current_action_fn != nullptr)
this->current_action_fn = (ActionFn)(this->*current_action_fn)();
}
void Enemy::chase_enter() {
if(this->player != nullptr)
this->agent->set_target_position(this->player->get_global_position());
}
void Enemy::chase() {
bool const at_end{!this->agent->is_navigation_finished()};
this->anim_tree->set_lock_running(at_end);
this->anim_tree->set_aim_weapon(!at_end);
if(at_end) {
gd::Vector3 const global_pos{this->get_global_position()};
gd::Vector3 const target{global_pos * 2 - this->agent->get_next_path_position()};
this->look_at({target.x, global_pos.y, target.z});
} else if(this->get_global_position().distance_to(this->player->get_global_position()) >= this->agent->get_target_desired_distance())
this->chase_enter(); // repath
}
Enemy::ActionFn Enemy::wait_line_of_sight() {
if(this->can_see_player)
return (ActionFn)&Enemy::take_aim;
else
@ -51,49 +50,37 @@ Enemy::ActionFn Enemy::wait_line_of_sight() {
}
Enemy::ActionFn Enemy::take_aim() {
this->target_rotation = this->get_global_basis().get_column(2).signed_angle_to(this->last_known_player_position - this->get_global_position(), {0.f, 1.f, 0.f});
this->target_rotation -= gd::Math::sign(this->target_rotation) * this->MISS_ANGLE;
this->target_rotation += this->get_global_rotation().y;
this->anim_tree->set_aim_weapon(true);
if(this->anim_tree->get_current_state().begins_with("Aim"))
return (ActionFn)&Enemy::hit;
if(this->anim_tree->get_current_state().begins_with("Aim") && this->at_target_angle)
return (ActionFn)&Enemy::fire;
else
return(ActionFn)&Enemy::take_aim;
}
Enemy::ActionFn Enemy::miss() {
if(this->can_see_player) {
gd::Basis const basis{this->get_global_basis()};
this->look_at(this->get_global_position() * 2 - this->player->get_global_position() + basis.get_column(0) * 0.6f);
this->anim_tree->set_aim_weapon(true);
this->anim_tree->set_fire_weapon();
++this->missed_shots;
return (ActionFn)&Enemy::wait_end_of_shot;
} else {
this->chase();
}
return (ActionFn)&Enemy::miss;
}
Enemy::ActionFn Enemy::hit() {
if(this->can_see_player) {
this->look_at(this->get_global_position() * 2 - this->player->get_global_position());
this->anim_tree->set_aim_weapon(true);
this->anim_tree->set_fire_weapon();
this->missed_shots = 0;
return (ActionFn)&Enemy::wait_end_of_shot;
} else {
this->chase();
}
return (ActionFn)&Enemy::hit;
Enemy::ActionFn Enemy::fire() {
this->anim_tree->set_fire_weapon();
this->missed_shots = (this->missed_shots + 1) % (this->SHOTS_BEFORE_HIT + 1);
return (ActionFn)&Enemy::wait_end_of_shot;
}
Enemy::ActionFn Enemy::wait_end_of_shot() {
if(this->anim_tree->get_current_state().begins_with("Fire") || this->anim_tree->get_fire_weapon()) // last shot still going
return (ActionFn)&Enemy::wait_end_of_shot;
else
return this->missed_shots >= SHOTS_BEFORE_HIT ? (ActionFn)&Enemy::hit : (ActionFn)&Enemy::miss;
float const target_diff{this->get_global_basis().get_column(2).signed_angle_to(this->last_known_player_position - this->get_global_position(), {0.f, 1.f, 0.f})};
this->target_rotation = this->get_global_rotation().y + target_diff;
if(this->missed_shots < this->SHOTS_BEFORE_HIT)
this->target_rotation -= gd::Math::sign(target_diff) * this->MISS_ANGLE;
else if(this->missed_shots >= this->SHOTS_BEFORE_HIT)
this->target_rotation -= gd::Math::sign(target_diff) * this->HIT_ANGLE;
if(this->at_target_angle && !this->anim_tree->get_current_state().begins_with("Fire") && !this->anim_tree->get_fire_weapon())
return (ActionFn)&Enemy::fire;
else
return (ActionFn)&Enemy::wait_end_of_shot;
}
void Enemy::_physics_process(double delta) {
void Enemy::_physics_process(double delta [[maybe_unused]]) {
this->update_can_see_player();
gd::Basis const basis{this->get_global_basis()};
gd::Vector3 const motion{this->anim_tree->get_root_motion_position()};
@ -119,11 +106,17 @@ void Enemy::notice_player(Player *player) {
void Enemy::update_can_see_player() {
if(this->player == nullptr)
return;
gd::Vector3 origin{this->get_global_position() + gd::Vector3{0.f, 1.8f, 0.f}};
gd::PhysicsDirectSpaceState3D *space{this->get_world_3d()->get_direct_space_state()};
gd::Ref<gd::PhysicsRayQueryParameters3D> query{gd::PhysicsRayQueryParameters3D::create(origin, this->player->get_global_position() + gd::Vector3{0.f, 1.8f, 0.f})};
gd::Dictionary dict{space->intersect_ray(query)};
this->can_see_player = (dict.is_empty() || gd::Object::cast_to<Node>(dict["collider"]) == this->player);
gd::Vector3 const origin{this->get_global_position() + gd::Vector3{0.f, 1.8f, 0.f}};
gd::Vector3 const target{this->player->get_global_position() + gd::Vector3{0.f, 1.8f, 0.f}};
float const dot{(target - origin).normalized().dot(this->get_global_basis().get_column(2))};
if(dot <= 0.2f && target.distance_to(origin) > 4.f) {
this->can_see_player = false;
} else {
gd::PhysicsDirectSpaceState3D *space{this->get_world_3d()->get_direct_space_state()};
gd::Ref<gd::PhysicsRayQueryParameters3D> query{gd::PhysicsRayQueryParameters3D::create(origin, target)};
gd::Dictionary dict{space->intersect_ray(query)};
this->can_see_player = (dict.is_empty() || gd::Object::cast_to<Node>(dict["collider"]) == this->player);
}
}
void Enemy::set_update_interval(float time) {

View File

@ -16,27 +16,29 @@ typedef void *(Enemy::*ActionFn_)();
typedef ActionFn_ (Enemy::*ActionFn)();
public:
virtual void _ready() override;
virtual void _process(double delta) override;
void update();
void chase_enter();
void chase();
ActionFn wait_line_of_sight();
ActionFn take_aim();
ActionFn miss();
ActionFn hit();
ActionFn fire();
ActionFn stab_enter();
ActionFn stab();
ActionFn wait_end_of_shot();
virtual void _physics_process(double delta) override;
virtual void damage() override;
void notice_player(Player *player);
void update_can_see_player();
void set_update_interval(float time);
float get_update_interval() const;
private:
int const SHOTS_BEFORE_HIT{1};
int const SHOTS_BEFORE_HIT{0};
float const TURN_SPEED{3.f};
float const HIT_ANGLE{.05f};
float const MISS_ANGLE{.2f};
float target_rotation{0.f};
bool at_target_angle{false};
gd::Vector3 last_known_player_position{0.f, 0.f, 0.f};
int missed_shots{0};
double update_interval{0.4};
ActionFn current_action_fn{nullptr};