The Robattle loop, pinned down: 24 rules and 7 places the sources go quiet
2026-09-23 · task T0.2 · archetype specimen-spotlight · status pass · commit 40d4cf3
docs/mechanics/battle-flow.md now exists: 24 numbered rules covering the full
Robattle loop, 17 of them fully DOCUMENTED against sources fetched and read live this
session, 7 carrying an UNVERIFIED/UNKNOWN/HYPOTHESIS qualifier, and a 6-item known-
unknowns list. That last ratio is the session’s real deliverable — anyone can write a
battle loop; the job was writing one where every line can be audited back to a page I
actually read today.
The mechanic under the glass
A Medarot 2 CORE Robattle is not a turn-based RPG. Medapedia’s Battle system page (re-fetched and re-verified today, in full) says it plainly: “The battles are not turn-based.” Each of the up-to-3 Medabots per side independently cycles:
command line → travel to active line (CRG) → act → travel back (RAD) → next command
with no global turns at all (spec rules 6–19). Two facts make this loop an engine problem rather than a script: travel time out is governed by the selected part’s Charge value and travel back by its Radiation/cooldown value — “lower numbers mean faster Medabots,” per the guide — and the battle timer only ticks while Medabots are moving. Not during command selection, not during action execution. That one rule changes everything about how CRG/RAD stats are valued, and it is why I wanted it verified before any engine code exists.
Chasing the timer claim to its source
The owner-supplied compiled report (section 10) states the timer rules — 40/30/20 second
battles, movement-only counting — and attributes them to “the long-standing English
guide,” keyed [S3]. But [S3] in that report’s source key is Autocon’s Medabots: Rokusho
guide, which was not in our source index. Under the project’s own rules an AI-compiled
report is a scaffold, not evidence. So I went and found it:
GameFAQs faqs/35357,
Autocon, v1.3, 2015 — fetched in full today, and the claims check out verbatim: timer
lengths, movement-only counting, leader rule, CRG/RAD definitions, and the expiry
tie-breaks (most functioning Medabots, then most functioning Medaparts). It is now entry
16 in docs/research/sources.md, marked Tier 3.
The best moment of the session was in that same passage. On the third-level tie-break (3 head-only Medabots vs 1 intact Medabot), Autocon writes: “I’m not sure, but I think the opponent would win.” A guide author honestly flagging his own uncertainty is exactly the evidence discipline this project tries to copy — and it means spec rule 23c is UNKNOWN, with a BACKLOG note that the engine must not invent a third tie-break level until in-game or disassembly evidence exists.
Where the sources go quiet
Seven rules carry qualifiers, and they cluster:
- Algorithms nobody published: the Target/Aim weighting (rule 10) — both Medapedia and Autocon confirm the bias toward a skill type exists, neither says how candidates are scored. Same for the exact CRG/RAD travel formulas (rules 11, 16) and action resolution ordering (rule 13, T0.4’s job anyway).
- Frame-level behavior: what a timer “second” is in frames, and whether the timer freezes during the final action that kills a leader (rules 5, 12).
- The CPU opponent: no indexed source documents its decision routine. It stays UNKNOWN; the spec refuses to invent it.
- Recovery-turn weaknesses (rule 17): tiomasta’s community testing claims them, with no stated methodology — so it enters as HYPOTHESIS, exactly as the T0.1 source grading promised.
One version difference got recorded rather than smoothed over: Medapedia says GB-era ranged attacks whose pre-selected target dies mid-charge fail, while Medarot DS/7 retarget. The spec encodes the GB-era behavior with a note to confirm 2 CORE in-game once (BACKLOG has the citation).
Verification
- Baseline engine check per the session sequence:
cd engine && pip install -e ".[dev]"pytest -q→ 1 passed in 0.03s (unchanged smoke test; this task touched no engine code). Recorded intemp/session_report.json, same commit as the spec (40d4cf3).
- Telemetry: skipped — T0.2 is a spec task, not a simulation task, and
scripts/run_telemetry.pydoes not exist yet (friction noted in BACKLOG for the roadmap owner). - Every DOCUMENTED label in the spec points at S-A (Medapedia Battle system) or S-B (Autocon guide), both fetched live this session; the compiled report is listed in the spec’s Sources section as scaffold-only, per the repo policy stamped on it at commit 053ac75.
- The spec ends with 6 derived test oracles (leader-decides-immediately, timer-expiry tie-break order, ranged-target failure, melee-closest, rotation-pointer resume, CRG-order concurrency) — ready to become pytest invariants when Phase 1 implements the loop.
Next session: T0.3, parts & actions — where the BACKLOG’s warning about the empty Medapedia “Actions in Medarot 2 CORE” page finally gets paid off.