Preserve native Ixian casualties and Moritani retention across Semuta
This commit is contained in:
1 parent
a6869b0166
commit
74768647f4
14 files changed
+879
-9
No files matched your search
@@ -29,6 +29,27 @@ optional skill bands, combinations and public expansion starts remain open.
|
||||
Rules implementation continues; comprehensive assurance and administration
|
||||
remain deferred until all rules are implemented.
|
||||
|
||||
**Semuta / native casualty and retention continuations — 11 October.**
|
||||
Mandatory loser discards now react while the original compulsory winner card
|
||||
remains reserved. Native Ixian casualties/substitution still finish before
|
||||
the used winning Tooth becomes its own fresh target. Basic native Moritani
|
||||
additionally admits preceding compulsory/optional winner batches and completed
|
||||
unkept allied-card disposal, preserving its original choice, Karama response,
|
||||
kept card and played-card pool. Existing canonical aftermath validation and
|
||||
reciprocal alliance checks bind the pending native opportunity; pending Ixian
|
||||
substitution, `battleResolved` with retention, Advanced Moritani and Nexus
|
||||
retention remain guarded. No module/profile or mode gate changed.
|
||||
Targeted cases fail before and pass after; 162 affected unit cases across
|
||||
thirteen files pass. Eighty-six isolated runtime cases prove both native modes,
|
||||
actual ordering, claim/pass/four legal profiles, typed substitution/decline and
|
||||
original cancellation. Real390px tables claim Snooper, confirm1/1 and inspect
|
||||
the final Ixian counters; native Basic retention declines, commits and selects
|
||||
Maula Pistol from two fresh cards. Both reach original phase7 with no overflow
|
||||
or repeated effect. Types/lint passed; one fixture narrowing and the obsolete
|
||||
Hero timing assumption were repaired rather than changing native behavior.
|
||||
See [native retention contract](MORITANI_ALLY_RETENTION_RULES.md#semuta-composition--11-october-2026)
|
||||
and [Semuta ordering evidence](SEMUTA_SOURCE_UPDATE_20260907.md#30-september-2026--bounded-clean-discard-runtime).
|
||||
|
||||
**Semuta / original native Tech — 11 October.** Fresh three-through-six-seat
|
||||
Basic/Advanced Richese games with CHOAM and optional Ix now retain original
|
||||
unused Tech under existing native roster prerequisites. Printed and first-Storm
|
||||
|
||||
@@ -1,5 +1,54 @@
|
||||
# Dune implementation status
|
||||
|
||||
## 11 October 2026 — native casualty and allied-retention Semuta continuations
|
||||
|
||||
Two disjoint native slices supply genuine setup fixtures and consumer-visible
|
||||
regressions; one owner integrates shared engine, table and guidance changes.
|
||||
The actual Ixian blocker was the original compulsory-winner queue, not a
|
||||
discard inside active substitution: loser disposal precedes winner casualties,
|
||||
then native substitution/decline precedes winning used Tooth disposal. Allowing
|
||||
that initial resolved-battle batch preserves the reserved Tooth and optional
|
||||
Shield. The pending Ixian-substitution exclusion stays intact.
|
||||
|
||||
Basic native Moritani now admits winner compulsory/optional batches before the
|
||||
original choose-stage retention and its completed unkept-card batch afterward.
|
||||
Existing canonical aftermath validation plus reciprocal alliance binds the
|
||||
preceding native opportunity. The original selected kept card, unrelated hand
|
||||
card and a newly acquired winner card never enter another claim/retention pool.
|
||||
Native Karama finishes before final disposal. All losing played cards are
|
||||
reserved here, so `battleResolved` with retention remains gated, as do Advanced
|
||||
native Moritani and Nexus retention. No original handler, source ruling,
|
||||
module/profile composition or public mode gate is changed.
|
||||
|
||||
Types/lint pass; 162 unit cases across thirteen affected files pass. The initial
|
||||
native cases reproduce missing offers. A test fixture lacked a physical rival
|
||||
Karama but expected its response; conserving one original Karama repairs that
|
||||
fixture. A nullable-shape assertion became a public no-reaction assertion and
|
||||
one captured union narrowing was repaired. The original Hero consumer test now
|
||||
passes the preceding loser offer before claiming the later reserved Hero;
|
||||
the former immediate-Hero assumption was obsolete, not an engine regression.
|
||||
Setup/default-copy tests and the proposed malformed-save campaign were removed.
|
||||
|
||||
Forty-eight Ix runtime cases cover both modes, both fresh boundaries,
|
||||
claim/pass/four legal profiles and substitution/decline; four more cancel
|
||||
the original exchange with a real rival Karama. Typed counters, payment,
|
||||
casualties, winner and physical Treachery inventory remain intact once.
|
||||
Thirty-four Moritani cases cover keep either/none, both preceding winner
|
||||
frames, claim/pass/four legal profiles and native enemy/ally allowance/cancel.
|
||||
The first throwaway probe mixed IDs from independently shuffled fixtures;
|
||||
binding each action to its actual fixture corrected that probe only.
|
||||
|
||||
Real GameTable at390px claims Snooper, confirms1Suboid/1Cyborg, allows native
|
||||
Karama, completes later Tooth acknowledgements and keeps Shield. Actual force
|
||||
inspection shows board1Suboid+1Cyborg, Tanks1Suboid and reserves17 at the original
|
||||
phase7 Ix opening, with Snooper still Richese-owned. Basic native retention
|
||||
declines, commits and privately selects Maula Pistol from two fresh cards, then
|
||||
reaches phase7 without another retention choice. Both surfaces have no
|
||||
horizontal overflow. Warning, card tooltips, internal reference and contracts
|
||||
match these boundaries. Temporary probes/services/tabs removed; existing games,
|
||||
storage, user PDF and deployment untouched. Complete Semuta/mode acceptance
|
||||
remains unfinished.
|
||||
|
||||
## 11 October 2026 — original native Tech after Semuta battle discards
|
||||
|
||||
The fresh CHOAM/optional-Ix Semuta entry now retains original unused Tech at
|
||||
|
||||
@@ -104,3 +104,26 @@ The engine now implements this flow with `moritaniRetention` and the shared `can
|
||||
`spendKarama` and `cashInCards` reject reserved cards, including during winner cleanup and nested Worthless conversion. The interface and bot response choices also honor the reservation. A public declared-card projection enables response-stage inspection without exposing unrelated hand contents. The linked internal reference and general battle-card guide now explain the exception.
|
||||
|
||||
Eighteen focused real-battle/server tests and five AI tests cover the integrated ability. The full suite reached935 passes;45 persisted multiplayer checks, TypeScript, lint and build passed. Independent review additionally exercised both nested Worthless cancellation and counter-cancellation through JSON reloads. Desktop browser QA completed declaration, response refresh and final exact-card settlement in S85SLVRR. Complete Moritani/expansion acceptance remains unfinished and faction starts remain gated.
|
||||
|
||||
## Semuta composition — 11 October 2026
|
||||
|
||||
The existing Basic Richese/Moritani CHOAM/Ecaz entry now offers Semuta after
|
||||
completed native allied-card disposal. The losing ally's original choice and
|
||||
native Karama response finish first; only unkept played cards form the fresh
|
||||
batch. A sole card completes automatically after commitment; multiple cards
|
||||
require one private selection. Kept and unrelated hand cards remain unavailable.
|
||||
|
||||
Compulsory/optional winner-card batches may also pause before the original
|
||||
choose-stage retention. Existing aftermath validation and reciprocal alliance
|
||||
checks preserve that native opportunity. A loser acquiring the winner's card
|
||||
through Semuta cannot add it to the original played/eligible pool. All losing
|
||||
played cards are reserved in this envelope, so no losing `battleResolved`
|
||||
batch precedes retention; that distinct pending-retention path stays gated.
|
||||
Advanced native Moritani and Nexus/Skills compositions are not opened.
|
||||
|
||||
Thirty-four isolated runtime cases cover keep either/none, claim/pass/four legal
|
||||
AI profiles, both preceding winner batches and original enemy/ally Karama
|
||||
allowance or cancellation. Actual GameTable at390px declines native retention,
|
||||
commits Semuta, privately selects Maula Pistol from two fresh cards and reaches
|
||||
phase7 without another retention choice or horizontal overflow. No source
|
||||
ruling, original native behavior outside the Semuta entry or public gate changed.
|
||||
@@ -202,7 +202,19 @@ once. Native capture, Face Dance, quoted CHOAM force income and Auditor remain
|
||||
pending across the offer; original native Tech is also supported in the fresh
|
||||
three-to-six-seat CHOAM/optional-Ix entry. Token custody stays unchanged until
|
||||
card cleanup completes and the original winner takes one loser-owned token,
|
||||
still before Face Dance. Other rewards remain automatic without Semuta.
|
||||
still before Face Dance. The original compulsory winner-card queue may remain
|
||||
reserved during the earlier loser batch. Native Ixian casualties/substitution
|
||||
finish before the used winning Tooth becomes its own later fresh discard.
|
||||
|
||||
Basic native Moritani additionally admits preceding compulsory/optional winner
|
||||
batches with the original choose-stage allied retention still pending, then
|
||||
the completed `battleCleanup` with `source: 'moritani'`. The chosen kept card
|
||||
never enters that batch. Native Karama finishes first; claim/pass neither
|
||||
re-offers retention nor expands its original played-card pool. Canonical
|
||||
aftermath validation and reciprocal alliance bind the preceding native choice.
|
||||
`battleResolved` with pending retention, Nexus retention, Advanced native
|
||||
Moritani and a pending Ixian substitution remain outside this bounded offer.
|
||||
Other rewards remain automatic without Semuta.
|
||||
|
||||
The explicit Richese preview also accepts a fresh physical Ix deck.
|
||||
Clean Thumper disposal stages `thumperDiscard` before `blowSpice`
|
||||
|
||||
@@ -636,3 +636,32 @@ claims Hunter Seeker, offers Axlotl Tanks/Heighliners to Atreides, takes only
|
||||
Heighliners, then restores Tleilaxu's Decline Face Dancer control. Phase7 original
|
||||
Ix opening retains the card and all three owners with no horizontal overflow.
|
||||
This is local changed-path evidence, not complete Semuta or deployed acceptance.
|
||||
|
||||
**11 October 2026 — native casualties and allied retention.** A completed
|
||||
mandatory loser-card batch may now offer Semuta with the original compulsory
|
||||
winning-card queue still reserved. Native Ixian casualty settlement and
|
||||
one-for-one substitution keep their original position before the winning used
|
||||
Tooth is physically discarded. That later Tooth is a separate fresh opportunity
|
||||
before optional Shield cleanup, not an early target at the first reaction.
|
||||
The pending Ixian-substitution guard remains: no actual discard was moved into
|
||||
that active decision. Forty-eight runtime scenarios cover both modes, both
|
||||
discard boundaries, claim/pass/four legal profiles and substitution/decline;
|
||||
four more preserve the native rival Karama cancellation instead of substituting.
|
||||
Actual 390px GameTable claims Snooper, confirms1/1, allows the original power,
|
||||
retires the later Tooth offer and keeps Shield. The force inspector proves
|
||||
Arrakeen1Suboid+1Cyborg, Tanks1Suboid, reserves17, with the claimed Snooper still
|
||||
held at phase7 original Ix opening and no horizontal overflow.
|
||||
|
||||
The Basic native Moritani entry now offers its completed unkept-card batch,
|
||||
plus preceding compulsory/optional winner batches while the original native
|
||||
choose-stage retention remains pending. Existing canonical aftermath validation
|
||||
and reciprocal alliance checks preserve the original choice. Kept/unrelated
|
||||
cards and a newly Semuta-acquired winner card cannot enter its original pool.
|
||||
Native Karama still finishes first; taking one fresh card cannot repeat the
|
||||
choice, combat or bounty. `battleResolved` with pending retention, Advanced
|
||||
native Moritani and Nexus retention remain separate. Thirty-four runtime cases
|
||||
cover keep either/none, claim/pass/four legal profiles, both preceding winner
|
||||
frames and original enemy/ally Karama allowance/cancellation. Real390px table
|
||||
declines native retention, commits and privately selects Maula Pistol from the
|
||||
two fresh cards, then reaches phase7 without re-offering retention or overflow.
|
||||
These are local bounded continuation proofs, not complete Semuta/mode acceptance.
|
||||
Reference in new issue
Block a user