From ee3e1a0ab25b4028421c792d42cdb80c8e238d11 Mon Sep 17 00:00:00 2001 From: Quintine <15965533+Quintine@users.noreply.github.com> Date: Wed, 28 Oct 2026 18:34:11 +1100 Subject: [PATCH] Support Truthtrance questions about battle prescience --- components/mixed-shipment-fields.tsx | 4 +- components/truthtrance-knowledge.tsx | 42 ++++++++- docs/CURRENT_STATUS.md | 11 +++ docs/RULE_DECISIONS.md | 9 ++ docs/TRUTHTRANCE_KNOWLEDGE.md | 24 ++++++ game/reference.ts | 7 +- game/truthtrance-knowledge.ts | 62 ++++++++++++- .../truthtrance-prescience-controls.test.tsx | 84 ++++++++++++++++++ .../truthtrance-prescience-knowledge.test.ts | 86 +++++++++++++++++++ tests/truthtrance-prescience-runtime.test.ts | 77 +++++++++++++++++ 10 files changed, 395 insertions(+), 11 deletions(-) create mode 100644 tests/truthtrance-prescience-controls.test.tsx create mode 100644 tests/truthtrance-prescience-knowledge.test.ts create mode 100644 tests/truthtrance-prescience-runtime.test.ts diff --git a/components/mixed-shipment-fields.tsx b/components/mixed-shipment-fields.tsx index b8e1b4b6..61748aef 100644 --- a/components/mixed-shipment-fields.tsx +++ b/components/mixed-shipment-fields.tsx @@ -68,6 +68,7 @@ export function TruthFactFields({ value: fact, game, target, onChange }: { spicePeek: { kind: 'spicePeek', value: 'worm' }, auctionPeek: { kind: 'auctionPeek', name: 'Shield' }, ixPoolPeek: { kind: 'ixPoolPeek', name: 'Shield' }, + presciencePeek: { kind: 'presciencePeek', field: 'leader', name: 'None' }, spice: { kind: 'spice', compare: 'gte', value: 6 }, forceCount: { kind: 'forceCount', zone: { kind: 'reserves' }, counter: 'total', compare: 'gte', value: 6 }, noFieldValue: { kind: 'noFieldValue', value: 3 }, @@ -89,6 +90,7 @@ export function TruthFactFields({ value: fact, game, target, onChange }: { + @@ -104,7 +106,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 === 'spicePeek' || fact.kind === 'auctionPeek' || fact.kind === 'ixPoolPeek' ? + fact.kind === 'prediction' || fact.kind === 'stormDial' || fact.kind === 'stormForecast' || fact.kind === 'spicePeek' || fact.kind === 'auctionPeek' || fact.kind === 'ixPoolPeek' || fact.kind === 'presciencePeek' ? : fact.kind === 'spice' ? <>