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
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+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)