Static container of compile-time string constants for every sound event name used by the game, grouped by gameplay, UI and music/ambience. It centralises sound resource paths so typos become compile errors.
namespace Coilgarden;
/// <summary>
/// The names of every sound event, in one place, so a typo is a compile error rather than a
/// silent nothing.
/// <para>
/// A misspelled sound path is one of the worst kinds of bug to find: the game runs, nothing
/// throws, and the only symptom is an event that is quieter than you remembered. Routing every
/// play through a constant removes the entire category.
/// </para>
/// <para>
/// The resources live in <c>Assets/sounds</c> and wrap <c>.wav</c> files synthesised by
/// <c>Tools/generate_audio.py</c>. Nothing here is sampled or third-party.
/// </para>
/// </summary>
public static class GameSounds
{
// ------------------------------------------------------------------ gameplay
/// <summary>Three variants plus a pitch range, because this one plays more than any other.</summary>
public const string AppleEat = "sounds/coilgarden.apple.eat.sound";
public const string AppleSpawn = "sounds/coilgarden.apple.spawn.sound";
/// <summary>
/// Played on a direction change only, never per step. Turning is the player's one input;
/// stepping happens whether they act or not, and at six steps a second a footstep is a
/// machine gun.
/// </summary>
public const string Turn = "sounds/coilgarden.turn.sound";
public const string GameStart = "sounds/coilgarden.game.start.sound";
public const string GameOver = "sounds/coilgarden.game.over.sound";
public const string Restart = "sounds/coilgarden.restart.sound";
/// <summary>Beating the stored best. Rare enough to stay special.</summary>
public const string HighScore = "sounds/coilgarden.high.score.sound";
/// <summary>Filling the whole tray - the rarest event in the game, and the only win state.</summary>
public const string ArenaFilled = "sounds/coilgarden.arena.filled.sound";
// ------------------------------------------------------------------ ui
public const string UiHover = "sounds/coilgarden.ui.hover.sound";
public const string UiClick = "sounds/coilgarden.ui.click.sound";
// ------------------------------------------------------------------ beds
/// <summary>Menu and pre-run bed. Almost nothing happens in it, deliberately.</summary>
public const string MusicCalm = "sounds/coilgarden.music.calm.sound";
/// <summary>In-run bed. Same harmony as the calm one, so a crossfade never changes key.</summary>
public const string MusicPlay = "sounds/coilgarden.music.play.sound";
/// <summary>Always running, very quiet. Stops silence sounding like a bug.</summary>
public const string Ambience = "sounds/coilgarden.ambience.garden.sound";
}