the-shell: a front door a played world cannot lock out, and a sitting that can be started fresh
The writ is raised from this component's own boot flag and from nothing that
persists. The sitting lives in a module-local table and the seven public fields
are written FROM it every tick, so the layer overlay restoring a docket counter
seconds after a load is undone inside a frame. assizes stops being a replicated
gate. Arriving in the middle of somebody's live bout raises the writ and leaves
their fight alone.
N rises the court from anywhere - mid-bout, on a verdict, on the court-rises
card - clearing the docket, putting the boundary to nought and naming the first
neighbour. It asks the scheme for a 'rise' action first and falls back to the
raw KeyN code, so declaring one in fencing_controls needs no edit here.
Three defects found by playing and fixed:
- A click on a neighbour's tile fenced the wrong neighbour. playerImpatient()
asked the action layer whether any commitment was pressed, and the scheme
binds the LEFT MOUSE BUTTON to thrust, so every pointer landing on the writ
read as a commitment and opened the standing assize under the tile that was
clicked. It now reads keys_pressed against each action's key bindings only.
- The card's button could half-restart the game. restart() rebuilds the garden,
the fence and the rival; run from onCallback it outran the 1000 ms script
watchdog and was cut off with the board at nought-all and state still 'over',
while clickElement reported ok. onCallback now records what was asked and the
component's update serves it, and a board that reads 'over' with nobody named
is a restart that did not finish - no card, no docket entry, asked again.
- assizes counted only the assizes the shell itself opened.
Verified by playing: two cold arrivals into a played world, two full six-assize
sittings from the writ to the court-rises card and back, all six neighbours
reached by name, four fresh sittings called from a bout and from a verdict, ten
verdicts answered by KeyR and by the card's button. Shell coverage unchanged at
top 5.3-9.2%, bottom 9.4%, painted 7.9-8.6% of a 1280x720 frame.