# sfx_shades_on
**Sunglasses on.** A crisp click of shades snapping on, with a soft hi-tech chirp.
**Used by:** The rules `sunglassesToggled` event with on = true (key G).
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_dodge
**Dodge roll.** A fast cloth-and-air whoosh with a soft skid.
**Used by:** The `dodge` event BananaPlayer emits on Space.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_enemy_attack
**Enemy attack impact.** A gang member's punch or slam landing.
**Used by:** The rules `playerDamaged` event, layered under sfx_hurt.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_ui_select
**UI confirm.** A short neon-digital confirm blip.
**Used by:** It plays when a run starts (`phaseChanged` from title, won or lost to playing). The clip is also bound as the `snd_sfx` one-shot host's default clip.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_swing
**Baton swing whoosh.** A rubbery, floppy whoosh of the soft banana baton.
**Used by:** The `swing` event BananaPlayer emits. Its pitch rises a little with each combo step.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# amb_neon_buzz
**Neon-tube buzz.** A 10 s loop of an old neon sign up close: mains hum with harmonics, faint fizz and small sparking crackles. AI-generated with audio_gen sfx. Seam-checked as loopable.
**Used by:** Soundscape's eight positional `snd_neon_*` emitters on the shopfront signs (maxDistance 13 m, rolloff 1.4). Each is detuned slightly so neighbouring tubes don't phase.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# amb_city_rain
**Rain-and-city ambience bed.** A 22 s stereo loop of steady night rain on wet asphalt and awnings over a distant megacity hum, with far traffic and sirens. Seam-checked as loopable.
**Used by:** Soundscape's non-spatial `snd_rain_bed` source (channel `ambience`). It plays the whole session, title and gameplay alike.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_boss_death
**Don Aubergine's death.** A 3.5 s giant eggplant burst: a heavy squelch and pulpy splash, then a long deflating groan. AI-generated with audio_gen sfx.
**Used by:** The rules `enemyKilled` event when `boss = true`, right before the win stinger. It replaces the old stand-in, a stack of pitched-down `sfx_splat` and `sfx_hit_heavy`.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# stinger_lose
**Lose stinger.** An 8 s falling, detuned synth sting.
**Used by:** Soundscape's `snd_stinger` source on `phaseChanged` → `lost` (SPLATLINED). The title theme resumes quietly after it.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# music_combat
**Combat theme.** 90 s of driving cyberpunk: distorted bass synths, a hard four-on-the-floor kick and arpeggios. It loops.
**Used by:** Soundscape's music decks while the phase is `playing` and no boss is up. It crossfades in from the title over 1.6 s.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# amb_market_chatter
**Night-market crowd chatter.** A 20 s stereo loop of an indistinct crowd at a rainy street market: murmuring voices, vendors calling, sizzling grills, clinking bowls and rain on plastic awnings. AI-generated with audio_gen sfx. Seam-checked as loopable.
**Used by:** Soundscape's four positional `snd_market_*` emitters along the Peel Kabuki market street (maxDistance 30 m). You hear it as you walk past the stalls.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_enemy_growl
**Enemy growl.** A gruff vegetable-thug growl.
**Used by:** 30% of `hit` events, pitched by enemy kind. It is also pitched down to 0.62 as the boss growl on `bossCue`, so it stands in for a dedicated boss voice.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_snack
**Snack / heal pickup.** A crunchy bite with a sparkly pickup tone.
**Used by:** The rules `playerHealed` event.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_hit
**Squishy baton hit.** A rubbery thwack into soft fruit.
**Used by:** The rules `hit` event for a normal (non-heavy) baton hit.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_shades_off
**Sunglasses off.** A softer click of the shades folding away.
**Used by:** The rules `sunglassesToggled` event with on = false (key G).
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# vo_boss_taunt
**Don Aubergine's taunt.** A 4 s spoken line: "You picked the wrong market, peel-boy. The Rotten Crew runs Peel Kabuki!" AI-generated with audio_gen speech.
**Used by:** Played 1.6 s after `bossCue`, once the roar has landed, and only while the run is still `playing` with the boss alive.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# stinger_win
**Win stinger.** An 8 s triumphant synth swell and resolve.
**Used by:** Soundscape's `snd_stinger` source on `phaseChanged` → `won` (DISTRICT RECLAIMED). The title theme resumes quietly after it.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# game.rules
Banana 2077's one shared module: palette, the Peel Kabuki street layout every slice builds to, tuning for the player, baton and enemies, the controls list, the live game state (`R.state`, kept across hot reloads), the event bus (`R.on` / `R.emit`) and the rule functions that change state (`damagePlayer`, `healPlayer`, `addEddies`, `setSunglasses`, `registerTarget`, `hit`, `reportKill`, `setPhase`, `startRun`). Required by every slice; owned by the lead. See `/zero/source/design/spec.md`.
# sfx_coin
**Eddies pickup.** A bright, digital coin chime.
**Used by:** The rules `eddies` event, when the amount is greater than 0 (an enemy dropping eddies on death).
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_hit_heavy
**Heavy baton hit.** A deeper, meatier rubber smack.
**Used by:** The rules `hit` event when heavy (the third hit of a combo), together with sfx_splat. Played low-pitched when the boss dies.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_swing_heavy
**Heavy baton swing.** A bigger, wobblier whoosh for the finishing swing.
**Used by:** The `swing` event when `heavy` is true (combo step 3).
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_boss_roar
**Don Aubergine's roar.** A 3 s deep, gravelly mob-boss bellow with a wet, fleshy rasp and a short concrete echo. AI-generated with audio_gen sfx.
**Used by:** The rules `bossCue` event, layered over `sfx_boss_cue` as the boss appears in the plaza. It replaces the old stand-in, `sfx_enemy_growl` pitched down.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_boss_cue
**Boss arrival cue.** A 4 s ominous braam and impact.
**Used by:** The rules `bossCue` event, emitted when the last thug falls and Don Aubergine is about to appear.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_hurt
**Player hurt.** A short squishy grunt and impact.
**Used by:** The rules `playerDamaged` event, while the banana still has health.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# music_boss
**Boss theme.** 75 s of heavier, darker industrial synth for the Don Aubergine fight. It loops.
**Used by:** It crossfades in on the rules `bossCue` event, and also when play resumes while the boss is alive.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_hovercar_pass
**Hovercar fly-by.** A 4 s whooshing, turbine-whine pass of a flying car.
**Used by:** Soundscape's positional `snd_hovercar` source. Every 9–20 s it is moved overhead near the player and plays this at a random pitch.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_boss_slam
**Boss ground slam.** A 2 s heavy slam on wet asphalt: a deep thud, a sub-bass shockwave boom, a puddle splash and rattling debris. AI-generated with audio_gen sfx.
**Used by:** The `bossSlam` event, which `game/enemies/CrewDirector.component` emits on every third boss attack, as the violet shockwave ring goes out.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# music_title
**Title theme.** 90 s of moody, slow synthwave: analogue pads, a gated-reverb snare and a lonely lead over rain. It loops.
**Used by:** Soundscape's music decks while the phase is `title`. It also comes back quietly after a win or lose stinger.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_footstep
**Footstep.** A sneaker step on wet pavement with a little splash.
**Used by:** The `footstep` event BananaPlayer emits. It is throttled to one every 0.11 s, played louder when sprinting, and pitch-varied.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.
# sfx_splat
**Juicy splat.** A wet fruit splat and squelch.
**Used by:** The rules `enemyKilled` event (the death squelch), and layered under heavy hits.
Part of Banana 2077's sound, driven by `game/audio/Soundscape.component`.