Sound
The ear of RED DOT RISING. Mounted on `mount_sound` by the scene entrypoint.
Sound
The ear of RED DOT RISING. Mounted on mount_sound by the scene entrypoint.
It builds the mix deck (game.sound.Mix), starts the rain-and-neon bed and
the night piece, follows Core.state for the floor and the dawn, and listens
on Core.bus for the moments Hoshi Okabe has a line for.
What it answers
| bus event | what is heard |
|---|---|
phase.changed → play | the night starts; Hoshi's briefing |
lift.start (to floor 2) | "That's the lift." |
floor.reached 2 / 3 | the room tone changes floor; the Library / roof line |
laser.overheat (first) | "Easy on the trigger." |
game.won / game.lost | the ending sting, then Hoshi's last word |
run.reset | the script forgets itself and the bed goes back to floor 1 |
Each line is spoken once a night. The words go out on voice.line at the same
moment, so the ui draws the caption even where the audio never arrives.
Fields
deckActive— whether the deck tracks the game. Cleared, the bed and the score hold where they are.
Methods
local snd = entity.find("mount_sound").component.get("Sound")
snd:say("brief") -- speak a line now
snd:ui("confirm") -- a menu sound
snd:sting("win") -- an ending
snd:observe() -- what the deck is doing
Where the sound comes from
Nothing here reaches the host, the network or a generation service while the
game is running: the clips are baked assets in this world under
game/sound/clips and game/sound/voice, so the game sounds the same in a
browser as it does in the editor. The synthesised half is computed by
game.vendor.synth; the night piece and Hoshi's voice were generated once and
cached.
Scoped to this part · feeds back into the world's score.