sigma_ui
Every zui tree **Sigma Boy RPG** renders. Pure presentation: each builder takes a view-model table the game component assembles for the current frame and returns a raw widget tree. Nothing here reads engine state or mutates the game.
sigma_ui
Every zui tree Sigma Boy RPG renders. Pure presentation: each builder takes a view-model table the game component assembles for the current frame and returns a raw widget tree. Nothing here reads engine state or mutates the game.
local Ui = require("sigma_ui")
ui.updateScreen("sig_hud", Ui.hud(view))
Two screens carry the whole game: sig_hud (the overworld HUD, on a
transparent root) and sig_overlay (every modal state, battle included,
on a higher layer).
Builders
| Function | Screen |
|---|---|
hud(v) | Aura bar + level, period clock + zone name, interact prompt, banner, toasts. |
battle(v) | Foe panel top, player stats bottom-left, command menu bottom-right, floating damage numbers. |
mainMenu(v) / periodSelect(v) | Title and period select. |
settings(v) | Master / music / SFX / text-speed sliders, subtitles, palette. |
extras(v) | Bestiary and unlocked art. |
dialogue(v) / shop(v) | Overworld checks and the Cafeteria Lady's counter. |
pause(v) / status(v) | ESC menu and the character sheet. |
reward(v) / endScreen(v) | Post-battle payout, win and lose screens. |
skin(palette) returns the colour set for "normal" or "colorblind";
every builder takes it as v.skin, so switching palettes is one field.
Conventions
- Buttons carry an explicit width. A button without one collapses to
its label, so
btn(text, id, width, skin, opts)requires it. - Absolute placement over flex for the HUD and battle overlays: the
root is a full-size transparent panel and each element is positioned
with
position = "absolute"+left/top. Coordinates are inui.screenSize()space. - Wrapping text puts the width on the container, never on the label —
a label with both
wrapand awidthcollapses to one character per line. meter(frac, w, h, fill, track)is the one bar primitive; aura, XP, foe HP and the period clock all use it.
Scoped to this part · feeds back into the world's score.