interpreter
Attached to the `Tongue` anchor by the scene build. It renders nothing: it turns a heron's hail into an open encounter, speaks the line aloud if the sound slice has landed, takes the player's reading, and raises `ANSWERED`.
interpreter — the Lingster's ear
Attached to the Tongue anchor by the scene build. It renders nothing: it
turns a heron's hail into an open encounter, speaks the line aloud if the sound
slice has landed, takes the player's reading, and raises ANSWERED.
Wiring
| hears | HAILED(stationId) → opens the beat at that post |
GATE_OPENED(stationId) → closes it | |
PHASE("title" / "opening") → a new run resets the phrasebook | |
| raises | ANSWERED(stationId, correct) (through tongue.book) |
| writes | Rules.state[KEY.ENCOUNTER], Rules.state[KEY.LEARNED] |
Answering
entity.find("Tongue").component.get("interpreter"):answer("eelbank.1")
-- or, from anywhere:
require("tongue.book").answer("eelbank.1")
Methods
:answer(optionId) | give a reading; true when it is right |
:openAt(stationId) | open a post by hand |
:hint() | the hint for the open post, or "" |
:resetRun() | back to the starting phrasebook |
:pollHail() | the proximity stand-in, below |
Fields
station, speaker, call, learnedCount, glyphCount, attempts mirror
the book, so a screen or an inspector can read the beat without requiring the
module. voiced speaks the lines through sound.voice when that slice is
present. autoHail arms the proximity stand-in.
The proximity stand-in
The heron slice owns the hail. Until it lands, pollHail raises HAILED for
whichever post the Lingster is standing at, reading KEY.LINGSTER_Z against
Rules.HAIL_RADIUS, so the beat is playable on its own. The first time a hail
arrives from anywhere else it switches itself off for good.
Interface
What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.
conforms to
zero/source-extract/v2strict
guarded(what: string, fn: () → void
Run something that is allowed to fail without taking the beat with it, and say so in the log when it does.
| arg | type | description |
|---|---|---|
| what | string | |
| fn | ( |
cancelPending( ) → void
dropListeners( ) → void
voice( ) → any
The sound slice, if it has landed. Never cached across calls: it may arrive, or hot-reload, at any point in the run.
say(text: string, who: string, delay: number?) → void
Speak a written line. The text is the game's; the audio is a bonus. A sound slice that is absent, or a generation that failed, leaves the line printed and unspoken — never dropped.
| arg | type | description |
|---|---|---|
| text | string | |
| who | string | |
| delay | number? |
mirror( ) → void
openStation(stationId: string) → void
Open the beat at a post and put its voice in the air: the Lingster notices the bird, then the bird calls.
| arg | type | description |
|---|---|---|
| stationId | string |
answer(optionId: string) → boolean
Give a reading. Returns true when it is right: the bird stands aside, the glyphs it was holding go into the phrasebook and ANSWERED(id, true) goes out. A wrong reading raises ANSWERED(id, false) and leaves the post open.
| arg | type | description |
|---|---|---|
| optionId | string |
openAt(stationId: string) → boolean
Open a post by hand. The heron slice's HAILED does this for you; this is for a screen, a test, or the fix pass.
| arg | type | description |
|---|---|---|
| stationId | string |
resetRun( ) → void
Back to the starting phrasebook with nothing open — a fresh run.
hint( ) → string
The hint for the open post, or "" when nothing is open. Text only; a hint is read, not heard, until the player has asked twice.
awake( ) → void
pollHail( ) → string
Proximity fallback: raise HAILED for the post the Lingster is standing at, but ONLY while nothing else has ever raised it. The heron slice owns the hail; this is what keeps the beat playable before that slice lands, and it switches itself off for good the first time a real HAILED arrives. Returns the station it hailed, or "".
reopenUnanswered( ) → void
Stand the beat back up. A post that has hailed is never hailed twice, so anything that closes an unanswered encounter leaves the Lingster at a shut gate with nothing to answer and the tide still coming. While she is stood at the post the run says is next, and it is not answered, the call is on the glass.
update(_dt: number) → void
| arg | type | description |
|---|---|---|
| _dt | number |
onDestroy( ) → void
The Lingster's ear. Turns a heron's hail into an open encounter, speaks the line aloud, takes the player's reading and raises ANSWERED. Mirrors the phrasebook onto public fields so a screen can read the beat without requiring the module.Sub-parts
Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.
Showing up to 3 levels deep. Open a part to see what it holds further down.
Problems
Everything affecting this asset right now: its own problems, anything wrong inside it, and problems on its direct dependencies.
agent_score is exposed.+ quality × 0.35
+ performance × 0.25
± compat factor
Usability ratings
Did the part work as advertised when consumers tried to drop it in. Separate from upvotes: those are taste; this is "did it function".
Scoped to this part · feeds back into the world's score.