Connect bounded Reinforcements Battle Plan

This commit is contained in:
Quintine committed 2026-09-28 13:07:27 +10:00
1 parent 763749f25e
commit 23ce406872
19 files changed
+745 -35

No files matched your search

+14 -3
View File
@@ -70,6 +70,16 @@ bulk actions and backup/operations tools remain unfinished.
The bounded [native Richese Nexus Cunning shipment](NEXUS_RICHESE_RULES.md#bounded-native-cunning-prototype-27-september-2026) now uses two distinct physical No-Field tokens in one priced shipment in genuine Richese/CHOAM paired Nexus games. One token immediately reveals a reserve-capped public force group; the other remains concealed. Owner-only controls, four legal AI profiles, Karama/Guild responses, signed saved receipts and concurrent in-memory SQLite settlement are connected in Basic/Advanced. A read-only local browser fixture displayed the owner selector and no rival private panel. Same-shipment nonrepeat is a documented product interpretation; faceup-component artwork, combined modules, Betrayal and full Nexus acceptance remain gated. This code is local and not in the last verified production image.
The independent [Reinforcements Battle Plan prototype](REINFORCEMENTS_RUNTIME.md)
connects its physical card in either slot for Basic/Advanced classic-faction
games without other optional modules. Three own reserve counters enter the
Tanks, +2 affects normal battle score only, and the card is discarded on all
revealed outcomes. Owner-only availability, controls, legal AI, private
inspection and saved continuation are connected. Traitor/explosion payment,
normal-first elite selection and battle-loss accounting remain explicitly
provisional interpretations, not a publisher or user ruling; full variant and
public mode gates remain closed. This source is not in the live image.
5,408 offline tests, 52 HTTP tests, build, twenty-two administrator HTTP groups
and desktop/mobile browser acceptance passed. Deployment delivery was
unconfirmed at that checkpoint; the current production revision is recorded
@@ -213,8 +223,9 @@ four AI profiles. New battles also have [revealed physical allocation](HARASS_AL
ordinary/elite mixtures and multi-sector returns. Richese card combinations
and additional optional modules stay gated. Withdrawal before explosion and
card-specific discard precedence are explicitly labeled inferences. The Stone
Burner timing question is pending; no user answer is assumed. Reinforcements
remains unfinished. This does not open variant, mode or publication gates.
Burner timing question is pending; no user answer is assumed. The separate
Reinforcements prototype has its own provisional timing and cost boundary.
Neither prototype opens variant, mode or publication gates.
The preceding [early Sapho aggressor](SAPHO_AGGRESSOR.md) connects the
printed battle-priority effect during the existing shared pre-plan opportunity.
@@ -265,7 +276,7 @@ These links define bounded working behavior, not complete module certification.
| Discoveries | [Prototype](DISCOVERY_PROTOTYPE.md): genuine setup, Great Maker, seven cards/eight tokens, inspection and stash rewards, nested sites, signed later free entry, carried Ornithopter, sole Cistern, bounded Orgiz transfers, Jacurutu income, Testing Station and Shrine. Orgiz's per-deposit interpretation, contested/shared benefits and mixed physical allocation remain provisional or pending. The Orgiz path in current source is not yet deployed. |
| Nexus/Homeworlds | [Decision index](RULE_DECISIONS.md) links each integrated faction family, native/borrowed effects, physical custody, private choices, payments and transport. [CHOAM Secret Ally trade and bounded after-victory inspection](NEXUS_CHOAM_SECRET_ALLY.md), [Moritani Secret Ally losing-card retention](NEXUS_MORITANI_RULES.md#secret-ally-losing-card-retention-prototype), [Ecaz private yes/no traitor inquiry](NEXUS_ECAZ_RULES.md#bounded-secret-ally-traitor-inquiry-runtime) and [Emperor extra revival](NEXUS_EMPEROR_SECRET_ALLY_RUNTIME.md) are connected. Uniform CHOAM winner/Moritani loser windows and Ecaz inquiry scope/audience are explicit product inferences, not publisher rulings; Emperor purchase remains pending. A source audit or helper alone is not a completed effect. |
| Truthtrance | [Spice facts](TRUTHTRANCE_SPICE_FACTS.md), [card counts](TRUTHTRANCE_CARD_COUNT.md), [hand inventory](TRUTHTRANCE_HAND_INVENTORY.md), [recorded knowledge](TRUTHTRANCE_KNOWLEDGE.md), and [Basic/no-Guild Advanced reserve-shipment promises](TRUTHTRANCE_SHIPMENT_PROMISES.md) use authoritative private state. Earlier readiness audits do not supersede these follow-ups. |
| Other cards | [Sapho runtime](JUICE_OF_SAPHO_RUNTIME.md) includes first among remaining unstarted movement turns after Advanced Guild has finished. [Recruits](RECRUITS_RUNTIME.md) connects clean Revival play; [Harass & Withdraw](HARASS_WITHDRAW_RUNTIME.md) connects the bounded battle return in the same independent three-card preview. Richese card contracts and the checklist identify other connected effects and explicit gaps. |
| Other cards | [Sapho runtime](JUICE_OF_SAPHO_RUNTIME.md) includes first among remaining unstarted movement turns after Advanced Guild has finished. [Recruits](RECRUITS_RUNTIME.md) connects clean Revival play; [Harass & Withdraw](HARASS_WITHDRAW_RUNTIME.md) and [Reinforcements](REINFORCEMENTS_RUNTIME.md) connect bounded battle effects in the same independent three-card preview. Richese card contracts and the checklist identify other connected effects and explicit gaps. |
| Multiplayer | [Public and private discussion](TABLE_DISCUSSION.md), saved rooms/seats, [recovery](../README.md#saved-seats-and-reconnecting), uncertain-request retry, [own-seat AI](AUTOPILOT.md), [named-player AI permission](SEAT_AI_PERMISSION.md) and [voluntary seat handover](SEAT_HANDOVER.md) have connected controls and recovery evidence. |
## Remaining readiness
+16
View File
@@ -117,3 +117,19 @@ toward the Advanced Atreides seven-loss threshold, or the relative order when
the same plan also plays Harass & Withdraw. Those combinations remain explicit
boundaries rather than inferred rules. No disconnected quote is recorded as a
completed card effect.
## 27 September bounded Reinforcements prototype
The earlier cost review remains an unresolved source question, not a user
ruling. [The connected runtime](REINFORCEMENTS_RUNTIME.md) uses the printed
three-reserve transfer and +2 modifier in classic-faction Basic/Advanced games
with the independent three-card variant and no other optional modules. The
normal score is separate from physical dial/support/casualties; three ordinary
reserves are used first, with elite reserves supplying any shortfall. The
transfer counts as battle losses and applies even to a sole successful Traitor
caller, an opposing/mutual Traitor outcome or an explosion, before board
casualties. Those choices are **provisional product interpretations**, not
publisher adjudications or an answer to the pending user question. The card
cannot share a plan with Harass & Withdraw or Stone Burner until those
combinations are resolved. The earlier “remains disabled” statement describes
the 14 September snapshot rather than this bounded current prototype.
+5 -2
View File
@@ -78,8 +78,11 @@ This is a legal strategy path, not strength calibration.
Richese remains eligible. This is a development boundary, not a printed ban.
- Co-present reciprocal Ecaz allied armies on either side reject before
sealing; other faction integration gates remain in force. This prototype does not settle Ecaz's undialed allied support allocation.
- Reinforcements remains unavailable pending its separate cost and outcome
accounting. Neither slot recognition nor card text proves its effect complete.
- [Bounded Reinforcements](REINFORCEMENTS_RUNTIME.md) can appear in the
opposing Battle Plan in classic-faction Basic/Advanced games. The two cards
cannot share one player's plan; their relative same-plan timing remains
unresolved. Both prototypes retain their separate provisional cost and
outcome interpretations.
## Verification and preservation
+29
View File
@@ -1,5 +1,34 @@
# Dune implementation status
## 27 September 2026 — Bounded Reinforcements Battle Plan
[The independent three-card runtime](REINFORCEMENTS_RUNTIME.md) now permits
the physical Reinforcements card in either Battle Plan slot for Basic/Advanced
classic-faction games without other optional modules. A normal battle score
gains two without changing the dial, support or on-board casualties; exactly
three own ordinary-first reserve counters transfer to typed Tanks and count as
battle losses at settlement, even for traitor/explosion outcomes. Mandatory
discard, private category-None inspections, owner-only controls, four minimal
legal AI profiles and JSON/SQLite saved continuation are connected. The
normal-first choice, all-outcome payment and accounting are provisional
product interpretations pending the recorded user/source ruling, not complete
variant certification. Same-plan Harass/Stone Burner and optional modules
remain gated; an opposing Harass plan is supported. Independent rules and
privacy reviews found and prompted repair of a revealed-plan deadlock against
opposing Harass.
Fourteen focused Reinforcements cases and 27 focused Harass cases passed,
including Basic/Advanced physical custody, rival privacy, rejected-action
immutability and concurrent in-memory SQLite CAS/restart. Read-only
intercepted local browser views displayed the owner card in both physical
selectors, cost guidance and no duplicate card after selection; the rival
had no private card or cost offer. No room write occurred. Project-wide
`npm run check` stops at the unrelated in-progress Fremen Nexus draft
`Player.fremenNexusMovementBlockedTurn` diagnostic; isolated project
TypeScript excluding only that draft and scoped lint passed. The final frozen
offline suite passed 5,595/5,595 cases across 704 files; the app production
build passed. Production still runs the earlier verified `c9a3625` image.
## 27 September 2026 — Bounded native Richese Nexus Cunning pair
The [Richese source contract](NEXUS_RICHESE_RULES.md#bounded-native-cunning-prototype-27-september-2026) now has one usable two-No-Field shipment in genuine Richese/CHOAM paired Nexus games without other optional modules. Two distinct nonrepeating physical tokens ship at the one-marker price; one immediately reveals into reserve-capped public normal forces and the other remains the sole concealed marker. The native Karama cancellation leaves resources, tokens and shipment allowance untouched while spending the card; Advanced Guild special prevention spends the attempted allowance without placing tokens or charging spice. Owner-only controls, four minimal legal bot paths, public value/force log and private concealed custody are connected. A read-only local browser fixture displayed the owner pair selector; the rival view had no private panel. Same-shipment `lastShipped` handling is a product interpretation, not a published FAQ answer.
+11
View File
@@ -0,0 +1,11 @@
# Reinforcements battle prototype
The separate Ecaz Treachery Cards variant shuffles one physical Reinforcements card independently of choosing the Ecaz faction. In a Basic or Advanced game with only classic factions and no other optional modules, its holder may commit it in either Battle Plan card slot. It is neither a weapon nor a defense: Prescience of a category receives **None**, while the card's physical slot remains occupied and hidden until reveal. A named-card inspection still fixes the exact card. Harass & Withdraw and Stone Burner cannot share this bounded plan; Homeworld and other optional-module combinations remain gated.
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.
**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.
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 only legal candidates 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 faction combinations, optional modules, historical-save compatibility or public mode starts.
Focused rule, engine, controls and in-memory SQLite tests cover both slots, Basic/Advanced payment, elite subpool conservation, traitor/explosion disposal, private sealed views, JSON restoration, rejected-action immutability and competing final room commits. The test results and actual browser/UI evidence for the current checkpoint are recorded in [Implementation status](IMPLEMENTATION_STATUS.md); test coverage is not a publisher ruling.
+1 -1
View File
@@ -63,7 +63,7 @@ These are unresolved in the cited records. Do not infer an answer from elapsed t
| Boundary | Still unresolved | Existing record |
| --- | --- | --- |
| Bureaucrat / Emperor gifts | Whether an allied gift is a qualifying payment and whether its threshold may be revealed. Existing gift amounts are private to payer/recipient; the card and retrieved primary sources do not explicitly settle this combination. The user question is pending; no answer or exact-amount disclosure is assumed. | [Gift classification review](BUREAUCRAT_PAYMENTS.md#21-september-gift-classification-review) |
| Reinforcements cost | A user question asks whether to keep the card disabled, always transfer three reserve forces on every outcome, or waive only a sole traitor-call winner's cost. No answer is assumed. Advanced Atreides loss accounting and same-plan Harass ordering are separate unresolved combinations. Eligibility must not depend on concealed matching Traitors. | [Fresh cost review](ECAZ_TREACHERY_RULES.md#14-september-reinforcements-cost-review) |
| Reinforcements cost | The user question still asks whether to keep the card disabled, always transfer three reserve forces on every outcome, or waive only a sole traitor-call winner's cost; no answer is assumed. The bounded classic-faction prototype provisionally charges on all revealed outcomes, chooses normal reserves before elite and counts the transfer as battle losses. Those are product interpretations, not a ruling. Same-plan Harass/Stone Burner remain gated; opposing Harass is supported. Eligibility never depends on concealed matching Traitors. | [Source cost review](ECAZ_TREACHERY_RULES.md#14-september-reinforcements-cost-review) · [Bounded runtime](REINFORCEMENTS_RUNTIME.md) |
| Harass / Stone Burner | A user question has been sent: keep the combination gated or compare forces remaining after withdrawal. No answer is assumed. The Richese card-family configuration is guarded publicly; hidden Stone Burner custody never controls eligibility. Ambiguous physical allocations and other optional modules remain unfinished. | [Current boundaries](HARASS_WITHDRAW_RUNTIME.md#current-boundaries) |
| Recruits late accounting and rates | A user question has been sent for two free plus one paid Atreides return before Recruits: keep the disputed case gated, or one/two further free returns without refund. No answer is assumed. Late-changing free rates, pending repricing and same-turn recovered-card replay also stay gated. The connected clean-case preview retains the independent seven-force cap after faction-advantage cancellation as an explicit inference, not a direct combined FAQ. | [Source audit](RECRUITS_RULES.md), [runtime scope](RECRUITS_RUNTIME.md) |
| Sandmaster / native HMS relocation | No official source located establishes that passengers remaining inside the HMS enter outside territories for this skill. Extra collection eligibility is pending a user ruling; native sector collection and ordinary force entry/exit remain available. | [Source comparison and question](SANDMASTER_MOVEMENT.md#21-september-native-hms-relocation-eligibility) |