From 235c2eb03f7275b19526faf1bca297b55ff278a0 Mon Sep 17 00:00:00 2001 From: Quintine <15965533+Quintine@users.noreply.github.com> Date: Tue, 27 Oct 2026 23:53:13 +1100 Subject: [PATCH] Support Truthtrance on Atreides spice foresight --- components/mixed-shipment-fields.tsx | 4 +- components/truthtrance-knowledge.tsx | 25 +++++--- docs/CURRENT_STATUS.md | 9 +++ docs/IMPLEMENTATION_STATUS.md | 10 +++ docs/RULE_DECISIONS.md | 9 +++ docs/TRUTHTRANCE_KNOWLEDGE.md | 22 +++++++ game/reference.ts | 11 ++-- game/truthtrance-knowledge.ts | 32 +++++++++- tests/truthtrance-knowledge-controls.test.tsx | 29 ++++++++- .../truthtrance-spice-peek-knowledge.test.ts | 59 ++++++++++++++++++ tests/truthtrance-spice-peek-runtime.test.ts | 61 +++++++++++++++++++ 11 files changed, 255 insertions(+), 16 deletions(-) create mode 100644 tests/truthtrance-spice-peek-knowledge.test.ts create mode 100644 tests/truthtrance-spice-peek-runtime.test.ts diff --git a/components/mixed-shipment-fields.tsx b/components/mixed-shipment-fields.tsx index 07fc6496..b5c755fb 100644 --- a/components/mixed-shipment-fields.tsx +++ b/components/mixed-shipment-fields.tsx @@ -65,6 +65,7 @@ export function TruthFactFields({ value: fact, game, target, onChange }: { predictionTurn: { kind: 'prediction', field: 'turn', compare: 'gte', value: 1 }, stormDial: { kind: 'stormDial', compare: 'gte', value: 0 }, stormForecast: { kind: 'stormForecast', compare: 'gte', value: 1 }, + spicePeek: { kind: 'spicePeek', value: 'worm' }, spice: { kind: 'spice', compare: 'gte', value: 6 }, forceCount: { kind: 'forceCount', zone: { kind: 'reserves' }, counter: 'total', compare: 'gte', value: 6 }, noFieldValue: { kind: 'noFieldValue', value: 3 }, @@ -83,6 +84,7 @@ export function TruthFactFields({ value: fact, game, target, onChange }: { + @@ -98,7 +100,7 @@ export function TruthFactFields({ value: fact, game, target, onChange }: { : fact.kind === 'noFieldValue' ? : fact.kind === 'forceCount' ? player.id === target)!} onChange={onChange} /> : - fact.kind === 'prediction' || fact.kind === 'stormDial' || fact.kind === 'stormForecast' ? + fact.kind === 'prediction' || fact.kind === 'stormDial' || fact.kind === 'stormForecast' || fact.kind === 'spicePeek' ? : fact.kind === 'spice' ? <>