diff --git a/src/Actors/Blobby/Blobby.tscn b/src/Actors/Blobby/Blobby.tscn index 00dd284..77f9d7b 100644 --- a/src/Actors/Blobby/Blobby.tscn +++ b/src/Actors/Blobby/Blobby.tscn @@ -4406,5 +4406,5 @@ one_shot = true [connection signal="got_grounded" from="BlobbyStateMachine" to="." method="_on_Blobby_got_grounded"] [connection signal="timeout" from="BlobbyStateMachine/JumpBufferTimer" to="BlobbyStateMachine" method="_on_JumpBufferTimer_timeout"] [connection signal="timeout" from="InvincibilityTimer" to="." method="_on_InvincibilityTimer_timeout"] -[connection signal="timeout" from="PitfallTimer" to="." method="die_for_real"] [connection signal="timeout" from="PitfallTimer" to="." method="_on_PitfallTimer_timeout"] +[connection signal="timeout" from="PitfallTimer" to="." method="die_for_real"] diff --git a/src/Autoload/GlobalAudio.gd b/src/Autoload/GlobalAudio.gd index 8b8100e..32e7934 100644 --- a/src/Autoload/GlobalAudio.gd +++ b/src/Autoload/GlobalAudio.gd @@ -1,25 +1,29 @@ extends Node onready var players: Dictionary = {} -var disposable_player: AudioStreamPlayer -func play_scene_independent(sound_name: String, bus: String = "Master", attenuation: float = 0.0, singleton = false) -> void: +func play_scene_independent(sound_name: String, bus: String = "Master", attenuation: float = 0.0, + singleton = false, start_time = 0.0, random_pitch = false) -> void: if singleton && players.has(sound_name): return - disposable_player = AudioStreamPlayer.new() + var disposable_player = AudioStreamPlayer.new() add_child(disposable_player) - disposable_player.stream = GlobalState.sound_library[sound_name] + var stream = GlobalState.sound_library[sound_name] + if random_pitch: + stream = AudioStreamRandomPitch.new() + stream.audio_stream = GlobalState.sound_library[sound_name] + disposable_player.stream = stream disposable_player.volume_db = attenuation disposable_player.bus = bus - disposable_player.play() - disposable_player.connect("finished", self, "dispose_player") - players[sound_name] = disposable_player + disposable_player.play(start_time) + disposable_player.connect("finished", self, "dispose_player", [weakref(disposable_player)]) + players[sound_name] = weakref(disposable_player) -func dispose_player(player: AudioStreamPlayer = disposable_player) -> void: - if player == null: return - player.queue_free() +func dispose_player(player: WeakRef) -> void: + if !player.get_ref(): return + player.get_ref().queue_free() func stop_scene_independent(sound_name: String): - if players.has(sound_name): + if players.has(sound_name) && players[sound_name].get_ref(): dispose_player(players[sound_name]) players.erase(sound_name) diff --git a/src/Autoload/GlobalAudio.tscn b/src/Autoload/GlobalAudio.tscn index d818415..04e00f1 100644 --- a/src/Autoload/GlobalAudio.tscn +++ b/src/Autoload/GlobalAudio.tscn @@ -5,3 +5,5 @@ [node name="GlobalAudio" type="Node"] pause_mode = 2 script = ExtResource( 1 ) + +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] diff --git a/src/Levels/1 Tutorial Level.tscn b/src/Levels/1 Tutorial Level.tscn index 7fe7a6b..1ccd21c 100644 --- a/src/Levels/1 Tutorial Level.tscn +++ b/src/Levels/1 Tutorial Level.tscn @@ -208,14 +208,11 @@ unique_name_in_owner = true process_mode = 1 [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 12 - -[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 11 +frame = 1 [node name="Blobby" parent="." instance=ExtResource( 7 )] unique_name_in_owner = true -position = Vector2( -70, -1.90735e-06 ) +position = Vector2( -70, 1 ) scale = Vector2( 0.878906, 0.936025 ) [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] diff --git a/src/Levels/2 Tutorial Level.tscn b/src/Levels/2 Tutorial Level.tscn index 1a94a7f..a2dc34b 100644 --- a/src/Levels/2 Tutorial Level.tscn +++ b/src/Levels/2 Tutorial Level.tscn @@ -1034,11 +1034,8 @@ unique_name_in_owner = true drag_margin_top = 0.1 drag_margin_bottom = 0.1 -[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 8 - [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 2 +frame = 3 [node name="Blobby" parent="." instance=ExtResource( 8 )] unique_name_in_owner = true diff --git a/src/Sounds/default_bus_layout.tres b/src/Sounds/default_bus_layout.tres index 6f3f9e6..6635562 100644 --- a/src/Sounds/default_bus_layout.tres +++ b/src/Sounds/default_bus_layout.tres @@ -1,4 +1,4 @@ -[gd_resource type="AudioBusLayout" load_steps=9 format=2] +[gd_resource type="AudioBusLayout" load_steps=11 format=2] [sub_resource type="AudioEffectPitchShift" id=1] resource_name = "PitchShift" @@ -40,6 +40,15 @@ resource_name = "HighPassFilter" resource_name = "LowPassFilter" cutoff_hz = 3000.0 +[sub_resource type="AudioEffectDistortion" id=9] +resource_name = "Distortion" +mode = 4 +keep_hf_hz = 1000.0 +post_gain = -5.0 + +[sub_resource type="AudioEffectLowPassFilter" id=10] +resource_name = "LowPassFilter" + [resource] bus/0/volume_db = -6.0206 bus/1/name = "Music" @@ -76,3 +85,13 @@ bus/3/effect/1/effect = SubResource( 7 ) bus/3/effect/1/enabled = false bus/3/effect/2/effect = SubResource( 8 ) bus/3/effect/2/enabled = true +bus/4/name = "Blobby" +bus/4/solo = false +bus/4/mute = false +bus/4/bypass_fx = false +bus/4/volume_db = 0.0 +bus/4/send = "Master" +bus/4/effect/0/effect = SubResource( 9 ) +bus/4/effect/0/enabled = true +bus/4/effect/1/effect = SubResource( 10 ) +bus/4/effect/1/enabled = true diff --git a/src/StateMachines/BlobbyStateMachine.gd b/src/StateMachines/BlobbyStateMachine.gd index 8325fc3..f1fca72 100644 --- a/src/StateMachines/BlobbyStateMachine.gd +++ b/src/StateMachines/BlobbyStateMachine.gd @@ -210,6 +210,8 @@ func _enter_state(new_state, old_state): if !["run", "walk", "idle", "duck"].has(old_state) && parent.is_on_floor(): emit_signal("got_grounded") + GlobalAudio.play_scene_independent("res://assets/sounds/landingMedHard.ogg", "Effects", + -15.0, false, 0.10, true) match new_state: diff --git a/src/UserInterface/TutorialComboThingy.tscn b/src/UserInterface/TutorialComboThingy.tscn index cb7bc65..44b11f3 100644 --- a/src/UserInterface/TutorialComboThingy.tscn +++ b/src/UserInterface/TutorialComboThingy.tscn @@ -6,7 +6,7 @@ [ext_resource path="res://assets/environment/decor/screen/Screen3.png" type="Texture" id=4] [ext_resource path="res://assets/ui/fonts/kenny_thick.tres" type="DynamicFont" id=5] [ext_resource path="res://addons/controller_icons/assets/ps4/cross.png" type="Texture" id=6] -[ext_resource path="res://assets/sounds/huuray.wav" type="AudioStream" id=7] +[ext_resource path="res://assets/sounds/vibing.wav" type="AudioStream" id=7] [ext_resource path="res://assets/effects/noise.png" type="Texture" id=8] [sub_resource type="Shader" id=13] @@ -267,7 +267,7 @@ shape = SubResource( 6 ) [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] stream = ExtResource( 7 ) -volume_db = -10.0 +volume_db = -14.439 bus = "UI" [connection signal="area_entered" from="Area" to="." method="_on_Area_area_entered"] diff --git a/src/UserInterface/TutorialThingy.tscn b/src/UserInterface/TutorialThingy.tscn index 0a189cb..f3586b7 100644 --- a/src/UserInterface/TutorialThingy.tscn +++ b/src/UserInterface/TutorialThingy.tscn @@ -1,11 +1,11 @@ [gd_scene load_steps=18 format=2] +[ext_resource path="res://assets/sounds/vibing.wav" type="AudioStream" id=1] [ext_resource path="res://src/UserInterface/TutorialThingy.gd" type="Script" id=2] [ext_resource path="res://addons/controller_icons/objects/Button.gd" type="Script" id=3] [ext_resource path="res://assets/environment/decor/screen/Screen3.png" type="Texture" id=4] [ext_resource path="res://assets/ui/fonts/kenny_thick.tres" type="DynamicFont" id=5] [ext_resource path="res://addons/controller_icons/assets/ps4/cross.png" type="Texture" id=6] -[ext_resource path="res://assets/sounds/huuray.wav" type="AudioStream" id=7] [ext_resource path="res://assets/effects/noise.png" type="Texture" id=8] [sub_resource type="Shader" id=13] @@ -221,7 +221,7 @@ monitorable = false shape = SubResource( 6 ) [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] -stream = ExtResource( 7 ) +stream = ExtResource( 1 ) volume_db = -14.776 bus = "UI"