mcscreens
Every authored screen of *First Light: Sabaean Madcaps*, as a widget tree.
mcscreens
Every authored screen of First Light: Sabaean Madcaps, as a widget tree.
local S = require("game.screens.mcscreens")
Pure builders: each function takes the view model Screens.component assembles
and returns a tree. Nothing here registers a screen, shows one, or writes
MC.state.
| Builder | What it is |
|---|---|
S.title(m) | the temple of Almaqah under a rising disc, the name in two lines, the two ways in |
S.howto(m) | a written record on parchment: the premise, the censer diagram, the control table drawn for the family in hand, and the card's own three controls |
S.pause(m) | the dawn held, with where you had got to, and four ways on |
S.endCard(m) | first light on the altar, or Wahab'il's taper on it and your record beneath |
S.hud(m) | the climb rail and the madcap gauge on one edge, the dawn rail and the censer on the other, and the pause pip in the corner |
S.alert(m) | first light, and the censer going dark |
S.say(m) | the spoken line, in writing |
S.CONTROLS is the climb's control table, one row per action and one column per
device family — which is also the answer to "is every action reachable from
every family". S.MENU_CONTROLS is the three that belong to a card rather than
to the climb; they are set as one line under the table instead of as rows of
their own.
The shape of it
Every measurement comes through U.u(), a fraction of the live short screen
axis, and every arrangement is a column first — the run films at 3:4 and the
portrait stack is the shape the wide screen varies FROM. What changes on a wide
frame is stated at the place it changes: the title's mark and blurb shrink, the
end card's mark shrinks, and the how-to card becomes two columns, because type
scales off the short axis and the short axis is the same number in both frames.
The HUD spans nothing. Two vertical rails stand against the edges, the pause pip takes the corner the engine's own touch band is not in, and the subtitle sits low and centred — lifted clear of the touch band when a thumb is what is playing.
The view model
device · focus · items · backId · line · phase · tier · madcap
(0..1) · bestMadcap · flame (0..1) · flameLit · passed · dawn (0..1) ·
clock · secondsLeft · firstLight · graceLeft · won.
Scoped to this part · feeds back into the world's score.