add purge sfx: build up, impact boom, sustained boom, bass, sigil with reverb bus

main
Artur David 2026-06-24 00:28:22 +02:00
parent 2c3d8c7cfd
commit e9218fbd29
4 changed files with 67 additions and 1 deletions

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -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)