Run the forced-shiny, trap, forced-item, Celebi, Suicune, roaming and Bug-Catching Contest battle types. Roaming battles keep their struct's DVs and HP byte, and every other battle makes CleanUpBattleRAM's roaming roll. The contest shows PARKBALL×, counts down Park Balls, ends when they run out, keeps its catch outside the party and asks before switching. Scripts load the special types with loadvar, and while a contest runs, encounters use BugCatchingContestBattleScript and ContestMons. Validated with 596 unit tests, 155 browser tests (including the contest menu and switch screen), native/reference builds and reference/vendor/release checks. National Park's contest event, the roaming release and the Ilex Forest Celebi event come with their maps. Closes #28 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b547ca29ff
commit
8fae1f0c0f
15 files changed
+787
-42
No files matched your search
@@ -208,9 +208,10 @@ describe.skipIf(!existsSync(romPath))("capture with the local ROM", () => {
|
||||
input = { action: "item", item: C.MASTER_BALL, slot: 0 };
|
||||
} else if (next.value.kind === "yesno") input = 0;
|
||||
}
|
||||
// Only LoadEnemyMon's wild item roll (one or two draws) remains.
|
||||
expect(draws() - before).toBeGreaterThanOrEqual(1);
|
||||
expect(draws() - before).toBeLessThanOrEqual(2);
|
||||
// Only LoadEnemyMon's wild item roll (one or two draws) and
|
||||
// CleanUpBattleRAM's roaming roll remain.
|
||||
expect(draws() - before).toBeGreaterThanOrEqual(2);
|
||||
expect(draws() - before).toBeLessThanOrEqual(3);
|
||||
expect(party).toHaveLength(2);
|
||||
expect(party[1].nickname).toBe("RATTATA");
|
||||
expect(bag.balls).toEqual([]);
|
||||
|
||||
Reference in new issue
Block a user