Adds boss sounds

This commit is contained in:
2026-03-12 10:12:48 -04:00
parent 39a6ae10d8
commit 3a744290eb
15 changed files with 22 additions and 0 deletions
+10
View File
@@ -22,6 +22,16 @@ var _sounds: Dictionary = {
"door_close": preload("res://assets/audio/sfx/door_close.wav"),
"room_clear": preload("res://assets/audio/sfx/room_clear.wav"),
"teleport": preload("res://assets/audio/sfx/teleport.wav"),
"warden_sweep": preload("res://assets/audio/sfx/warden_sweep.wav"),
"mine_arm": preload("res://assets/audio/sfx/mine_arm.wav"),
"mine_explode": preload("res://assets/audio/sfx/mine_explode.wav"),
"relay_burst": preload("res://assets/audio/sfx/relay_burst.wav"),
"relay_teleport": preload("res://assets/audio/sfx/relay_teleport.wav"),
"hivemind_pulse": preload("res://assets/audio/sfx/hivemind_pulse.wav"),
"hivemind_beam": preload("res://assets/audio/sfx/hivemind_beam.wav"),
"hivemind_knockback": preload("res://assets/audio/sfx/hivemind_knockback.wav"),
"player_death": preload("res://assets/audio/sfx/player_death.wav"),
"boss_death": preload("res://assets/audio/sfx/boss_death.wav"),
}
var _pool: Array[AudioStreamPlayer] = []
+4
View File
@@ -232,6 +232,7 @@ func _tick_assembly(_delta: float) -> void:
func _spawn_wave() -> void:
AudioManager.play("hivemind_pulse")
var scenes := [DRIFTER_SCENE, REPEATER_SCENE, ANCHOR_SCENE]
var hw := ROOM_HW - WALL_T - 80.0
var hh := ROOM_HH - WALL_T - 80.0
@@ -642,6 +643,7 @@ func _do_unique_attack() -> void:
func _start_beam() -> void:
AudioManager.play("hivemind_beam")
# Start with telegraph phase
_beam_telegraphing = true
_telegraph_timer = BEAM_TELEGRAPH
@@ -745,6 +747,7 @@ func _on_beam_hit(body: Node) -> void:
func _attack_pulse() -> void:
AudioManager.play("hivemind_knockback")
if _player == null or not is_instance_valid(_player):
return
@@ -903,6 +906,7 @@ func _tick_flash(delta: float) -> void:
# Climax / Death
# ---------------------------------------------------------------------------
func _enter_climax() -> void:
AudioManager.play("boss_death")
_phase = Phase.CLIMAX
_climax_timer = FREEZE_DURATION
velocity = Vector2.ZERO
+3
View File
@@ -142,6 +142,7 @@ func _enter_transit() -> void:
_transit_timer = TRANSIT_TIME
func _reappear() -> void:
AudioManager.play("relay_teleport")
# Pick random position within room bounds
var min_x := _room_center.x - ROOM_HW + WALL_T + WALL_MARGIN
var max_x := _room_center.x + ROOM_HW - WALL_T - WALL_MARGIN
@@ -193,6 +194,7 @@ func _roll_drifter_threshold() -> void:
# Burst Transmission
# ---------------------------------------------------------------------------
func _fire_burst() -> void:
AudioManager.play("relay_burst")
var count := BURST_COUNT_P2 if _phase == Phase.TWO else BURST_COUNT_P1
var angle_step := TAU / float(count)
@@ -394,6 +396,7 @@ func _flash_damage() -> void:
# Climax / Death
# ---------------------------------------------------------------------------
func _enter_climax() -> void:
AudioManager.play("boss_death")
_phase = Phase.CLIMAX
_climax_timer = FREEZE_DURATION
_blink_accum = 0.0
+4
View File
@@ -111,6 +111,7 @@ func _enter_phase_two() -> void:
_sweep_cd_timer = SWEEP_CD_P2 * 0.6 # first P2 sweep sooner
func _enter_climax() -> void:
AudioManager.play("boss_death")
_phase = Phase.CLIMAX
velocity = Vector2.ZERO
_freeze_timer = FREEZE_DURATION
@@ -165,6 +166,7 @@ func _tick_sweep(delta: float) -> void:
func _fire_sweep_pass() -> void:
AudioManager.play("warden_sweep")
_passes_fired += 1
_pass_delay_timer = PASS_DELAY
@@ -287,6 +289,7 @@ func _tick_mines(delta: float) -> void:
func _spawn_mine(world_pos: Vector2) -> void:
AudioManager.play("mine_arm")
var mine := Node2D.new()
# AOE ring visual — shows blast radius when armed (hidden initially)
@@ -316,6 +319,7 @@ func _spawn_mine(world_pos: Vector2) -> void:
func _explode_mine(entry: Dictionary) -> void:
AudioManager.play("mine_explode")
var node: Node2D = entry["node"]
if not is_instance_valid(node):
return
+1
View File
@@ -224,6 +224,7 @@ func take_damage(amount: float) -> void:
_die()
func _die() -> void:
AudioManager.play("player_death")
if RunManager.run_active:
# Disable player so they can't move during death screen
set_physics_process(false)