agate-paired-trainer-entry-2026-10-03.md

Markdown · 2.2 KB · Task 17 · first used Oct 3 17:44

Paired ordinary trainer entry and opening

trainer_enter.py now safely imports without UI/runtime reads. Its default CLI keeps the existing normal controls and fresh-intro/choice refusals. The source extension accepts --paired-event46 only when the two distinct same-map active lists each declare the exact named ordinary trainer and both are choice-free. Primary45 must be NWCultistF/Lyla; paired46 must be NWCultist/Ezra for the combined name Lyla & Ezra. Defeated pages, wrong class/order/name, duplicate events and any102/103/104 choice reject before controls. The actual controller may use --active-dialogue only when that dialogue has already been publicly observed, as in the existing workflow.

# Pure installed-source proof only:
python3 scripts/trainer_enter.py 763 45 NWCultistF 'Lyla & Ezra' \
  --paired-event 46 --dry-run
# Root's actual normal entry, after route/public prerequisites:
python3 scripts/trainer_enter.py 763 45 NWCultistF 'Lyla & Ezra' \
  --paired-event 46

Source waiting-trainer ordering is in notes/agate-double-order-source-proof-2026-10-03.md. For the reviewed simultaneous overlap, waitingLyla remains opponent0/Noivern@index1; currentEzra is opponent1/Ditto@index3. Ditto3 copies own0. Cryo first/Mien second is correct. Still observe the actual intro, Noivern/Ditto HUDs and Ditto→Hexan transformation before choosing a move; an old waiting trainer or changed encounter sequence needs fresh review.

scripts/agate_double_opener_plan.py is always source-only. Its default output is work/agate-double-opener-source-proposal.json. Optional explicit frozen --status/--navigation validate source-stage52, Antoine victory, both double opponents unbeaten, Cryo-first/Mien-second, fullHP/status-free Lv90, CryoSash/IceBeam slot1 and MienFakeOut slot2. It never executes the printed commands. Normal UI registration is Cryo IceBeam Noivern first, then Mien FakeOut Ditto; priority3 makes FakeOut resolve first. Root must verify each fresh actor and physical target separately and stop after the turn for actual public damage/status/foe results. Five paired-entry pure/source fixtures and syntax/default source dry-runs passed; no UI controls were used in development.