The Fortress — Art / Content Review
Every music bed, SFX cue, ambient one-shot, and voice line that ships in the game today — grouped by where it lives, with the trigger that fires it, its length, and a ▶ button that plays it. 31 sounds across 7 groups.
How to read a row. Sound = the display name, its status pill, and the engine
slot / filename (the AudioBeds MUSIC_* const or the SoundMgr cue name). Where & when it
plays = the in-game trigger, read from the audio wiring. Length = the shipped clip duration.
Listen = a streaming player (preload=none, so nothing downloads until you press play).
Status: Live wired and audible in-game ·
Wiring pending file shipped, its signal not yet wired (inert bytes) ·
Placeholder a parked stand-in ·
CC0 a free/public-domain asset (all other music & SFX are Suf originals).
The continuous bed for each surface. One plays at a time; the outgoing bed crossfades out and stops as the next comes in — music never stacks on music (Nathan 07-17). Beds are scene-driven via ScreenHost context.
| Sound | Where & when it plays | Length | Listen |
|---|---|---|---|
| Ashen KeepLiveMUSIC_MANAGEMENT · ashen_keep.ogg | The management screen — every tab. The home / keep bed, the best-covered surface. | 3:25 | ▶ play on site |
| Wandering ValeLiveMUSIC_EXPLORE · wandering_vale.ogg | Explore mode, roaming the adventure map with no enemy aggro — the non-combat field bed (one per map). | 2:55 | ▶ play on site |
| Broken Gate MarchLiveMUSIC_DEFEND · broken_gate_march.ogg | Defend (passive) mode — the whole siege run. Waves are 6 s apart, too tight to swap, so one track carries the fight. | 2:18 | ▶ play on site |
| Crown of AshesLiveMUSIC_VICTORY_STING · crown_of_ashes.ogg | A one-shot fanfare layered over the current bed on a Fighter / Arena duel win (NotificationBus EVENT_VICTORY → AudioBeds.play_sting). The only thing that ever plays over a bed. | 1:32 | ▶ play on site |
Beds for states that live INSIDE a scene rather than a scene change (combat, the arena, hut interiors, end-of-run reports). A caller swaps one in over the context bed and returns on clear. Delivered by Suf (batch 3); the intra-Explore wiring signals are still pending, so the files are inert until wired — auditable here.
| Sound | Where & when it plays | Length | Listen |
|---|---|---|---|
| Vale SkirmishWiring pendingMUSIC_EXPLORE_COMBAT · explore_combat.ogg | Swaps in while any enemy has aggro on you in Explore; back to the Vale bed when the threat clears. | 0:58 | ▶ play on site |
| Wandering Vale (reflective)Wiring pendingMUSIC_EXPLORE_SUMMARY · explore_summary.ogg | The Explore end-of-run report screen — the Vale's instruments slowed to a weary calm. Stops the field bed, restores on exit. | 3:28 | ▶ play on site |
| Broken Gate RequiemWiring pendingMUSIC_DEFEND_SUMMARY · defend_summary.ogg | The Defend end-of-run report — also where a defeat lands. The march slowed and grave; stops the march and plays this. | 3:03 | ▶ play on site |
| Arena Duel FanfareWiring pendingMUSIC_ARENA · arena.ogg | The Arena one-room duel map (off the Vale's west gate) — prouder, more ceremonial than the defend march. Crown of Ashes still fires over it on the win. | 2:02 | ▶ play on site |
| Forge of Quiet HandsWiring pendingMUSIC_HUT_INTERIOR · forge_of_quiet_hands.ogg | Inside a hut / cottage interior (Builder's, Woodsman's, Warrior's) — a shared cozy forge theme. Back to the Vale bed on exit. | 3:28 | ▶ play on site |
The front door, outside the game proper.
| Sound | Where & when it plays | Length | Listen |
|---|---|---|---|
| Launcher ThemeCC0launcher_theme.mp3 | The standalone launcher and the in-editor boot picker — a low-key medieval loop with a mute toggle. Sets the tone before the player is in the game. | 1:56 | ▶ play on site |
Fired directly from combat code (SoundMgr.play_projectile_fire / play_hit_impact / play_enemy_death and the defend cues), not through the notification bus. Kept restrained — "battle SFX sensible, not too much" (Nathan).
| Sound | Where & when it plays | Length | Listen |
|---|---|---|---|
| projectile_fireLiveprojectile_fire.ogg | A tower / defender looses a projectile. | 0.4 s | ▶ play on site |
| hit_impactLivehit_impact.ogg | A projectile or attack connects with an enemy. | 0.35 s | ▶ play on site |
| enemy_deathLiveenemy_death.ogg | An enemy falls. | 0.7 s | ▶ play on site |
| fortress_hitLivefortress_hit.ogg | The core takes damage — the walls are breached (not every hit). | 2.0 s | ▶ play on site |
| wave_startLivewave_start.ogg | A new defend wave begins. | 4.0 s | ▶ play on site |
| defeatLivedefeat.ogg | The fortress falls (death, not a voluntary retreat). | 4.0 s | ▶ play on site |
Short cues fired through NotificationBus → SoundMgr — the one bucket where a sound and its badge are decided together, once. Each cue prefers a real sample at its slot path and falls back to the procedural synth if the file is absent.
| Sound | Where & when it plays | Length | Listen |
|---|---|---|---|
| completeLivecomplete.ogg | A build, craft, research, or recruit finished. | 0.8 s | ▶ play on site |
| unlockLiveunlock.ogg | A tab, building, mode, or content unlocked (a distinct reveal cue, not the generic alert). | 0.7 s | ▶ play on site |
| alertLivealert.ogg | A generic modal alert or narrative beat. | 0.5 s | ▶ play on site |
| resourceCC0resource_gather.ogg | Resources gained — a harvest or reward. | 0.85 s | ▶ play on site |
| gearLivegear.ogg | A new gear item appeared — loot kept. | 0.6 s | ▶ play on site |
| level_upLivelevel_up.ogg | A unit or armament gained a level (buildings keep the complete chime). | 0.7 s | ▶ play on site |
| milestoneLivemilestone.ogg | A major beat — Take the Throne. | 1.2 s | ▶ play on site |
| footstep_hoofLivefootstep_hoof.ogg | The explorer's footfall — one clop per step, emitted per footfall by the map lane (EVENT_FOOTSTEP). | 1.0 s | ▶ play on site |
Sparse discrete clips played on a 6–16 s scheduler while wandering in Explore only. The management and defend pools are intentionally empty — no random noises while planning or mid-fight.
| Sound | Where & when it plays | Length | Listen |
|---|---|---|---|
| amb_bird_chirpLiveamb_bird_chirp.ogg | Sparse birdsong while wandering the wilds. | 2.0 s | ▶ play on site |
| amb_wind_gustLiveamb_wind_gust.ogg | An occasional gust of wind. | 4.0 s | ▶ play on site |
| amb_branch_creakLiveamb_branch_creak.ogg | A branch creaking nearby. | 2.0 s | ▶ play on site |
| amb_leavesLiveamb_leaves.ogg | Leaves rustling underfoot. | 1.0 s | ▶ play on site |
| amb_crow_cawLiveamb_crow_caw.ogg | A distant crow. | 1.2 s | ▶ play on site |
| amb_twig_snapLiveamb_twig_snap.ogg | A twig snapping. | 0.8 s | ▶ play on site |
The voice / dialog track is parked at placeholders (Nathan: "just use placeholders… we don't need a lot"). One CC0 line ships today, fired off the same NotificationBus seam.
| Sound | Where & when it plays | Length | Listen |
|---|---|---|---|
| recruit_readyPlaceholderrecruit_ready.ogg | A recruited unit reports ready — VoiceManager plays this CC0 placeholder line via NotificationBus. | 0.7 s | ▶ play on site |