diff --git a/levels/mechanic_test/mechanic_test.gd b/levels/mechanic_test/mechanic_test.gd index 02921db..f9bb7e5 100644 --- a/levels/mechanic_test/mechanic_test.gd +++ b/levels/mechanic_test/mechanic_test.gd @@ -21,9 +21,11 @@ func reset() -> void: Callable(open_switch, "enable").call() Callable(close_switch, "disable").call() - var signal_test_scene: PackedScene = load("res://levels/mechanic_test/signal_test.tscn") - var prop_test_scene: PackedScene = load("res://levels/mechanic_test/prop_test.tscn") - var item_test_scene: PackedScene = load("res://levels/mechanic_test/item_test.tscn") + var signal_test_scene: PackedScene = _load_no_cache( + "res://levels/mechanic_test/signal_test.tscn" + ) + var prop_test_scene: PackedScene = _load_no_cache("res://levels/mechanic_test/prop_test.tscn") + var item_test_scene: PackedScene = _load_no_cache("res://levels/mechanic_test/item_test.tscn") _do_spawn(signal_test_spawn_point, signal_test_scene) _do_spawn(prop_test_spawn_point, prop_test_scene) _do_spawn(item_test_spawn_point, item_test_scene) @@ -36,13 +38,17 @@ func _do_spawn(spawn_point: Node3D, scene: PackedScene) -> void: spawn_point.add_child(instance) +func _load_no_cache(path: StringName) -> Resource: + return ResourceLoader.load(path, "", ResourceLoader.CACHE_MODE_IGNORE) + + func spawn_nodule() -> void: - var nodule_scene: PackedScene = load("res://src/world/gunk_node/grunk_nodule.tscn") + var nodule_scene: PackedScene = _load_no_cache("res://src/world/gunk_node/grunk_nodule.tscn") _do_spawn(nodule_spawn_point, nodule_scene) func spawn_alarm() -> void: - var alarm_scene: PackedScene = load("res://src/world/mechanics/alarm/gunk_alarm.tscn") + var alarm_scene: PackedScene = _load_no_cache("res://src/world/mechanics/alarm/gunk_alarm.tscn") _do_spawn(alarm_spawn_point, alarm_scene) diff --git a/levels/mechanic_test/mechanic_test.tscn b/levels/mechanic_test/mechanic_test.tscn index fbd6df6..bf5a4a2 100644 --- a/levels/mechanic_test/mechanic_test.tscn +++ b/levels/mechanic_test/mechanic_test.tscn @@ -1,14 +1,14 @@ -[gd_scene load_steps=32 format=4 uid="uid://b8rv6dg4tgaeb"] +[gd_scene load_steps=35 format=4 uid="uid://b8rv6dg4tgaeb"] [ext_resource type="Script" uid="uid://bvua1l2hb3an6" path="res://levels/mechanic_test/mechanic_test.gd" id="1_iyuyb"] [ext_resource type="PackedScene" uid="uid://bwe2jdmvinhqd" path="res://src/player/player.tscn" id="2_qjnj2"] [ext_resource type="PackedScene" uid="uid://b6eg8t04rkh0c" path="res://src/props/wall_switch/wall_switch.tscn" id="3_awnx0"] +[ext_resource type="Script" uid="uid://deg5xd87cy8rg" path="res://src/props/interactive.gd" id="4_qjnj2"] [ext_resource type="Texture2D" uid="uid://8cm835h4gxwe" path="res://assets/debug_mask.png" id="5_aix42"] [ext_resource type="Shader" uid="uid://ckxc0ngd37rtk" path="res://src/shaders/gunk.gdshader" id="6_6frcc"] [ext_resource type="FastNoiseLite" uid="uid://cnlvdtx68giv6" path="res://assets/materials/gunk_noise.tres" id="7_7cbja"] [ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="8_awnx0"] [ext_resource type="PackedScene" uid="uid://cubwniraol1qn" path="res://src/props/bulkhead/bulkhead.tscn" id="8_ujrcv"] -[ext_resource type="Script" uid="uid://co0g2klfmor48" path="res://src/world/gunkable/gunkable.gd" id="9_cgmn0"] [ext_resource type="PackedScene" uid="uid://b5jubpjj3d277" path="res://levels/mechanic_test/signal_test.tscn" id="9_ix0jw"] [ext_resource type="PackedScene" uid="uid://cfqirm2o3uo4k" path="res://levels/mechanic_test/prop_test.tscn" id="10_xrfi2"] [ext_resource type="PackedScene" uid="uid://dbabcsp38wmid" path="res://levels/mechanic_test/item_test.tscn" id="11_8natv"] @@ -33,6 +33,17 @@ size = Vector3(0.5, 2, 0.5) [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_bg05n"] data = PackedVector3Array(-0.25, 1, 0.25, 0.25, 1, 0.25, -0.25, -1, 0.25, 0.25, 1, 0.25, 0.25, -1, 0.25, -0.25, -1, 0.25, 0.25, 1, -0.25, -0.25, 1, -0.25, 0.25, -1, -0.25, -0.25, 1, -0.25, -0.25, -1, -0.25, 0.25, -1, -0.25, 0.25, 1, 0.25, 0.25, 1, -0.25, 0.25, -1, 0.25, 0.25, 1, -0.25, 0.25, -1, -0.25, 0.25, -1, 0.25, -0.25, 1, -0.25, -0.25, 1, 0.25, -0.25, -1, -0.25, -0.25, 1, 0.25, -0.25, -1, 0.25, -0.25, -1, -0.25, 0.25, 1, 0.25, -0.25, 1, 0.25, 0.25, 1, -0.25, -0.25, 1, 0.25, -0.25, 1, -0.25, 0.25, 1, -0.25, -0.25, -1, 0.25, 0.25, -1, 0.25, -0.25, -1, -0.25, 0.25, -1, 0.25, 0.25, -1, -0.25, -0.25, -1, -0.25) +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ibd1t"] +albedo_color = Color(0.866667, 0.109804, 0.101961, 1) + +[sub_resource type="SphereMesh" id="SphereMesh_awnx0"] +material = SubResource("StandardMaterial3D_ibd1t") +radius = 0.2 +height = 0.4 + +[sub_resource type="SphereShape3D" id="SphereShape3D_cgmn0"] +radius = 0.25 + [sub_resource type="CompressedTexture2D" id="CompressedTexture2D_2h3rs"] load_path = "res://.godot/imported/hallway_2_C.png-368e035781dbfc292f80210e8377e1f9.ctex" @@ -181,9 +192,24 @@ mesh = SubResource("BoxMesh_goufh") [node name="CollisionShape3D" type="CollisionShape3D" parent="NoduleSpawner"] shape = SubResource("ConcavePolygonShape3D_bg05n") -[node name="WallSwitch" parent="NoduleSpawner" instance=ExtResource("3_awnx0")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 0.35) -clean = true +[node name="ButtonMesh" type="MeshInstance3D" parent="NoduleSpawner"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 0.25) +mesh = SubResource("SphereMesh_awnx0") +skeleton = NodePath("") + +[node name="InteractiveBody" type="StaticBody3D" parent="NoduleSpawner/ButtonMesh"] +collision_layer = 2 +collision_mask = 0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="NoduleSpawner/ButtonMesh/InteractiveBody"] +shape = SubResource("SphereShape3D_cgmn0") + +[node name="Interactive" type="Node" parent="NoduleSpawner/ButtonMesh/InteractiveBody"] +script = ExtResource("4_qjnj2") +enabled = true +label = "Level" +verb = "spawn nodule" +metadata/_custom_type_script = "uid://deg5xd87cy8rg" [node name="Label3D" type="Label3D" parent="NoduleSpawner"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0.3) @@ -203,10 +229,6 @@ mesh = SubResource("BoxMesh_goufh") [node name="CollisionShape3D" type="CollisionShape3D" parent="AlarmSpawner"] shape = SubResource("ConcavePolygonShape3D_bg05n") -[node name="WallSwitch" parent="AlarmSpawner" instance=ExtResource("3_awnx0")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 0.35) -clean = true - [node name="Label3D" type="Label3D" parent="AlarmSpawner"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0.3) text = "Spawn @@ -216,6 +238,25 @@ Alarm" unique_name_in_owner = true transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.7, -4) +[node name="ButtonMesh" type="MeshInstance3D" parent="AlarmSpawner"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 0.25) +mesh = SubResource("SphereMesh_awnx0") +skeleton = NodePath("") + +[node name="InteractiveBody" type="StaticBody3D" parent="AlarmSpawner/ButtonMesh"] +collision_layer = 2 +collision_mask = 0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="AlarmSpawner/ButtonMesh/InteractiveBody"] +shape = SubResource("SphereShape3D_cgmn0") + +[node name="Interactive" type="Node" parent="AlarmSpawner/ButtonMesh/InteractiveBody"] +script = ExtResource("4_qjnj2") +enabled = true +label = "Level" +verb = "spawn alarm" +metadata/_custom_type_script = "uid://deg5xd87cy8rg" + [node name="AlarmTrigger" type="StaticBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.5, 1, -6) @@ -225,14 +266,29 @@ mesh = SubResource("BoxMesh_goufh") [node name="CollisionShape3D" type="CollisionShape3D" parent="AlarmTrigger"] shape = SubResource("ConcavePolygonShape3D_bg05n") -[node name="AlarmTriggerSwitch" parent="AlarmTrigger" instance=ExtResource("3_awnx0")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 0.35) -clean = true - [node name="Label3D" type="Label3D" parent="AlarmTrigger"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0.3) text = "Trigger" +[node name="ButtonMesh" type="MeshInstance3D" parent="AlarmTrigger"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 0.25) +mesh = SubResource("SphereMesh_awnx0") +skeleton = NodePath("") + +[node name="InteractiveBody" type="StaticBody3D" parent="AlarmTrigger/ButtonMesh"] +collision_layer = 2 +collision_mask = 0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="AlarmTrigger/ButtonMesh/InteractiveBody"] +shape = SubResource("SphereShape3D_cgmn0") + +[node name="Interactive" type="Node" parent="AlarmTrigger/ButtonMesh/InteractiveBody"] +script = ExtResource("4_qjnj2") +enabled = true +label = "Level" +verb = "trigger alarm" +metadata/_custom_type_script = "uid://deg5xd87cy8rg" + [node name="GunkHall" type="MeshInstance3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, -31) mesh = SubResource("ArrayMesh_x2vho") @@ -245,14 +301,12 @@ collision_mask = 0 [node name="CollisionShape3D" type="CollisionShape3D" parent="GunkHall/StaticBody3D"] shape = SubResource("ConcavePolygonShape3D_qjnj2") -[node name="Gunkable" type="Node" parent="GunkHall/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("8_awnx0")] +[node name="Gunkable" parent="GunkHall/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("8_awnx0")] unique_name_in_owner = true -script = ExtResource("9_cgmn0") body = NodePath("..") mesh_instance = NodePath("../..") initial_mask = ExtResource("5_aix42") source_gunk_material = SubResource("ShaderMaterial_aix42") -metadata/_custom_type_script = "uid://co0g2klfmor48" [node name="Bulkhead" parent="." instance=ExtResource("8_ujrcv")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.5, 0, -2) @@ -313,9 +367,9 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13, 0, -2) [node name="ItemTest" parent="ItemTestSpawnPoint" instance=ExtResource("11_8natv")] [connection signal="activated" from="ResetPodium/ResetSwitch" to="." method="reset"] -[connection signal="activated" from="NoduleSpawner/WallSwitch" to="." method="spawn_nodule"] -[connection signal="activated" from="AlarmSpawner/WallSwitch" to="." method="spawn_alarm"] -[connection signal="activated" from="AlarmTrigger/AlarmTriggerSwitch" to="." method="trigger_spawned_alarm"] +[connection signal="activated" from="NoduleSpawner/ButtonMesh/InteractiveBody/Interactive" to="." method="spawn_nodule"] +[connection signal="activated" from="AlarmSpawner/ButtonMesh/InteractiveBody/Interactive" to="." method="spawn_alarm"] +[connection signal="activated" from="AlarmTrigger/ButtonMesh/InteractiveBody/Interactive" to="." method="trigger_spawned_alarm"] [connection signal="activated" from="Bulkhead/Podium/OpenSwitch" to="Bulkhead" method="open"] [connection signal="activated" from="Bulkhead/Podium/OpenSwitch" to="Bulkhead/Podium/OpenSwitch" method="disable"] [connection signal="activated" from="Bulkhead/Podium/OpenSwitch" to="Bulkhead/Podium2/CloseSwitch" method="enable"] diff --git a/levels/prop_test/prop_test.tscn b/levels/prop_test/prop_test.tscn index 7dd9477..a6a3e10 100644 --- a/levels/prop_test/prop_test.tscn +++ b/levels/prop_test/prop_test.tscn @@ -61,11 +61,11 @@ texture_filter = 2 [sub_resource type="BoxShape3D" id="BoxShape3D_ibd1t"] size = Vector3(2.35, 3.1, 1.5) -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ibd1t"] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hb05j"] albedo_color = Color(0.866667, 0.109804, 0.101961, 1) [sub_resource type="SphereMesh" id="SphereMesh_ibd1t"] -material = SubResource("StandardMaterial3D_ibd1t") +material = SubResource("StandardMaterial3D_hb05j") radius = 0.2 height = 0.4 diff --git a/src/effects/grunk_splatter/grunk_splatter.gd b/src/effects/grunk_splatter/grunk_splatter.gd index d9eb095..bad99dc 100644 --- a/src/effects/grunk_splatter/grunk_splatter.gd +++ b/src/effects/grunk_splatter/grunk_splatter.gd @@ -24,6 +24,7 @@ func _ready() -> void: # Scale amount of dust grunk_dust.amount_ratio = 0.5 * effect_scale + print_debug("Splatter dust ratio: ", grunk_dust.amount_ratio) func _scale_particles(emitter: GPUParticles3D) -> void: diff --git a/src/effects/grunk_splatter/grunk_splatter.tscn b/src/effects/grunk_splatter/grunk_splatter.tscn index 0c445fb..2e598c8 100644 --- a/src/effects/grunk_splatter/grunk_splatter.tscn +++ b/src/effects/grunk_splatter/grunk_splatter.tscn @@ -141,11 +141,12 @@ point_count = 2 curve = SubResource("Curve_opa8j") [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_opa8j"] +lifetime_randomness = 0.5 angle_min = -184.7 angle_max = 239.3 direction = Vector3(0, 0, -1) -spread = 90.0 -initial_velocity_min = 5.0 +spread = 180.0 +initial_velocity_min = 4.0 initial_velocity_max = 5.0 angular_velocity_min = -360.0 angular_velocity_max = 360.0 @@ -211,10 +212,11 @@ shape = SubResource("SphereShape3D_6adkd") unique_name_in_owner = true transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0) emitting = false -amount = 64 +amount = 512 lifetime = 1.2 one_shot = true explosiveness = 0.9 +randomness = 1.0 process_material = SubResource("ParticleProcessMaterial_opa8j") [connection signal="ready" from="." to="SplatterSFX" method="play"] diff --git a/src/equipment/point_spray/point_spray.tscn b/src/equipment/point_spray/point_spray.tscn index c5a9fd4..186a940 100644 --- a/src/equipment/point_spray/point_spray.tscn +++ b/src/equipment/point_spray/point_spray.tscn @@ -66,6 +66,7 @@ transform = Transform3D(1, 0, 0, 0, 0.997564, -0.0697565, 0, 0.0697565, 0.997564 unique_name_in_owner = true target_position = Vector3(0, 0, -3) parent_tool = NodePath("../..") +dust_emission_scale = 0.03 [node name="SpraySFX" parent="Muzzle/LaserCast" instance=ExtResource("3_5h54c")] unique_name_in_owner = true diff --git a/src/equipment/wide_spray/wide_spray.tscn b/src/equipment/wide_spray/wide_spray.tscn index 0f43d31..34f828d 100644 --- a/src/equipment/wide_spray/wide_spray.tscn +++ b/src/equipment/wide_spray/wide_spray.tscn @@ -182,21 +182,21 @@ unique_name_in_owner = true [node name="LaserCast" parent="Muzzle/Pivot/SprayCasts" node_paths=PackedStringArray("parent_tool") instance=ExtResource("3_xahet")] target_position = Vector3(-0.5, 0, -2) parent_tool = NodePath("../../../..") -dust_emission_scale = 0.01 +dust_emission_scale = 0.005 [node name="LaserCast2" parent="Muzzle/Pivot/SprayCasts" node_paths=PackedStringArray("parent_tool") instance=ExtResource("3_xahet")] target_position = Vector3(-0.333, 0, -2) parent_tool = NodePath("../../../..") -dust_emission_scale = 0.01 +dust_emission_scale = 0.005 [node name="LaserCast3" parent="Muzzle/Pivot/SprayCasts" node_paths=PackedStringArray("parent_tool") instance=ExtResource("3_xahet")] target_position = Vector3(-0.167, 0, -2) parent_tool = NodePath("../../../..") -dust_emission_scale = 0.01 +dust_emission_scale = 0.005 [node name="LaserCast4" parent="Muzzle/Pivot/SprayCasts" node_paths=PackedStringArray("parent_tool") instance=ExtResource("3_xahet")] parent_tool = NodePath("../../../..") -dust_emission_scale = 0.01 +dust_emission_scale = 0.005 [node name="SpraySFX" parent="Muzzle/Pivot/SprayCasts/LaserCast4" instance=ExtResource("3_v0jnx")] unique_name_in_owner = true @@ -205,17 +205,17 @@ attenuation_model = 0 [node name="LaserCast5" parent="Muzzle/Pivot/SprayCasts" node_paths=PackedStringArray("parent_tool") instance=ExtResource("3_xahet")] target_position = Vector3(0.167, 0, -2) parent_tool = NodePath("../../../..") -dust_emission_scale = 0.01 +dust_emission_scale = 0.005 [node name="LaserCast6" parent="Muzzle/Pivot/SprayCasts" node_paths=PackedStringArray("parent_tool") instance=ExtResource("3_xahet")] target_position = Vector3(0.333, 0, -2) parent_tool = NodePath("../../../..") -dust_emission_scale = 0.01 +dust_emission_scale = 0.005 [node name="LaserCast7" parent="Muzzle/Pivot/SprayCasts" node_paths=PackedStringArray("parent_tool") instance=ExtResource("3_xahet")] target_position = Vector3(0.5, 0, -2) parent_tool = NodePath("../../../..") -dust_emission_scale = 0.01 +dust_emission_scale = 0.005 [node name="SprayEffect" type="MeshInstance3D" parent="Muzzle/Pivot"] unique_name_in_owner = true diff --git a/src/game/global_sfx_manager/global_sfx_manager.tscn b/src/game/global_sfx_manager/global_sfx_manager.tscn index 701c51e..a6c4791 100644 --- a/src/game/global_sfx_manager/global_sfx_manager.tscn +++ b/src/game/global_sfx_manager/global_sfx_manager.tscn @@ -13,37 +13,37 @@ script = ExtResource("1_xjjma") [node name="Confirm" type="AudioStreamPlayer" parent="."] unique_name_in_owner = true stream = ExtResource("2_xjjma") -volume_db = -20.0 +volume_db = -10.0 bus = &"SFX" [node name="Accept" type="AudioStreamPlayer" parent="."] unique_name_in_owner = true stream = ExtResource("3_xl3ms") -volume_db = -20.0 +volume_db = -10.0 bus = &"SFX" [node name="Forward" type="AudioStreamPlayer" parent="."] unique_name_in_owner = true stream = ExtResource("3_xjjma") -volume_db = -20.0 +volume_db = -10.0 pitch_scale = 0.7 bus = &"SFX" [node name="Back" type="AudioStreamPlayer" parent="."] unique_name_in_owner = true stream = ExtResource("3_xjjma") -volume_db = -20.0 +volume_db = -10.0 bus = &"SFX" [node name="Bonk" type="AudioStreamPlayer" parent="."] unique_name_in_owner = true stream = ExtResource("4_ywyuo") -volume_db = -16.0 +volume_db = -8.0 pitch_scale = 1.1 bus = &"SFX" [node name="Bloop" type="AudioStreamPlayer" parent="."] unique_name_in_owner = true stream = ExtResource("6_ywyuo") -volume_db = -20.0 +volume_db = -10.0 bus = &"SFX" diff --git a/src/world/world.tscn b/src/world/world.tscn index 4d2d566..faf7b8c 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://dc4tts6342cuj" path="res://levels/prop_test/prop_test.tscn" id="4_5kmgb"] +[ext_resource type="PackedScene" uid="uid://b8rv6dg4tgaeb" path="res://levels/mechanic_test/mechanic_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"]