diff --git a/asset_dev/sfx/118481__steveygos93__dolphin.wav b/asset_dev/sfx/118481__steveygos93__dolphin.wav new file mode 100644 index 0000000..e6e8766 Binary files /dev/null and b/asset_dev/sfx/118481__steveygos93__dolphin.wav differ diff --git a/asset_dev/sfx/161691__felixblume__dolphin-screaming-underwater-in-caribbean-sea-mexico.wav b/asset_dev/sfx/161691__felixblume__dolphin-screaming-underwater-in-caribbean-sea-mexico.wav new file mode 100644 index 0000000..cb2c696 Binary files /dev/null and b/asset_dev/sfx/161691__felixblume__dolphin-screaming-underwater-in-caribbean-sea-mexico.wav differ diff --git a/asset_dev/sfx/grunk_chitter.aup3 b/asset_dev/sfx/grunk_chitter.aup3 new file mode 100644 index 0000000..4310b5e Binary files /dev/null and b/asset_dev/sfx/grunk_chitter.aup3 differ diff --git a/asset_dev/sfx/grunk_chitter.aup3-shm b/asset_dev/sfx/grunk_chitter.aup3-shm new file mode 100644 index 0000000..005d9b7 Binary files /dev/null and b/asset_dev/sfx/grunk_chitter.aup3-shm differ diff --git a/asset_dev/sfx/grunk_chitter.aup3-wal b/asset_dev/sfx/grunk_chitter.aup3-wal new file mode 100644 index 0000000..3b920b0 Binary files /dev/null and b/asset_dev/sfx/grunk_chitter.aup3-wal differ diff --git a/assets/sfx/ambient/drone_loop.wav b/assets/sfx/ambient/drone_loop.wav new file mode 100644 index 0000000..45c97b2 Binary files /dev/null and b/assets/sfx/ambient/drone_loop.wav differ diff --git a/assets/sfx/ambient/drone_loop.wav.import b/assets/sfx/ambient/drone_loop.wav.import new file mode 100644 index 0000000..15cd3e6 --- /dev/null +++ b/assets/sfx/ambient/drone_loop.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dx4d8a3mgpws" +path="res://.godot/imported/drone_loop.wav-50d3d68932a0f8909ec9e82813b96e81.sample" + +[deps] + +source_file="res://assets/sfx/ambient/drone_loop.wav" +dest_files=["res://.godot/imported/drone_loop.wav-50d3d68932a0f8909ec9e82813b96e81.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=2 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/assets/sfx/ambient/metal_creak1.wav b/assets/sfx/ambient/metal_creak1.wav new file mode 100644 index 0000000..2ac5bfd Binary files /dev/null and b/assets/sfx/ambient/metal_creak1.wav differ diff --git a/assets/sfx/ambient/metal_creak1.wav.import b/assets/sfx/ambient/metal_creak1.wav.import new file mode 100644 index 0000000..1ba32bf --- /dev/null +++ b/assets/sfx/ambient/metal_creak1.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cqh31d5my7fst" +path="res://.godot/imported/metal_creak1.wav-a72b7ee01a1248f0ebb7ee255aa967a8.sample" + +[deps] + +source_file="res://assets/sfx/ambient/metal_creak1.wav" +dest_files=["res://.godot/imported/metal_creak1.wav-a72b7ee01a1248f0ebb7ee255aa967a8.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/assets/sfx/grunk/groan1.wav b/assets/sfx/grunk/groan1.wav new file mode 100644 index 0000000..53c0bbf Binary files /dev/null and b/assets/sfx/grunk/groan1.wav differ diff --git a/assets/sfx/grunk/groan1.wav.import b/assets/sfx/grunk/groan1.wav.import new file mode 100644 index 0000000..66c39d5 --- /dev/null +++ b/assets/sfx/grunk/groan1.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://b288km80xeh0" +path="res://.godot/imported/groan1.wav-166de7281a9e784fa78c70717b1d3d25.sample" + +[deps] + +source_file="res://assets/sfx/grunk/groan1.wav" +dest_files=["res://.godot/imported/groan1.wav-166de7281a9e784fa78c70717b1d3d25.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/assets/sfx/grunk/groan2.wav b/assets/sfx/grunk/groan2.wav new file mode 100644 index 0000000..fc50d04 Binary files /dev/null and b/assets/sfx/grunk/groan2.wav differ diff --git a/assets/sfx/grunk/groan2.wav.import b/assets/sfx/grunk/groan2.wav.import new file mode 100644 index 0000000..68cfe97 --- /dev/null +++ b/assets/sfx/grunk/groan2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bujyltdunajj4" +path="res://.godot/imported/groan2.wav-4e09bb09a4fa758f7652d6019d2f82fc.sample" + +[deps] + +source_file="res://assets/sfx/grunk/groan2.wav" +dest_files=["res://.godot/imported/groan2.wav-4e09bb09a4fa758f7652d6019d2f82fc.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/assets/sfx/grunk/groan3.wav b/assets/sfx/grunk/groan3.wav new file mode 100644 index 0000000..7047778 Binary files /dev/null and b/assets/sfx/grunk/groan3.wav differ diff --git a/assets/sfx/grunk/groan3.wav.import b/assets/sfx/grunk/groan3.wav.import new file mode 100644 index 0000000..7ffcda9 --- /dev/null +++ b/assets/sfx/grunk/groan3.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bvtopyke5d17x" +path="res://.godot/imported/groan3.wav-fe410936dcc4c7f7a7e17ce1ef5eecf0.sample" + +[deps] + +source_file="res://assets/sfx/grunk/groan3.wav" +dest_files=["res://.godot/imported/groan3.wav-fe410936dcc4c7f7a7e17ce1ef5eecf0.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/levels/ghost_ship/ambient_drone.gd b/levels/ghost_ship/ambient_drone.gd new file mode 100644 index 0000000..b3c76b6 --- /dev/null +++ b/levels/ghost_ship/ambient_drone.gd @@ -0,0 +1,62 @@ +extends AudioStreamPlayer + +const MUTE_VOLUME := -80.0 + +@export var volume_increment := 0.618 +@export var base_volume := -14.0 +@export var boosted_volume := -2.0 + +var target_volume := MUTE_VOLUME +var suppressed := false +var boosted := false + + +func _ready() -> void: + Game.manager.alert_raised.connect(_on_alert_raised) + + +func get_target_volume() -> float: + if suppressed: + return MUTE_VOLUME + if boosted: + return boosted_volume + return target_volume + + +## Temporarily suppress ambience +func suppress(time: float = 5.0) -> void: + suppressed = true + get_tree().create_timer(time).timeout.connect(_unsuppress) + + +## Temporarily boost ambience +func boost(time: float = 5.0) -> void: + boosted = true + get_tree().create_timer(time).timeout.connect(_unboost) + + +func _unsuppress() -> void: + suppressed = false + + +func _unboost() -> void: + boosted = false + + +func _process(delta: float) -> void: + volume_db = lerpf(volume_db, get_target_volume(), volume_increment * delta) + + +func _on_player_enters_ship(_body: Node3D) -> void: + target_volume = MUTE_VOLUME + + +func _on_player_exits_ship(_body: Node3D) -> void: + target_volume = base_volume + + +func _on_alert_raised(new_level: int) -> void: + if new_level == Game.manager.MAX_ALERT: + suppress(30) + else: + boost(10.0) diff --git a/levels/ghost_ship/ambient_drone.gd.uid b/levels/ghost_ship/ambient_drone.gd.uid new file mode 100644 index 0000000..04df754 --- /dev/null +++ b/levels/ghost_ship/ambient_drone.gd.uid @@ -0,0 +1 @@ +uid://441gcyrbv0jd diff --git a/levels/ghost_ship/ghost_ship.tscn b/levels/ghost_ship/ghost_ship.tscn index aacaa11..3185475 100644 --- a/levels/ghost_ship/ghost_ship.tscn +++ b/levels/ghost_ship/ghost_ship.tscn @@ -1,9 +1,14 @@ -[gd_scene load_steps=5 format=3 uid="uid://bov4ok76woyc"] +[gd_scene load_steps=8 format=3 uid="uid://bov4ok76woyc"] [ext_resource type="PackedScene" uid="uid://crydi5cjgfwe5" path="res://levels/ghost_ship/ghost_ship_level.tscn" id="1_aj2m7"] [ext_resource type="Environment" uid="uid://bkvij3ljl5ox3" path="res://levels/ghost_ship/environment_3.tres" id="1_wwgrl"] [ext_resource type="PackedScene" uid="uid://bwe2jdmvinhqd" path="res://src/player/player.tscn" id="2_0ef5p"] [ext_resource type="PackedScene" uid="uid://d1kacn4b60ucy" path="res://src/ui/post_processing.tscn" id="3_o7mxe"] +[ext_resource type="AudioStream" uid="uid://dx4d8a3mgpws" path="res://assets/sfx/ambient/drone_loop.wav" id="5_ejh2c"] +[ext_resource type="Script" uid="uid://441gcyrbv0jd" path="res://levels/ghost_ship/ambient_drone.gd" id="5_jiowi"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_o7mxe"] +size = Vector3(6, 4, 15) [node name="GhostShip" type="Node3D"] @@ -18,3 +23,24 @@ environment = ExtResource("1_wwgrl") transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1, 0) [node name="Player" parent="PlayerSpawn" instance=ExtResource("2_0ef5p")] + +[node name="PlayerShipArea" type="Area3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) +collision_layer = 0 +collision_mask = 8 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerShipArea"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0) +shape = SubResource("BoxShape3D_o7mxe") + +[node name="AmbientDrone" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = ExtResource("5_ejh2c") +volume_db = -80.0 +autoplay = true +bus = &"Music" +script = ExtResource("5_jiowi") +base_volume = -18.0 + +[connection signal="body_entered" from="PlayerShipArea" to="AmbientDrone" method="_on_player_enters_ship"] +[connection signal="body_exited" from="PlayerShipArea" to="AmbientDrone" method="_on_player_exits_ship"] diff --git a/levels/ghost_ship/ghost_ship_level.tscn b/levels/ghost_ship/ghost_ship_level.tscn index 37ef173..16bb904 100644 --- a/levels/ghost_ship/ghost_ship_level.tscn +++ b/levels/ghost_ship/ghost_ship_level.tscn @@ -6196,6 +6196,7 @@ outline_size = 36 [node name="GrunkNodule" parent="Airlock" instance=ExtResource("19_ji5cn")] transform = Transform3D(1, 0, 0, 0, 0.866026, -0.5, 0, 0.5, 0.866026, -2.05, 0.15, -4.5) +chitter = true value = 4000.0 [node name="GrunkNodule2" parent="Airlock" instance=ExtResource("19_ji5cn")] @@ -6203,6 +6204,7 @@ transform = Transform3D(0.5, 0, 0, 0, 0.353553, 0.353554, 0, -0.353554, 0.353553 [node name="GrunkNodule3" parent="Airlock" instance=ExtResource("19_ji5cn")] transform = Transform3D(0.5, 0, 0, 0, 0.353553, 0.353554, 0, -0.353554, 0.353553, 1.4, 2.65, -4.3) +chitter = true [node name="OverheadLight" parent="Airlock" instance=ExtResource("39_kp5n7")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0) @@ -6293,10 +6295,12 @@ shape = SubResource("ConcavePolygonShape3D_ruwlj") [node name="GrunkNodule" parent="Corridor1/Hallway2" instance=ExtResource("19_ji5cn")] transform = Transform3D(0.866025, 0.5, 0, -0.5, 0.866025, 0, 0, 0, 1, -1.35, 0, -1.15) +chitter = true value = 4000.0 [node name="GrunkNodule2" parent="Corridor1/Hallway2" instance=ExtResource("19_ji5cn")] transform = Transform3D(0.519615, 0.3, 0, 2.98023e-08, 2.98023e-08, -0.6, -0.3, 0.519615, 0, -1.35, 0, 0.25) +chitter = true [node name="GrunkNodule3" parent="Corridor1/Hallway2" instance=ExtResource("19_ji5cn")] transform = Transform3D(0.129904, 0.375, -0.45, -0.439868, -0.241946, -0.328601, -0.386835, 0.401045, 0.222535, -1.35, 0.5, -0.25) @@ -6307,10 +6311,12 @@ value = 800.0 [node name="GrunkNodule6" parent="Corridor1/Hallway2" instance=ExtResource("19_ji5cn")] transform = Transform3D(0.109602, 0.109602, 0.268468, 0.219203, -0.219203, 9.58262e-10, 0.189835, 0.189835, -0.155, -1.5, 1.52511, -2.25) +chitter = true value = 800.0 [node name="GrunkNodule5" parent="Corridor1/Hallway2" instance=ExtResource("19_ji5cn")] transform = Transform3D(0.0773296, 0.288598, 0.1725, 0.0446463, 0.166622, -0.298779, -0.333244, 0.0892925, -7.54021e-09, -1.5, 1.12511, -1.75) +chitter = true value = 800.0 [node name="FloatingDust" parent="Corridor1/Hallway2" instance=ExtResource("25_6giaa")] @@ -6791,6 +6797,7 @@ value = 500.0 [node name="GrunkNodule7" parent="MessHall/Traps/Trap1" instance=ExtResource("19_ji5cn")] transform = Transform3D(0.214063, 0.323536, -0.0974745, -0.07312, -0.0683013, -0.387283, -0.329895, 0.225076, 0.0225905, 1.44886, 0.3, 1.41177) +chitter = true durability = 1.5 value = 500.0 @@ -6812,9 +6819,11 @@ transform = Transform3D(-0.364606, -0.492715, -0.338074, -0.478109, 0.478109, -0 [node name="GrunkNodule8" parent="MessHall/Traps/Trap1" instance=ExtResource("19_ji5cn")] transform = Transform3D(-0.435211, -0.430994, -0.338873, -0.539981, 0.411872, 0.169653, 0.0949319, 0.366886, -0.588543, -0.507496, 0.6, -2.41218) +chitter = true [node name="GrunkNodule9" parent="MessHall/Traps/Trap1" instance=ExtResource("19_ji5cn")] transform = Transform3D(-0.0703269, 0.693365, 0.0655666, 0.696452, 0.0702819, 0.00378095, -0.00283841, 0.0656149, -0.696912, -1.35603, 0.6, -0.942478) +chitter = true [node name="GrunkNodule10" parent="MessHall/Traps/Trap1" instance=ExtResource("19_ji5cn")] transform = Transform3D(0.0233609, -0.207042, -0.45452, 0.497466, 0.0502018, 0.00270045, 0.0445172, -0.452342, 0.208338, -1.49432, 0.348541, 0.0263252) @@ -6824,6 +6833,7 @@ editor_description = "Teach players traps may not always be obvious" [node name="GrunkNodule8" parent="MessHall/Traps/Trap2" instance=ExtResource("19_ji5cn")] transform = Transform3D(0.73038, 0.635646, -0.25, -0.683013, 0.683013, -0.258819, 0.00623576, 0.35979, 0.933013, 2.53411, 0.4, 5.23866) +chitter = true [node name="GrunkNodule10" parent="MessHall/Traps/Trap2" instance=ExtResource("19_ji5cn")] transform = Transform3D(-0.124128, -0.101968, 0.578096, -0.434356, -0.381517, -0.160559, 0.394876, -0.451716, 0.00511129, 2.23411, 1.3, 4.63866) @@ -6839,6 +6849,7 @@ value = 300.0 [node name="GrunkNodule16" parent="MessHall/Traps/Trap2" instance=ExtResource("19_ji5cn")] transform = Transform3D(0.121483, -0.134858, -0.238862, -0.195351, 0.140856, -0.178879, 0.192561, 0.227976, -0.030777, 1.37645, 1.58525, 4.81688) +chitter = true value = 300.0 [node name="GrunkNodule12" parent="MessHall/Traps/Trap2" instance=ExtResource("19_ji5cn")] diff --git a/project.godot b/project.godot index 9156811..dc8cf03 100644 --- a/project.godot +++ b/project.godot @@ -181,6 +181,7 @@ locale/translations=PackedStringArray("res://assets/text/text.en.translation") 3d_physics/layer_1="Physics" 3d_physics/layer_2="Interactive" 3d_physics/layer_3="Sprayable" +3d_physics/layer_4="Player" [rendering] diff --git a/src/player/player.tscn b/src/player/player.tscn index a3d2165..a0bb45c 100644 --- a/src/player/player.tscn +++ b/src/player/player.tscn @@ -223,6 +223,7 @@ stream_1/stream = ExtResource("29_wcxbk") stream_2/stream = ExtResource("30_p6grl") [node name="Player" type="CharacterBody3D"] +collision_layer = 9 script = ExtResource("1_npueo") [node name="CameraPivot" type="Node3D" parent="."] diff --git a/src/world/gunk_node/grunk_nodule.gd b/src/world/gunk_node/grunk_nodule.gd index 76618a7..4348229 100644 --- a/src/world/gunk_node/grunk_nodule.gd +++ b/src/world/gunk_node/grunk_nodule.gd @@ -3,10 +3,22 @@ extends GunkNode @export var jitter_scale_factor := 0.05 @export var jitter_inflation_factor := 1.0 +@export var chitter: bool = false +@export var chitter_time_mean := 120.0 +@export var chitter_time_st_dev := 30.0 + @export var splatter_scene: PackedScene @onready var mesh_instance: MeshInstance3D = %MeshInstance3D +@onready var chitter_sfx: AudioStreamPlayer3D = %ChitterSFX +@onready var chitter_timer: Timer = %ChitterTimer + + +func _ready() -> void: + if chitter: + start_chitter_timer() + func _process(delta: float) -> void: super._process(delta) @@ -21,3 +33,13 @@ func _destroy() -> void: add_sibling(splatter) splatter.global_position = global_position splatter.emitting = true + + +func start_chitter_timer() -> void: + var interval := randfn(chitter_time_mean, chitter_time_st_dev) + chitter_timer.start(interval) + + +func _on_chitter_timer_timeout() -> void: + chitter_sfx.play() + start_chitter_timer() diff --git a/src/world/gunk_node/grunk_nodule.tscn b/src/world/gunk_node/grunk_nodule.tscn index cf9f377..6cc1712 100644 --- a/src/world/gunk_node/grunk_nodule.tscn +++ b/src/world/gunk_node/grunk_nodule.tscn @@ -1,8 +1,11 @@ -[gd_scene load_steps=7 format=4 uid="uid://2yqi5u5eo025"] +[gd_scene load_steps=11 format=4 uid="uid://2yqi5u5eo025"] [ext_resource type="Script" uid="uid://07t7yhijru8f" path="res://src/world/gunk_node/grunk_nodule.gd" id="1_iyr82"] [ext_resource type="PackedScene" uid="uid://xlt78xc1tmkl" path="res://src/effects/grunk_splatter.tscn" id="2_m8r0a"] [ext_resource type="Material" uid="uid://bmab6i16v748m" path="res://assets/materials/grunk_jittery.material" id="3_eu6j6"] +[ext_resource type="AudioStream" uid="uid://b288km80xeh0" path="res://assets/sfx/grunk/groan1.wav" id="4_ri4uq"] +[ext_resource type="AudioStream" uid="uid://bujyltdunajj4" path="res://assets/sfx/grunk/groan2.wav" id="5_7fplw"] +[ext_resource type="AudioStream" uid="uid://bvtopyke5d17x" path="res://assets/sfx/grunk/groan3.wav" id="6_omayi"] [sub_resource type="ArrayMesh" id="ArrayMesh_24j8i"] _surfaces = [{ @@ -39,6 +42,13 @@ shadow_mesh = SubResource("ArrayMesh_24j8i") [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_530fq"] data = PackedVector3Array(0.7236, -0.4472, 0.5257, 0, -1, 0, -0.2764, -0.4472, 0.8506, 0, -1, 0, 0.7236, -0.4472, 0.5257, 0.7236, -0.4472, -0.5257, -0.2764, -0.4472, 0.8506, 0, -1, 0, -0.8944, -0.4472, 0, -0.8944, -0.4472, 0, 0, -1, 0, -0.2764, -0.4472, -0.8506, -0.2764, -0.4472, -0.8506, 0, -1, 0, 0.7236, -0.4472, -0.5257, 0.7236, -0.4472, -0.5257, 0.7236, -0.4472, 0.5257, 0.8944, 0.4472, 0, 0.7236, -0.4472, 0.5257, -0.2764, -0.4472, 0.8506, 0.2764, 0.4472, 0.8506, -0.2764, -0.4472, 0.8506, -0.8944, -0.4472, 0, -0.7236, 0.4472, 0.5257, -0.8944, -0.4472, 0, -0.2764, -0.4472, -0.8506, -0.7236, 0.4472, -0.5257, -0.2764, -0.4472, -0.8506, 0.7236, -0.4472, -0.5257, 0.2764, 0.4472, -0.8506, 0.8944, 0.4472, 0, 0.7236, -0.4472, 0.5257, 0.2764, 0.4472, 0.8506, 0.2764, 0.4472, 0.8506, -0.2764, -0.4472, 0.8506, -0.7236, 0.4472, 0.5257, -0.7236, 0.4472, 0.5257, -0.8944, -0.4472, 0, -0.7236, 0.4472, -0.5257, -0.7236, 0.4472, -0.5257, -0.2764, -0.4472, -0.8506, 0.2764, 0.4472, -0.8506, 0.2764, 0.4472, -0.8506, 0.7236, -0.4472, -0.5257, 0.8944, 0.4472, 0, 0.8944, 0.4472, 0, 0.2764, 0.4472, 0.8506, 0, 1, 0, 0.2764, 0.4472, 0.8506, -0.7236, 0.4472, 0.5257, 0, 1, 0, -0.7236, 0.4472, 0.5257, -0.7236, 0.4472, -0.5257, 0, 1, 0, -0.7236, 0.4472, -0.5257, 0.2764, 0.4472, -0.8506, 0, 1, 0, 0.2764, 0.4472, -0.8506, 0.8944, 0.4472, 0, 0, 1, 0) +[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_yg8lg"] +random_pitch = 1.1 +streams_count = 3 +stream_0/stream = ExtResource("4_ri4uq") +stream_1/stream = ExtResource("5_7fplw") +stream_2/stream = ExtResource("6_omayi") + [node name="GrunkNodule" type="StaticBody3D"] collision_layer = 5 script = ExtResource("1_iyr82") @@ -52,3 +62,15 @@ mesh = SubResource("ArrayMesh_iyr82") [node name="CollisionShape3D" type="CollisionShape3D" parent="."] shape = SubResource("ConcavePolygonShape3D_530fq") + +[node name="ChitterSFX" type="AudioStreamPlayer3D" parent="."] +unique_name_in_owner = true +stream = SubResource("AudioStreamRandomizer_yg8lg") +volume_db = -20.0 +bus = &"SFX" + +[node name="ChitterTimer" type="Timer" parent="."] +unique_name_in_owner = true +one_shot = true + +[connection signal="timeout" from="ChitterTimer" to="." method="_on_chitter_timer_timeout"] diff --git a/vault/TODO.md b/vault/TODO.md index b2321f5..366d50a 100644 --- a/vault/TODO.md +++ b/vault/TODO.md @@ -48,6 +48,9 @@ - [ ] SFX: - [ ] ui bonk - [ ] prop clear glitter + - [ ] computer bleep on reload + - [ ] grunk tank deposit schlorp + - [ ] player ship door - [x] metal footsteps - [x] plastic footsteps - [x] grunk footsteps diff --git a/vault/assets/asset credits.md b/vault/assets/asset credits.md index e5715d4..f88295d 100644 --- a/vault/assets/asset credits.md +++ b/vault/assets/asset credits.md @@ -29,4 +29,14 @@ - author: Nox_Sound - CC0 - retrieved from https://freesound.org/people/Nox_Sound/sounds/530588/ - - assets/sfx/footsteps/plastic/plastic*.wav \ No newline at end of file + - assets/sfx/footsteps/plastic/plastic*.wav + - "Metal creak.wav" + - author: sophiehall3535 + - CC0 + - retrieved from https://freesound.org/people/sophiehall3535/sounds/245945/ + - assets/sfx/ambient/metal_creak_1.wav + - "Drone Loop (Fixed)" + - author: Fission9 + - CC0 + - retrieved from https://freesound.org/people/Fission9/sounds/567220/ + - assets/sfx/ambient/drone_loop.wav \ No newline at end of file