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>
32 lines
946 B
TypeScript
32 lines
946 B
TypeScript
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();
|
|
}
|