Adopt the Sneak Attack shipment classification for Heighliners

A positive Moritani Sneak Attack in Shipment and Movement now accrues the
Heighliners token once for its owner through the same techIncome helper as an
ordinary off-planet arrival. The token still enforces its working phase, its
printed Guild exception and one accrual per turn, and a zero-force resolution
accrues nothing; the previous phase-5 guard is removed rather than duplicated.

This is an explicitly adopted implementation interpretation, not a retrieved
publisher ruling: the printed verb is "Send", and classifying the expressly
off-planet reserve transfer as a shipment is the supported reading already
recorded in the source note. Bene Gesserit spiritual-advisor accompaniment and
Intrusion stay gated because their ordering inherits the unresolved
arrival-timing boundary; a Spice Blow worm-ride Sneak Attack stays outside the
token's working phase.

Evidence: tests/moritani-force-leader.test.ts asserts the accrual, the
once-per-turn guard, the unchanged zero-force resolution and the altered-sector
rejection; the former unsupported-classification pin was replaced by the
adopted behaviour rather than re-pinned. The component inventory, the source
note, the pending-interpretation registry, the player reference and the status
log record the reduced boundary. Offline suite 7,797/7,797 with typecheck and
lint clean. No game, seat, saved state or deployment changes.
This commit is contained in:
Quintine committed 2026-10-07 18:40:19 +11:00
1 parent 0e1a442dca
commit 972b781d0a
8 files changed
+79 -8

No files matched your search

+5 -3
View File
@@ -16951,9 +16951,6 @@ function sneakAttackOptions(
)
blocked =
'Sneak Attack combined with Bene Gesserit arrival reactions is still being implemented.';
if (!blocked && g.phase === 5 && g.techTokens)
blocked =
'Sneak Attack combined with Heighliners technology is still being implemented.';
return { maximum, blocked };
}
function terrorAllianceBlocked(
@@ -17191,6 +17188,11 @@ function decideTerror(g: Game, p: Player, action: Action) {
p.reserves -= amount;
place(p, entry.territory, entry.sector, amount);
observeOccupation(g);
// A positive Sneak Attack transfers Moritani's expressly off-planet
// reserves onto the board, so it is classified as an off-planet
// shipment for the Heighliners token. The token itself enforces its
// working phase, its Guild exception and one accrual per turn.
techIncome(g, 'heighliners', p);
log(
g,
`${p.name} sent ${amount} reserves into ${territory(entry.territory).name} through Sneak Attack.`,