clay-borg/scenarios/ground/gr-d04-darvo-attack.yaml
tegwick 0e92535f11 T08 iter 5: the DARVO sequence machine
Resolution step 3 (GR-R06), the last unimplemented step:

- GR-D02 binding: one stage per consecutive round, DENY then ATTACK
  then REVERSE, regardless of the player's later Stress.
- GR-D03 DENY: turn one face-up, unsolved, unprotected Problem face
  down and Deny it. Under the U3 default no legal target is a no-op and
  the sequence still advances.
- GR-D04 ATTACK: one extra Attack under the normal relation rules, then
  place the Focus token beside the target even if it was cancelled.
- GR-D05 REVERSE: flip Focus to Blame, +1 Stress to the holder, one
  Protection to the owner, unless the holder's GROUND-ND rejects it.
  Under the U5 default the owner takes -2 either way and the sequence
  ends.
- GR-D06 early end: a Support through a Bond that predates this round's
  Support step cancels the stage and ends the sequence, and the placed
  Focus token is removed. GROUND-GR ends it after the stage resolves.
- GR-D07: the marker returns to OFF, so a later End can re-trigger.

The Attack rules are now one routine shared by the chosen ATTACK Action
and the DARVO extra Attack, so GR-A06..A09 cannot drift between them.

Stage targets are named by their own command during Reveal, validated
against what the stage admits: DENY needs an eligible Problem, ATTACK
another player, and only a player with a live sequence may choose.

18 scenarios pass; AM-1 coverage 47/58 (81%), up from 41/58.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 02:30:58 +02:00

53 lines
1.2 KiB
YAML

scenario: ground/gr-d04-darvo-attack
description: >
The ATTACK stage makes one extra Attack under the normal relation
rules and places the Focus token beside the target (GR-D04), then
advances to REVERSE.
covers: [GR-D04, GR-T03]
provisional: false
seed: 42
setup:
players: 3
preset: standard-3p
patch:
"lead": 0
"players.0.darvo": Attack
commands:
- actor: P1
cmd: select_action
args: { action: INVESTIGATE, problem: 3 }
- actor: P2
cmd: select_action
args: { action: INVESTIGATE, problem: 3 }
- actor: P3
cmd: select_action
args: { action: INVESTIGATE, problem: 3 }
- actor: SYSTEM
cmd: reveal
# GR-D04: the extra Attack targets another player.
- actor: P1
cmd: choose_darvo_target
args: { target: P1 }
- actor: P1
cmd: choose_darvo_target
args: { target: P2 }
- actor: SYSTEM
cmd: resolve
expect:
events:
- kind: StressSet
player: 1
stress: 3
- kind: FocusPlaced
owner: 0
target: 1
- kind: DarvoAdvanced
player: 0
stage: Reverse
state:
"players.1.stress": 3
"focus.0": 1
"players.0.darvo": Reverse
# GR-L03: the extra Attack forms a Rivalry like any other.
"relations.0-1": Rivalry
rejects: [4]