Allow chosen Reinforcements reserve costs
Verify and publish checkpoint container / container (push) Successful in 11m11s

This commit is contained in:
Quintine committed 2026-10-29 04:41:26 +11:00
1 parent 9dd386ff7a
commit 1cf90f1328
16 files changed
+419 -44

No files matched your search

+11
View File
@@ -17,6 +17,17 @@ open mode gates.
## Current checkpoint and work
**Reinforcements reserve choice — 29 October. Prototyped / Partial.**
The card holder can choose any available mix of three normal and special
reserve counters when sealing a plan, including native Homeworld sources.
The selected physical cost settles once; older plans without a choice retain
normal-first payment. One hundred eleven related cases, two Homeworld bot
cases, quick type/lint checks and the production build pass. The older No-Field
fixture now checks the final-battle opportunity
before settlement; completed-battle payment assertions remain. The existing
all-outcome interpretation and full card acceptance remain open.
[Scope](REINFORCEMENTS_RUNTIME.md#chosen-reserve-mix--29-october-2026).
**Freeform hand size and combined facts — 29 October. Prototyped / Partial.**
New fact-scoped freeform questions recognize total hand-size comparisons and
one AND/OR combining two named-card or spice facts. The table sees the
+25 -6
View File
@@ -16,6 +16,25 @@ fixes the exact card. Harass & Withdraw may share the plan under the
Original or copied Stone Burner composes in clean selected Ix/CHOAM families
and the existing native Advanced Occupy envelope. Other profile boundaries remain.
## Chosen reserve mix — 29 October 2026
**Prototyped / Partial.** When sealing Reinforcements, its owner can select any
available combination of three ordinary and special reserves. The chosen mix is
private with the plan and is paid exactly once when the battle settles. On
Homeworlds the owner also selects valid native source allocations for that mix;
those counters cannot also fund an own-World dial. Existing sealed plans without
a mix keep the earlier normal-first payment. The game enforces availability,
physical source and original No-Field materialization constraints.
The printed card requires three reserve forces, while the source review found
no printed normal-first restriction; this player choice is a rules-based
interpretation, not a new publisher ruling. The existing provisional all-outcome
payment and timing interpretations remain unchanged. The [normal battle](../tests/reinforcements-typed-choice-runtime.test.ts),
[Homeworld](../tests/reinforcements-homeworld-choice.test.ts) and
[controls](../tests/reinforcements-typed-choice-controls.test.tsx) cases cover
actual actions, physical pools, private plan and minimal legal bot paths. Full
card interactions and deployed acceptance remain open.
## Independent Discovery composition — 18 October 2026
Original selected36/38/50 cards now compose with Discovery7/8 and optional
@@ -77,8 +96,8 @@ is added. Original Tech/Advanced Strongholds separately use the phase-module
contract above. Classic, paired E3 and selected Advanced Occupy remain separate;
public starts and played-save conversion stay gated.
Reuse the existing explicitly provisional normal-first, all-outcome fee and
fee-before-Harass order, not a new publisher ruling. Native casualty origins
At this checkpoint the provisional fee used normal-first, all-outcome payment
and fee-before-Harass order. The later [reserve-choice update](#chosen-reserve-mix--29-october-2026) replaces normal-first for newly chosen plans. Native casualty origins
alone feed Ixian substitution; do not substitute a second copy of the fee.
Tleilaxu Face Dance and Advanced Auditor/CHOAM phase opening remain native.
Richese first materializes its own No-Field, then pays three original remaining
@@ -113,9 +132,9 @@ The [combined-army follow-up](ECAZ_OCCUPY_RULES.md#independent-cards-with-combin
retains own-holder reserve cost and selected lead card/payment ownership.
It does not revise the provisional outcome accounting below.
The holder must have three own reserve counters when sealing the plan. The owner-only battle offer displays availability and the exact provisional cost. The current prototype deterministically takes ordinary reserves first, then elite reserves if needed, transferring precisely three physical counters to the corresponding Tanks subpools when the battle settles. There is no spice payment or on-board arrival. The +2 changes the calculated normal-outcome battle score, **not** the committed physical dial, support payment, casualty count or leader survival. The card is discarded after any revealed result, including an own, opposing or mutual Traitor call and Lasgun/Shield explosion. The cost is likewise paid on each of those outcomes. A successful Traitor call still supersedes the normal score; the modifier never overrides it. Public history records the transfer; the sealed card and owner reserve mix stay private until the reveal. JSON-restored decisions and transactional room updates cannot charge the same cost twice.
The holder must have three own reserve counters when sealing the plan. The owner-only battle offer displays availability and the exact provisional cost. The holder selects an available ordinary/elite mix, transferring precisely three physical counters to the corresponding Tanks subpools when the battle settles. Earlier plans without a choice retain normal-first payment. There is no spice payment or on-board arrival. The +2 changes the calculated normal-outcome battle score, **not** the committed physical dial, support payment, casualty count or leader survival. The card is discarded after any revealed result, including an own, opposing or mutual Traitor call and Lasgun/Shield explosion. The cost is likewise paid on each of those outcomes. A successful Traitor call still supersedes the normal score; the modifier never overrides it. Public history records the transfer; the sealed card and owner reserve mix stay private until the reveal. JSON-restored decisions and transactional room updates cannot charge the same cost twice.
**Provisional interpretations, not publisher rulings:** The card says “increase the dialed number by 2” and transfer three reserves, but no retrieved combined ruling answers whether a sole successful Traitor caller instead keeps their reserves, how the transfer orders against an explosion, whether +2 adds Advanced support or physical losses, which reserve types the holder may select, or whether the three spent reserves count as battle losses for Atreides. For this bounded prototype, payment is at battle settlement before on-board casualties on every outcome; the engine counts the three as battle losses, chooses normal-first rather than offering a type selection, and keeps the score bonus separate from physical dial. [The source review](ECAZ_TREACHERY_RULES.md#14-september-reinforcements-cost-review) records the competing reading and pending user question. These choices are visible so they can be revised without changing prior hands or inventing hidden information.
**Provisional interpretations, not publisher rulings:** The card says “increase the dialed number by 2” and transfer three reserves, but no retrieved combined ruling answers whether a sole successful Traitor caller instead keeps their reserves, how the transfer orders against an explosion, whether +2 adds Advanced support or physical losses, which reserve types the holder may select, or whether the three spent reserves count as battle losses for Atreides. For this bounded prototype, payment is at battle settlement before on-board casualties on every outcome; the engine counts the three as battle losses, permits an available typed reserve choice, and keeps the score bonus separate from physical dial. [The source review](ECAZ_TREACHERY_RULES.md#14-september-reinforcements-cost-review) records the competing reading and pending user question. These choices are visible so they can be revised without changing prior hands or inventing hidden information.
The owner receives a card-slot explanation and disabled reason when fewer than three reserve counters remain or the bounded mode is unsupported. All four AI profiles generate legal candidates in the classic and Ecaz/Moritani profiles and can select either slot, including an Advanced plan. The current scoring is a minimal legal participation heuristic, not difficulty calibration. The prototype does not certify the whole three-card variant, other expansion combinations, optional modules, historical-save compatibility or public mode starts.
@@ -128,7 +147,7 @@ order for the two physical specials in one plan: quote and debit three
**original own reserve** counters before Harass returns any undialed counters.
This is an implementation interpretation, not a newly retrieved publisher FAQ
or an answer to the earlier reserve-payment question. The source audit's printed
effects and original provisional all-outcome/normal-first cost are unchanged.
effects and original provisional all-outcome cost were unchanged at that checkpoint; the later typed reserve choice is described above.
Three original own reserves must remain funded at commitment after projecting
any own No-Field revelation. A future return cannot fund a deficient plan or
@@ -262,7 +281,7 @@ other rosters/overlays, public starts and save conversion remain gated.
### Sources, physical pool and original quote
The existing provisional normal-first/all-outcome fee still consumes exactly3
The then-provisional normal-first/all-outcome fee consumed exactly3
own native reserve counters into matching normal/special Tanks subpools before
Harass returns and battle casualties. Visitors, an ally and future returns
cannot pay. Canonical native withdrawal updates World custody and aggregate