Enable Reinforcements in clean Ecaz-Moritani battles

This commit is contained in:
Quintine committed 2026-09-29 20:59:52 +10:00
1 parent 1083c6ccbf
commit 6ac5dabdee
11 files changed
+180 -28

No files matched your search

+10
View File
@@ -6,6 +6,16 @@ Expansion starts and full rules/publication acceptance remain gated.**
## Current checkpoint and work
The separate [Reinforcements card prototype](REINFORCEMENTS_RUNTIME.md)
now works in clean Ecaz/Moritani expansion battles as well as classic-faction
tables in Basic and Advanced. Genuine setup, owner-only two-slot controls,
legal AI offers, typed reserve-to-Tanks payment and saved D1 continuation
follow the existing card contract. Co-present Ecaz allied armies, Richese,
Ixians/Tleilaxu and other optional modules remain gated; the printed cost
timing is still a documented product interpretation, not a publisher ruling.
This does not open public expansion or card-variant starts, and this source is
not in the last verified live image.
A five-seat Advanced combined Homeworld/Nexus/expansion sample exposed two
known-unsupported Ecaz Ambassador/Moritani Terror shipment candidates from
Tleilaxu's own Homeworld. [AI arrival preflight](BOT_ARRIVAL_PREFLIGHT.md#29-september-homeworld-sourced-shipment-overlap)
+13
View File
@@ -133,3 +133,16 @@ 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.
## 29 September paired-faction extension
The independent card variant now permits the same bounded Reinforcements
Battle Plan in clean Ecaz/Moritani expansion games with classic opponents,
in Basic and Advanced. It reuses the physical reserve cost and score-only
modifier; the earlier provisional outcome/type/Atreides-loss interpretation
is unchanged and does not become a publisher ruling by applying to another
faction. Co-present Ecaz allied armies, Richese, Ixians/Tleilaxu and other
optional modules remain gated. The [runtime boundary](REINFORCEMENTS_RUNTIME.md)
and [checkpoint](IMPLEMENTATION_STATUS.md#29-september-2026--reinforcements-in-paired-ecazmoritani-battles)
record the exact evidence; the 27 September classic-only statement above is
historical.
+28
View File
@@ -1,5 +1,33 @@
# Dune implementation status
## 29 September 2026 — Reinforcements in paired Ecaz/Moritani battles
The independently selected three-card Ecaz variant now allows its physical
Reinforcements card in clean Basic/Advanced Ecaz/Moritani battles, as well as
the prior classic-only profile. The existing battle quote pays three own
reserve counters into typed Tanks, adds two to normal score without changing
the physical dial, and mandates one discard after reveal. Owner-only card
slots and all four minimal AI policies follow the server offer. Co-present
Ecaz allied armies, Richese, Ixians/Tleilaxu and other optional modules stay
guarded; prior provisional cost rulings are unchanged.
A failing-before/passing-after genuine-setup regression covers each paired
faction as holder in both rules modes, private plans, physical custody and
JSON recovery. A paired Advanced room also survives restart and a competing
final D1 write with one cost and discard. Forty-five focused
Reinforcements/Harass cases pass. A separate engine smoke settled one paired
battle with 15→12 own reserves and one discard, while the co-present-ally
attempt was rejected without mutation. A React-rendered owner fixture in a
mobile Chromium tab showed Reinforcements selectable; it was not a live-room
UI check. Independent static review found no patch-introduced defect and noted
co-present Ecaz armies as a separate boundary, now guarded in the server and
owner offer. No public start or complete module acceptance is claimed.
`npm run check` passes typecheck, lint and 5,761/5,761 offline cases;
`npm run build` passes. No route, database schema or public start gate changed.
The last verified NAS image predates this source; local results are not
deployed acceptance.
## 29 September 2026 — Moritani and Tleilaxu Leader Skills samples
At source revision `29aedf1`, all five Basic Moritani plus Leader Skills
+11 -3
View File
@@ -1,11 +1,19 @@
# 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 separate Ecaz Treachery Cards variant shuffles one physical Reinforcements
card independently of choosing the Ecaz faction. Its bounded handler supports
Basic or Advanced classic-faction tables and clean Ecaz/Moritani expansion
tables without other optional modules or co-present Ecaz allied armies. The
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 physical
slot stays occupied and hidden until reveal. A named-card inspection still
fixes the exact card. Harass & Withdraw and Stone Burner cannot share this
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.
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.
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.
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, now including a paired Ecaz/Moritani saved battle. 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
@@ -73,7 +73,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 | 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) |
| 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 and Ecaz/Moritani 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) |