Port Reflect and Light Screen

BattleCommand_Screen and HandleScreens run natively. Each side owns
independent five-turn counters that include the setup turn, do not
refresh on repeated use and survive enemy send-outs. Screens expire in
the original non-Link order with ROM messages; the existing damage path
already doubles the right defense and keeps the critical/stage rule.
This closes the only refusal found by the Route 30 stress run
(Chikorita's Reflect).

The NPC movement test now reads the ROM in beforeAll, so it skips
cleanly without one.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sébastien QUEROLandClaude Opus 5.5 committed 2026-09-24 19:38:13 +02:00
1 parent e00dfab42e
commit 7c1c0cc45b
8 files changed
+282 -5

No files matched your search

+4
View File
@@ -159,6 +159,10 @@ export const ENGINE_FLAGS = {
/** Battle engine tables and texts, keyed by their PRET labels so that
* \`npm run check:reference\` can verify each address by name. */
export const BATTLE = {
LightScreenEffectText: 0x814b4,
ReflectEffectText: 0x814c7,
BattleText_MonsLightScreenFell: 0x808e7,
BattleText_MonsReflectFaded: 0x80905,
WantsToBattleText: 0x807a9,
BattleText_EnemyWasDefeated: 0x809da,
GotMoneyForWinningText: 0x809be,