docs: a map script's text can pay talk when it names the thing in front, and where it can
This commit is contained in:
parent
5d527f0910
commit
37adeb9417
2 changed files with 12 additions and 4 deletions
|
|
@ -121,7 +121,8 @@ Indigo Plateau's rooms. Not the forest, a cave, the Underground Path or Vermilio
|
|||
1. *the fly opened*: on the last sample before the font bit (`wFontLoaded` bit 0) rose, the fly had
|
||||
the joypad -- no `wJoyIgnore`, no simulated input, no scripted movement -- was standing still
|
||||
(`wWalkCounter` zero, the only state the overworld reads A in) and stood where it stands now. A
|
||||
script's text opens with the joypad taken, or on the frame a step onto a trigger tile ends;
|
||||
script's text usually opens with the joypad taken; one opened by a map script the frame after a
|
||||
step ends can still look opened by the fly, and is then held to rule 2 (below);
|
||||
2. *is with the thing in front of it*: `DisplayTextID` copies its argument into `wSpriteIndex` --
|
||||
a sprite slot up to `wNumSprites`, or a text id -- and the sprite must stand on the tile the
|
||||
player faces (or one further, across a counter, on a tileset that has counter tiles, which is
|
||||
|
|
@ -281,7 +282,12 @@ press. Nothing in the adapter presses A, chooses when, or tells the fly who is t
|
|||
read out of WRAM after a conversation the fly's own buttons -- or the macro the mushroom body chose
|
||||
-- opened and finished, and it is once per person or sign for the life of the run, so the thing
|
||||
that is learned is "the people in a building are worth a visit", not "press A". It is also why the
|
||||
rule demands evidence that the fly opened the box: text a script started pays nothing.
|
||||
rule demands evidence that the fly opened the box. That evidence is not proof: a map script runs
|
||||
one frame after a step ends and may open text while the fly is still, controllable and on the same
|
||||
tile. Such text pays only if it names the person or sign the fly is facing, once per key; in the
|
||||
early game none can (checked: the museum ticket man, the Route 22 and Route 5 guards, Viridian
|
||||
Mart, Oak's Lab), and a few late ones can once each (the Fighting Dojo master, the Elite Four
|
||||
after their battles). Review of 2026-09-23.
|
||||
|
||||
The catalog also includes catches. The honesty panel's copy is not data-driven from the catalog --
|
||||
`apps/stage/src/lib/schedule.ts`'s rotating card is four written lines and lists no kinds -- so
|
||||
|
|
|
|||
|
|
@ -148,8 +148,10 @@ impl TalkWatch {
|
|||
/// (`wFontLoaded` bit 0 rising) the fly had the joypad -- no ignored buttons, no simulated
|
||||
/// input, no scripted movement ([`state::controllable`]) -- was standing still
|
||||
/// (`wWalkCounter` zero, which is the only state the overworld reads A in) and stood on the
|
||||
/// tile it is on now. A script's text opens with the joypad already taken, or on the frame
|
||||
/// a step onto a trigger tile ends; neither is `ready`.
|
||||
/// tile it is on now. Most script text opens with the joypad already taken, and is not
|
||||
/// `ready`; a map script that runs the frame after a step ends can open text while the fly
|
||||
/// is still `ready`, so it pays only if rule 2 names the thing in front (none in the early
|
||||
/// game; the Fighting Dojo master and the Elite Four once each).
|
||||
/// 2. **It is with the thing in front of the fly.** `DisplayTextID` copies its argument into
|
||||
/// `wSpriteIndex` once the font is loaded ([`ARGUMENT_SETTLED`] has the timing, and why
|
||||
/// the byte is read only once it has changed or settled), in the bottom dialogue box --
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue