diff --git a/levels/testing/beast_spawner_test/beast_spawner_test.gd b/levels/testing/beast_spawner_test/beast_spawner_test.gd new file mode 100644 index 0000000..166d4a2 --- /dev/null +++ b/levels/testing/beast_spawner_test/beast_spawner_test.gd @@ -0,0 +1,27 @@ +extends Level + +@onready var alert_level_label: Label = %AlertLevelLabel +@onready var gunk_alarm: GunkAlarm = %GunkAlarm + + +func _ready() -> void: + if is_instance_valid(World.instance): + World.instance.manager.alert_raised.connect(_on_alert_level_raised) + World.instance.manager.alert_cleared.connect(_on_alert_level_cleared) + + +func _on_alert_level_raised(new_level: int) -> void: + alert_level_label.text = str(new_level) + + +func _on_alert_level_cleared() -> void: + alert_level_label.text = str(WorldManager.CLEAR_LEVEL) + + +func _unhandled_key_input(event: InputEvent) -> void: + if event.is_action_pressed("ui_page_up"): + if is_instance_valid(gunk_alarm): + gunk_alarm.trigger() + if event.is_action_pressed("ui_page_down"): + if is_instance_valid(World.instance): + World.instance.manager.clear_alert() diff --git a/levels/testing/beast_spawner_test/beast_spawner_test.gd.uid b/levels/testing/beast_spawner_test/beast_spawner_test.gd.uid new file mode 100644 index 0000000..bb72cda --- /dev/null +++ b/levels/testing/beast_spawner_test/beast_spawner_test.gd.uid @@ -0,0 +1 @@ +uid://dir6earo8ftlp diff --git a/levels/testing/beast_spawner_test/beast_spawner_test.tscn b/levels/testing/beast_spawner_test/beast_spawner_test.tscn new file mode 100644 index 0000000..380e95e --- /dev/null +++ b/levels/testing/beast_spawner_test/beast_spawner_test.tscn @@ -0,0 +1,746 @@ +[gd_scene load_steps=26 format=3 uid="uid://ogcjwuvqo5rc"] + +[ext_resource type="Script" uid="uid://dir6earo8ftlp" path="res://levels/testing/beast_spawner_test/beast_spawner_test.gd" id="1_a4s6t"] +[ext_resource type="PackedScene" uid="uid://b47goj32i6sdh" path="res://src/ui/elements/input_prompt/input_prompt.tscn" id="2_pn3sm"] +[ext_resource type="PackedScene" uid="uid://bwe2jdmvinhqd" path="res://src/player/player.tscn" id="2_yvl8h"] +[ext_resource type="ArrayMesh" uid="uid://dpr5cgq743f4s" path="res://assets/level/floor/floor_9x9.mesh" id="3_o2peg"] +[ext_resource type="PackedScene" uid="uid://drm5dspi48pf5" path="res://src/props/crate_long/phys_crate_long.tscn" id="5_8vexl"] +[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="5_a41r8"] +[ext_resource type="Material" uid="uid://cqjr3cbxtfg2j" path="res://assets/materials/grunk_overlays/gunk_overlay.material" id="6_m3rwh"] +[ext_resource type="PackedScene" uid="uid://dxm83cmpppqxr" path="res://src/world/grunk_beast/beast_spawner/beast_spawn_zone/beast_spawn_zone.tscn" id="7_m3rwh"] +[ext_resource type="PackedScene" uid="uid://oipf3w7hm5gf" path="res://src/props/operating_table/operating_table.tscn" id="9_nhuoi"] +[ext_resource type="PackedScene" uid="uid://dgeg3kkogm71m" path="res://src/world/mechanics/alarm/gunk_alarm.tscn" id="10_a4s6t"] +[ext_resource type="PackedScene" uid="uid://5vh7mnjavlle" path="res://src/world/grunk_beast/beast_spawner/transient_floor_spawner.tscn" id="11_cuw52"] +[ext_resource type="PackedScene" uid="uid://c55n6h3ydi32e" path="res://src/props/sofa/phys_sofa.tscn" id="12_fshdk"] +[ext_resource type="PackedScene" uid="uid://dtus42gmb1kqq" path="res://src/props/vending_machine/vending_machine.tscn" id="12_y2hej"] +[ext_resource type="Texture2D" uid="uid://d2xq0uvxh2ojk" path="res://assets/props/vending_machine/vending_machine_C.png" id="13_fshdk"] +[ext_resource type="Texture2D" uid="uid://d0xe37qm3k7d8" path="res://assets/props/vending_machine/vending_machine_E.png" id="14_avb8e"] +[ext_resource type="Texture2D" uid="uid://dkilg200w8x4y" path="res://assets/props/vending_machine/vending_machine_M.png" id="15_jafew"] +[ext_resource type="Texture2D" uid="uid://8v7jta2qdvut" path="res://assets/props/vending_machine/vending_machine_N.png" id="16_smofw"] +[ext_resource type="Texture2D" uid="uid://gbvtbiurxrop" path="res://assets/props/vending_machine/vending_machine_R.png" id="17_ks403"] + +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_hda7d"] + +[sub_resource type="Sky" id="Sky_pka60"] +sky_material = SubResource("ProceduralSkyMaterial_hda7d") + +[sub_resource type="Environment" id="Environment_nl4kk"] +background_mode = 2 +sky = SubResource("Sky_pka60") + +[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_6j7vt"] + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_pn3sm"] +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) + +[sub_resource type="BoxShape3D" id="BoxShape3D_m3rwh"] +size = Vector3(18, 5.1, 28.5) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_mo4ho"] +resource_local_to_scene = true +albedo_texture = ExtResource("13_fshdk") +metallic = 1.0 +metallic_texture = ExtResource("15_jafew") +roughness_texture = ExtResource("17_ks403") +emission_enabled = true +emission_energy_multiplier = 0.0 +emission_texture = ExtResource("14_avb8e") +normal_enabled = true +normal_texture = ExtResource("16_smofw") +texture_filter = 2 + +[node name="BeastSpawnerTest" type="Node3D"] +script = ExtResource("1_a4s6t") +id = "beast_spawner_test" +pretty_name = "Beast Spawner Testing Sandbox" + +[node name="TestInfo" type="CanvasLayer" parent="."] +layer = 10 + +[node name="MarginContainer" type="MarginContainer" parent="TestInfo"] +offset_right = 40.0 +offset_bottom = 40.0 +theme_override_constants/margin_left = 16 +theme_override_constants/margin_top = 16 +theme_override_constants/margin_right = 16 +theme_override_constants/margin_bottom = 16 + +[node name="VBoxContainer" type="VBoxContainer" parent="TestInfo/MarginContainer"] +layout_mode = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="TestInfo/MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="TestInfo/MarginContainer/VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "Alarm level:" + +[node name="AlertLevelLabel" type="Label" parent="TestInfo/MarginContainer/VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "0" + +[node name="HBoxContainer2" type="HBoxContainer" parent="TestInfo/MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="InputPrompt" parent="TestInfo/MarginContainer/VBoxContainer/HBoxContainer2" instance=ExtResource("2_pn3sm")] +layout_mode = 2 +text = "❓" +action = &"ui_page_up" +show_name = false + +[node name="Label" type="Label" parent="TestInfo/MarginContainer/VBoxContainer/HBoxContainer2"] +layout_mode = 2 +text = " to trigger the alarm" + +[node name="HBoxContainer3" type="HBoxContainer" parent="TestInfo/MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="InputPrompt" parent="TestInfo/MarginContainer/VBoxContainer/HBoxContainer3" instance=ExtResource("2_pn3sm")] +layout_mode = 2 +text = "❓" +action = &"ui_page_down" +show_name = false + +[node name="Label" type="Label" parent="TestInfo/MarginContainer/VBoxContainer/HBoxContainer3"] +layout_mode = 2 +text = " to clear the alert level" + +[node name="Player" parent="." instance=ExtResource("2_yvl8h")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(0.866025, -0.156955, -0.474726, 0.5, 0.271854, 0.82225, 0, -0.949453, 0.31391, 0, 0, 0) + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_nl4kk") + +[node name="WorldFloor" type="StaticBody3D" parent="." groups=["PlasticMaterial"]] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 3) +collision_layer = 5 + +[node name="MeshInstance3D" type="MeshInstance3D" parent="WorldFloor"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -9) +mesh = ExtResource("3_o2peg") + +[node name="MeshInstance3D2" type="MeshInstance3D" parent="WorldFloor"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 0, -9) +mesh = ExtResource("3_o2peg") + +[node name="MeshInstance3D3" type="MeshInstance3D" parent="WorldFloor"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9, 0, -9) +mesh = ExtResource("3_o2peg") + +[node name="MeshInstance3D4" type="MeshInstance3D" parent="WorldFloor"] +mesh = ExtResource("3_o2peg") + +[node name="MeshInstance3D5" type="MeshInstance3D" parent="WorldFloor"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 0, 0) +mesh = ExtResource("3_o2peg") + +[node name="MeshInstance3D6" type="MeshInstance3D" parent="WorldFloor"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9, 0, 0) +mesh = ExtResource("3_o2peg") + +[node name="MeshInstance3D7" type="MeshInstance3D" parent="WorldFloor"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 0, -9) +mesh = ExtResource("3_o2peg") + +[node name="MeshInstance3D8" type="MeshInstance3D" parent="WorldFloor"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 0, 0) +mesh = ExtResource("3_o2peg") + +[node name="MeshInstance3D9" type="MeshInstance3D" parent="WorldFloor"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27, 0, -9) +mesh = ExtResource("3_o2peg") + +[node name="MeshInstance3D10" type="MeshInstance3D" parent="WorldFloor"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27, 0, 0) +mesh = ExtResource("3_o2peg") + +[node name="MeshInstance3D11" type="MeshInstance3D" parent="WorldFloor"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 36, 0, -9) +mesh = ExtResource("3_o2peg") + +[node name="MeshInstance3D12" type="MeshInstance3D" parent="WorldFloor"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 36, 0, 0) +mesh = ExtResource("3_o2peg") + +[node name="MeshInstance3D13" type="MeshInstance3D" parent="WorldFloor"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45, 0, -9) +mesh = ExtResource("3_o2peg") + +[node name="MeshInstance3D14" type="MeshInstance3D" parent="WorldFloor"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45, 0, 0) +mesh = ExtResource("3_o2peg") + +[node name="MeshInstance3D15" type="MeshInstance3D" parent="WorldFloor"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 54, 0, -9) +mesh = ExtResource("3_o2peg") + +[node name="MeshInstance3D16" type="MeshInstance3D" parent="WorldFloor"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 54, 0, 0) +mesh = ExtResource("3_o2peg") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="WorldFloor"] +visible = false +shape = SubResource("WorldBoundaryShape3D_6j7vt") + +[node name="PhysCrateLong" parent="." instance=ExtResource("5_8vexl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0.9, -6) + +[node name="OperatingTable" parent="." instance=ExtResource("9_nhuoi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12, 0.5, 0) + +[node name="GunkAlarm" parent="OperatingTable" instance=ExtResource("10_a4s6t")] +unique_name_in_owner = true +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.52, 0) + +[node name="SpawnRegion1" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0.1, -19.5) + +[node name="Floor" type="MeshInstance3D" parent="SpawnRegion1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, -4.5) +mesh = ExtResource("3_o2peg") +skeleton = NodePath("") + +[node name="StaticBody3D" type="StaticBody3D" parent="SpawnRegion1/Floor"] +collision_layer = 5 +collision_mask = 0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="SpawnRegion1/Floor/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_pn3sm") + +[node name="Gunkable" parent="SpawnRegion1/Floor/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("5_a41r8")] +body = NodePath("..") +mesh_instance = NodePath("../..") +source_gunk_material = ExtResource("6_m3rwh") + +[node name="Floor2" type="MeshInstance3D" parent="SpawnRegion1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, -4.5) +mesh = ExtResource("3_o2peg") +skeleton = NodePath("") + +[node name="StaticBody3D" type="StaticBody3D" parent="SpawnRegion1/Floor2"] +collision_layer = 5 +collision_mask = 0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="SpawnRegion1/Floor2/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_pn3sm") + +[node name="Gunkable" parent="SpawnRegion1/Floor2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("5_a41r8")] +body = NodePath("..") +mesh_instance = NodePath("../..") +source_gunk_material = ExtResource("6_m3rwh") + +[node name="Floor3" type="MeshInstance3D" parent="SpawnRegion1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, 4.5) +mesh = ExtResource("3_o2peg") +skeleton = NodePath("") + +[node name="StaticBody3D" type="StaticBody3D" parent="SpawnRegion1/Floor3"] +collision_layer = 5 +collision_mask = 0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="SpawnRegion1/Floor3/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_pn3sm") + +[node name="Gunkable" parent="SpawnRegion1/Floor3/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("5_a41r8")] +body = NodePath("..") +mesh_instance = NodePath("../..") +source_gunk_material = ExtResource("6_m3rwh") + +[node name="Floor4" type="MeshInstance3D" parent="SpawnRegion1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 4.5) +mesh = ExtResource("3_o2peg") +skeleton = NodePath("") + +[node name="StaticBody3D" type="StaticBody3D" parent="SpawnRegion1/Floor4"] +collision_layer = 5 +collision_mask = 0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="SpawnRegion1/Floor4/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_pn3sm") + +[node name="Gunkable" parent="SpawnRegion1/Floor4/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("5_a41r8")] +body = NodePath("..") +mesh_instance = NodePath("../..") +source_gunk_material = ExtResource("6_m3rwh") + +[node name="BeastSpawnZone" parent="SpawnRegion1" instance=ExtResource("7_m3rwh")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.001, 0) + +[node name="CollisionShape3D" type="CollisionShape3D" parent="SpawnRegion1/BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.45, 5.25) +shape = SubResource("BoxShape3D_m3rwh") + +[node name="TransientFloorSpawner" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0, -7.5) + +[node name="TransientFloorSpawner2" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, -7.5) + +[node name="TransientFloorSpawner3" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -7.5) + +[node name="TransientFloorSpawner4" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, -7.5) + +[node name="TransientFloorSpawner5" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, -7.5) + +[node name="TransientFloorSpawner6" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -7.5) + +[node name="TransientFloorSpawner7" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -7.5) + +[node name="TransientFloorSpawner8" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -7.5) + +[node name="TransientFloorSpawner9" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, -7.5) + +[node name="TransientFloorSpawner10" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -7.5) + +[node name="TransientFloorSpawner11" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, -7.5) + +[node name="TransientFloorSpawner12" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0, -4.5) + +[node name="TransientFloorSpawner13" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, -4.5) + +[node name="TransientFloorSpawner14" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -4.5) + +[node name="TransientFloorSpawner15" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, -4.5) + +[node name="TransientFloorSpawner16" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, -4.5) + +[node name="TransientFloorSpawner17" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -4.5) + +[node name="TransientFloorSpawner18" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -4.5) + +[node name="TransientFloorSpawner19" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -4.5) + +[node name="TransientFloorSpawner20" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, -4.5) + +[node name="TransientFloorSpawner21" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -4.5) + +[node name="TransientFloorSpawner22" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, -4.5) + +[node name="TransientFloorSpawner23" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0, -1.5) + +[node name="TransientFloorSpawner24" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, -1.5) + +[node name="TransientFloorSpawner25" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -1.5) + +[node name="TransientFloorSpawner26" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, -1.5) + +[node name="TransientFloorSpawner27" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, -1.5) + +[node name="TransientFloorSpawner28" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -1.5) + +[node name="TransientFloorSpawner29" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -1.5) + +[node name="TransientFloorSpawner30" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.5) + +[node name="TransientFloorSpawner31" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, -1.5) + +[node name="TransientFloorSpawner32" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -1.5) + +[node name="TransientFloorSpawner33" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, -1.5) + +[node name="TransientFloorSpawner34" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0, 1.5) + +[node name="TransientFloorSpawner35" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, 1.5) + +[node name="TransientFloorSpawner36" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, 1.5) + +[node name="TransientFloorSpawner37" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 1.5) + +[node name="TransientFloorSpawner38" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 1.5) + +[node name="TransientFloorSpawner39" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, 1.5) + +[node name="TransientFloorSpawner40" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 1.5) + +[node name="TransientFloorSpawner41" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.5) + +[node name="TransientFloorSpawner42" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 1.5) + +[node name="TransientFloorSpawner43" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1.5) + +[node name="TransientFloorSpawner44" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, 1.5) + +[node name="TransientFloorSpawner45" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0, 4.5) + +[node name="TransientFloorSpawner46" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, 4.5) + +[node name="TransientFloorSpawner47" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, 4.5) + +[node name="TransientFloorSpawner48" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 4.5) + +[node name="TransientFloorSpawner49" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 4.5) + +[node name="TransientFloorSpawner50" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, 4.5) + +[node name="TransientFloorSpawner51" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 4.5) + +[node name="TransientFloorSpawner52" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4.5) + +[node name="TransientFloorSpawner53" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 4.5) + +[node name="TransientFloorSpawner54" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 4.5) + +[node name="TransientFloorSpawner55" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, 4.5) + +[node name="TransientFloorSpawner56" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0, 7.5) + +[node name="TransientFloorSpawner57" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, 7.5) + +[node name="TransientFloorSpawner58" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, 7.5) + +[node name="TransientFloorSpawner59" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 7.5) + +[node name="TransientFloorSpawner60" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 7.5) + +[node name="TransientFloorSpawner61" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, 7.5) + +[node name="TransientFloorSpawner62" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 7.5) + +[node name="TransientFloorSpawner63" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 7.5) + +[node name="TransientFloorSpawner64" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 7.5) + +[node name="TransientFloorSpawner65" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 7.5) + +[node name="TransientFloorSpawner66" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, 7.5) + +[node name="TransientFloorSpawner67" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0, -6) + +[node name="TransientFloorSpawner68" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, -6) + +[node name="TransientFloorSpawner69" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -6) + +[node name="TransientFloorSpawner70" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, -6) + +[node name="TransientFloorSpawner71" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, -6) + +[node name="TransientFloorSpawner72" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -6) + +[node name="TransientFloorSpawner73" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -6) + +[node name="TransientFloorSpawner74" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -6) + +[node name="TransientFloorSpawner75" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, -6) + +[node name="TransientFloorSpawner76" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -6) + +[node name="TransientFloorSpawner77" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, -6) + +[node name="TransientFloorSpawner78" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0, -3) + +[node name="TransientFloorSpawner79" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, -3) + +[node name="TransientFloorSpawner80" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, -3) + +[node name="TransientFloorSpawner81" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, -3) + +[node name="TransientFloorSpawner82" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, -3) + +[node name="TransientFloorSpawner83" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -3) + +[node name="TransientFloorSpawner84" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -3) + +[node name="TransientFloorSpawner85" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -3) + +[node name="TransientFloorSpawner86" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, -3) + +[node name="TransientFloorSpawner87" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -3) + +[node name="TransientFloorSpawner88" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, -3) + +[node name="TransientFloorSpawner89" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0, 0) + +[node name="TransientFloorSpawner90" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, 0) + +[node name="TransientFloorSpawner91" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, 0) + +[node name="TransientFloorSpawner92" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 0) + +[node name="TransientFloorSpawner93" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 0) + +[node name="TransientFloorSpawner94" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, 0) + +[node name="TransientFloorSpawner95" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0) + +[node name="TransientFloorSpawner96" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] + +[node name="TransientFloorSpawner97" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0) + +[node name="TransientFloorSpawner98" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 0) + +[node name="TransientFloorSpawner99" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, 0) + +[node name="TransientFloorSpawner100" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0, 3) + +[node name="TransientFloorSpawner101" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, 3) + +[node name="TransientFloorSpawner102" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, 3) + +[node name="TransientFloorSpawner103" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 3) + +[node name="TransientFloorSpawner104" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 3) + +[node name="TransientFloorSpawner105" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, 3) + +[node name="TransientFloorSpawner106" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 3) + +[node name="TransientFloorSpawner107" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 3) + +[node name="TransientFloorSpawner108" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 3) + +[node name="TransientFloorSpawner109" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 3) + +[node name="TransientFloorSpawner110" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, 3) + +[node name="TransientFloorSpawner111" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0, 6) + +[node name="TransientFloorSpawner112" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 0, 6) + +[node name="TransientFloorSpawner113" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 0, 6) + +[node name="TransientFloorSpawner114" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 6) + +[node name="TransientFloorSpawner115" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 6) + +[node name="TransientFloorSpawner116" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, 6) + +[node name="TransientFloorSpawner117" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 6) + +[node name="TransientFloorSpawner118" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 6) + +[node name="TransientFloorSpawner119" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 6) + +[node name="TransientFloorSpawner120" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 6) + +[node name="TransientFloorSpawner121" parent="SpawnRegion1/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, 6) + +[node name="SpawnRegion2" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 31.5, 0.1, -19.5) + +[node name="Floor" type="MeshInstance3D" parent="SpawnRegion2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 4.5) +mesh = ExtResource("3_o2peg") +skeleton = NodePath("") + +[node name="StaticBody3D" type="StaticBody3D" parent="SpawnRegion2/Floor"] +collision_layer = 5 +collision_mask = 0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="SpawnRegion2/Floor/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_pn3sm") + +[node name="Gunkable" parent="SpawnRegion2/Floor/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("5_a41r8")] +body = NodePath("..") +mesh_instance = NodePath("../..") +source_gunk_material = ExtResource("6_m3rwh") + +[node name="BeastSpawnZone" parent="SpawnRegion2" instance=ExtResource("7_m3rwh")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.001, 0) + +[node name="CollisionShape3D" type="CollisionShape3D" parent="SpawnRegion2/BeastSpawnZone"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.45, 5.25) +shape = SubResource("BoxShape3D_m3rwh") + +[node name="TransientFloorSpawner37" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 1.5) + +[node name="TransientFloorSpawner38" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 1.5) + +[node name="TransientFloorSpawner42" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 1.5) + +[node name="TransientFloorSpawner43" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 1.5) + +[node name="TransientFloorSpawner44" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, 1.5) + +[node name="TransientFloorSpawner48" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 4.5) + +[node name="TransientFloorSpawner49" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 4.5) + +[node name="TransientFloorSpawner53" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 4.5) + +[node name="TransientFloorSpawner54" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 4.5) + +[node name="TransientFloorSpawner55" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, 4.5) + +[node name="TransientFloorSpawner59" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 7.5) + +[node name="TransientFloorSpawner60" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 7.5) + +[node name="TransientFloorSpawner64" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 7.5) + +[node name="TransientFloorSpawner65" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 7.5) + +[node name="TransientFloorSpawner66" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, 7.5) + +[node name="TransientFloorSpawner103" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 3) + +[node name="TransientFloorSpawner104" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 3) + +[node name="TransientFloorSpawner108" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 3) + +[node name="TransientFloorSpawner109" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 3) + +[node name="TransientFloorSpawner110" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, 3) + +[node name="TransientFloorSpawner114" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 6) + +[node name="TransientFloorSpawner115" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 6) + +[node name="TransientFloorSpawner119" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 6) + +[node name="TransientFloorSpawner120" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 6) + +[node name="TransientFloorSpawner121" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("11_cuw52")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0, 6) + +[node name="PhysSofa" parent="SpawnRegion2/BeastSpawnZone" instance=ExtResource("12_fshdk")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -40.5, 0.499, 13.5) + +[node name="VendingMachine" parent="." instance=ExtResource("12_y2hej")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, -6) +surface_material_override/0 = SubResource("StandardMaterial3D_mo4ho") diff --git a/src/util/scene_tools.gd b/src/util/scene_tools.gd index 9bbd553..4983397 100644 --- a/src/util/scene_tools.gd +++ b/src/util/scene_tools.gd @@ -1,7 +1,8 @@ class_name SceneTools extends Object ## Tools for specialized operations in a scene -const RAY_MASK := 0b00100101 +# const RAY_MASK := 0b00100101 +const RAY_MASK := 1 ## Get the Node3D in the given group which is spatially closest to the target node. 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 7ae64c9..656cdce 100644 --- a/src/world/grunk_beast/beast_spawner/transient_floor_spawner.tscn +++ b/src/world/grunk_beast/beast_spawner/transient_floor_spawner.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=4 format=3 uid="uid://5vh7mnjavlle"] +[gd_scene load_steps=5 format=3 uid="uid://5vh7mnjavlle"] [ext_resource type="Script" uid="uid://cqildi0gndwp2" path="res://src/world/grunk_beast/beast_spawner/floor_spawner.gd" id="1_42oks"] [ext_resource type="PackedScene" uid="uid://ehf5sg3ahvbf" path="res://src/world/grunk_beast/grunk_beast.tscn" id="2_e5rh0"] @@ -7,6 +7,11 @@ height = 0.02 radius = 1.2 +[sub_resource type="CylinderMesh" id="CylinderMesh_e5rh0"] +top_radius = 1.2 +bottom_radius = 1.2 +height = 0.02 + [node name="TransientFloorSpawner" type="Node3D" groups=["BeastSpawnPoint"]] script = ExtResource("1_42oks") beast_scene = ExtResource("2_e5rh0") @@ -21,4 +26,7 @@ collision_mask = 128 shape = SubResource("CylinderShape3D_42oks") debug_color = Color(0.980392, 0.854902, 0, 1) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Area3D"] +mesh = SubResource("CylinderMesh_e5rh0") + [connection signal="area_entered" from="Area3D" to="." method="queue_free" unbinds=1] diff --git a/src/world/grunk_beast/grunk_beast.tscn b/src/world/grunk_beast/grunk_beast.tscn index fc3bf8c..a7c9b72 100644 --- a/src/world/grunk_beast/grunk_beast.tscn +++ b/src/world/grunk_beast/grunk_beast.tscn @@ -384,7 +384,7 @@ metadata/_custom_type_script = "uid://cg016dbe7gs1x" script = ExtResource("11_mbqcc") mean_time = 4.0 st_dev_time = 0.6 -wait_time = 4.8888 +wait_time = 4.58991 metadata/_custom_type_script = "uid://beyk2xtbjrsg4" [node name="PickRandomInvestigationTarget" type="Node" parent="GrunkBeastBehavior/StateSelector/TrackingMode/ActionSelector/InvestigateAction/AlwaysSucceedDecorator/InvestigateSequence/RandomDelay"] @@ -478,7 +478,7 @@ metadata/_custom_type_script = "uid://bogt3htgqe12s" script = ExtResource("11_mbqcc") mean_time = 9.0 st_dev_time = 1.0 -wait_time = 8.24845 +wait_time = 10.1664 metadata/_custom_type_script = "uid://beyk2xtbjrsg4" [node name="PickRandomLurkTarget" type="Node" parent="GrunkBeastBehavior/StateSelector/LurkingMode/RandomDelay"] diff --git a/src/world/spook_manager/spook_manager.gd b/src/world/spook_manager/spook_manager.gd index bc20e53..c8a6408 100644 --- a/src/world/spook_manager/spook_manager.gd +++ b/src/world/spook_manager/spook_manager.gd @@ -135,7 +135,8 @@ func on_alert_cleared() -> void: b.queue_free() # And spawn one back in, if needed - if World.instance.manager.alert_level >= 2: + # TODO should this maybe be an instance member of WorldManager? + if WorldManager.CLEAR_LEVEL >= 2: spawn_beast_near_player() diff --git a/src/world/world.tscn b/src/world/world.tscn index f53a709..cc69730 100644 --- a/src/world/world.tscn +++ b/src/world/world.tscn @@ -4,7 +4,7 @@ [ext_resource type="Resource" uid="uid://tgac5tnfx56r" path="res://src/world/world_manager.tres" id="2_5kmgb"] [ext_resource type="PackedScene" uid="uid://byvjsvavbg5xe" path="res://src/ui/menus/pause_menu/pause_menu.tscn" id="2_6fy3g"] [ext_resource type="Resource" uid="uid://0i72bf8ip1lx" path="res://src/world/spook_manager.tres" id="3_l0av5"] -[ext_resource type="PackedScene" uid="uid://b8rv6dg4tgaeb" path="res://levels/testing/mechanic_test/mechanic_test.tscn" id="4_5kmgb"] +[ext_resource type="PackedScene" uid="uid://ogcjwuvqo5rc" path="res://levels/testing/beast_spawner_test/beast_spawner_test.tscn" id="4_5kmgb"] [ext_resource type="PackedScene" uid="uid://c0uitm5cg88h1" path="res://src/ui/menus/kill_screen/kill_screen.tscn" id="6_l0av5"] [ext_resource type="PackedScene" uid="uid://brknr57xc2cp0" path="res://src/ui/elements/save_icon/save_icon.tscn" id="7_5kmgb"] diff --git a/src/world/world_manager.gd b/src/world/world_manager.gd index ba98017..225efa0 100644 --- a/src/world/world_manager.gd +++ b/src/world/world_manager.gd @@ -27,7 +27,7 @@ signal mp3_collected(mp3_track: MP3Track) signal player_dead const MAX_ALERT := 6 -const CLEAR_LEVEL := 2 +const CLEAR_LEVEL := 1 const BASE_TANK_LIMIT := 96000 const BIG_TANK_LIMIT := 198000