Repository navigation
v4.2.4
LOG #241–#243: four pull requests from an outside contributor, Horacio (LostInBrittany), found while making his game
"Jack cherche un taf", each reviewed, completed on its branch and merged: face: 'hero' turns a character toward the
hero (#194); the sprite sheets' background, transparent or a chosen colour (#187); an exit gone through on a single
tap (#191); actorGap, the hero's distance to a character following their size (#199). A game that uses none of them
plays, saves and proves as on 4.2.3: the same fingerprints, golden saves and reference runs. The content format gains
three optional, presentation-only fields, input.exitOnTap, an exit's onTap and actorGap, under D46 (a 4.2.x may
add such a field when it needs no schema, save envelope or IR change); the public API and the save envelope are
4.2.0's. The tag is signed with the maintainer's SSH key on their yes of 20 October, « Yes, sign v4.2.4 », the yes for
v4.2.4 only.
Fixed
face: 'hero'turns a character toward the hero (4.2.4):{ face: 'hero', who: 'grandma' }turned grandma to
the right wherever the hero stood, since the hero is not a hotspot, a prop nor an actor; thefacecommand now reads
the hero's position from the state, as it already did for the hero turning toward someone. Found while making
"Jack cherche un taf", in an opening cutscene.
Changes
-
The sprite sheets' background (4.2.4):
"sheetBackground"insite.json, next toartStyle, is
"transparent"or a#RRGGBBcolour (default#2B2E45, so a game without it gets the same prompts as before).
npm run promptswrites every sheet's background from it; in transparent mode the prompts ask for real alpha, forbid
a painted checkerboard and keep carved or open shapes (mouths, eyes) opaque.tools/cut-sheet.pycuts a sheet on a
transparent background on its alpha, keying nothing by colour (a flat-background sheet cuts exactly as before). Two
small scripts help choose:tools/check-alpha.pytells real alpha from a painted checkerboard, and
tools/pick-bg.pyranks the flat colours by their distance to a character's drawing (PROMPTS.md, "Choosing the
sheet background"). -
An exit can be gone through on a single tap (4.2.4, #188):
input: { exitOnTap: true }ingame.tsmakes a
single tap on an exit with no verb picked walk there and go through on arrival, with the double tap's verb, as in
the LucasArts classics; a locked exit says itslockedline. A picked verb still wins, a tap elsewhere during the
walk still redirects the hero (and nothing is gone through), a double tap is unchanged. An exit'sonTap: 'go' | 'walk'overrides the game's setting either way; the Studio offers it on the exit's sheet. Off by default: a game
without either plays exactly as before. Input only (presentation in the fingerprint): the rules, the solver and
saves do not see it. -
actorGap: the hero's distance to a character follows their size (4.2.4, #198): without anapproachpoint in
the layout, the hero stopped 44 units from any character, so tall characters who gesture as they talk put a hand in
each other's head.actorGapon the game (e.g.0.8) sets the distance to that share of the two characters' mean
height, times the depth scale where the character stands; omitted, nothing changes, and anapproachpoint still
wins.depthScaleandscaleAtmove tocore/stage.ts. Found while making "Jack cherche un taf".
Manual passes (D12: reported, not blocking)
0 of 19 done.
| Pass | Status | Who, when | Device, OS, browser, versions | What failed |
|---|---|---|---|---|
A multi-instance Bridge behind HTTPS on Postgres, a worker killed mid-verification (bridge-postgres-https) |
not-run | |||
Story, Remix and Daily runs submitted by real people (runs-real-players) |
not-run | |||
A run resumed after the machine was stopped and started again (run-resume-power-cycle) |
not-run | |||
The code wheel printed and used at the table; the text alternative by a screen-reader user (code-wheel-human) |
not-run | |||
A Mystery world played from the Remix menu against a deployed Bridge (mystery-deployed) |
not-run | |||
Safari offline on an iPhone, and its update (safari-ios-offline-update) |
not-run | |||
Firefox offline on a real machine (firefox-real-offline) |
not-run | |||
A real phone on both painters (phone-both-renderers) |
not-run | |||
A real LiveSplit and OBS session (livesplit-obs) |
not-run | |||
Real connectors and a person's security pass (connectors-real-security) |
not-run | |||
Playtesters who do not know the puzzles (blind-playtesters) |
not-run | |||
The voices listened to (voices-listening) |
not-run | |||
The published archive installed by a person (archive-human-install) |
not-run | |||
The Studio Server deployed on Clever Cloud (Node, PostgreSQL, Cellar, Keycloak, a TLS domain), from its archive, by its guide; a real Safari on macOS and iOS (studio-hosted) |
not-run | |||
Three people on one hosted Studio, a network cut and a redeploy while they edit (studio-collab) |
not-run | |||
On a hosted Studio, people play the shared revision without a dev server, a save carried across revisions, the health chip, their own undo, a published build (studio-preview) |
not-run | |||
A hosted Studio's prepare on the worker (Python, ffmpeg), its prepared set played in the Play tab (studio-assets-hosted) |
not-run | |||
An AI agent on a hosted Studio through its remote MCP (/mcp): a real MCP client, a member's token, a write in the journal as the member, a span another holds refused (studio-mcp-remote) |
not-run | |||
The Studio Server behind a second OpenID Connect provider (GitLab, D44): login, roles, a revoked member refused, verified by a person (studio-oidc-generic) |
not-run |