feat(@projects/audio): ✨ add victory audio tracks
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
4bcae0a13f
commit
fd9640ade7
29 changed files with 245 additions and 11 deletions
|
|
@ -938,7 +938,7 @@ export function AudioSystemPage(): React.ReactElement {
|
|||
return (
|
||||
<Page>
|
||||
<Back to="/">← back</Back>
|
||||
<Title>Audio system v2</Title>
|
||||
<Title>Audio system</Title>
|
||||
<Sub>
|
||||
♪ One engine, many packs · {Object.keys(manifest.sfx).length} SFX +
|
||||
{" "}{manifest.music.tracks.length} music tracks · live read of{" "}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
Each row records one `.ogg` shipped under `public/games/age-of-dwarves/assets/audio/`. Licence policy: CC0 / CC-BY 3.0 / CC-BY 4.0 / Pixabay / Sonniss-GDC-YYYY / Public-Domain accepted. ShareAlike (`-SA`) and NonCommercial (`-NC`) are rejected by the renderer.
|
||||
|
||||
**Asset count:** 70 files. (Empty until p2-16 sourcing begins.)
|
||||
**Asset count:** 90 files. (Empty until p2-16 sourcing begins.)
|
||||
|
||||
## Assets
|
||||
|
||||
|
|
@ -18,6 +18,16 @@ Each row records one `.ogg` shipped under `public/games/age-of-dwarves/assets/au
|
|||
| `audio/music/overworld_industry.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%232%20%5BTowns%5D%20by%20Juhani%20Junkala.zip#Town3 - Sunshine Coast.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `audio/music/overworld_kingdoms.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%232%20%5BTowns%5D%20by%20Juhani%20Junkala.zip#Town4 - Bazaar.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `audio/music/victory.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action3 - Preparing For Battle.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `audio/music/victory_culture_a.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%234%20%5BCalm%5D%20by%20Juhani%20Junkala_0.zip#Calm1 - A Place I Call Home.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `audio/music/victory_culture_b.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%234%20%5BCalm%5D%20by%20Juhani%20Junkala_0.zip#Calm2 - Childhood Friends.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `audio/music/victory_culture_c.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%234%20%5BCalm%5D%20by%20Juhani%20Junkala_0.zip#Calm5 - Summer Memories.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `audio/music/victory_domination_a.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action3 - Preparing For Battle.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `audio/music/victory_domination_b.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action1 - Encounter With The Witches.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `audio/music/victory_domination_c.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action2 - Army Approaching.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `audio/music/victory_economic_a.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%231%20%5BExploration%5D%20by%20Juhani%20Junkala.zip#Exploration1 - Grasslands.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `audio/music/victory_economic_b.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%231%20%5BExploration%5D%20by%20Juhani%20Junkala.zip#Exploration4 - Prairie Nights.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `audio/music/victory_science_a.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%231%20%5BExploration%5D%20by%20Juhani%20Junkala.zip#Exploration3 - Tha'el Mines.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `audio/music/victory_science_b.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%231%20%5BExploration%5D%20by%20Juhani%20Junkala.zip#Exploration6 - Tropical Island.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `audio/sfx/border_expanded.ogg` | CC0-1.0 | [link](https://github.com/Calinou/kenney-interface-sounds/blob/master/addons/kenney_interface_sounds/pluck_001.wav) | Kenney (Calinou repackage) | loudnorm I=-16/TP=-3+wav→ogg 128kbps | 2026-04-27 |
|
||||
| `audio/sfx/buildings/build_complete_civic.ogg` | CC0-1.0 | [link](https://github.com/Calinou/kenney-interface-sounds/blob/master/addons/kenney_interface_sounds/confirmation_001.wav) | Kenney (Calinou repackage) | loudnorm I=-16/TP=-3+wav→ogg 128kbps | 2026-04-27 |
|
||||
| `audio/sfx/buildings/build_complete_def.ogg` | CC0-1.0 | [link](https://kenney.nl/media/pages/assets/impact-sounds/8aa7b545c9-1677589768/kenney_impact-sounds.zip#Audio/impactPlate_heavy_002.ogg) | Kenney (Impact Sounds) | loudnorm I=-16/TP=-3+ogg 128kbps | 2026-04-27 |
|
||||
|
|
@ -72,13 +82,23 @@ Each row records one `.ogg` shipped under `public/games/age-of-dwarves/assets/au
|
|||
| `audio/sfx/weather/drought.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/sfx_loops.zip#noise_03.ogg) | rubberduck (OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps | 2026-04-27 |
|
||||
| `audio/sfx/weather/heat_wave.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/sfx_loops.zip#noise_02.ogg) | rubberduck (OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps | 2026-04-27 |
|
||||
| `audio/sfx/weather/hurricane.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/sfx_loops.zip#ambient_02.ogg) | rubberduck (OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps | 2026-04-27 |
|
||||
| `audio/sfx/weather/storm.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/sfx_loops.zip#rain.ogg) | rubberduck (OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps | 2026-04-27 |
|
||||
| `audio/sfx/weather/storm.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/sfx_100_v2.zip#sfx100v2_thunder_01.ogg) | rubberduck (OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps | 2026-04-28 |
|
||||
| `audio/sfx/weather/tornado.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/sfx_loops.zip#ambient_03.ogg) | rubberduck (OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps | 2026-04-27 |
|
||||
| `audio/sfx/wonder_built.ogg` | CC0-1.0 | [link](https://kenney.nl/media/pages/assets/impact-sounds/8aa7b545c9-1677589768/kenney_impact-sounds.zip#Audio/impactBell_heavy_001.ogg) | Kenney (Impact Sounds) | loudnorm I=-16/TP=-3+ogg 128kbps | 2026-04-27 |
|
||||
| `audio/sfx/wonder_built_own.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/fanfare_0.ogg) | Spring Spring (OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps | 2026-04-28 |
|
||||
| `audio/sfx/wonder_built_rival.ogg` | CC0-1.0 | [link](https://kenney.nl/media/pages/assets/impact-sounds/8aa7b545c9-1677589768/kenney_impact-sounds.zip#Audio/impactBell_heavy_002.ogg) | Kenney (Impact Sounds) | loudnorm I=-22/TP=-6+ogg 128kbps (extra-quiet for distant feel) | 2026-04-28 |
|
||||
| `c/victory.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action3 - Preparing For Battle.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `ic/golden_age.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action2 - Army Approaching.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `ic/overworld_kingdoms.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%232%20%5BTowns%5D%20by%20Juhani%20Junkala.zip#Town4 - Bazaar.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `ic/victory_domination_c.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action2 - Army Approaching.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `io/music/victory_culture_b.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%234%20%5BCalm%5D%20by%20Juhani%20Junkala_0.zip#Calm2 - Childhood Friends.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `music/overworld_industry.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%232%20%5BTowns%5D%20by%20Juhani%20Junkala.zip#Town3 - Sunshine Coast.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `music/victory_culture_a.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%234%20%5BCalm%5D%20by%20Juhani%20Junkala_0.zip#Calm1 - A Place I Call Home.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `music/victory_economic_b.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%231%20%5BExploration%5D%20by%20Juhani%20Junkala.zip#Exploration4 - Prairie Nights.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `o/music/victory_domination_b.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action1 - Encounter With The Witches.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `o/music/victory_science_b.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%231%20%5BExploration%5D%20by%20Juhani%20Junkala.zip#Exploration6 - Tropical Island.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `sic/victory_culture_c.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%234%20%5BCalm%5D%20by%20Juhani%20Junkala_0.zip#Calm5 - Summer Memories.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
| `udio/sfx/wonder_built_rival.ogg` | CC0-1.0 | [link](https://kenney.nl/media/pages/assets/impact-sounds/8aa7b545c9-1677589768/kenney_impact-sounds.zip#Audio/impactBell_heavy_002.ogg) | Kenney (Impact Sounds) | loudnorm I=-22/TP=-6+ogg 128kbps (extra-quiet for distant feel) | 2026-04-28 |
|
||||
| `usic/overworld_craft.ogg` | CC0-1.0 | [link](https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%232%20%5BTowns%5D%20by%20Juhani%20Junkala.zip#Town2 - Where Time Stands Still.ogg) | Juhani Junkala (SubspaceAudio | OpenGameArt) | loudnorm I=-16/TP=-3+ogg 128kbps |
|
||||
|
||||
## Encoding
|
||||
|
|
|
|||
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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -59,7 +59,6 @@ ic/overworld_kingdoms.ogg,https://opengameart.org/sites/default/files/JRPG%20Mus
|
|||
audio/music/overworld_ascension.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action1 - Encounter With The Witches.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-27
|
||||
ic/golden_age.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action2 - Army Approaching.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-27
|
||||
c/victory.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action3 - Preparing For Battle.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-27
|
||||
audio/sfx/weather/storm.ogg,https://opengameart.org/sites/default/files/sfx_loops.zip#rain.ogg,CC0-1.0,rubberduck (OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-27
|
||||
audio/sfx/weather/blizzard.ogg,https://opengameart.org/sites/default/files/sfx_loops.zip#noise_01.ogg,CC0-1.0,rubberduck (OpenGameArt),loudnorm I=-16/TP=-3+highpass+ogg 128kbps,2026-04-27
|
||||
audio/sfx/weather/heat_wave.ogg,https://opengameart.org/sites/default/files/sfx_loops.zip#noise_02.ogg,CC0-1.0,rubberduck (OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-27
|
||||
audio/sfx/weather/drought.ogg,https://opengameart.org/sites/default/files/sfx_loops.zip#noise_03.ogg,CC0-1.0,rubberduck (OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-27
|
||||
|
|
@ -86,3 +85,24 @@ audio/sfx/fauna/herbivore_call.ogg,https://opengameart.org/sites/default/files/8
|
|||
audio/sfx/fauna/herbivore_death.ogg,https://opengameart.org/sites/default/files/80-CC0-creature-SFX_0.zip#hurt_04.ogg,CC0-1.0,rubberduck (OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-27
|
||||
audio/sfx/defeat_stinger.ogg,https://kenney.nl/media/pages/assets/impact-sounds/8aa7b545c9-1677589768/kenney_impact-sounds.zip#Audio/impactPlate_heavy_004.ogg,CC0-1.0,Kenney (Impact Sounds),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
audio/music/defeat.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%234%20%5BCalm%5D%20by%20Juhani%20Junkala_0.zip#Calm6 - Innocence.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
audio/sfx/wonder_built_own.ogg,https://opengameart.org/sites/default/files/fanfare_0.ogg,CC0-1.0,Spring Spring (OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
udio/sfx/wonder_built_rival.ogg,https://kenney.nl/media/pages/assets/impact-sounds/8aa7b545c9-1677589768/kenney_impact-sounds.zip#Audio/impactBell_heavy_002.ogg,CC0-1.0,Kenney (Impact Sounds),loudnorm I=-22/TP=-6+ogg 128kbps (extra-quiet for distant feel),2026-04-28
|
||||
audio/sfx/weather/storm.ogg,https://opengameart.org/sites/default/files/sfx_100_v2.zip#sfx100v2_thunder_01.ogg,CC0-1.0,rubberduck (OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
audio/music/victory_domination_a.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action3 - Preparing For Battle.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
o/music/victory_domination_b.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action1 - Encounter With The Witches.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
ic/victory_domination_c.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action2 - Army Approaching.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
music/victory_culture_a.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%234%20%5BCalm%5D%20by%20Juhani%20Junkala_0.zip#Calm1 - A Place I Call Home.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
io/music/victory_culture_b.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%234%20%5BCalm%5D%20by%20Juhani%20Junkala_0.zip#Calm2 - Childhood Friends.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
sic/victory_culture_c.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%234%20%5BCalm%5D%20by%20Juhani%20Junkala_0.zip#Calm5 - Summer Memories.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
audio/music/victory_domination_b.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action1 - Encounter With The Witches.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
audio/music/victory_culture_a.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%234%20%5BCalm%5D%20by%20Juhani%20Junkala_0.zip#Calm1 - A Place I Call Home.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
audio/music/victory_culture_c.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%234%20%5BCalm%5D%20by%20Juhani%20Junkala_0.zip#Calm5 - Summer Memories.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
audio/music/victory_domination_c.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action2 - Army Approaching.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
audio/music/victory_culture_b.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%234%20%5BCalm%5D%20by%20Juhani%20Junkala_0.zip#Calm2 - Childhood Friends.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
audio/music/victory_science_a.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%231%20%5BExploration%5D%20by%20Juhani%20Junkala.zip#Exploration3 - Tha'el Mines.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
o/music/victory_science_b.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%231%20%5BExploration%5D%20by%20Juhani%20Junkala.zip#Exploration6 - Tropical Island.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
audio/music/victory_economic_a.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%231%20%5BExploration%5D%20by%20Juhani%20Junkala.zip#Exploration1 - Grasslands.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
music/victory_economic_b.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%231%20%5BExploration%5D%20by%20Juhani%20Junkala.zip#Exploration4 - Prairie Nights.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
audio/music/victory_science_b.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%231%20%5BExploration%5D%20by%20Juhani%20Junkala.zip#Exploration6 - Tropical Island.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
audio/music/victory_economic_b.ogg,https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%231%20%5BExploration%5D%20by%20Juhani%20Junkala.zip#Exploration4 - Prairie Nights.ogg,CC0-1.0,Juhani Junkala (SubspaceAudio, OpenGameArt),loudnorm I=-16/TP=-3+ogg 128kbps,2026-04-28
|
||||
audio/sfx/wonder_built_rival.ogg,https://kenney.nl/media/pages/assets/impact-sounds/8aa7b545c9-1677589768/kenney_impact-sounds.zip#Audio/impactBell_heavy_002.ogg,CC0-1.0,Kenney (Impact Sounds),loudnorm I=-22/TP=-6+ogg 128kbps (extra-quiet for distant feel),2026-04-28
|
||||
|
|
|
|||
|
Can't render this file because it has a wrong number of fields in line 3.
|
BIN
public/games/age-of-dwarves/assets/ic/victory_domination_c.ogg
Normal file
BIN
public/games/age-of-dwarves/assets/ic/victory_domination_c.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
public/games/age-of-dwarves/assets/music/victory_culture_a.ogg
Normal file
BIN
public/games/age-of-dwarves/assets/music/victory_culture_a.ogg
Normal file
Binary file not shown.
BIN
public/games/age-of-dwarves/assets/music/victory_economic_b.ogg
Normal file
BIN
public/games/age-of-dwarves/assets/music/victory_economic_b.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
public/games/age-of-dwarves/assets/o/music/victory_science_b.ogg
Normal file
BIN
public/games/age-of-dwarves/assets/o/music/victory_science_b.ogg
Normal file
Binary file not shown.
BIN
public/games/age-of-dwarves/assets/sic/victory_culture_c.ogg
Normal file
BIN
public/games/age-of-dwarves/assets/sic/victory_culture_c.ogg
Normal file
Binary file not shown.
Binary file not shown.
|
|
@ -40,7 +40,21 @@
|
|||
"stream": "audio/sfx/wonder_built.ogg",
|
||||
"volume_db": -3.0,
|
||||
"bus": "SFX",
|
||||
"description": "Reverberant choral swell announcing a completed wonder."
|
||||
"description": "Generic wonder-built cue — fallback when neither own/rival variant resolves."
|
||||
},
|
||||
"wonder_built.own": {
|
||||
"stream": "audio/sfx/wonder_built_own.ogg",
|
||||
"volume_db": -2.0,
|
||||
"bus": "SFX",
|
||||
"fallback": "wonder_built",
|
||||
"description": "Triumphant brass fanfare when YOUR wonder completes (~5s, full ensemble)."
|
||||
},
|
||||
"wonder_built.rival": {
|
||||
"stream": "audio/sfx/wonder_built_rival.ogg",
|
||||
"volume_db": -8.0,
|
||||
"bus": "SFX",
|
||||
"fallback": "wonder_built",
|
||||
"description": "Distant ominous bell when a rival wonder completes (short, restrained, somewhere else in the world)."
|
||||
},
|
||||
"era_advanced": {
|
||||
"stream": "audio/sfx/era_advanced.ogg",
|
||||
|
|
@ -435,9 +449,90 @@
|
|||
"era_range": null,
|
||||
"mood": "lament",
|
||||
"description": "Defeat screen music, plays once when the human player is eliminated."
|
||||
},
|
||||
|
||||
{
|
||||
"id": "victory_domination_a",
|
||||
"stream": "audio/music/victory_domination_a.ogg",
|
||||
"volume_db": -6.0, "bus": "Music", "loop": false, "era_range": null,
|
||||
"mood": "triumph",
|
||||
"description": "Domination victory variant A — Junkala 'Preparing For Battle'."
|
||||
},
|
||||
{
|
||||
"id": "victory_domination_b",
|
||||
"stream": "audio/music/victory_domination_b.ogg",
|
||||
"volume_db": -6.0, "bus": "Music", "loop": false, "era_range": null,
|
||||
"mood": "triumph",
|
||||
"description": "Domination variant B — Junkala 'Encounter With The Witches'."
|
||||
},
|
||||
{
|
||||
"id": "victory_domination_c",
|
||||
"stream": "audio/music/victory_domination_c.ogg",
|
||||
"volume_db": -6.0, "bus": "Music", "loop": false, "era_range": null,
|
||||
"mood": "triumph",
|
||||
"description": "Domination variant C — Junkala 'Army Approaching'."
|
||||
},
|
||||
|
||||
{
|
||||
"id": "victory_culture_a",
|
||||
"stream": "audio/music/victory_culture_a.ogg",
|
||||
"volume_db": -6.0, "bus": "Music", "loop": false, "era_range": null,
|
||||
"mood": "triumph",
|
||||
"description": "Cultural victory A — Junkala Calm 'A Place I Call Home', wistful + settled."
|
||||
},
|
||||
{
|
||||
"id": "victory_culture_b",
|
||||
"stream": "audio/music/victory_culture_b.ogg",
|
||||
"volume_db": -6.0, "bus": "Music", "loop": false, "era_range": null,
|
||||
"mood": "triumph",
|
||||
"description": "Cultural victory B — Junkala Calm 'Childhood Friends'."
|
||||
},
|
||||
{
|
||||
"id": "victory_culture_c",
|
||||
"stream": "audio/music/victory_culture_c.ogg",
|
||||
"volume_db": -6.0, "bus": "Music", "loop": false, "era_range": null,
|
||||
"mood": "triumph",
|
||||
"description": "Cultural victory C — Junkala Calm 'Summer Memories'."
|
||||
},
|
||||
|
||||
{
|
||||
"id": "victory_science_a",
|
||||
"stream": "audio/music/victory_science_a.ogg",
|
||||
"volume_db": -6.0, "bus": "Music", "loop": false, "era_range": null,
|
||||
"mood": "triumph",
|
||||
"description": "Science victory A — Junkala Exploration 'Tha'el Mines', discovery vibe."
|
||||
},
|
||||
{
|
||||
"id": "victory_science_b",
|
||||
"stream": "audio/music/victory_science_b.ogg",
|
||||
"volume_db": -6.0, "bus": "Music", "loop": false, "era_range": null,
|
||||
"mood": "triumph",
|
||||
"description": "Science victory B — Junkala Exploration 'Tropical Island', mystery."
|
||||
},
|
||||
|
||||
{
|
||||
"id": "victory_economic_a",
|
||||
"stream": "audio/music/victory_economic_a.ogg",
|
||||
"volume_db": -6.0, "bus": "Music", "loop": false, "era_range": null,
|
||||
"mood": "triumph",
|
||||
"description": "Economic victory A — Junkala Exploration 'Grasslands', pastoral wealth."
|
||||
},
|
||||
{
|
||||
"id": "victory_economic_b",
|
||||
"stream": "audio/music/victory_economic_b.ogg",
|
||||
"volume_db": -6.0, "bus": "Music", "loop": false, "era_range": null,
|
||||
"mood": "triumph",
|
||||
"description": "Economic victory B — Junkala Exploration 'Prairie Nights'."
|
||||
}
|
||||
],
|
||||
"crossfade_seconds": 2.0,
|
||||
"default_track_id": "overworld_awakening"
|
||||
"default_track_id": "overworld_awakening",
|
||||
"victory_pool": {
|
||||
"domination": ["victory_domination_a", "victory_domination_b", "victory_domination_c"],
|
||||
"culture": ["victory_culture_a", "victory_culture_b", "victory_culture_c"],
|
||||
"science": ["victory_science_a", "victory_science_b"],
|
||||
"economic": ["victory_economic_a", "victory_economic_b"],
|
||||
"score": ["victory"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,16 @@
|
|||
"items": { "$ref": "#/$defs/music_track" }
|
||||
},
|
||||
"crossfade_seconds": { "type": "number", "minimum": 0.0, "maximum": 30.0, "default": 2.0 },
|
||||
"default_track_id": { "type": "string" }
|
||||
"default_track_id": { "type": "string" },
|
||||
"victory_pool": {
|
||||
"type": "object",
|
||||
"description": "Per-victory-condition track pool. Keys are the victory_type strings the engine emits in EventBus.victory_achieved (e.g. 'domination', 'culture', 'science', 'economic', 'score'). Value is a list of track IDs from `tracks[]`; AudioManager picks one at random per win, so a player who triggers the same victory type twice across multiple games gets variation.",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": { "type": "string", "minLength": 1 },
|
||||
"minItems": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -24,6 +24,11 @@ var _sfx_events: Dictionary = {}
|
|||
var _music_tracks: Dictionary = {}
|
||||
var _music_default_id: String = ""
|
||||
var _crossfade_seconds: float = 2.0
|
||||
## Per-victory-condition track pool. Keys are victory_type strings the engine
|
||||
## emits (`domination` / `culture` / `science` / `economic` / `score`); each
|
||||
## value is an array of track IDs from `_music_tracks`. AudioManager picks
|
||||
## one at random per win to give long-time players variation.
|
||||
var _victory_pool: Dictionary = {}
|
||||
|
||||
var _sfx_pool: Array[AudioStreamPlayer] = []
|
||||
var _sfx_cursor: int = 0
|
||||
|
|
@ -90,6 +95,7 @@ func load_theme(theme_id: String) -> void:
|
|||
if id.is_empty():
|
||||
continue
|
||||
_music_tracks[id] = track
|
||||
_victory_pool = (music.get("victory_pool", {}) as Dictionary).duplicate()
|
||||
_loaded = true
|
||||
|
||||
|
||||
|
|
@ -448,8 +454,33 @@ func _on_unit_destroyed(unit: Variant, _killer: Variant) -> void:
|
|||
play_sfx("unit_killed")
|
||||
|
||||
|
||||
func _on_wonder_built(_wonder_id: String, _player_index: int) -> void:
|
||||
play_sfx("wonder_built")
|
||||
func _on_wonder_built(_wonder_id: String, player_index: int) -> void:
|
||||
# Own vs rival branching: hearing a triumphant fanfare when a rival
|
||||
# civilisation builds a wonder is wrong. Pick `wonder_built.own` for
|
||||
# the human player, `wonder_built.rival` for everyone else, and fall
|
||||
# back to the generic `wonder_built` key if neither variant is in the
|
||||
# manifest (so a half-shipped pack still produces a cue).
|
||||
play_sfx_for_owner("wonder_built", player_index)
|
||||
|
||||
|
||||
## Play an event SFX with owner-aware variant selection. The candidate
|
||||
## chain is:
|
||||
## <key>.own — when player_index belongs to the local human
|
||||
## <key>.rival — when player_index is any non-human (including AI / wild)
|
||||
## <key> — generic fallback
|
||||
## play_sfx already walks the per-entry `fallback` chain, so individual
|
||||
## variant entries can additionally fall back to the generic key.
|
||||
func play_sfx_for_owner(key: String, player_index: int) -> void:
|
||||
var suffix: String = "rival"
|
||||
if player_index >= 0 and player_index < GameState.players.size():
|
||||
var player: RefCounted = GameState.players[player_index] as RefCounted
|
||||
if player != null and "is_human" in player and bool(player.get("is_human")):
|
||||
suffix = "own"
|
||||
var variant_key: String = "%s.%s" % [key, suffix]
|
||||
if _sfx_events.has(variant_key):
|
||||
play_sfx(variant_key)
|
||||
return
|
||||
play_sfx(key)
|
||||
|
||||
|
||||
func _on_era_changed(new_era: int, _player_index: int) -> void:
|
||||
|
|
@ -533,9 +564,24 @@ func _on_unit_moved(_unit: Variant, _from: Vector2i, _to: Vector2i) -> void:
|
|||
play_sfx("unit_moved")
|
||||
|
||||
|
||||
func _on_victory_achieved(_player_index: int, _victory_type: String) -> void:
|
||||
func _on_victory_achieved(_player_index: int, victory_type: String) -> void:
|
||||
play_sfx("victory_fanfare")
|
||||
play_music("victory")
|
||||
play_music(_pick_victory_track(victory_type))
|
||||
|
||||
|
||||
## Pick a music track id for the given victory type. Looks the type up in
|
||||
## `_victory_pool`; if multiple track ids are listed, picks one at random
|
||||
## so a player who triggers the same victory across multiple games hears
|
||||
## variation. Falls back to the manifest's "victory" track id when the
|
||||
## type is unmapped, then to default_track_id.
|
||||
func _pick_victory_track(victory_type: String) -> String:
|
||||
if _victory_pool.has(victory_type) and _victory_pool[victory_type] is Array:
|
||||
var pool: Array = _victory_pool[victory_type] as Array
|
||||
if pool.size() > 0:
|
||||
return String(pool[_rng.randi_range(0, pool.size() - 1)])
|
||||
if _music_tracks.has("victory"):
|
||||
return "victory"
|
||||
return _music_default_id
|
||||
|
||||
|
||||
## Defeat is the human-player counterpart of victory_achieved. The signal
|
||||
|
|
|
|||
13
tools/audio-batch-06-upgrades.tsv
Normal file
13
tools/audio-batch-06-upgrades.tsv
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Batch 06 — quality upgrades to placeholder-tier cues, all CC0.
|
||||
#
|
||||
# wonder_built.own: triumphant brass fanfare (~5s) — Spring Spring CC0
|
||||
# pack: https://opengameart.org/content/just-a-random-fanfare
|
||||
# wonder_built.rival: somber distant bell — Kenney Impact's softer bell
|
||||
# variant 002 (heavy bell with longer tail), CC0
|
||||
# weather/storm: replace rubberduck rain.ogg (loop, no impact) with
|
||||
# sfx100v2_thunder_01.ogg (real thunderclap), CC0
|
||||
# pack: https://opengameart.org/content/100-cc0-sfx-2
|
||||
|
||||
audio/sfx/wonder_built_own.ogg https://opengameart.org/sites/default/files/fanfare_0.ogg CC0-1.0 Spring Spring (OpenGameArt) loudnorm I=-16/TP=-3+ogg 128kbps
|
||||
audio/sfx/wonder_built_rival.ogg https://kenney.nl/media/pages/assets/impact-sounds/8aa7b545c9-1677589768/kenney_impact-sounds.zip#Audio/impactBell_heavy_002.ogg CC0-1.0 Kenney (Impact Sounds) loudnorm I=-22/TP=-6+ogg 128kbps (extra-quiet for distant feel)
|
||||
audio/sfx/weather/storm.ogg https://opengameart.org/sites/default/files/sfx_100_v2.zip#sfx100v2_thunder_01.ogg CC0-1.0 rubberduck (OpenGameArt) loudnorm I=-16/TP=-3+ogg 128kbps
|
||||
|
Can't render this file because it has a wrong number of fields in line 11.
|
31
tools/audio-batch-07-victory-pool.tsv
Normal file
31
tools/audio-batch-07-victory-pool.tsv
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# Batch 07 — Per-victory-condition music pool. All Junkala CC0.
|
||||
#
|
||||
# Domination (3 variants) — Junkala JRPG Pack 5 Action: the same 3 tracks
|
||||
# already shipped as overworld_ascension/golden_age/victory get re-issued
|
||||
# at the new victory_domination_{a,b,c}.ogg paths so the manifest's
|
||||
# victory_pool can pick from them. (Yes, on-disk duplication of ~10 MB
|
||||
# total — acceptable; alternative is a stream-aliasing layer in
|
||||
# audio_manager.gd that's more complexity than its weight.)
|
||||
#
|
||||
# Culture (3) — Junkala JRPG Pack 4 Calm: contemplative tracks that fit a
|
||||
# civilization-as-myth ending.
|
||||
# Science (2) — JRPG Pack 1 Exploration: discovery + mystery vibe.
|
||||
# Economic (2) — JRPG Pack 1 Exploration: pastoral wealth.
|
||||
|
||||
# Domination — re-issue from JRPG Pack 5
|
||||
audio/music/victory_domination_a.ogg https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action3 - Preparing For Battle.ogg CC0-1.0 Juhani Junkala (SubspaceAudio, OpenGameArt) loudnorm I=-16/TP=-3+ogg 128kbps
|
||||
audio/music/victory_domination_b.ogg https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action1 - Encounter With The Witches.ogg CC0-1.0 Juhani Junkala (SubspaceAudio, OpenGameArt) loudnorm I=-16/TP=-3+ogg 128kbps
|
||||
audio/music/victory_domination_c.ogg https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%235%20%5BAction%5D%20by%20Juhani%20Junkala.zip#Action2 - Army Approaching.ogg CC0-1.0 Juhani Junkala (SubspaceAudio, OpenGameArt) loudnorm I=-16/TP=-3+ogg 128kbps
|
||||
|
||||
# Culture — JRPG Pack 4 Calm
|
||||
audio/music/victory_culture_a.ogg https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%234%20%5BCalm%5D%20by%20Juhani%20Junkala_0.zip#Calm1 - A Place I Call Home.ogg CC0-1.0 Juhani Junkala (SubspaceAudio, OpenGameArt) loudnorm I=-16/TP=-3+ogg 128kbps
|
||||
audio/music/victory_culture_b.ogg https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%234%20%5BCalm%5D%20by%20Juhani%20Junkala_0.zip#Calm2 - Childhood Friends.ogg CC0-1.0 Juhani Junkala (SubspaceAudio, OpenGameArt) loudnorm I=-16/TP=-3+ogg 128kbps
|
||||
audio/music/victory_culture_c.ogg https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%234%20%5BCalm%5D%20by%20Juhani%20Junkala_0.zip#Calm5 - Summer Memories.ogg CC0-1.0 Juhani Junkala (SubspaceAudio, OpenGameArt) loudnorm I=-16/TP=-3+ogg 128kbps
|
||||
|
||||
# Science — JRPG Pack 1 Exploration
|
||||
audio/music/victory_science_a.ogg https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%231%20%5BExploration%5D%20by%20Juhani%20Junkala.zip#Exploration3 - Tha'el Mines.ogg CC0-1.0 Juhani Junkala (SubspaceAudio, OpenGameArt) loudnorm I=-16/TP=-3+ogg 128kbps
|
||||
audio/music/victory_science_b.ogg https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%231%20%5BExploration%5D%20by%20Juhani%20Junkala.zip#Exploration6 - Tropical Island.ogg CC0-1.0 Juhani Junkala (SubspaceAudio, OpenGameArt) loudnorm I=-16/TP=-3+ogg 128kbps
|
||||
|
||||
# Economic — JRPG Pack 1 Exploration
|
||||
audio/music/victory_economic_a.ogg https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%231%20%5BExploration%5D%20by%20Juhani%20Junkala.zip#Exploration1 - Grasslands.ogg CC0-1.0 Juhani Junkala (SubspaceAudio, OpenGameArt) loudnorm I=-16/TP=-3+ogg 128kbps
|
||||
audio/music/victory_economic_b.ogg https://opengameart.org/sites/default/files/JRPG%20Music%20Pack%20%231%20%5BExploration%5D%20by%20Juhani%20Junkala.zip#Exploration4 - Prairie Nights.ogg CC0-1.0 Juhani Junkala (SubspaceAudio, OpenGameArt) loudnorm I=-16/TP=-3+ogg 128kbps
|
||||
|
Can't render this file because it has a wrong number of fields in line 16.
|
Loading…
Add table
Reference in a new issue