Offer Semuta on printed native battle cancellation costs
This commit is contained in:
1 parent
74768647f4
commit
bab8f3403d
14 files changed
+818
-14
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 / printed native battle-cancellation costs — 11 October.** One
|
||||
`karamaBattleDiscard` receipt now pauses the physical printed Karama before
|
||||
native capture, Auditor, quoted battle-income, Ixian-substitution or Basic
|
||||
Moritani-retention cancellation. Claim/pass restores the original response
|
||||
and cancels once; acquiring its cost cannot restore the canceled effect.
|
||||
Original quotes and signed physical facts remain authoritative. Auditor
|
||||
validation recognizes its saved response; no module, Worthless conversion,
|
||||
source ruling or public gate is opened.
|
||||
Targeted gaps fail before and pass after. Types/lint and 203 affected unit
|
||||
cases across 18 files pass. Forty-eight isolated runtime cases cover all five
|
||||
families, both Ix modes, enemy/ally cancelers, distinct/full-hand holders,
|
||||
claim/pass/four legal AI profiles and native cleanup/markets. Actual styled
|
||||
GameTable at390px completes all five Cancel→Commit paths. CHOAM11/10 wallets,
|
||||
canceled Ix board2Suboids/Tanks1Cyborg and Guild4/4→2/4 with only Worthless and
|
||||
Karama demonstrate original consequences; no inspection or keeper choice
|
||||
reopens. The first temporary harness omitted Tailwind PostCSS; it was corrected
|
||||
from the app config and all five styled paths plus the enlarged inspector
|
||||
were repeated. Earlier unstyled captures do not certify styled presentation.
|
||||
No existing game/store, deployment or mode gate changed. See
|
||||
[cost and ordering contract](SEMUTA_SOURCE_UPDATE_20260907.md#30-september-2026--bounded-clean-discard-runtime).
|
||||
|
||||
**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
|
||||
|
||||
@@ -1,5 +1,52 @@
|
||||
# Dune implementation status
|
||||
|
||||
## 11 October 2026 — printed native battle-cancellation cost reactions
|
||||
|
||||
One shared `karamaBattleDiscard` receipt extends the existing response-discard
|
||||
pipeline to printed Karama canceling capture, Auditor, quoted battle income,
|
||||
Ixian substitution or Basic native Moritani retention. Accepted public cost is
|
||||
singleton; original response/native opportunity remains pending across neutral
|
||||
Semuta. Retirement restores saved controls and cancels once. Taking that cost
|
||||
cannot undo cancellation. Original quotes remain authoritative; the new kind
|
||||
signs battle/retention/Tech and physical force/leader/wallet/hand facts without
|
||||
changing old charity/Inflation JSON shapes. Auditor validation finds its saved
|
||||
response inside the new receipt. No native effect algorithm, ruling, module,
|
||||
Worthless conversion or public gate changed.
|
||||
|
||||
The native Moritani fail-before probe immediately discarded losing cards and
|
||||
cleared retention after the cost, without offering that Karama. Capture/income
|
||||
likewise skipped the cost; corrected Auditor setup reaches the same gap.
|
||||
Twenty meaningful new regressions cover eligible distinct holders, claim/pass,
|
||||
native finality and legal AI. Self-discard claim rows and forwarding/signature-
|
||||
length assertions were removed. Existing income/retention cases now retire the
|
||||
new cost before testing the later canceled-effect/card batch.
|
||||
|
||||
Types/lint and 203 unit cases across 18 files pass; final types pass after the
|
||||
existing income timing migration. Forty-eight runtime cases cover all five
|
||||
families, both Ix modes, enemy/ally cancelers, distinct/full-hand holders and
|
||||
four legal profiles. Original Tooth/Shield/allied batches and markets finish,
|
||||
with physical inventory, casualties and costs once. The initial fixture's
|
||||
inferred ordering was wrong: force income precedes Auditor, so its1 is already
|
||||
paid before audit cancellation. Canceled capture then gets ordinary Arrakeen
|
||||
Collection13→15; comparison uses the native baseline, not a frozen phase6
|
||||
wallet through phase7. Neither correction required a native rule change.
|
||||
|
||||
Styled real GameTable at390px completes all five Cancel with Karama→Commit
|
||||
paths. CHOAM wallets11/10 distinguish pre-Auditor paid from canceled income.
|
||||
Ix inspection shows board2Suboids, Tanks1Cyborg, reserves17 after canceled1/1;
|
||||
Tooth acknowledgements and original Shield choice finish. Guild4/4 claims
|
||||
the foreign cost, both played cards discard, and final hand is Worthless/
|
||||
Karama2/4 without another retention choice. No tested surface overflows;
|
||||
enlarged Semuta guidance is readable. The first temporary Vite harness omitted
|
||||
the app's Tailwind PostCSS plugin; it was corrected and all five styled paths
|
||||
repeated, without production dialog changes. Earlier unstyled captures are not
|
||||
styled-presentation certification.
|
||||
|
||||
Two disjoint fixture/test slices were integrated by one owner. Temporary
|
||||
probes/services/tabs removed; existing games, storage, user PDF and deployment
|
||||
untouched. Reference/tooltips and Semuta/retention contracts updated. Complete
|
||||
Semuta/mode and deployed acceptance remain unfinished.
|
||||
|
||||
## 11 October 2026 — native casualty and allied-retention Semuta continuations
|
||||
|
||||
Two disjoint native slices supply genuine setup fixtures and consumer-visible
|
||||
|
||||
@@ -121,6 +121,15 @@ 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.
|
||||
|
||||
An enemy or the defeated ally spending a printed Karama to cancel the proposed
|
||||
keep now produces an earlier singleton cost offer through `karamaBattleDiscard`.
|
||||
The original response/keep proposal remains pending across that reaction.
|
||||
Claim/pass then completes cancellation once and discards all original played
|
||||
IDs in the later allied batch. A distinct holder may acquire the activating
|
||||
cost, including the approved full-hand exchange, but it never joins that
|
||||
played pool or restores retention. Own discarded costs are not eligible.
|
||||
The original Moritani power owner still cannot cancel its own power.
|
||||
|
||||
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,
|
||||
|
||||
@@ -269,6 +269,14 @@ For each batch retain actual former owner per entry, exact physical ID, a face s
|
||||
| Generic Hajr/Ghola/Harvester/Weather/Atomics (~13103) | One public played card from actor, one batch each. | Effects have already happened before the shared discard. `afterOrdinaryCard {owner,cardId,cardName,effect}` → log and normal finalization; do not reapply movement allowance, Ghola revival/tech/income, spice multiplier, weather setting or Wall casualties. A Ghola-created revival-income response must survive the pause. |
|
||||
| `resolveTruthAction` callback in `game/truthtrance.ts` (~460) | One public Truthtrance belonging to queued asker, **not the answering actor**. Multiple queued questions are successive events, not one batch. Unknown/save does not discard. | Definite answer, promise binding, public history and answer log already committed. `afterTruthtranceDiscard {queueHeadPlayer,queueHeadCard,questionBinding,remainingWindow}` activates the next queued question exactly once; do not answer/bind/history again. Detach the consumed head into this frame before exposing the pause: the saved-shipment-question validator requires a live queued Truthtrance still be held. Preserve the remaining queue privately in the continuation until Semuta ends. A generic top-level `truthtrance` early return must not prevent this nested claim. |
|
||||
|
||||
Printed Karama cancellation of native capture, Auditor, quoted battle income,
|
||||
Ixian substitution or Basic Moritani retention now uses `karamaBattleDiscard`.
|
||||
The original accepted response is detached, not canceled early. Only the
|
||||
public activating cost is fresh; claim/pass restores that response and calls
|
||||
the original cancellation once before its later native cleanup. A claimed
|
||||
cost cannot undo cancellation or enter the original losing-ally played pool.
|
||||
Worthless conversion and other cancellation families retain their boundaries.
|
||||
|
||||
## Special Karama stage inventory
|
||||
|
||||
`executeSpecialKaramaIntent` (~9579) already has a typed, validated declaration for each power. It is useful input to an **after-activation** executor, but cannot simply be called again after discarding: preparation assumes the activating physical card is still held. Every activating Karama face is public and belongs to its player. These are separate from any later discard caused by the power.
|
||||
|
||||
@@ -665,3 +665,41 @@ 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.
|
||||
|
||||
**11 October 2026 — printed native battle-cancellation costs.** The shared
|
||||
response-discard pipeline now admits one `karamaBattleDiscard` receipt for
|
||||
printed Karama canceling native Harkonnen capture, CHOAM Auditor or quoted
|
||||
battle income, Ixian casualty substitution, or Basic native Moritani retention.
|
||||
Only the activating physical Karama is fresh. Its accepted cancellation,
|
||||
original response and pending native facts remain suspended until claim/pass;
|
||||
retirement restores the saved controls and calls the original cancellation
|
||||
once. Acquiring that cost cannot restore capture, inspection/payment, income,
|
||||
the declared exchange or the proposed kept card.
|
||||
|
||||
The original native quotes still validate the pending opportunity. Signature
|
||||
binding preserves its response, battle facts, physical counters, leaders,
|
||||
wallets and hand custody; old charity/Inflation signature shapes are unchanged.
|
||||
Auditor validation now recognizes the saved response inside this receipt,
|
||||
rather than requiring the detached live window. No Skills, Nexus, Homeworld,
|
||||
Worthless conversion, optional-module composition or public start is opened.
|
||||
|
||||
Forty-eight isolated runtime cases cover all five native families, both Ix
|
||||
modes, enemy/ally retention cancelers, distinct and full-hand defeated holders,
|
||||
claim/pass and four legal AI profiles. The cost is spent once, later native
|
||||
Tooth/Shield or allied-card batches finish, inventories remain physical and
|
||||
original costs/casualties stay committed. Canceled income remains unpaid;
|
||||
Auditor cancellation samples nothing. Its original income precedes the audit
|
||||
and already paid1 remains. Native capture cancellation reaches ordinary
|
||||
Arrakeen Collection13→15, not a second capture/bounty.
|
||||
|
||||
Actual styled GameTable at390px completes all five Cancel with Karama →
|
||||
Commit paths and original markets/cleanup. CHOAM wallets11/10 distinguish
|
||||
already allowed pre-Auditor income from canceled income. Actual Ix inspection
|
||||
shows board2Suboids, Tanks1Cyborg, reserves17 after the canceled exchange.
|
||||
A Guild4/4 holder claims the cost and ends with only its original Worthless
|
||||
and Karama2/4 after both played cards discard; retention is not re-offered.
|
||||
The updated Semuta inspector is readable. The first isolated harness lacked
|
||||
the app's Tailwind PostCSS plugin; that was corrected from `vite.config.ts`,
|
||||
and all five styled paths were repeated. Earlier unstyled screenshots do not
|
||||
certify styled presentation. No production dialog patch was needed.
|
||||
These are local changed-path proofs, not complete mode or deployed acceptance.
|
||||
Reference in new issue
Block a user