diff --git a/levels/ghost_ship/level/airlock/airlock.tscn b/levels/ghost_ship/level/airlock/airlock.tscn index a5024d5..29d253b 100644 --- a/levels/ghost_ship/level/airlock/airlock.tscn +++ b/levels/ghost_ship/level/airlock/airlock.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=67 format=3 uid="uid://cwhmn3w8hoads"] +[gd_scene load_steps=71 format=3 uid="uid://cwhmn3w8hoads"] [ext_resource type="ArrayMesh" uid="uid://dpr5cgq743f4s" path="res://assets/level/floor/floor_9x9.mesh" id="1_isxnv"] [ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="2_si4vj"] @@ -34,6 +34,9 @@ [ext_resource type="Texture2D" uid="uid://c1v1sj6b8rwrl" path="res://levels/ghost_ship/level/airlock/overhead_light_airlock_mask_C.png" id="31_2dnfr"] [ext_resource type="Script" uid="uid://c3i315cnqikok" path="res://src/game/tutorial/tutorial_area.gd" id="33_a8g8h"] [ext_resource type="Script" uid="uid://dg55jdoyctdq6" path="res://src/game/tutorial/tutorial_timer.gd" id="34_cd8k0"] +[ext_resource type="PackedScene" uid="uid://5vh7mnjavlle" path="res://src/world/grunk_beast/beast_spawner/transient_floor_spawner.tscn" id="35_rnvcx"] +[ext_resource type="PackedScene" uid="uid://dxm83cmpppqxr" path="res://src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.tscn" id="35_wnav5"] +[ext_resource type="PackedScene" uid="uid://c8vbjgol5nenc" path="res://src/world/grunk_beast/beast_spawner/floor_spawner.tscn" id="37_cxsgl"] [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_yvipw"] data = PackedVector3Array(4.5, 0, 4.5, -4.5, 0, 4.5, 4.5, 0, -4.5, 4.5, 0, -4.5, -4.5, 0, 4.5, -4.5, 0, -4.5) @@ -194,6 +197,9 @@ size = Vector3(9, 3, 8.7) [sub_resource type="BoxShape3D" id="BoxShape3D_cd8k0"] size = Vector3(9, 3, 4.2) +[sub_resource type="BoxShape3D" id="BoxShape3D_se5i6"] +size = Vector3(9, 0, 9) + [node name="Airlock" type="Node3D"] [node name="Bounds" type="Node3D" parent="."] @@ -493,6 +499,44 @@ one_shot = true script = ExtResource("34_cd8k0") tutorial_key = &"game/tutorial/progress/tool_prev_next" +[node name="BeastSpawnZone" parent="." instance=ExtResource("35_wnav5")] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="BeastSpawnZone"] +shape = SubResource("BoxShape3D_se5i6") + +[node name="TransientFloorSpawner" parent="BeastSpawnZone" instance=ExtResource("35_rnvcx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.90193, 0, -3.25218) + +[node name="TransientFloorSpawner2" parent="BeastSpawnZone" instance=ExtResource("35_rnvcx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.57096, 0, -3.25218) + +[node name="TransientFloorSpawner3" parent="BeastSpawnZone" instance=ExtResource("35_rnvcx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0158366, 0, -3.21015) + +[node name="TransientFloorSpawner4" parent="BeastSpawnZone" instance=ExtResource("35_rnvcx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.32914, 0, -3.21015) + +[node name="TransientFloorSpawner5" parent="BeastSpawnZone" instance=ExtResource("35_rnvcx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.87025, 0, -3.23817) + +[node name="TransientFloorSpawner6" parent="BeastSpawnZone" instance=ExtResource("35_rnvcx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.77746, 0, -2.35553) + +[node name="TransientFloorSpawner7" parent="BeastSpawnZone" instance=ExtResource("35_rnvcx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.82822, 0, -1.85117) + +[node name="TransientFloorSpawner8" parent="BeastSpawnZone" instance=ExtResource("35_rnvcx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.740711, 0, -1.82315) + +[node name="TransientFloorSpawner9" parent="BeastSpawnZone" instance=ExtResource("35_rnvcx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.660304, 0, -1.79513) + +[node name="TransientFloorSpawner10" parent="BeastSpawnZone" instance=ExtResource("35_rnvcx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.697386, 0, -2.4178) + +[node name="FloorSpawner" parent="BeastSpawnZone" instance=ExtResource("37_cxsgl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 3) + [connection signal="body_entered" from="ToolSwitchTutorialArea" to="ToolPrevNextTutorialTimer" method="start" unbinds=1] [editable path="Props/EmptySuitChamber"] diff --git a/levels/ghost_ship/level/corridor_1/corridor_1.tscn b/levels/ghost_ship/level/corridor_1/corridor_1.tscn index f2bae3b..630284e 100644 --- a/levels/ghost_ship/level/corridor_1/corridor_1.tscn +++ b/levels/ghost_ship/level/corridor_1/corridor_1.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=37 format=4 uid="uid://ddmgqfhiv3aag"] +[gd_scene load_steps=43 format=4 uid="uid://ddmgqfhiv3aag"] [ext_resource type="ArrayMesh" uid="uid://cqd0a7ousx01n" path="res://assets/level/hallway/hallway_1.mesh" id="1_ckpmb"] [ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="3_s4vba"] @@ -18,8 +18,11 @@ [ext_resource type="ArrayMesh" uid="uid://b3f5p4o7qr1mf" path="res://assets/level/t-junction/t-junction_2.mesh" id="18_xuoub"] [ext_resource type="ArrayMesh" uid="uid://xn5nceqby4wd" path="res://assets/level/wall/wall_3.mesh" id="19_unrww"] [ext_resource type="ArrayMesh" uid="uid://c4klxlj1oop7t" path="res://assets/level/hallway/hallway_4.mesh" id="20_kkj02"] +[ext_resource type="PackedScene" uid="uid://dxm83cmpppqxr" path="res://src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.tscn" id="21_833wb"] [ext_resource type="ArrayMesh" uid="uid://cojfnrek4kgbb" path="res://assets/props/guide_sign/guide_sign.obj" id="21_mh2f3"] +[ext_resource type="PackedScene" uid="uid://c8vbjgol5nenc" path="res://src/world/grunk_beast/beast_spawner/floor_spawner.tscn" id="22_ckpmb"] [ext_resource type="Material" uid="uid://b8xdnogrfefvf" path="res://levels/ghost_ship/guide_sign/mess_hall_sign.material" id="22_d4b87"] +[ext_resource type="PackedScene" uid="uid://5vh7mnjavlle" path="res://src/world/grunk_beast/beast_spawner/transient_floor_spawner.tscn" id="23_a8b6q"] [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_bt0ip"] data = PackedVector3Array(-1.5, 0, -6, -1.5, 0, 6, -1.5, 3, -6, -1.5, 3, -6, -1.5, 0, 6, -1.5, 3, 6, 1.5, 0, 6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, 6, 1.5, 0, -6, 1.5, 3, -6, -1.5, 0, 6, -1.5, 0, -6, 1.5, 0, 6, 1.5, 0, 6, -1.5, 0, -6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, -6, -1.5, 3, 6, -1.5, 3, 6, 1.5, 3, -6, -1.5, 3, -6) @@ -112,6 +115,15 @@ data = PackedVector3Array(1.5, 0, 1.5, -1.5, 0, 1.5, 1.5, 0, -1.5, 1.5, 0, -1.5, [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_mgo71"] data = PackedVector3Array(-0.7, 0, 0.14, -0.7, -0.28, 0, -0.7, 0, -0.14, -0.7, 0, -0.14, -0.7, -0.28, 0, 0.7, 0, -0.14, 0.7, 0, -0.14, -0.7, -0.28, 0, 0.7, -0.28, 0, 0.7, 0, -0.14, 0.7, -0.28, 0, 0.7, 0, 0.14, 0.7, 0, 0.14, 0.7, -0.28, 0, -0.7, 0, 0.14, -0.7, 0, 0.14, 0.7, -0.28, 0, -0.7, -0.28, 0, -0.7, 0, -0.14, 0.7, 0, -0.14, -0.7, 0, 0.14, -0.7, 0, 0.14, 0.7, 0, -0.14, 0.7, 0, 0.14) +[sub_resource type="BoxShape3D" id="BoxShape3D_ckpmb"] +size = Vector3(3, 3, 15) + +[sub_resource type="BoxShape3D" id="BoxShape3D_833wb"] +size = Vector3(3, 3, 15) + +[sub_resource type="BoxShape3D" id="BoxShape3D_a8b6q"] +size = Vector3(24, 3, 3) + [node name="Corridor1" type="Node3D"] [node name="Hallway1" type="MeshInstance3D" parent="."] @@ -447,3 +459,124 @@ value = 800.0 transform = Transform3D(0.0544678, 0.978935, -0.691896, 0.518314, -0.643755, -0.870018, -1.08092, -0.259359, -0.452049, -0.9, 0.9, 5.7) durability = 3.6 value = 2400.0 + +[node name="BeastSpawnZone" parent="." instance=ExtResource("21_833wb")] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, -1.5) +shape = SubResource("BoxShape3D_ckpmb") + +[node name="CollisionShape3D2" type="CollisionShape3D" parent="BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27, 1.5, -13.5) +shape = SubResource("BoxShape3D_833wb") + +[node name="CollisionShape3D3" type="CollisionShape3D" parent="BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.5, 1.5, -7.5) +shape = SubResource("BoxShape3D_a8b6q") + +[node name="DefaultFloorSpawner" parent="BeastSpawnZone" instance=ExtResource("22_ckpmb")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 3) + +[node name="TransientFloorSpawner" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4.5) + +[node name="TransientFloorSpawner2" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.5) + +[node name="TransientFloorSpawner3" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.5) + +[node name="TransientFloorSpawner4" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -4.5) + +[node name="TransientFloorSpawner19" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 3) + +[node name="TransientFloorSpawner20" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] + +[node name="TransientFloorSpawner21" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -3) + +[node name="TransientFloorSpawner22" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -6) + +[node name="TransientFloorSpawner5" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -7.5) + +[node name="TransientFloorSpawner6" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -7.5) + +[node name="TransientFloorSpawner7" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -7.5) + +[node name="TransientFloorSpawner8" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9, 0, -7.5) + +[node name="TransientFloorSpawner9" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12, 0, -7.5) + +[node name="TransientFloorSpawner10" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 0, -7.5) + +[node name="TransientFloorSpawner11" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18, 0, -7.5) + +[node name="TransientFloorSpawner12" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21, 0, -7.5) + +[node name="TransientFloorSpawner13" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24, 0, -7.5) + +[node name="TransientFloorSpawner23" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -7.5) + +[node name="TransientFloorSpawner24" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, -7.5) + +[node name="TransientFloorSpawner25" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0, -7.5) + +[node name="TransientFloorSpawner26" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 0, -7.5) + +[node name="TransientFloorSpawner27" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.5, 0, -7.5) + +[node name="TransientFloorSpawner28" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.5, 0, -7.5) + +[node name="TransientFloorSpawner29" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -19.5, 0, -7.5) + +[node name="TransientFloorSpawner30" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22.5, 0, -7.5) + +[node name="TransientFloorSpawner31" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -25.5, 0, -7.5) + +[node name="TransientFloorSpawner14" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27, 0, -7.5) + +[node name="TransientFloorSpawner15" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27, 0, -10.5) + +[node name="TransientFloorSpawner16" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27, 0, -13.5) + +[node name="TransientFloorSpawner17" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27, 0, -16.5) + +[node name="TransientFloorSpawner32" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27, 0, -9) + +[node name="TransientFloorSpawner33" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27, 0, -12) + +[node name="TransientFloorSpawner34" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27, 0, -15) + +[node name="TransientFloorSpawner35" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27, 0, -18) + +[node name="TransientFloorSpawner18" parent="BeastSpawnZone" instance=ExtResource("23_a8b6q")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27, 0, -19.5) diff --git a/levels/ghost_ship/level/corridor_2/corridor_2.tscn b/levels/ghost_ship/level/corridor_2/corridor_2.tscn index 4f7e8f2..5f33bc4 100644 --- a/levels/ghost_ship/level/corridor_2/corridor_2.tscn +++ b/levels/ghost_ship/level/corridor_2/corridor_2.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=50 format=4 uid="uid://6mggsi84ok1n"] +[gd_scene load_steps=55 format=4 uid="uid://6mggsi84ok1n"] [ext_resource type="ArrayMesh" uid="uid://c4klxlj1oop7t" path="res://assets/level/hallway/hallway_4.mesh" id="1_ka7sa"] [ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="2_osdhu"] @@ -26,6 +26,9 @@ [ext_resource type="PackedScene" uid="uid://dgeg3kkogm71m" path="res://src/world/mechanics/alarm/gunk_alarm.tscn" id="23_osdhu"] [ext_resource type="PackedScene" uid="uid://2yqi5u5eo025" path="res://src/world/gunk_node/grunk_nodule.tscn" id="24_6qtqj"] [ext_resource type="PackedScene" uid="uid://bttust5ohud8e" path="res://src/world/mechanics/relay/gunk_relay.tscn" id="25_osdhu"] +[ext_resource type="PackedScene" uid="uid://dxm83cmpppqxr" path="res://src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.tscn" id="27_650i1"] +[ext_resource type="PackedScene" uid="uid://c8vbjgol5nenc" path="res://src/world/grunk_beast/beast_spawner/floor_spawner.tscn" id="28_bmovs"] +[ext_resource type="PackedScene" uid="uid://5vh7mnjavlle" path="res://src/world/grunk_beast/beast_spawner/transient_floor_spawner.tscn" id="29_f8vhe"] [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_ruwlj"] data = PackedVector3Array(-1.5, 0, -6, -1.5, 0, 6, -1.5, 3, -6, -1.5, 3, -6, -1.5, 0, 6, -1.5, 3, 6, 1.5, 0, 6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, 6, 1.5, 0, -6, 1.5, 3, -6, -1.5, 0, 6, -1.5, 0, -6, 1.5, 0, 6, 1.5, 0, 6, -1.5, 0, -6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, -6, -1.5, 3, 6, -1.5, 3, 6, 1.5, 3, -6, -1.5, 3, -6) @@ -188,6 +191,12 @@ data = PackedVector3Array(-1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 3, -1.5, -1.5, 3, - [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_17ivy"] data = PackedVector3Array(1.5, 0, 1.5, -1.5, 0, 1.5, 1.5, 0, -1.5, 1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 0, -1.5) +[sub_resource type="BoxShape3D" id="BoxShape3D_o070x"] +size = Vector3(3, 3, 15) + +[sub_resource type="BoxShape3D" id="BoxShape3D_bmovs"] +size = Vector3(3, 3, 3) + [node name="Corridor2" type="Node3D"] [node name="Hallway1" type="MeshInstance3D" parent="."] @@ -644,6 +653,50 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.08106, 2.68771, -10.5) [node name="GunkRelay5" parent="Trap1/Network2" instance=ExtResource("25_osdhu")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.73178, 3, -10.8571) +[node name="BeastSpawnZone" parent="." instance=ExtResource("27_650i1")] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, -6) +shape = SubResource("BoxShape3D_o070x") + +[node name="CollisionShape3D2" type="CollisionShape3D" parent="BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 1.5, -12) +shape = SubResource("BoxShape3D_bmovs") + +[node name="DefaultSpawn" parent="BeastSpawnZone" instance=ExtResource("28_bmovs")] + +[node name="TransientFloorSpawner" parent="BeastSpawnZone" instance=ExtResource("29_f8vhe")] + +[node name="TransientFloorSpawner2" parent="BeastSpawnZone" instance=ExtResource("29_f8vhe")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -3) + +[node name="TransientFloorSpawner3" parent="BeastSpawnZone" instance=ExtResource("29_f8vhe")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -6) + +[node name="TransientFloorSpawner4" parent="BeastSpawnZone" instance=ExtResource("29_f8vhe")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -9) + +[node name="TransientFloorSpawner5" parent="BeastSpawnZone" instance=ExtResource("29_f8vhe")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -12) + +[node name="TransientFloorSpawner8" parent="BeastSpawnZone" instance=ExtResource("29_f8vhe")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.5) + +[node name="TransientFloorSpawner9" parent="BeastSpawnZone" instance=ExtResource("29_f8vhe")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -4.5) + +[node name="TransientFloorSpawner10" parent="BeastSpawnZone" instance=ExtResource("29_f8vhe")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -7.5) + +[node name="TransientFloorSpawner11" parent="BeastSpawnZone" instance=ExtResource("29_f8vhe")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -10.5) + +[node name="TransientFloorSpawner6" parent="BeastSpawnZone" instance=ExtResource("29_f8vhe")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, -12) + +[node name="TransientFloorSpawner7" parent="BeastSpawnZone" instance=ExtResource("29_f8vhe")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, -12) + [connection signal="triggered" from="Trap1/Listener" to="Trap1/Network1/GunkRelay22" method="trigger"] [connection signal="triggered" from="Trap1/Listener2" to="Trap1/Network1/GunkRelay23" method="trigger"] [connection signal="triggered" from="Trap1/Listener3" to="Trap1/Network1/GunkRelay" method="trigger"] diff --git a/levels/ghost_ship/level/corridor_3/corridor_3.tscn b/levels/ghost_ship/level/corridor_3/corridor_3.tscn index 4e9f372..125c71e 100644 --- a/levels/ghost_ship/level/corridor_3/corridor_3.tscn +++ b/levels/ghost_ship/level/corridor_3/corridor_3.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=45 format=4 uid="uid://cnqvb6q8tyxmd"] +[gd_scene load_steps=52 format=4 uid="uid://cnqvb6q8tyxmd"] [ext_resource type="ArrayMesh" uid="uid://cqd0a7ousx01n" path="res://assets/level/hallway/hallway_1.mesh" id="1_ediv7"] [ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="2_rvc24"] @@ -19,6 +19,9 @@ [ext_resource type="Material" uid="uid://dva6ivs2hap53" path="res://levels/ghost_ship/guide_sign/medbay_sign.material" id="16_rn74a"] [ext_resource type="Material" uid="uid://bo81yn72cb0bq" path="res://levels/ghost_ship/guide_sign/cargo_bay_sign.material" id="17_13shf"] [ext_resource type="ArrayMesh" uid="uid://b17naqcl4ie21" path="res://assets/level/floor/floor_1.mesh" id="18_rvc24"] +[ext_resource type="PackedScene" uid="uid://dxm83cmpppqxr" path="res://src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.tscn" id="20_8y1ya"] +[ext_resource type="PackedScene" uid="uid://c8vbjgol5nenc" path="res://src/world/grunk_beast/beast_spawner/floor_spawner.tscn" id="20_yqi6h"] +[ext_resource type="PackedScene" uid="uid://5vh7mnjavlle" path="res://src/world/grunk_beast/beast_spawner/transient_floor_spawner.tscn" id="22_8pwhd"] [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_ruwlj"] data = PackedVector3Array(-1.5, 0, -6, -1.5, 0, 6, -1.5, 3, -6, -1.5, 3, -6, -1.5, 0, 6, -1.5, 3, 6, 1.5, 0, 6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, 6, 1.5, 0, -6, 1.5, 3, -6, -1.5, 0, 6, -1.5, 0, -6, 1.5, 0, 6, 1.5, 0, 6, -1.5, 0, -6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, -6, -1.5, 3, 6, -1.5, 3, 6, 1.5, 3, -6, -1.5, 3, -6) @@ -213,6 +216,18 @@ shadow_mesh = SubResource("ArrayMesh_vt4uw") [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_np3w4"] data = PackedVector3Array(-0.7, 0, 0.14, -0.7, -0.28, 0, -0.7, 0, -0.14, -0.7, 0, -0.14, -0.7, -0.28, 0, 0.7, 0, -0.14, 0.7, 0, -0.14, -0.7, -0.28, 0, 0.7, -0.28, 0, 0.7, 0, -0.14, 0.7, -0.28, 0, 0.7, 0, 0.14, 0.7, 0, 0.14, 0.7, -0.28, 0, -0.7, 0, 0.14, -0.7, 0, 0.14, 0.7, -0.28, 0, -0.7, -0.28, 0, -0.7, 0, -0.14, 0.7, 0, -0.14, -0.7, 0, 0.14, -0.7, 0, 0.14, 0.7, 0, -0.14, 0.7, 0, 0.14) +[sub_resource type="BoxShape3D" id="BoxShape3D_8y1ya"] +size = Vector3(12, 3, 3) + +[sub_resource type="BoxShape3D" id="BoxShape3D_yqi6h"] +size = Vector3(6, 3, 3) + +[sub_resource type="BoxShape3D" id="BoxShape3D_8pwhd"] +size = Vector3(6, 3, 3) + +[sub_resource type="BoxShape3D" id="BoxShape3D_h1n2n"] +size = Vector3(3, 3, 48) + [node name="Corridor3" type="Node3D"] [node name="Hallway" type="MeshInstance3D" parent="."] @@ -789,3 +804,164 @@ mask_dim = 32 body = NodePath("..") mesh_instance = NodePath("../..") source_gunk_material = ExtResource("6_8pwhd") + +[node name="BeastSpawnZone" parent="." instance=ExtResource("20_8y1ya")] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 1.5, 0) +shape = SubResource("BoxShape3D_8y1ya") + +[node name="CollisionShape3D2" type="CollisionShape3D" parent="BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.5, 1.5, 15) +shape = SubResource("BoxShape3D_yqi6h") + +[node name="CollisionShape3D3" type="CollisionShape3D" parent="BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 1.5, 18) +shape = SubResource("BoxShape3D_8pwhd") + +[node name="CollisionShape3D4" type="CollisionShape3D" parent="BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 1.5, 10.5) +shape = SubResource("BoxShape3D_h1n2n") + +[node name="FloorSpawner" parent="BeastSpawnZone" instance=ExtResource("20_yqi6h")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 15) + +[node name="TransientFloorSpawner" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] + +[node name="TransientFloorSpawner2" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0) + +[node name="TransientFloorSpawner3" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 0) + +[node name="TransientFloorSpawner4" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 0, 0) + +[node name="TransientFloorSpawner6" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 0) + +[node name="TransientFloorSpawner7" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 0) + +[node name="TransientFloorSpawner8" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, 0) + +[node name="TransientFloorSpawner9" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 0, 0) + +[node name="TransientFloorSpawner5" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, -12) + +[node name="TransientFloorSpawner10" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, -9) + +[node name="TransientFloorSpawner11" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, -6) + +[node name="TransientFloorSpawner12" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, -3) + +[node name="TransientFloorSpawner13" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 0) + +[node name="TransientFloorSpawner14" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 3) + +[node name="TransientFloorSpawner15" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 6) + +[node name="TransientFloorSpawner16" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 9) + +[node name="TransientFloorSpawner17" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 12) + +[node name="TransientFloorSpawner18" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 15) + +[node name="TransientFloorSpawner19" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 18) + +[node name="TransientFloorSpawner20" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 21) + +[node name="TransientFloorSpawner21" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 24) + +[node name="TransientFloorSpawner22" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 27) + +[node name="TransientFloorSpawner23" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 30) + +[node name="TransientFloorSpawner25" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, -10.5) + +[node name="TransientFloorSpawner26" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, -7.5) + +[node name="TransientFloorSpawner27" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, -4.5) + +[node name="TransientFloorSpawner28" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, -1.5) + +[node name="TransientFloorSpawner29" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1.5) + +[node name="TransientFloorSpawner30" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 4.5) + +[node name="TransientFloorSpawner31" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 7.5) + +[node name="TransientFloorSpawner32" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 10.5) + +[node name="TransientFloorSpawner33" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 13.5) + +[node name="TransientFloorSpawner34" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 16.5) + +[node name="TransientFloorSpawner35" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 19.5) + +[node name="TransientFloorSpawner36" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 22.5) + +[node name="TransientFloorSpawner37" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 25.5) + +[node name="TransientFloorSpawner38" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 28.5) + +[node name="TransientFloorSpawner39" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 31.5) + +[node name="TransientFloorSpawner24" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 33) + +[node name="TransientFloorSpawner40" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 18) + +[node name="TransientFloorSpawner41" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 0, 18) + +[node name="TransientFloorSpawner42" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, 18) + +[node name="TransientFloorSpawner43" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 0, 18) + +[node name="TransientFloorSpawner44" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.5, 0, 15) + +[node name="TransientFloorSpawner45" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.5, 0, 15) + +[node name="TransientFloorSpawner46" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 0, 15) + +[node name="TransientFloorSpawner47" parent="BeastSpawnZone" instance=ExtResource("22_8pwhd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 0, 15) diff --git a/levels/ghost_ship/level/crew_quarters/crew_quarters.tscn b/levels/ghost_ship/level/crew_quarters/crew_quarters.tscn index 84cdeac..f506ec5 100644 --- a/levels/ghost_ship/level/crew_quarters/crew_quarters.tscn +++ b/levels/ghost_ship/level/crew_quarters/crew_quarters.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=53 format=3 uid="uid://yfgx3lis11b7"] +[gd_scene load_steps=58 format=3 uid="uid://yfgx3lis11b7"] [ext_resource type="ArrayMesh" uid="uid://dpr5cgq743f4s" path="res://assets/level/floor/floor_9x9.mesh" id="1_5rwfs"] [ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="2_xbtal"] @@ -24,6 +24,9 @@ [ext_resource type="PackedScene" uid="uid://drm5dspi48pf5" path="res://src/props/crate_long/phys_crate_long.tscn" id="20_ga3kk"] [ext_resource type="PackedScene" uid="uid://d2feet02a603e" path="res://src/props/overhead_light/overhead_light.tscn" id="24_or2wh"] [ext_resource type="ArrayMesh" uid="uid://bx00qgk2dyjrw" path="res://assets/level/wall/wall_2.mesh" id="25_1o6wp"] +[ext_resource type="PackedScene" uid="uid://dxm83cmpppqxr" path="res://src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.tscn" id="25_5rwfs"] +[ext_resource type="PackedScene" uid="uid://c8vbjgol5nenc" path="res://src/world/grunk_beast/beast_spawner/floor_spawner.tscn" id="25_xbtal"] +[ext_resource type="PackedScene" uid="uid://5vh7mnjavlle" path="res://src/world/grunk_beast/beast_spawner/transient_floor_spawner.tscn" id="26_mxi1m"] [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_qu6vm"] data = PackedVector3Array(4.5, 0, 4.5, -4.5, 0, 4.5, 4.5, 0, -4.5, 4.5, 0, -4.5, -4.5, 0, 4.5, -4.5, 0, -4.5) @@ -85,6 +88,9 @@ turbulence_noise_strength = 0.1 turbulence_noise_scale = 0.3 turbulence_influence_min = 0.0 +[sub_resource type="BoxShape3D" id="BoxShape3D_mxi1m"] +size = Vector3(18, 6, 12) + [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_lfacn"] data = PackedVector3Array(4.5, 0, 3, -4.5, 0, 3, 4.5, 0, -3, 4.5, 0, -3, -4.5, 0, 3, -4.5, 0, -3) @@ -178,6 +184,9 @@ turbulence_noise_strength = 0.1 turbulence_noise_scale = 0.3 turbulence_influence_min = 0.0 +[sub_resource type="BoxShape3D" id="BoxShape3D_xbtal"] +size = Vector3(6, 3, 12) + [node name="CrewQuarters" type="Node3D"] [node name="CommonArea" type="Node3D" parent="."] @@ -1451,6 +1460,216 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.23792, 3, -6.25727) [node name="GunkRelay10" parent="CommonArea/Trap1" instance=ExtResource("11_ct7ya")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.14695, 3, -6.90875) +[node name="BeastSpawnZone" parent="CommonArea" instance=ExtResource("25_5rwfs")] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="CommonArea/BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, 0, -1.2) +shape = SubResource("BoxShape3D_mxi1m") + +[node name="FloorSpawner" parent="CommonArea/BeastSpawnZone" instance=ExtResource("25_xbtal")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.2, 0, 0.3) + +[node name="UpperFloorSpawner" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.2, 0, 0.3) + +[node name="UpperFloorSpawner2" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2, 0, 0.3) + +[node name="UpperFloorSpawner3" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2, 0, 0.3) + +[node name="UpperFloorSpawner4" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8, 0, 0.3) + +[node name="UpperFloorSpawner5" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, 0.3) + +[node name="UpperFloorSpawner6" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7, 0, 0.3) + +[node name="UpperFloorSpawner7" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 0, 0.3) + +[node name="UpperFloorSpawner8" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, 0, 0.3) + +[node name="UpperFloorSpawner9" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.3, 0, 0.3) + +[node name="UpperFloorSpawner10" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.3, 0, 0.3) + +[node name="UpperFloorSpawner11" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.8, 0, 0.3) + +[node name="UpperFloorSpawner12" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, 3.3) + +[node name="UpperFloorSpawner13" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2, 0, 3.3) + +[node name="UpperFloorSpawner14" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2, 0, 1.8) + +[node name="UpperFloorSpawner15" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, 0, 1.8) + +[node name="LowerFloorSpawner" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.8, -3, -5.7) + +[node name="LowerFloorSpawner2" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, -3, -5.7) + +[node name="LowerFloorSpawner3" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8, -3, -5.7) + +[node name="LowerFloorSpawner4" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2, -3, -5.7) + +[node name="LowerFloorSpawner5" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2, -3, -5.7) + +[node name="LowerFloorSpawner7" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.3, -3, -5.7) + +[node name="LowerFloorSpawner8" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.3, -3, -5.7) + +[node name="LowerFloorSpawner9" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, -3, -5.7) + +[node name="LowerFloorSpawner10" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, -3, -5.7) + +[node name="LowerFloorSpawner11" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7, -3, -5.7) + +[node name="LowerFloorSpawner6" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.2, -3, -5.7) + +[node name="LowerFloorSpawner12" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, -3, -2.7) + +[node name="LowerFloorSpawner13" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8, -3, -2.7) + +[node name="LowerFloorSpawner14" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2, -3, -2.7) + +[node name="LowerFloorSpawner15" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2, -3, -2.7) + +[node name="LowerFloorSpawner16" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.3, -3, -2.7) + +[node name="LowerFloorSpawner17" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, -3, -2.7) + +[node name="LowerFloorSpawner18" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, -3, -2.7) + +[node name="LowerFloorSpawner19" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7, -3, -2.7) + +[node name="LowerFloorSpawner20" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.2, -3, -2.7) + +[node name="LowerFloorSpawner21" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, -3, 0.3) + +[node name="LowerFloorSpawner22" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8, -3, 0.3) + +[node name="LowerFloorSpawner23" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2, -3, 0.3) + +[node name="LowerFloorSpawner24" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2, -3, 0.3) + +[node name="LowerFloorSpawner25" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.3, -3, 0.3) + +[node name="LowerFloorSpawner26" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, -3, 0.3) + +[node name="LowerFloorSpawner27" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, -3, 0.3) + +[node name="LowerFloorSpawner28" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7, -3, 0.3) + +[node name="LowerFloorSpawner29" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.2, -3, 0.3) + +[node name="LowerFloorSpawner30" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, -3, -1.2) + +[node name="LowerFloorSpawner31" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8, -3, -1.2) + +[node name="LowerFloorSpawner32" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2, -3, -1.2) + +[node name="LowerFloorSpawner33" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2, -3, -1.2) + +[node name="LowerFloorSpawner34" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.3, -3, -1.2) + +[node name="LowerFloorSpawner35" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, -3, -1.2) + +[node name="LowerFloorSpawner36" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, -3, -1.2) + +[node name="LowerFloorSpawner37" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7, -3, -1.2) + +[node name="LowerFloorSpawner38" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.2, -3, -1.2) + +[node name="LowerFloorSpawner39" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, -3, -4.2) + +[node name="LowerFloorSpawner40" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8, -3, -4.2) + +[node name="LowerFloorSpawner41" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2, -3, -4.2) + +[node name="LowerFloorSpawner42" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2, -3, -4.2) + +[node name="LowerFloorSpawner43" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.3, -3, -4.2) + +[node name="LowerFloorSpawner44" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, -3, -4.2) + +[node name="LowerFloorSpawner45" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, -3, -4.2) + +[node name="LowerFloorSpawner46" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.7, -3, -4.2) + +[node name="LowerFloorSpawner47" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.2, -3, -4.2) + +[node name="LowerFloorSpawner48" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2, -3, 1.8) + +[node name="LowerFloorSpawner49" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2, -3, 3.3) + +[node name="LowerFloorSpawner50" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, -3, 3.3) + +[node name="LowerFloorSpawner51" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.8, -3, 1.8) + +[node name="LowerFloorSpawner52" parent="CommonArea/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.3, -3, 0.3) + [node name="Room1" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2, 0, 9.3) @@ -1667,6 +1886,89 @@ process_material = SubResource("ParticleProcessMaterial_wvfch") [node name="OverheadLight" parent="Room1" instance=ExtResource("24_or2wh")] transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -3, 3, 0) +[node name="BeastSpawnZone" parent="Room1" instance=ExtResource("25_5rwfs")] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Room1/BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 1.5, -3) +shape = SubResource("BoxShape3D_xbtal") + +[node name="FloorSpawner" parent="Room1/BeastSpawnZone" instance=ExtResource("25_xbtal")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -6) + +[node name="TransientFloorSpawner" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] + +[node name="TransientFloorSpawner8" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, 0) + +[node name="TransientFloorSpawner9" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9, 0, 0) + +[node name="TransientFloorSpawner10" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.38419e-07, 0, -1.5) + +[node name="TransientFloorSpawner11" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -1.5) + +[node name="TransientFloorSpawner12" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -1.5) + +[node name="TransientFloorSpawner13" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, -1.5) + +[node name="TransientFloorSpawner14" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, -3) + +[node name="TransientFloorSpawner15" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -3) + +[node name="TransientFloorSpawner16" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -4.5) + +[node name="TransientFloorSpawner17" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.4, 0, -3.3) + +[node name="TransientFloorSpawner18" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.899999, 0, -3.3) + +[node name="TransientFloorSpawner19" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -0.6) + +[node name="TransientFloorSpawner20" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.3, 0, -0.6) + +[node name="TransientFloorSpawner21" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, -0.6) + +[node name="TransientFloorSpawner22" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.1, 0, -2.4) + +[node name="TransientFloorSpawner23" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.19209e-06, 0, -2.4) + +[node name="TransientFloorSpawner24" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.19209e-06, 0, -0.6) + +[node name="TransientFloorSpawner25" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -5.4) + +[node name="TransientFloorSpawner2" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0) + +[node name="TransientFloorSpawner3" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, 0) + +[node name="TransientFloorSpawner4" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -3) + +[node name="TransientFloorSpawner5" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -3) + +[node name="TransientFloorSpawner6" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.38419e-07, 0, -3) + +[node name="TransientFloorSpawner7" parent="Room1/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -6) + [node name="Room2" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.8, 0, 9.3) @@ -1883,6 +2185,92 @@ process_material = SubResource("ParticleProcessMaterial_wvfch") [node name="OverheadLight" parent="Room2" instance=ExtResource("24_or2wh")] transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -3, 3, 0) +[node name="BeastSpawnZone" parent="Room2" instance=ExtResource("25_5rwfs")] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Room2/BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 1.5, -3) +shape = SubResource("BoxShape3D_xbtal") + +[node name="FloorSpawner" parent="Room2/BeastSpawnZone" instance=ExtResource("25_xbtal")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -6) + +[node name="TransientFloorSpawner" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] + +[node name="TransientFloorSpawner8" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, 0) + +[node name="TransientFloorSpawner9" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9, 0, 0) + +[node name="TransientFloorSpawner10" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.38419e-07, 0, -1.5) + +[node name="TransientFloorSpawner11" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -1.5) + +[node name="TransientFloorSpawner12" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -1.5) + +[node name="TransientFloorSpawner13" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, -1.5) + +[node name="TransientFloorSpawner14" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, -3) + +[node name="TransientFloorSpawner15" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -1.8) + +[node name="TransientFloorSpawner17" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.4, 0, -3.3) + +[node name="TransientFloorSpawner18" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -0.6) + +[node name="TransientFloorSpawner19" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -0.6) + +[node name="TransientFloorSpawner20" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.3, 0, -0.6) + +[node name="TransientFloorSpawner21" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, -0.6) + +[node name="TransientFloorSpawner22" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.1, 0, -2.4) + +[node name="TransientFloorSpawner23" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 0, -2.4) + +[node name="TransientFloorSpawner24" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.19209e-06, 0, -0.6) + +[node name="TransientFloorSpawner2" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0) + +[node name="TransientFloorSpawner3" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, 0) + +[node name="TransientFloorSpawner4" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -3) + +[node name="TransientFloorSpawner5" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -3) + +[node name="TransientFloorSpawner6" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, 0) + +[node name="TransientFloorSpawner26" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.599999, 0, -1.8) + +[node name="TransientFloorSpawner7" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -6) + +[node name="TransientFloorSpawner25" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -5.4) + +[node name="TransientFloorSpawner16" parent="Room2/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -4.5) + [node name="Room3" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2, -3, 9.3) @@ -2105,6 +2493,89 @@ transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2.9 transform = Transform3D(0.258819, 0, 0.965926, 0, 1, 0, -0.965926, 0, 0.258819, 11.4, 0.3, 3.90001) sleeping = true +[node name="BeastSpawnZone" parent="Room3" instance=ExtResource("25_5rwfs")] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Room3/BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 1.5, -1.5) +shape = SubResource("BoxShape3D_xbtal") + +[node name="FloorSpawner" parent="Room3/BeastSpawnZone" instance=ExtResource("25_xbtal")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -6) + +[node name="TransientFloorSpawner" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] + +[node name="TransientFloorSpawner8" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, 0) + +[node name="TransientFloorSpawner9" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0.9) + +[node name="TransientFloorSpawner10" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.38419e-07, 0, -1.5) + +[node name="TransientFloorSpawner11" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -1.5) + +[node name="TransientFloorSpawner12" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -1.5) + +[node name="TransientFloorSpawner13" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 1.8) + +[node name="TransientFloorSpawner14" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, 1.8) + +[node name="TransientFloorSpawner15" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -3) + +[node name="TransientFloorSpawner16" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -4.5) + +[node name="TransientFloorSpawner17" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.76837e-07, 0, 1.2) + +[node name="TransientFloorSpawner18" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.899999, 0, -3.3) + +[node name="TransientFloorSpawner19" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -0.6) + +[node name="TransientFloorSpawner20" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -0.6) + +[node name="TransientFloorSpawner21" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.299999, 0, 2.1) + +[node name="TransientFloorSpawner22" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.53674e-07, 0, 3) + +[node name="TransientFloorSpawner23" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.19209e-06, 0, -2.4) + +[node name="TransientFloorSpawner24" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.19209e-06, 0, -0.6) + +[node name="TransientFloorSpawner25" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.53674e-07, 0, -5.4) + +[node name="TransientFloorSpawner2" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0) + +[node name="TransientFloorSpawner3" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2.4) + +[node name="TransientFloorSpawner4" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -2.4) + +[node name="TransientFloorSpawner5" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -3) + +[node name="TransientFloorSpawner6" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.38419e-07, 0, -3) + +[node name="TransientFloorSpawner7" parent="Room3/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -6) + [node name="Room4" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.8, -3, 9.3) @@ -2323,6 +2794,89 @@ process_material = SubResource("ParticleProcessMaterial_wvfch") [node name="OverheadLight" parent="Room4" instance=ExtResource("24_or2wh")] transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2.999, 0) +[node name="BeastSpawnZone" parent="Room4" instance=ExtResource("25_5rwfs")] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Room4/BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 1.5, -1.5) +shape = SubResource("BoxShape3D_xbtal") + +[node name="FloorSpawner" parent="Room4/BeastSpawnZone" instance=ExtResource("25_xbtal")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -6) + +[node name="TransientFloorSpawner" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] + +[node name="TransientFloorSpawner8" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, 0) + +[node name="TransientFloorSpawner9" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0.9) + +[node name="TransientFloorSpawner10" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.38419e-07, 0, -1.5) + +[node name="TransientFloorSpawner11" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -1.5) + +[node name="TransientFloorSpawner12" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -1.5) + +[node name="TransientFloorSpawner13" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 1.8) + +[node name="TransientFloorSpawner14" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, 1.8) + +[node name="TransientFloorSpawner15" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -3) + +[node name="TransientFloorSpawner16" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -4.5) + +[node name="TransientFloorSpawner17" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.76837e-07, 0, 1.2) + +[node name="TransientFloorSpawner18" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.899999, 0, -3.3) + +[node name="TransientFloorSpawner19" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -0.6) + +[node name="TransientFloorSpawner20" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -0.6) + +[node name="TransientFloorSpawner21" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, 2.1) + +[node name="TransientFloorSpawner22" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 3) + +[node name="TransientFloorSpawner23" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.19209e-06, 0, -2.4) + +[node name="TransientFloorSpawner24" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.19209e-06, 0, -0.6) + +[node name="TransientFloorSpawner25" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -5.4) + +[node name="TransientFloorSpawner2" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0) + +[node name="TransientFloorSpawner3" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 2.4) + +[node name="TransientFloorSpawner4" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -2.4) + +[node name="TransientFloorSpawner5" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -3) + +[node name="TransientFloorSpawner6" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.38419e-07, 0, -3) + +[node name="TransientFloorSpawner7" parent="Room4/BeastSpawnZone" instance=ExtResource("26_mxi1m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -6) + [connection signal="triggered" from="CommonArea/Trap1/Listener" to="CommonArea/Trap1/GunkRelay" method="trigger"] [connection signal="pulsed" from="CommonArea/Trap1/GunkRelay" to="CommonArea/Trap1/GunkRelay2" method="pulse"] [connection signal="triggered" from="CommonArea/Trap1/GunkRelay" to="CommonArea/Trap1/GunkRelay2" method="trigger"] diff --git a/levels/ghost_ship/level/medbay/medbay.tscn b/levels/ghost_ship/level/medbay/medbay.tscn index 00269ed..ec27f4a 100644 --- a/levels/ghost_ship/level/medbay/medbay.tscn +++ b/levels/ghost_ship/level/medbay/medbay.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=81 format=4 uid="uid://b3h2ldhluwco"] +[gd_scene load_steps=87 format=4 uid="uid://b3h2ldhluwco"] [ext_resource type="ArrayMesh" uid="uid://dpr5cgq743f4s" path="res://assets/level/floor/floor_9x9.mesh" id="1_l8xpm"] [ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="2_lknyg"] @@ -31,6 +31,9 @@ [ext_resource type="PackedScene" uid="uid://dgqx1h4dtkwma" path="res://src/world/mechanics/trigger/gunk_trigger.tscn" id="24_w6w82"] [ext_resource type="PackedScene" uid="uid://2yqi5u5eo025" path="res://src/world/gunk_node/grunk_nodule.tscn" id="25_eorl6"] [ext_resource type="ArrayMesh" uid="uid://bwyjukdclxjm5" path="res://assets/props/cryo_tank/cryo_tank.mesh" id="26_ckuu8"] +[ext_resource type="PackedScene" uid="uid://dxm83cmpppqxr" path="res://src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.tscn" id="32_bnexv"] +[ext_resource type="PackedScene" uid="uid://c8vbjgol5nenc" path="res://src/world/grunk_beast/beast_spawner/floor_spawner.tscn" id="33_p5an5"] +[ext_resource type="PackedScene" uid="uid://5vh7mnjavlle" path="res://src/world/grunk_beast/beast_spawner/transient_floor_spawner.tscn" id="34_1syyw"] [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_yvipw"] data = PackedVector3Array(4.5, 0, 4.5, -4.5, 0, 4.5, 4.5, 0, -4.5, 4.5, 0, -4.5, -4.5, 0, 4.5, -4.5, 0, -4.5) @@ -450,6 +453,15 @@ turbulence_noise_strength = 0.1 turbulence_noise_scale = 0.3 turbulence_influence_min = 0.0 +[sub_resource type="BoxShape3D" id="BoxShape3D_p5an5"] +size = Vector3(6, 3, 3) + +[sub_resource type="BoxShape3D" id="BoxShape3D_1syyw"] +size = Vector3(6, 3, 6) + +[sub_resource type="BoxShape3D" id="BoxShape3D_loej8"] +size = Vector3(9, 3, 18) + [node name="Medbay" type="Node3D"] [node name="Bounds" type="Node3D" parent="."] @@ -1750,6 +1762,128 @@ size = Vector3(4, 4, 4) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6, 1.5, 3.6) mesh = ExtResource("26_ckuu8") +[node name="BeastSpawnZone" parent="." instance=ExtResource("32_bnexv")] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 1.5, -12) +shape = SubResource("BoxShape3D_p5an5") + +[node name="CollisionShape3D2" type="CollisionShape3D" parent="BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 1.5, 1.5) +shape = SubResource("BoxShape3D_1syyw") + +[node name="CollisionShape3D3" type="CollisionShape3D" parent="BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, -4.5) +shape = SubResource("BoxShape3D_loej8") + +[node name="FloorSpawner" parent="BeastSpawnZone" instance=ExtResource("33_p5an5")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -10.5) + +[node name="TransientFloorSpawner" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9, 0, -12) + +[node name="TransientFloorSpawner2" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0, -12) + +[node name="TransientFloorSpawner3" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -12) + +[node name="TransientFloorSpawner4" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, -12) + +[node name="TransientFloorSpawner5" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -12) + +[node name="TransientFloorSpawner6" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -12) + +[node name="TransientFloorSpawner7" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -12) + +[node name="TransientFloorSpawner8" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, -12) + +[node name="TransientFloorSpawner9" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, -12) + +[node name="TransientFloorSpawner10" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -10.5) + +[node name="TransientFloorSpawner11" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -10.5) + +[node name="TransientFloorSpawner12" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, -10.5) + +[node name="TransientFloorSpawner13" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, -10.5) + +[node name="TransientFloorSpawner14" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -9) + +[node name="TransientFloorSpawner15" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -9) + +[node name="TransientFloorSpawner16" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, -9) + +[node name="TransientFloorSpawner17" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, -9) + +[node name="TransientFloorSpawner18" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -7.5) + +[node name="TransientFloorSpawner19" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -7.5) + +[node name="TransientFloorSpawner20" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, -7.5) + +[node name="TransientFloorSpawner21" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, -7.5) + +[node name="TransientFloorSpawner22" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -6) + +[node name="TransientFloorSpawner23" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -6) + +[node name="TransientFloorSpawner24" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1, 0, -8.1) + +[node name="TransientFloorSpawner25" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.1, 0, -5.4) + +[node name="TransientFloorSpawner26" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -4.5) + +[node name="TransientFloorSpawner27" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -4.5) + +[node name="TransientFloorSpawner28" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, -4.5) + +[node name="TransientFloorSpawner29" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1, 0, -4.5) + +[node name="TransientFloorSpawner30" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8, 0, -3.6) + +[node name="TransientFloorSpawner32" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4, 0, -3.6) + +[node name="TransientFloorSpawner33" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9, 0, 0.9) + +[node name="TransientFloorSpawner34" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9, 0, 2.1) + +[node name="TransientFloorSpawner35" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.4, 0, 3) + +[node name="TransientFloorSpawner36" parent="BeastSpawnZone" instance=ExtResource("34_1syyw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -2.4) + [connection signal="pulsed" from="HeartbeatNetTrap/GunkHeart" to="HeartbeatNetTrap/ArmL/GunkRelay" method="pulse"] [connection signal="pulsed" from="HeartbeatNetTrap/GunkHeart" to="HeartbeatNetTrap/ArmR/GunkRelay" method="pulse"] [connection signal="pulsed" from="HeartbeatNetTrap/GunkHeart" to="HeartbeatNetTrap/LegL/GunkRelay" method="pulse"] diff --git a/levels/ghost_ship/level/mess_hall/mess_hall.tscn b/levels/ghost_ship/level/mess_hall/mess_hall.tscn index d2b5808..2a1dd25 100644 --- a/levels/ghost_ship/level/mess_hall/mess_hall.tscn +++ b/levels/ghost_ship/level/mess_hall/mess_hall.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=41 format=3 uid="uid://s1ab8rt2blyd"] +[gd_scene load_steps=45 format=3 uid="uid://s1ab8rt2blyd"] [ext_resource type="ArrayMesh" uid="uid://c785n3j3aq4sf" path="res://assets/level/wall/wall_1.mesh" id="1_ind8m"] [ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="2_vyxvc"] @@ -23,6 +23,9 @@ [ext_resource type="PackedScene" uid="uid://bttust5ohud8e" path="res://src/world/mechanics/relay/gunk_relay.tscn" id="18_itnv2"] [ext_resource type="PackedScene" uid="uid://dgeg3kkogm71m" path="res://src/world/mechanics/alarm/gunk_alarm.tscn" id="19_5y3ur"] [ext_resource type="PackedScene" uid="uid://2yqi5u5eo025" path="res://src/world/gunk_node/grunk_nodule.tscn" id="20_hl3fx"] +[ext_resource type="PackedScene" uid="uid://dxm83cmpppqxr" path="res://src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.tscn" id="24_vyxvc"] +[ext_resource type="PackedScene" uid="uid://c8vbjgol5nenc" path="res://src/world/grunk_beast/beast_spawner/floor_spawner.tscn" id="25_1ls0l"] +[ext_resource type="PackedScene" uid="uid://5vh7mnjavlle" path="res://src/world/grunk_beast/beast_spawner/transient_floor_spawner.tscn" id="26_jshbi"] [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_p11ap"] data = PackedVector3Array(1.5, 0, 1.5, -1.5, 0, 1.5, 1.5, 0, -1.5, 1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 0, -1.5) @@ -109,6 +112,9 @@ texture_filter = 2 material = SubResource("StandardMaterial3D_6lrbi") size = Vector2(1, 0.5) +[sub_resource type="BoxShape3D" id="BoxShape3D_1ls0l"] +size = Vector3(18, 3, 9) + [node name="MessHall" type="Node3D"] [node name="Walls" type="Node3D" parent="."] @@ -1271,6 +1277,177 @@ chitter = true durability = 1.2 value = 800.0 +[node name="BeastSpawnZone" parent="." instance=ExtResource("24_vyxvc")] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 1.5, 5) +shape = SubResource("BoxShape3D_1ls0l") + +[node name="DefaultSpawn" parent="BeastSpawnZone" instance=ExtResource("25_1ls0l")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 7.8) + +[node name="TransientFloorSpawner" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, 0, 8.1) + +[node name="TransientFloorSpawner2" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.9, 0, 7.2) + +[node name="TransientFloorSpawner3" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8, 0, 8.1) + +[node name="TransientFloorSpawner4" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.7, 0, 6.9) + +[node name="TransientFloorSpawner5" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.3, 0, 8.1) + +[node name="TransientFloorSpawner6" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.3, 0, 5.7) + +[node name="TransientFloorSpawner7" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.3, 0, 3.6) + +[node name="TransientFloorSpawner8" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.3, 0, 1.8) + +[node name="TransientFloorSpawner9" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4, 0, 2.4) + +[node name="TransientFloorSpawner10" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 1.8) + +[node name="TransientFloorSpawner11" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.9, 0, 2.4) + +[node name="TransientFloorSpawner12" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.96046e-08, 0, 1.8) + +[node name="TransientFloorSpawner13" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.3, 0, 2.4) + +[node name="TransientFloorSpawner14" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, 1.8) + +[node name="TransientFloorSpawner15" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4, 0, 1.8) + +[node name="TransientFloorSpawner16" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.3, 0, 1.8) + +[node name="TransientFloorSpawner17" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9, 0, 1.8) + +[node name="TransientFloorSpawner18" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.3, 0, 3) + +[node name="TransientFloorSpawner19" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9, 0, 3.3) + +[node name="TransientFloorSpawner20" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9, 0, 3.9) + +[node name="TransientFloorSpawner21" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, 4.5) + +[node name="TransientFloorSpawner22" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.8, 0, 5.4) + +[node name="TransientFloorSpawner23" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.4, 0, 6) + +[node name="TransientFloorSpawner24" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.4, 0, 6.6) + +[node name="TransientFloorSpawner25" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.3, 0, 7.2) + +[node name="TransientFloorSpawner26" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, 8.1) + +[node name="TransientFloorSpawner27" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.6, 0, 8.1) + +[node name="TransientFloorSpawner28" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9, 0, 8.1) + +[node name="TransientFloorSpawner29" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.2, 0, 8.1) + +[node name="TransientFloorSpawner30" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8, 0, 7.2) + +[node name="TransientFloorSpawner31" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8, 0, 8.1) + +[node name="TransientFloorSpawner32" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.4, 0, 5.4) + +[node name="TransientFloorSpawner33" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.1, 0, 4.8) + +[node name="TransientFloorSpawner34" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.4, 0, 3.6) + +[node name="TransientFloorSpawner35" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 0, 3.6) + +[node name="TransientFloorSpawner36" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.4, 0, 2.4) + +[node name="TransientFloorSpawner37" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 0, 2.4) + +[node name="TransientFloorSpawner38" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.6, 0, 2.4) + +[node name="TransientFloorSpawner39" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.3, 0, 1.8) + +[node name="TransientFloorSpawner40" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 0, 1.8) + +[node name="TransientFloorSpawner41" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.4, 0, 1.8) + +[node name="TransientFloorSpawner42" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.4, 0, 6) + +[node name="TransientFloorSpawner43" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.9, 0, 7.5) + +[node name="TransientFloorSpawner44" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.3, 0, 8.1) + +[node name="TransientFloorSpawner45" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0, 6.9) + +[node name="TransientFloorSpawner46" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.8, 0, 6.9) + +[node name="TransientFloorSpawner47" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.9, 0, 1.8) + +[node name="TransientFloorSpawner48" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 2.4) + +[node name="TransientFloorSpawner49" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, 0, 2.4) + +[node name="TransientFloorSpawner50" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4, 0, 1.8) + +[node name="TransientFloorSpawner51" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0, 1.8) + +[node name="TransientFloorSpawner52" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.3, 0, 6.9) + +[node name="TransientFloorSpawner53" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 7.8) + +[node name="TransientFloorSpawner54" parent="BeastSpawnZone" instance=ExtResource("26_jshbi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2, 0, 8.1) + [connection signal="destroyed" from="Traps/Trap1/GunkTrigger" to="Traps/Trap1/GunkRelay6" method="trigger"] [connection signal="destroyed" from="Traps/Trap1/GunkTrigger" to="Traps/Trap1/GrunkNodule12" method="collect"] [connection signal="pulsed" from="Traps/Trap1/GunkRelay4" to="Traps/Trap1/GunkRelay7" method="pulse"] diff --git a/project.godot b/project.godot index 0016eb6..d793adf 100644 --- a/project.godot +++ b/project.godot @@ -260,6 +260,7 @@ locale/translations=PackedStringArray("res://assets/text/text.en.translation") 3d_physics/layer_6="Player Physics" 3d_physics/layer_7="Prop Physics" 3d_physics/layer_8="Beam Passthrough" +3d_physics/layer_9="Beast Spawn Zones" [physics] diff --git a/src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.gd b/src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.gd new file mode 100644 index 0000000..d12a34a --- /dev/null +++ b/src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.gd @@ -0,0 +1,25 @@ +class_name BeastSpawnZone extends Area3D +## An area which contains and manages prioritized BeastSpawners. + + +## Return the list of spawners in this area with the highest spawn priority +func get_priority_spawners() -> Array[BeastSpawner]: + var spawns: Array[BeastSpawner] = [] + var max_priority: int = -1 + for spawner: BeastSpawner in get_spawners(): + if spawner.spawn_priority > max_priority: + spawns = [spawner] + max_priority = spawner.spawn_priority + elif spawner.spawn_priority == max_priority: + spawns.append(spawner) + + return spawns + + +## Return the list of all spawners in this zone +func get_spawners() -> Array[BeastSpawner]: + var spawns: Array[BeastSpawner] = [] + for c: Node in get_children(): + if c is BeastSpawner: + spawns.append(c as BeastSpawner) + return spawns diff --git a/src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.gd.uid b/src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.gd.uid new file mode 100644 index 0000000..12f5114 --- /dev/null +++ b/src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.gd.uid @@ -0,0 +1 @@ +uid://ut75s6gubnhl diff --git a/src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.tscn b/src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.tscn new file mode 100644 index 0000000..cd5dfdf --- /dev/null +++ b/src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=3 uid="uid://dxm83cmpppqxr"] + +[ext_resource type="Script" uid="uid://ut75s6gubnhl" path="res://src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.gd" id="1_qpkx5"] + +[node name="BeastSpawnZone" type="Area3D"] +collision_layer = 256 +collision_mask = 0 +script = ExtResource("1_qpkx5") +metadata/_custom_type_script = "uid://ut75s6gubnhl" diff --git a/src/world/grunk_beast/beast_spawner/beast_spawner.gd b/src/world/grunk_beast/beast_spawner/beast_spawner.gd index eba39e7..743b761 100644 --- a/src/world/grunk_beast/beast_spawner/beast_spawner.gd +++ b/src/world/grunk_beast/beast_spawner/beast_spawner.gd @@ -3,8 +3,12 @@ class_name BeastSpawner extends Node3D const GROUP = "BeastSpawnPoint" +## Scene to instantiate @export var beast_scene: PackedScene +## Spawners with higher priority will be picked first +@export var spawn_priority: int = 0 + func instantiate() -> GrunkBeast: return beast_scene.instantiate() diff --git a/src/world/grunk_beast/beast_spawner/floor_spawner.tscn b/src/world/grunk_beast/beast_spawner/floor_spawner.tscn index 57a702b..248c83e 100644 --- a/src/world/grunk_beast/beast_spawner/floor_spawner.tscn +++ b/src/world/grunk_beast/beast_spawner/floor_spawner.tscn @@ -6,5 +6,6 @@ [node name="FloorSpawner" type="Node3D" groups=["BeastSpawnPoint"]] script = ExtResource("1_hrlgt") beast_scene = ExtResource("2_dgp11") +spawn_priority = 1 [node name="Marker3D" type="Marker3D" parent="."] diff --git a/src/world/grunk_beast/beast_spawner/transient_floor_spawner.tscn b/src/world/grunk_beast/beast_spawner/transient_floor_spawner.tscn index 04288ea..7ae64c9 100644 --- a/src/world/grunk_beast/beast_spawner/transient_floor_spawner.tscn +++ b/src/world/grunk_beast/beast_spawner/transient_floor_spawner.tscn @@ -10,6 +10,7 @@ radius = 1.2 [node name="TransientFloorSpawner" type="Node3D" groups=["BeastSpawnPoint"]] script = ExtResource("1_42oks") beast_scene = ExtResource("2_e5rh0") +spawn_priority = 10 metadata/_custom_type_script = "uid://cqildi0gndwp2" [node name="Area3D" type="Area3D" parent="."] diff --git a/src/world/grunk_beast/grunk_beast.tscn b/src/world/grunk_beast/grunk_beast.tscn index 1427461..52a1c5a 100644 --- a/src/world/grunk_beast/grunk_beast.tscn +++ b/src/world/grunk_beast/grunk_beast.tscn @@ -1,5 +1,6 @@ -[gd_scene load_steps=43 format=3 uid="uid://ehf5sg3ahvbf"] +[gd_scene load_steps=44 format=3 uid="uid://ehf5sg3ahvbf"] +[ext_resource type="Script" uid="uid://b5loa2u6s5l5c" path="res://src/player/rigid_body_physics.gd" id="2_4alar"] [ext_resource type="PackedScene" uid="uid://brrd33217oplv" path="res://src/world/grunk_beast/shambler/shambler.tscn" id="2_csisu"] [ext_resource type="Script" uid="uid://bukihqt1lybnx" path="res://src/util/frame_skipper.gd" id="2_lak6w"] [ext_resource type="Script" uid="uid://gwwmqwixqqr5" path="res://src/world/grunk_beast/grunk_beast.gd" id="2_qqnhb"] @@ -60,7 +61,7 @@ radius = 6.0 radius = 10.0 [node name="GrunkBeast" type="CharacterBody3D" groups=["GrunkBeast"]] -collision_layer = 36 +collision_layer = 100 wall_min_slide_angle = 0.174533 floor_max_angle = 1.0472 script = ExtResource("2_qqnhb") @@ -70,6 +71,10 @@ anger_level = null point_of_interest = null debug_destroy = null +[node name="RigidBodyPhysics" type="Node" parent="."] +script = ExtResource("2_4alar") +force = 400.0 + [node name="FrameSkipper" type="Node3D" parent="."] script = ExtResource("2_lak6w") frame_skip = 2 @@ -372,7 +377,7 @@ metadata/_custom_type_script = "uid://cg016dbe7gs1x" script = ExtResource("11_mbqcc") mean_time = 4.0 st_dev_time = 0.6 -wait_time = 4.07526 +wait_time = 4.8888 metadata/_custom_type_script = "uid://beyk2xtbjrsg4" [node name="PickRandomInvestigationTarget" type="Node" parent="GrunkBeastBehavior/StateSelector/TrackingMode/ActionSelector/InvestigateAction/AlwaysSucceedDecorator/InvestigateSequence/RandomDelay"] @@ -466,7 +471,7 @@ metadata/_custom_type_script = "uid://bogt3htgqe12s" script = ExtResource("11_mbqcc") mean_time = 9.0 st_dev_time = 1.0 -wait_time = 8.31225 +wait_time = 8.24845 metadata/_custom_type_script = "uid://beyk2xtbjrsg4" [node name="PickRandomLurkTarget" type="Node" parent="GrunkBeastBehavior/StateSelector/LurkingMode/RandomDelay"]