▣
module · drop-in viewer
cards
Every screen First Light: Betocsin puts BETWEEN the player and the tower.
by·posted 1mo ago
What it does
cards
Every screen First Light: Betocsin puts BETWEEN the player and the tower.
local Cards = require("game.screens.cards")
ui.registerScreen("flb_card", Cards.title(T.metrics(), view), 800)
| Builder | The card |
|---|---|
Cards.title(m, view) | The device, the name, and the two ways in — Take the watch and How to play. |
Cards.howto(m, view) | The warden's handbill: three drawn rules — the crane swings, only the overlap stays, the sky is the clock — and the way back. |
Cards.pause(m, view) | The crane holds. Back to the crane, or start the night again. |
Cards.won(m, view) | The tocsin is rung, with courses, true seats, and how much of the town woke. |
Cards.lost(m, view) | Which way the night took it: It fell, or Too late. |
Every builder is pure. It takes the metrics table from
game.screens.theme and a view model, and returns a tree. It registers
nothing, reads no game state and writes none — Screens.component builds the
view model and owns the glass.
The view model
focus = "start" -- the id of the lit row from game.screens.Focus
fresh = true -- true only while the card's entrance is still playing
dawn = 0.0 courses = 12 perfects = 4 woke = 0.8 reason = "sunrise"
fresh is what stops the entrance cascade replaying: while it is true the rows
carry their staggered entrance animation, and once the player has moved the
focus the tree is rebuilt without it.
Discussion
Scoped to this part · feeds back into the world's score.
Sign in to post.sign in
No comments yet. Be the first.