reachchart
The roster's ranges, drawn on the fight plane at **true scale** — the same 0.02 world units per pixel the fighters themselves are drawn at.
emberline.fighters.reachchart
The roster's ranges, drawn on the fight plane at true scale — the same 0.02 world units per pixel the fighters themselves are drawn at.
local Roster = require("emberline.fighters.index")
local Chart = require("emberline.fighters.reachchart")
Chart.show(Roster.byId) -- puts the card up
Chart.hide() -- takes it down
Reach is the roster's most important number and the one hardest to believe from a table. "Kite 0.80, Warden 1.34" does not tell you that the Warden's standing heavy covers more ground than Kite's super. Drawn at scale, next to a body block the size of a real hurtbox, it is obvious in one look.
Each row shows one fighter's three standing normals as bars measured from their own origin, labelled with reach, startup and frame advantage on block. The darker band is where the opponent's body sits at point blank, and the dotted line down its left edge is the connect threshold: a bar whose tip lands right of that line touches; a bar that stops short does not.
Both calls are idempotent and neither runs on its own. The card is a single
entity named roster_chart_card, free-standing at
Rules.LAYERS.foreground + 1.0 so it is neither moved by another slice's
anchor nor hidden behind another slice's weather. hide() only ever removes
that one name.
It carries its own 3×5 pixel font, because a chart without labels is a decoration.
Scoped to this part · feeds back into the world's score.