staging
The three moments the camera leaves the player. Each is a cutscene definition — a shot list over authored framing — built fresh from the current board so a shot aimed at a tile lands on that tile.
game.cam.staging
The three moments the camera leaves the player. Each is a cutscene definition — a shot list over authored framing — built fresh from the current board so a shot aimed at a tile lands on that tile.
local Staging = require("game.cam.staging")
cutscene.play(Staging.reveal())
cutscene.play(Staging.blightTurns(4, 6, 0.5))
cutscene.play(Staging.closing("won"))
| Call | Length | What it is |
|---|---|---|
reveal() | 12.5s | The greenhouse established from its roof down onto the board, landing exactly on the station the game is played from — so the first playable frame is the last frame of the cutscene. |
blightTurns(x, y, share) | 4.6s | The beat where the blight stops being scenery: a low push onto the tile it took. Short on purpose — it interrupts a turn. |
closing(outcome) | 9.5s | Away from the board and back up through the roof the game opened on, so the ending rhymes with the beginning. |
The lines
Every spoken line rides the cutscene's own subtitles, so it is on
screen whether or not a voice was ever generated for it. Beside each
one, a cue fires narrate with { id, text, speaker = "narrator" } for
the audio slice to answer if it has the voice. Nothing here waits on that,
and a failed generation is a quiet line rather than a lost one.
Each definition also fires playMusic with a cue name at t=0:
reveal, blight, victory, defeat.
Skipping
All three are skippable, and a cutscene's cues survive a skip — so the music cue and the narration signal fire whether or not the player watched.
Scoped to this part · feeds back into the world's score.