Prototype modifier-aware Smuggler battle collection
This commit is contained in:
1 parent
d6d71c7c02
commit
63298be1e1
22 files changed
+836
-84
No files matched your search
+66
-23
@@ -1,8 +1,8 @@
|
||||
# Smuggler battle collection
|
||||
|
||||
20 September 2026. **Prototyped, with Partial rules coverage.** New battles in
|
||||
the base-faction Leader Skills preview connect the lower Smuggler effect in Basic
|
||||
and Advanced games. Public module, mode and publication gates remain closed.
|
||||
Updated 17 October 2026. **Prototyped, with Partial rules coverage.** Supported
|
||||
Basic/Advanced Leader Skills tables include the provisional modifier policy below.
|
||||
Public module, mode and publication gates remain closed.
|
||||
|
||||
## Native Discovery legal participation — 6 October 2026
|
||||
|
||||
@@ -26,13 +26,31 @@ forces. A captured skilled leader grants its lower effect to its controller.
|
||||
|
||||
At public plan reveal the server records the battle, controller, selected leader,
|
||||
plans, skill posture and territory's existing positive spice piles. The amount
|
||||
is the smaller of their aggregate total and the unmodified disc strength. This
|
||||
pending amount is not personal spice and cannot fund a sealed plan or another
|
||||
is the smaller of their aggregate total and the reveal-time leader-strength cap.
|
||||
This pending amount is not personal spice and cannot fund a sealed plan or another
|
||||
payment. After survival is known, the server transfers it once, including for a
|
||||
surviving loser, before Sandmaster adds any after-victory spice. A pile drained
|
||||
to zero cannot receive Sandmaster's addition. This deferred settlement and
|
||||
ordering remain explicit timing inferences, not a newly discovered publisher ruling.
|
||||
|
||||
### Provisional modifier policy — 17 October 2026
|
||||
|
||||
Under the standing choose-recommended instruction, include the copied/printed
|
||||
disc value, existing declared Leader Skill bonuses and declared Kwisatz +2 in
|
||||
the cap. This is an explicit first-version interpretation, not a publisher FAQ
|
||||
or an answer to the older numerical question. The authorized Advanced source's
|
||||
physical p21 supplies general skill survival/card-role rules, not this cap ruling.
|
||||
Printed disc value and bounty do not change. Later actions cannot enlarge the
|
||||
recorded piles or spend the pending collection.
|
||||
|
||||
An actual resolved zero-strength weapon effect voids collection even when the
|
||||
leader survives; it opens no sector-allocation choice and transfers no spice.
|
||||
The existing resolver assigns that effect to **Artillery Strike**, not the base
|
||||
projectile **Stunner**. A sole own Traitor bypasses weapon effects and therefore
|
||||
does not zero collection; opposing/mutual Traitors retain their survival rules.
|
||||
The receipt retains its original reveal-time cap and records `void` when zeroed.
|
||||
|
||||
|
||||
A weapon death, opposing or mutual Traitor, or Lasgun–Shield explosion voids the
|
||||
collection. A successful sole own Traitor call can leave the Smuggler alive and
|
||||
eligible. A void receipt changes no pile; it cannot restore spice destroyed by an
|
||||
@@ -49,10 +67,11 @@ payment, so it does not invoke Banker or Bureaucrat payment handling.
|
||||
Single-pile collection remains automatic with no acknowledgement. Partial
|
||||
multi-pile collection asks only the surviving controller to choose concrete
|
||||
sectors; collecting all or none remains automatic. The choice has no decline.
|
||||
- AI candidates omit optional Kwisatz when selecting Smuggler and reject other
|
||||
unsupported modified plans. Native face-up skilled discs remain unavailable
|
||||
to battle selection; captives and existing mandatory concealment retain their
|
||||
legal paths. UI availability and the submitted Kwisatz value share one check.
|
||||
- AI candidates and player controls admit legal declared Kwisatz and trainer
|
||||
bonuses through the shared plan guard. The table and bots use the server's
|
||||
projected module admission rather than reconstructing private configuration.
|
||||
Native face-up skilled discs still cannot be selected without concealment;
|
||||
captives and mandatory preparation retain their original paths.
|
||||
- Existing single-pile signed receipts have JSON/SQLite continuation evidence.
|
||||
Multi-pile choices retain the same battle binding and have changed-path JSON
|
||||
and real-engine control smoke; comprehensive persistence assurance remains
|
||||
@@ -66,8 +85,8 @@ payment, so it does not invoke Banker or Bureaucrat payment handling.
|
||||
|
||||
## Multi-pile allocation policy and pure API — 9 October 2026
|
||||
|
||||
The printed collection amount applies to the territory's aggregate existing
|
||||
spice, capped by the unmodified leader strength. The available source does not
|
||||
The collection amount applies to aggregate existing spice, capped by the
|
||||
recorded strength policy above. The available source does not
|
||||
specify which sectors supply a partial multi-pile collection. **Owner-selectable
|
||||
sectors are a provisional prototype allocation policy, not a publisher ruling.**
|
||||
The owner controls only distribution, never the mandatory amount. Controls appear
|
||||
@@ -83,18 +102,18 @@ fill and require the exact total within each revealed pile's capacity.
|
||||
aggregate total. Signed owner choices add
|
||||
`allocations?: Record<string, number>`. Single-pile and empty receipts retain
|
||||
their original shape.
|
||||
- `smugglerBattleAllocationRequired(receipt, survives): boolean` reports a
|
||||
missing choice only for a surviving pending receipt with at least two positive
|
||||
piles and `0 < amount < before`. All/none collection and death need no choice.
|
||||
- `smugglerBattleAllocationRequired(receipt, eligible): boolean` reports a
|
||||
missing choice only for an eligible pending receipt with at least two positive
|
||||
piles and `0 < amount < before`. All/none, death and actual zeroing need no choice.
|
||||
- `chooseSmugglerBattleAllocation(receipt, allocations): SmugglerBattleReceipt`
|
||||
verifies the pending signature, accepts only reveal-time positive keys and
|
||||
nonnegative safe integers within their recorded capacities, requires a total
|
||||
exactly equal to `amount`, omits zero entries, and returns a new signed receipt
|
||||
without mutating its input.
|
||||
- `settleSmugglerBattle(receipt, survives, spice)` verifies the signed receipt
|
||||
and unchanged reveal-time positive piles, requires the surviving ambiguous
|
||||
- `settleSmugglerBattle(receipt, eligible, spice)` verifies the signed receipt
|
||||
and unchanged reveal-time positive piles, requires any eligible ambiguous
|
||||
choice, debits those concrete sectors, and returns `{ receipt, amount, spice }`.
|
||||
Death returns a signed `void` receipt with zero transfer; forced all/none
|
||||
Death or actual zeroing returns a signed `void` with zero transfer; forced all/none
|
||||
collection is automatic. A settled receipt cannot be settled twice.
|
||||
- `SmugglerBattleCollectionOffer` is the owner-only public shape
|
||||
`{ event: string, player: string, territory: string, amount: number,
|
||||
@@ -111,12 +130,12 @@ printed rulings.
|
||||
|
||||
## Boundaries and evidence
|
||||
|
||||
Kwisatz, separate trainer bonuses and Stunner still await the existing modifier
|
||||
question; no user answer is assumed. Expansion rosters/cards, the independent
|
||||
Ecaz card variant and other optional modules remain guarded before the Smuggler
|
||||
plan seals. These development restrictions are not rules that forbid those
|
||||
combinations in the physical game. Stone Burner and other expansion combinations
|
||||
therefore have no connected acceptance claim here.
|
||||
The old modifier question received no numerical answer; the visibly provisional
|
||||
17 October policy above supplies usable behavior under the standing instruction.
|
||||
It does not settle every exceptional skill interaction. The independent Ecaz
|
||||
card variant and unrelated optional-module envelopes retain their admission
|
||||
guards. These restrictions are not printed prohibitions. Existing revealed
|
||||
weapon/Stone/Mirror profiles and original settlement order remain separate.
|
||||
|
||||
Focused engine tests cover winners/losers in both modes, empty/short piles,
|
||||
zero surviving forces, death and Traitor outcomes, explosion, capture custody,
|
||||
@@ -126,3 +145,27 @@ concurrent final votes and replay rejection. Browser and full-game sample scope,
|
||||
required check/build/HTTP results, preservation and verified Git delivery are
|
||||
recorded in the private source-bound checkpoint and commit message. This does
|
||||
not certify every Leader Skill or combined-module interaction.
|
||||
|
||||
## Modified-strength runtime proof — 17 October 2026
|
||||
|
||||
Actual old raw KH/trainer plans reject unchanged before the cutover. The new
|
||||
focused23 cases and related9-file union86/86 pass, as do types/lint and build
|
||||
with existing warnings. New source-bound cases:
|
||||
`tests/smuggler-kwisatz-journey.test.ts`,
|
||||
`tests/fixture-smuggler-kwisatz-journey.ts`,
|
||||
`tests/smuggler-artillery-journey.test.ts` and
|
||||
`tests/fixture-smuggler-artillery-journey.ts`.
|
||||
|
||||
Seven actual supported casualties unlock KH; real next-turn6/8-spice blows
|
||||
yield cap7 collections6/7, with no reveal-time credit. Actual paid shipments
|
||||
and movement precede shielded Artillery0, sole own-Traitor bypass6 and ordinary
|
||||
shielded Stunner6. Original winner cleanup exposes payout before separate
|
||||
Collection. Unopened deck/card/identity staging is explicit; no live force,
|
||||
wallet, phase, order, loss count, KH or receipt is assigned.
|
||||
|
||||
Four390px control journeys/32 actions and eight four-policy programmes/64
|
||||
actions reach original Collection. The table and bots use the original server
|
||||
admission projection. Other exceptional skill/mode compositions, full strategy,
|
||||
comprehensive assurance and deployed acceptance remain open. No real room,
|
||||
database, human server or deployment was changed.
|
||||
|
||||
Reference in new issue
Block a user