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

2.3 KiB

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.