Credibility pass: comments say what the code can't, and the seams are gone
Engine: pit-rim exits live in one helper (pitRimExits) shared by the resolver and the automaton; chargeReach names the six-stride cap; dust sight is inDust + dustAtEnd; PushPending is exported once; the force-field counter builds its events in one list; drawUnderSlowDeath says what it draws under. Test groups are named for the rule they pin, not the revision that introduced it. Client: one smoothstep; one edgeScar per battle-scarred edge; one board-zone rule (which also seats the caption strip on phones); the compass names live in SIDE_NAMES; net.flash() is the one toast; MediaQuery replaces two hand-rolled matchMedia listeners; sprites carry their sizes as plain numbers and their CSS in one rule each; canvas helpers are formatted like the rest of the tree. Comments that told how a cel or a fallback used to look now say what it draws. The actions-over notice no longer blames a pickup when slime ended the turn. Server and ops: dataRoot() is the one data directory; headlineOf builds its deeds without a cast; the rollup and skills read the same way the code behaves. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG
This commit is contained in:
1 parent
85690f0e23
commit
6e49fc9020
40 files changed
+331
-293
No files matched your search
@@ -253,6 +253,24 @@ export function stepTarget(
|
||||
return { kind: "blocked", by: "wall" };
|
||||
}
|
||||
|
||||
/** The sides a walker may leave a pit by, having entered it heading
|
||||
* `entry`: the neighbouring squares that offer footing, and the warp
|
||||
* mouths on the rim, the way back excluded. `filled` names the squares
|
||||
* nothing can land on. */
|
||||
export function pitRimExits(
|
||||
board: AssembledBoard, pit: Cell, entry: Side, filled: (c: Cell) => boolean,
|
||||
): { floor: Side[]; mouths: Side[] } {
|
||||
const floor: Side[] = [];
|
||||
const mouths: Side[] = [];
|
||||
for (const d of SIDES) {
|
||||
if (d === opposite(entry)) continue;
|
||||
const t = stepTarget(board, pit, d);
|
||||
if (t.kind === "blocked" || filled(t.to)) continue;
|
||||
(t.kind === "step" ? floor : mouths).push(d);
|
||||
}
|
||||
return { floor, mouths };
|
||||
}
|
||||
|
||||
/**
|
||||
* Line of sight from the center of `from` to the center of `to`, blocked by
|
||||
* wall/door/firewall edges the segment crosses and by any `blockedCells`
|
||||
|
||||
Reference in new issue
Block a user