40 lines
2.3 KiB
Markdown
40 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.
|