Correct stale Richese runtime and Semuta guidance

This commit is contained in:
Quintine committed 2026-10-11 21:33:14 +11:00
1 parent a985937b19
commit a487f3e1b3
5 files changed
+12 -17

No files matched your search

+8
View File
@@ -29,6 +29,14 @@ optional skill bands, combinations and public expansion starts remain open.
Rules implementation continues; comprehensive assurance and administration
remain deferred until all rules are implemented.
**Guidance accuracy — 11 October.** Three stale player/developer records were
corrected: the card-inspector Semuta availability text now lists every connected
producer and the approved full-hand exchange; `verification.runtime` marks all ten
Richese effects as bounded `partial` (Juice of Sapho, Mirror Weapon and Semuta Drug
were wrongly `not-implemented`); and `RICHESE_COMPONENTS.md` no longer says Juice of
Sapho play is inert. A tautological test that mirrored the old runtime list was
deleted. Types/lint pass and 41 cases pass.
**Queued Truthtrance answer — 11 October.** An ordinary definite Truthtrance
answer now offers its consumed card even when another question remains reserved.
Only the `remaining === null` software restriction changed: claim or all-seat
+1 -1
View File
@@ -83,7 +83,7 @@ Current focused evidence: `tests/richese-engine.test.ts` (10), `tests/richese-au
### Runtime inheritance and reservation clarification
The physical Richese Karama has `effect: 'karama'` and inherits the existing generic handler if acquired in a development fixture. Earlier statements that all ten effects were wholly disabled should be read as the original inventory checkpoint, not the current runtime state. Remaining card-effect integration and full interaction verification are incomplete; actual Juice of Sapho card play remains inert and live expansion starts stay gated.
The physical Richese Karama has `effect: 'karama'` and inherits the existing generic handler if acquired in a development fixture. Earlier statements that all ten effects were wholly disabled should be read as the original inventory checkpoint, not the current runtime state. Remaining card-effect integration and full interaction verification are incomplete; live expansion starts stay gated. All ten effects now have at least a bounded development handler, including Juice of Sapho (first/last Once Around, bounded movement and battle-choice ordering, and aggressor during the shared pre-plan opportunity) and Semuta Drug; see the Semuta and Juice contracts for their current limits.
The engine now rejects playing a Black Market card reserved for sale and prevents a donor reducing pledged funding during unfinished Silent bidding. The latter avoids probing private sealed commitments through success/error limits. Independent review, recovery and browser verification remain pending until their checks finish. Internal rule navigation now tracks query changes and controlled topic-open state, preserving the destination after filter resets; browser confirmation of that fix is pending.
+1 -1
View File
@@ -92,7 +92,7 @@ export function cardPresentation(card: VisibleCard): CardPresentation {
richese.card.effect === 'juiceOfSapho'
? 'Richese effect integration and verification are incomplete. Supported controls cover Once Around first or last while your bid remains open, bounded movement and battle-choice ordering, and aggressor during the shared pre-plan opportunity. Earlier bids stay committed. Later aggressor intervention and other phase or auction modes remain unfinished; expansion starts remain disabled.'
: richese.card.effect === 'semutaDrug'
? 'The explicit Semuta development preview offers neutral responses after clean public ordinary-card discards and completed paid Box disposal, with owner-only commitment and a conservative free-slot requirement. Other discard producers, full-hand sequencing and normal expansion starts remain unfinished.'
? 'The explicit Semuta development preview offers neutral responses after clean public ordinary-card discards, paid Box disposal, retired Ornithopter movement (including a following Bene Gesserit Intrusion), Distrans, ordinary and queued definite Truthtrance answers, four Sapho scopes, unready pre-leader Residual Poison, printed Karama cancelling CHOAM Charity/Inflation/Bene Gesserit Charity or settling a normal-auction purchase or winning bid, a completed CHOAM sale, clean Kulon and proactive La La La/Baliset/ordinary Trip to Gamont Worthless use, accepted Jubba Cloak before storm protection, Ix-deck Thumper/Amal, three battle discard stages and private normal-auction or Black Market Ixian ally replacements. Commitment is owner-only; the approved full-hand exchange spends Semuta without increasing your completed hand. Other producers, nested responses and normal expansion starts remain unfinished.'
: richese.card.effect === 'mirrorWeapon'
? 'Mirror Weapon works in bounded CHOAM/Richese-deck classic-faction battles; copied Tooth and Stone choices resolve separately, and a winning physical Mirror may be kept even after copying Tooth or Artillery. This winner-retention treatment is a user-selected interpretation, not an official clarification. Combined modes and full Richese starts remain gated.'
: richese.card.effect === 'stoneBurner'
+2 -1
View File
@@ -91,7 +91,8 @@ function define(
verification: Object.freeze({
inventory: 'physical-faces-verified' as const,
gameplay: 'original-paraphrase-of-physical-faces' as const,
runtime: effect === 'karama' || effect === 'distrans' || effect === 'nullentropyBox' || effect === 'ornithopter' || effect === 'residualPoison' || effect === 'portableSnooper' || effect === 'stoneBurner' ? ('partial' as const) : ('not-implemented' as const),
// Every Richese effect now has at least a bounded development handler.
runtime: 'partial' as const,
combinedInteractions: 'incomplete' as const,
unresolved: Object.freeze(unresolved),
}),
-14
View File
@@ -140,20 +140,6 @@ void test('original guides preserve critical face restrictions and separate veri
assert.match(guide('residualPoison'), /No player collects spice/);
for (const definition of RICHESE_CARD_DEFINITIONS) {
assert.equal(definition.verification.inventory, 'physical-faces-verified');
assert.equal(
definition.verification.runtime,
[
'karama',
'distrans',
'nullentropyBox',
'ornithopter',
'residualPoison',
'portableSnooper',
'stoneBurner',
].includes(definition.card.effect)
? 'partial'
: 'not-implemented',
);
assert.equal(definition.verification.combinedInteractions, 'incomplete');
assert.ok(definition.verification.unresolved.length > 0);
assert.ok(definition.gameplay.length >= 2);