add attack and projectile sfx

This commit is contained in:
2025-07-27 15:14:02 +10:00
parent 91c3fece10
commit 32d5eb6443
28 changed files with 415 additions and 124 deletions

View File

@@ -3,7 +3,7 @@ extends AudioStreamPlayer3D
@export var _footsteps: FootstepsBank
var _footsteps_shuffle: ShuffleBag = ShuffleBag.new()
var _polyphonic: AudioStreamPlaybackPolyphonic
@onready var _polyphonic := get_stream_playback() as AudioStreamPlaybackPolyphonic
func _ready() -> void:
@@ -11,7 +11,6 @@ func _ready() -> void:
return
_footsteps_shuffle.fill(_footsteps.streams.size())
_polyphonic = get_stream_playback() as AudioStreamPlaybackPolyphonic
func play_footstep() -> void:

View File

@@ -2,11 +2,12 @@ extends AnimationTree
@export_group("Audio")
@export var _hurt_sound: AudioStream
@export var _hit_sounds: Array[AudioStream]
var _speed: float
var _has_input: bool
var _sfx_audio_playback_polyphonic: AudioStreamPlaybackPolyphonic
var _queue_hit_sound: bool
@onready var _player: Player = $"../" as Player
@onready var _attack: PlayerAttack = $"../Attack" as PlayerAttack
@@ -15,15 +16,17 @@ var _sfx_audio_playback_polyphonic: AudioStreamPlaybackPolyphonic
@onready var _sfx_audio_player: AudioStreamPlayer3D = $"../Audio/ScriptSFXPlayer"
@onready var _hurt_particles: GPUParticles3D = $"../Effects/HurtParticles"
@onready var _sfx_audio_playback_polyphonic := (
_sfx_audio_player.get_stream_playback() as AudioStreamPlaybackPolyphonic
)
func _ready() -> void:
assert(_player, "_player missing!")
Music.track_started.connect(_on_music_track_started)
_set_bpm()
_attack.attacked.connect(_on_attack_attacked)
_sfx_audio_playback_polyphonic = (
_sfx_audio_player.get_stream_playback() as AudioStreamPlaybackPolyphonic
)
_attack.did_hit.connect(_on_attack_did_hit)
_player.stats.damaged.connect(_on_stats_damaged)
@@ -55,6 +58,11 @@ func _process(_delta: float) -> void:
else:
_run_to_idle()
if _queue_hit_sound:
_queue_hit_sound = false
for stream in _hit_sounds:
_play_sound(stream)
func _is_left() -> bool:
return _attack.side == PlayerAttack.Side.LEFT
@@ -83,6 +91,10 @@ func _on_attack_attacked() -> void:
set(&"parameters/hit_oneshot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE)
func _on_attack_did_hit() -> void:
_queue_hit_sound = true
func _on_stats_damaged() -> void:
_play_sound(_hurt_sound)
_hurt_particles.restart()