diff --git a/assets/music&sfx/sfx/purge_sigil.wav b/assets/music&sfx/sfx/purge_sigil.wav new file mode 100644 index 0000000..c75fdd8 Binary files /dev/null and b/assets/music&sfx/sfx/purge_sigil.wav differ diff --git a/assets/music&sfx/sfx/purge_sigil.wav.import b/assets/music&sfx/sfx/purge_sigil.wav.import new file mode 100644 index 0000000..3eadb77 --- /dev/null +++ b/assets/music&sfx/sfx/purge_sigil.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://d056xcusjhd7w" +path="res://.godot/imported/purge_sigil.wav-9da6710344c80ac37c106e0f9d84aea0.sample" + +[deps] + +source_file="res://assets/music&sfx/sfx/purge_sigil.wav" +dest_files=["res://.godot/imported/purge_sigil.wav-9da6710344c80ac37c106e0f9d84aea0.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/default_bus_layout.tres b/default_bus_layout.tres index 753af0e..a42e9cf 100644 --- a/default_bus_layout.tres +++ b/default_bus_layout.tres @@ -1,5 +1,15 @@ [gd_resource type="AudioBusLayout" format=3 uid="uid://5oswo22yvmtg"] +[sub_resource type="AudioEffectReverb" id="AudioEffectReverb_purge"] +predelay_msec = 30.0 +predelay_feedback = 0.4 +room_size = 0.9 +damping = 0.4 +spread = 1.0 +dry = 0.6 +wet = 0.4 +hipass = 0.0 + [resource] bus/1/name = &"Music" bus/1/solo = false @@ -13,3 +23,11 @@ bus/2/mute = false bus/2/bypass_fx = false bus/2/volume_db = -14.05601 bus/2/send = &"Master" +bus/3/name = &"PurgeReverb" +bus/3/solo = false +bus/3/mute = false +bus/3/bypass_fx = false +bus/3/volume_db = 0.0 +bus/3/send = &"SFX" +bus/3/effect/0/effect = SubResource("AudioEffectReverb_purge") +bus/3/effect/0/enabled = true diff --git a/scripts/purge.gd b/scripts/purge.gd index 7868333..b86dbcb 100644 --- a/scripts/purge.gd +++ b/scripts/purge.gd @@ -3,6 +3,12 @@ extends Node2D const ELITE_DAMAGE_PCT := 0.75 const FLASH_FADE_DURATION := 0.6 +var _build_up_sound = preload("res://assets/music&sfx/sfx/purge_build_up.wav") +var _impact_boom_sound = preload("res://assets/music&sfx/sfx/purge_impact_boom.wav") +var _sustained_boom_sound = preload("res://assets/music&sfx/sfx/purge_sustained_boom.wav") +var _bass_sound = preload("res://assets/music&sfx/sfx/pruge_bass.wav") +var _flash_sound = preload("res://assets/music&sfx/sfx/purge_sigil.wav") + @onready var summon_circle: AnimatedSprite2D = $SummonCircle/AnimatedSprite2D @onready var camera = get_node("/root/Game/Camera2D") @@ -10,8 +16,23 @@ func _ready() -> void: summon_circle.sprite_frames = summon_circle.sprite_frames.duplicate() summon_circle.sprite_frames.set_animation_loop("default", false) summon_circle.animation_finished.connect(_unleash) + summon_circle.frame_changed.connect(_on_summon_circle_frame_changed) summon_circle.play("default") - camera.shake(6.0, 0.5, true) + camera.shake(2.0, 0.5) + _play_sfx(_build_up_sound, "SFX") + +func _on_summon_circle_frame_changed() -> void: + if summon_circle.frame == 77: + _play_sfx(_flash_sound, "SFX", -10.0) + +func _play_sfx(stream: AudioStream, bus: String, volume_db: float = 0.0) -> void: + var asp = AudioStreamPlayer.new() + asp.stream = stream + asp.bus = bus + asp.volume_db = volume_db + get_parent().add_child(asp) + asp.play() + asp.finished.connect(asp.queue_free) func _unleash() -> void: for enemy in get_tree().get_nodes_in_group("enemies"): @@ -26,6 +47,9 @@ func _unleash() -> void: func _flash() -> void: camera.shake(0.4, 8.0) + _play_sfx(_impact_boom_sound, "SFX", 3.0) + _play_sfx(_sustained_boom_sound, "PurgeReverb") + _play_sfx(_bass_sound, "PurgeReverb") var circle_tween = create_tween() circle_tween.set_pause_mode(Tween.TWEEN_PAUSE_PROCESS)