Open Route 29 and Cherrygrove City
Checks / web (push) Canceled after 0s

- Enable Route 29, its Route 46 gate, Cherrygrove City and its buildings.
- Run item balls through FindItemInBallScript and fruit trees through
  FruitTreeScript, with a native daily reset of the daily engine flags.
- Port the Pokémon Center nurse (HealParty with the PP Up clamp,
  CheckPokerus, phone-call checks) and record the whiteout spawn on
  entering a Pokémon Center, as EnterMapWarp does.
- Port standard Poké Marts with keyboard, D-pad and pointer menus.
- Add the recoil battle command (Struggle) and VAR_BOXSPACE.
- Save fruit trees, the daily reset day and the last spawn map; older
  version-3 backups migrate by absence.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Sébastien QUEROLandClaude Opus 5.5 committed 2026-09-23 17:25:02 +02:00
1 parent 11d1153802
commit 796fe8f6d5
24 files changed
+1549 -59

No files matched your search

+31
View File
@@ -0,0 +1,31 @@
import { CrystalAssets } from "../src/game/rom/assets";
import { GameWorld } from "../src/game/world/world";
/** Places the player at the Cherrygrove Mart counter (facing the clerk
* behind it at 1,3 through the counter tile at 2,3) so `interact()` talks
* to them without walking the overworld from New Bark Town. */
export function martFixtureWorld(assets: CrystalAssets) {
let seed = 1;
const world = new GameWorld(
assets,
() => new Date("2026-09-22T12:00:00"),
() => {
seed = (seed * 1103515245 + 12345) >>> 0;
return (seed >>> 16) & 255;
},
);
const save = world.save();
save.map = "26:4";
save.x = 3;
save.y = 3;
save.direction = "left";
world.restore(save);
// The first idle tick runs the new game's daily reset.
world.tick();
return world;
}
/** Talk to the clerk and let the mart's welcome screen present. */
export function talkToClerk(world: GameWorld) {
world.interact();
}