Files
GaCy-GO/docs/cw-route-continuation-audit.md
T
2026-10-28 18:54:43 +07:00

41 lines
2.3 KiB
Markdown

# Currency Wars route continuation audit
The captured route 2801 contains these node types after the first boss:
| Chapter | Sections in order |
| --- | --- |
| 2 | CampMonster, Supply, EliteBranch, Monster, Boss |
| 3 | CampMonster, Supply, EliteBranch, Monster, Boss |
These names are joined from `CurrencyWarsCatalog.json` stage routes and
`CurrencyWarsReferenceNodes.json` templates. They describe the template, not
necessarily a run's dynamically substituted node display.
`cwAdvanceRouteNode` currently calls `cwGenerateReferenceEnemyLayer` for every
destination. That factory accepts only Boss and CampMonster; it rejects Supply,
EliteBranch, and Monster. `cwSelectSupply` also requires an exact captured
transition. Consequently a successful 2-1 battle does not establish that 2-2
or later rooms can be played. Constructing the remaining node layers, pending
actions and rewards needs their corresponding native/reference rules and a
current-Client check; copying the first Supply's randomized inventory would not
prove the later rooms correct.
`cwCapturedSupplyLayer` derives the empty Supply node container from the
revision-bound transition capture and validates that it has no camp or enemy
branches. It neither copies the captured option list nor modifies a run. It is
not yet connected to route advancement: FFGO's `gfPendingSupplyOf` and
`gfPendingFillSupplyOptions` also choose a chapter/state-dependent offer,
including distinct roles and random equipment. That pending offer remains
unmapped; advancing without it would strand the player in Supply.
After the final node, `cwAdvanceRouteNode` returns `CW route has no next node`.
At zero HP, `finishCurrencyWarsBattle` returns `CW defeat settlement requires
terminal-run handler`. Neither path currently settles the run. FFGO's extracted
descriptor names settlement reasons Quit=1, HpZero=2, and Finish=3; the current
Client's obfuscated enum has matching numeric slots, but only Quit=1 has been
confirmed for the current implementation. The reference `gfSettleSend` builds
and archives a settlement record before sending the settlement notification.
The names and fields of its rank/reward/archive components must be mapped to
the current Client before a completion handler can safely persist rewards and
clear the active run. No saved run has been modified by this audit.