- Day-Care and breeding: deposits, withdrawal pricing and growth,
compatibility, egg species, DVs and moves, DayCareStep, egg
collection and the Odd Egg, compared with the cartridge's routines.
- CountStep: walking happiness, DoEggStep, DayCareStep and DoBikeStep
in the original's order; HatchEggs with the ROM's hatch animation,
compared frame by frame with the original.
- MAIL: all ten stationery types and the Portrait MAIL picture,
compared with the cartridge's tilemaps, graphics and palettes.
- Printing: Bill's PC boxes, Pokedex PRNT, MAIL and the Photo Studio
take the original's absent-printer path.
- Hall of Fame records (saved apart from the League flag, ready for the
League to call) and the Hall of Fame PC, compared with the cartridge's
_HallOfFamePC on 255 pages.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Savegames now lists independent save slots made with the loaded ROM:
new game, continue, rename, duplicate, export and delete. The native
database moves to IndexedDB version 2; the singleton save becomes
"Save 1" inside the upgrade transaction, so it migrates exactly once and
the old store is left untouched. Each write adds a generation and drops
older ones in one transaction, keeping two records with CRC-32
checksums: a damaged newest record falls back to the previous one.
Slots and records from a newer player are kept and never written.
Imports are checked in a scratch world before anything changes and
previewed with the trainer, progress, saved time, game data version and
the slots of the same trainer; they go into a new save or replace one,
whose previous record stays recoverable.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The handoff lists the four commits for the remaining field items, the
gaps found on the way and the manual test cards, whose backup the
manual-test save writer now produces.
[no-card]
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Facing a Headbutt tree asks to HEADBUTT it, and HEADBUTT from the party
menu skips the question. ShakeHeadbuttTree shakes the tree as a sprite over
grass, then TreeMonEncounter scores the facing tile against the trainer ID
and draws from the map's common or rare tree table. A Pokémon that falls
fights as BATTLETYPE_TREE: "fell out of the tree!", and the time of day's
AsleepTreeMons species start asleep.
Smashable rocks run SmashRockScript, and ROCK SMASH from the party menu
acts on the facing rock; after the rock breaks, RockMonEncounter gives the
map's rock set a 40% chance of a wild battle.
Closes#26
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The board gains an "A tester" column for the checks that need a person:
the project-board hook now reads it, so a commit that mentions one of its
cards moves the card instead of adding it to a second column. A test that
runs only with MAKE_TEST_SAVES=1 writes the backup those checks import,
built from the local ROM and kept out of git.
[no-card]
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>