Add the TM/HM pocket, Egg screens and Violet's remaining scripts
Checks / web (push) Canceled after 0s
Checks / web (push) Canceled after 0s
The pack's TM/HM pocket lists TMs and HMs with their moves, gives TMs and teaches either through the ABLE/NOT ABLE party menu, the compatibility and "already knows" checks and LearnMove; a TM is used up and makes the Pokémon happier. Eggs show no level or HP in the party menus, get the Egg stats page with its hatching hint, and are skipped by HealParty. Bug Catcher Wade's number registers (VAR_CALLERID and RandomPhoneMon). The playthrough now runs through Falkner's ZEPHYRBADGE, the Togepi Egg, Kyle's Onix, Flash in Dark Cave, Wade's number and Earl's blackboard. With MAKE_TEST_SAVES it writes a Violet City backup for the manual checks. Validated with 610 unit tests, 157 browser tests (including all 256 badge bytes against the original BadgeStatBoosts), native/reference builds and reference/vendor/release checks. Egg hatching (#29) and trainer calls (#30) remain on their cards. Closes #31 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7909302db1
commit
73022b1505
13 files changed
+803
-31
No files matched your search
@@ -1307,3 +1307,38 @@ Left for the map cards: National Park's contest event (GiveParkBalls,
|
||||
timer, out-of-balls/time-up scripts, judging, saving the contest state),
|
||||
Burned Tower's roaming release with UpdateRoamMons/JumpRoamMons and
|
||||
roaming encounters, and Ilex Forest's CelebiShrineEvent/CheckCaughtCelebi.
|
||||
|
||||
## Route 31 to Violet City: 2026-10-03
|
||||
|
||||
Card #31 in the same session.
|
||||
|
||||
- Maps: 26:2, 26:11, 3:78, 10:5–10:11, 3:1–3:3 in `NATIVE_MAPS`. The
|
||||
closed-connection test now uses Violet City's south edge (Route 32).
|
||||
- Script commands added: 0x43 gettrainername, 0x97 askforphonenumber,
|
||||
0x30 checkpokemail, 0x4f/0x58/0x50 loadmenu/_2dmenu/closewindow,
|
||||
0x2e giveegg, 0x96 trade; `loadvar VAR_CALLERID` (0x17, wCurCaller)
|
||||
and the RandomPhoneMon special. `addcellnum` returned success where
|
||||
the original returns TRUE on failure; fixed.
|
||||
- Eggs: `PartyMon.egg` with the real species (was species 0xfd). Every
|
||||
former `species === EGG` check uses the flag. HealParty skips Eggs.
|
||||
The stats screen has the Egg page (EggPic, EggPalette). Hatching is
|
||||
not ported (#29).
|
||||
- TM/HM: `Bag.tmsHms` (57 counts, migrated as zeros for old saves),
|
||||
item names TM01–HM07, `tmhmMove`, `canLearnTMHM`; the pack's pocket,
|
||||
USE/GIVE/QUIT submenu and AskTeachTMHM/ChooseMonToLearnTMHM/TeachTMHM.
|
||||
- `ScriptState.tradeFlags` (saved) for NPCTrade.
|
||||
- BadgeStatBoosts at InitBattleMon, the in-battle level-up and
|
||||
CalcPlayerStats; `tests/reference-badges.spec.ts` compares it.
|
||||
- Event flag numbers for tests: read them from ROM scripts. Counting
|
||||
`constants/event_flags.asm` by hand drifted by 0x200 for later flags.
|
||||
- `MAKE_TEST_SAVES=1 npx vitest run tests/playthrough.test.ts` writes
|
||||
`test-saves/violet-city.crystal-save.json` (Cyndaquil L11 at Violet's
|
||||
east gate) for the manual check cards.
|
||||
|
||||
Validation: 610 unit tests passed (3 skipped); without the ROM 143
|
||||
passed, 470 skipped. Browser suite: 157 passed, 19 skipped. Both builds,
|
||||
reference/release/vendor checks and `git diff --check` passed.
|
||||
|
||||
Open boundaries: Egg hatching (#29), trainer calls/rematches (#30), the
|
||||
trade animation, Earl's blackboard as a list rather than a 2×3 grid,
|
||||
Kenya's MAIL text in the MAIL model, Route 32/36 and Dark Cave's far side.
|
||||
Reference in new issue
Block a user