sequences
Every authored moment in SLAG SAINT, as data: a shot path, the lines spoken over it, and cues that raise the game's own events at the right instant. `Director` plays them; nothing in here touches state directly.
game.staging.sequences
Every authored moment in SLAG SAINT, as data: a shot path, the lines spoken
over it, and cues that raise the game's own events at the right instant.
Director plays them; nothing in here touches state directly.
local Seq = require("game.staging.sequences")
cutscene.play(Seq.entrance())
| Function | The moment |
|---|---|
Seq.title() | A 26-second drift under the title card. No letterbox — the card owns the frame. |
Seq.opening() | The descent, the two Emberward lines, the first bell. |
Seq.entrance() | The crane from the saint's feet to its bell, and its greeting. |
Seq.phaseBeat(n) | 1.9 seconds on the chains snapping, or the chest coming open. |
Seq.victory() | The bell close, the light leaving from the feet up, the hold. |
Seq.defeat(body) | Ground level, the lean-in, and what is left of the ward. |
Seq.pulse(s, band) | A letterbox squeeze over live gameplay. No camera, no freeze. |
The frame is portrait
1080x1440. Every shot is composed on the vertical: the camera stands close and cranes UP a figure that does not fit, rather than backing off to fit it in. There is no wide establishing shot in this game because the screen cannot hold one.
Nothing here is in world coordinates
Seq.stage() reads where the saint and the ward actually are and returns the
frame every shot is built in — a forward axis from the ward to the saint, a
side axis across it, the gap between them, and how high the bell-head is this
phase. fromSaint, fromWard and onSaint place a camera station in it.
This matters because the saint walks: boss_root was measured mid-fight at
z = -7.5 with the ward at z = -15, nowhere near the z = +11 the arena declares
as its origin. A look that must track a moving target through a shot uses the
entity anchor (look = "boss_root" with a lookOffset) instead, which the
cutscene resolves every frame.
Distances are measured against st.bell, derived from Rules.BOSS, so a
retune of the saint's height re-composes every shot rather than breaking it.
The lines
Every line is raised as a vo event through Rules.say, which the
presentation slice prints and the sound slice speaks. Seq.SCHEDULE records
when each one lands, and Seq.fallbackSubtitles(name) turns that into a
cutscene subtitle track — which the Director attaches only when the
presentation slice is not in the world, so a line is never lost and never
doubled.
Scoped to this part · feeds back into the world's score.