yxc20098 commited on
Commit
01806f8
ยท
1 Parent(s): 2dc6306

Rewrite scenario descriptions in natural mission-brief prose

Browse files

179 packs (612 level descriptions) handcrafted from robotic
predicate-dump style into natural mission-brief prose. Each
level's description preserves win/fail predicates, actor
composition, and the preserved comment block โ€” only the
top-level 'description:' string changes.

Style shift:

BEFORE: 'Enemy includes 3 rocket soldiers. Destroy the enemy
construction yard in the target zone. Keep at least 2 unit
alive. Within about 60 turns.'

AFTER: 'Three rocket soldiers patrol the front. Their
construction yard sits undefended behind them โ€” flank through
the fog and demolish it without losing more than two units.
About 60 turns.'

Stats across 612 rewritten levels: mean=48.4 words, median=50,
p10/p90=33/62, min/max=5/80.

Also fixes 58 unintentional YAML folded-scalar artefacts where
a line break inside 'description: >' split a hyphenated word
(e.g. 'anti-\n tank' โ†’ 'anti- tank' on parse). Closed up via
'(\\w)-\\n(\\s+)(\\w)' โ†’ '\\1-\\3' replacement across 47
files. Two intentional uses ('A one- or two-turn delay',
'Over- or under-producing') preserved.

All 210 pack files re-validate clean via
openra_bench.scenarios.validate.

This view is limited to 50 files because it contains too many changes. ย  See raw diff
Files changed (50) hide show
  1. openra_bench/scenarios/packs/action-multiunit-coordination.yaml +5 -3
  2. openra_bench/scenarios/packs/adv-asymmetric-weaker-must-win.yaml +1 -2
  3. openra_bench/scenarios/packs/build-defensive-skirt-corners.yaml +10 -9
  4. openra_bench/scenarios/packs/build-defensive-tower-cluster.yaml +1 -2
  5. openra_bench/scenarios/packs/build-defensive-tower-line.yaml +10 -7
  6. openra_bench/scenarios/packs/build-power-online-first.yaml +1 -2
  7. openra_bench/scenarios/packs/build-rally-point-management.yaml +5 -2
  8. openra_bench/scenarios/packs/build-repair-priority-under-fire.yaml +1 -2
  9. openra_bench/scenarios/packs/build-sell-and-rebuild-elsewhere.yaml +6 -5
  10. openra_bench/scenarios/packs/build-sequence-tech-cheapest.yaml +13 -5
  11. openra_bench/scenarios/packs/build-sequence-tech-most-resilient.yaml +15 -10
  12. openra_bench/scenarios/packs/combat-attack-from-behind-fog.yaml +16 -7
  13. openra_bench/scenarios/packs/combat-formation-tank-wedge.yaml +18 -8
  14. openra_bench/scenarios/packs/combat-harass-aggro-commit.yaml +18 -8
  15. openra_bench/scenarios/packs/combat-harass-balanced-hit-and-run.yaml +16 -6
  16. openra_bench/scenarios/packs/combat-heli-flank.yaml +14 -6
  17. openra_bench/scenarios/packs/combat-hold-chokepoint.yaml +17 -9
  18. openra_bench/scenarios/packs/combat-kite-and-pull.yaml +15 -6
  19. openra_bench/scenarios/packs/combat-kite-jeep-vs-tank.yaml +14 -6
  20. openra_bench/scenarios/packs/combat-naval-shore-strike.yaml +9 -4
  21. openra_bench/scenarios/packs/combat-pincer-coordination.yaml +18 -9
  22. openra_bench/scenarios/packs/combat-prevent-retreat.yaml +17 -11
  23. openra_bench/scenarios/packs/combat-protect-vip-escort.yaml +16 -6
  24. openra_bench/scenarios/packs/combat-retreat-after-engagement.yaml +15 -9
  25. openra_bench/scenarios/packs/combat-rocket-soldier-anti-vehicle.yaml +18 -11
  26. openra_bench/scenarios/packs/combat-skirmish-then-disengage.yaml +15 -9
  27. openra_bench/scenarios/packs/combat-stance-mgmt-attack.yaml +16 -8
  28. openra_bench/scenarios/packs/combat-suicide-charge-mission.yaml +15 -6
  29. openra_bench/scenarios/packs/combat-tank-vs-tank-engagement.yaml +14 -6
  30. openra_bench/scenarios/packs/combat-tanya-vs-rush.yaml +16 -8
  31. openra_bench/scenarios/packs/combat-target-priority-highvalue.yaml +16 -9
  32. openra_bench/scenarios/packs/combat-vehicle-vs-infantry-counter.yaml +15 -8
  33. openra_bench/scenarios/packs/coord-converge-on-target.yaml +14 -6
  34. openra_bench/scenarios/packs/coord-cover-and-move.yaml +16 -6
  35. openra_bench/scenarios/packs/coord-diversionary-attack.yaml +16 -9
  36. openra_bench/scenarios/packs/coord-mutual-support.yaml +18 -9
  37. openra_bench/scenarios/packs/coord-relay-attack.yaml +14 -9
  38. openra_bench/scenarios/packs/coord-relay-vision-chain.yaml +16 -9
  39. openra_bench/scenarios/packs/coord-squad-handoff.yaml +14 -7
  40. openra_bench/scenarios/packs/coordination-ordered-rendezvous.yaml +13 -5
  41. openra_bench/scenarios/packs/coordination-staggered-window.yaml +15 -7
  42. openra_bench/scenarios/packs/custom-map-no-enemy.yaml +11 -3
  43. openra_bench/scenarios/packs/def-counter-battery.yaml +16 -8
  44. openra_bench/scenarios/packs/def-engineer-repair-under-fire.yaml +16 -13
  45. openra_bench/scenarios/packs/def-evacuation.yaml +14 -7
  46. openra_bench/scenarios/packs/def-in-depth-vs-single.yaml +10 -7
  47. openra_bench/scenarios/packs/def-in-depth.yaml +16 -12
  48. openra_bench/scenarios/packs/def-multi-direction.yaml +16 -9
  49. openra_bench/scenarios/packs/def-position-expected-direction.yaml +17 -10
  50. openra_bench/scenarios/packs/def-position-revealed-direction.yaml +15 -12
openra_bench/scenarios/packs/action-multiunit-coordination.yaml CHANGED
@@ -98,9 +98,11 @@ levels:
98
  # not one fanned-out march. Enemy infantry contest the two eastern
99
  # lanes; the bottom-left route is clear.
100
  description: >
101
- Enemy includes refinery, power plant, 4 rifle infantry. Get 2 units into
102
- the target zone. Get 2 units into the target zone. Get 2 units into the
103
- target zone. Lose at most 2. Within about 32 turns.
 
 
104
  overrides:
105
  actors:
106
  # `stance: 0` (HoldFire) on every agent unit โ€” see the base
 
98
  # not one fanned-out march. Enemy infantry contest the two eastern
99
  # lanes; the bottom-left route is clear.
100
  description: >
101
+ Eight units in your spawn corner, three drop zones in three different
102
+ directions: NE (115,6), SE (115,34), and SW (20,36). Park at least two
103
+ units in each disc within about 32 turns, losing no more than two on
104
+ the way. Enemy rifles contest the eastern lanes; only true parallel
105
+ dispatch beats the clock.
106
  overrides:
107
  actors:
108
  # `stance: 0` (HoldFire) on every agent unit โ€” see the base
openra_bench/scenarios/packs/adv-asymmetric-weaker-must-win.yaml CHANGED
@@ -90,8 +90,7 @@ meta:
90
  real_world_meaning: >
91
  Two medium tanks must inflict enough kills on a stronger enemy
92
  garrison (a wall of rifle infantry plus a heavy tank on medium
93
- and hard) to satisfy a kill bar โ€” without losing the pair. Head-
94
- on combat is a decisive LOSS: the heavy out-trades the medium
95
  column at close range and the infantry wall holds the pair in
96
  place long enough for the heavy to close. The only winning play
97
  is asymmetric: stage off-axis, approach the infantry on a flank
 
90
  real_world_meaning: >
91
  Two medium tanks must inflict enough kills on a stronger enemy
92
  garrison (a wall of rifle infantry plus a heavy tank on medium
93
+ and hard) to satisfy a kill bar โ€” without losing the pair. Head-on combat is a decisive LOSS: the heavy out-trades the medium
 
94
  column at close range and the infantry wall holds the pair in
95
  place long enough for the heavy to close. The only winning play
96
  is asymmetric: stage off-axis, approach the infantry on a flank
openra_bench/scenarios/packs/build-defensive-skirt-corners.yaml CHANGED
@@ -176,10 +176,11 @@ levels:
176
  # and concentrate all LOSE. The fact must survive; โ‰ฅ9 enemy units
177
  # must die before tick 5400.
178
  description: >
179
- Have at least 4 pillboxes. Place 1 pillboxes in the target zone. Place 1
180
- pillboxes in the target zone. Place 1 pillboxes in the target zone.
181
- Place 1 pillboxes in the target zone. Have at least 1 construction yard.
182
- Kill.
 
183
  starting_cash: 2400
184
  overrides:
185
  actors:
@@ -248,11 +249,11 @@ levels:
248
  # concentrate all LOSE. The fact must survive; โ‰ฅ13 enemy units
249
  # must die before tick 5400.
250
  description: >
251
- Have at least 4 pillboxes. Place 1 pillboxes in the target zone. Place 1
252
- pillboxes in the target zone. Place 1 pillboxes in the target zone.
253
- Place 1 pillboxes in the target zone. Have at least 1 construction yard.
254
- Kill.
255
- starting_cash: 2400
256
  overrides:
257
  actors:
258
  - {type: fact, owner: agent, position: [64, 20]}
 
176
  # and concentrate all LOSE. The fact must survive; โ‰ฅ9 enemy units
177
  # must die before tick 5400.
178
  description: >
179
+ Four rifle bands will rush your central construction yard from all
180
+ four diagonal corners at once. With exactly $2400 you can afford
181
+ four pillboxes โ€” drop one inside each corner disc (NE, NW, SE, SW)
182
+ to shred its incoming wave. Keep the yard standing and put down at
183
+ least nine attackers within about 60 turns.
184
  starting_cash: 2400
185
  overrides:
186
  actors:
 
249
  # concentrate all LOSE. The fact must survive; โ‰ฅ13 enemy units
250
  # must die before tick 5400.
251
  description: >
252
+ Same four-corner rush, but now each band fields four riflemen โ€” sixteen
253
+ attackers in total. Your $2400 still funds exactly four pillboxes; one
254
+ in each corner disc (NE, NW, SE, SW) is the only layout that holds.
255
+ Massing them on one corner leaves three lanes open. Keep the yard
256
+ alive and kill at least thirteen, within about 60 turns.
257
  overrides:
258
  actors:
259
  - {type: fact, owner: agent, position: [64, 20]}
openra_bench/scenarios/packs/build-defensive-tower-cluster.yaml CHANGED
@@ -87,8 +87,7 @@ meta:
87
  the radius-4 disc around the fact, AND the fact must survive.
88
  robotics_analogue: >
89
  Critical-asset protection / defense-in-depth: when ONE node is the
90
- irreplaceable principal (the fortress keep, the SAM hub, the data-
91
- centre hardened core, the ambassador's residence), the right
92
  architecture is dense overlapping enforcement AT that asset, not a
93
  thin uniform perimeter that is everywhere but never massed where
94
  the threat actually comes. The same logic that gives you a single
 
87
  the radius-4 disc around the fact, AND the fact must survive.
88
  robotics_analogue: >
89
  Critical-asset protection / defense-in-depth: when ONE node is the
90
+ irreplaceable principal (the fortress keep, the SAM hub, the data-centre hardened core, the ambassador's residence), the right
 
91
  architecture is dense overlapping enforcement AT that asset, not a
92
  thin uniform perimeter that is everywhere but never massed where
93
  the threat actually comes. The same logic that gives you a single
openra_bench/scenarios/packs/build-defensive-tower-line.yaml CHANGED
@@ -122,9 +122,11 @@ levels:
122
  # rows so nothing slips through. Kill four enemies and keep your
123
  # construction yard, within about 60 turns.
124
  description: >
125
- Have at least 4 pillboxes. Place 1 pillboxes in the target zone. Place 1
126
- pillboxes in the target zone. Place 1 pillboxes in the target zone.
127
- Place 1 pillboxes in the target zone. Kill at least 4 enemy units. Have.
 
 
128
  starting_cash: 2400
129
  overrides:
130
  actors:
@@ -252,10 +254,11 @@ levels:
252
  # rung clauses and lets the rush leak through. Your pillboxes must
253
  # kill at least 7 of the rush; the fact must survive.
254
  description: >
255
- Have at least 4 pillboxes. Place 1 pillboxes in the target zone. Place 1
256
- pillboxes in the target zone. Place 1 pillboxes in the target zone.
257
- Place 1 pillboxes in the target zone. Kill at least 7 enemy units. Have.
258
- starting_cash: 2400
 
259
  overrides:
260
  actors:
261
  # spawn_point 0 โ€” NORTH base at y=12. Fact at (10, 12);
 
122
  # rows so nothing slips through. Kill four enemies and keep your
123
  # construction yard, within about 60 turns.
124
  description: >
125
+ A rifle rush will funnel through the narrow corridor at x=60, rows
126
+ y=18 to 22, on its way to your base. Budget is exactly $2400 โ€” drop
127
+ one pillbox on each of those four rows so nothing slips past. Kill
128
+ at least four and keep your construction yard standing, within about
129
+ 60 turns.
130
  starting_cash: 2400
131
  overrides:
132
  actors:
 
254
  # rung clauses and lets the rush leak through. Your pillboxes must
255
  # kill at least 7 of the rush; the fact must survive.
256
  description: >
257
+ Same fixed corridor at x=60, rows y=18 to 22 โ€” but your base may sit
258
+ to its north or south depending on seed. Don't cover the rows next
259
+ to your own base; the rush still funnels through the mid-map gap.
260
+ Build one pillbox on each of the four corridor rungs, kill at least
261
+ seven, and keep your construction yard within about 70 turns.
262
  overrides:
263
  actors:
264
  # spawn_point 0 โ€” NORTH base at y=12. Fact at (10, 12);
openra_bench/scenarios/packs/build-power-online-first.yaml CHANGED
@@ -82,8 +82,7 @@ meta:
82
  capability: reasoning
83
  real_world_meaning: >
84
  Standard-operating-procedure (SOP) compliance under a strict
85
- happened-before constraint, exemplified by electrical-grid bring-
86
- up: the grid (the Power Plant) must be ONLINE before any powered
87
  load (the Refinery, Barracks, War Factory) can come up. The
88
  opening decision is the entire test โ€” from a pre-placed
89
  Construction Yard and a tight budget, the agent must queue the
 
82
  capability: reasoning
83
  real_world_meaning: >
84
  Standard-operating-procedure (SOP) compliance under a strict
85
+ happened-before constraint, exemplified by electrical-grid bring-up: the grid (the Power Plant) must be ONLINE before any powered
 
86
  load (the Refinery, Barracks, War Factory) can come up. The
87
  opening decision is the entire test โ€” from a pre-placed
88
  Construction Yard and a tight budget, the agent must queue the
openra_bench/scenarios/packs/build-rally-point-management.yaml CHANGED
@@ -164,8 +164,11 @@ levels:
164
  # three of your units into a radius-5 disc around (62,20) and kill one
165
  # enemy, within about 30 turns.
166
  description: >
167
- Enemy includes barracks. Get 3 units into the target zone. Kill at least
168
- 1 enemy units. Within about 30 turns.
 
 
 
169
  starting_cash: 1500
170
  overrides:
171
  actors:
 
164
  # three of your units into a radius-5 disc around (62,20) and kill one
165
  # enemy, within about 30 turns.
166
  description: >
167
+ You start with a construction yard, power plant, and barracks plus
168
+ $1500. An enemy barracks sits at the forward staging zone (62,20),
169
+ roughly 38 cells east. Set the rally point forward and queue rifles
170
+ so they walk straight into the fight โ€” three of your units in the
171
+ zone and one enemy down within about 30 turns.
172
  starting_cash: 1500
173
  overrides:
174
  actors:
openra_bench/scenarios/packs/build-repair-priority-under-fire.yaml CHANGED
@@ -129,8 +129,7 @@ meta:
129
  degraded at once and the operator has one repair lever. The correct
130
  move is to rank by criticality x blast-radius, not by whichever
131
  dashboard is reddest โ€” restore the income-bearing / load-bearing
132
- subsystem that is about to fail hard before touching a loud-but-
133
- low-value one. The same criticality-weighted prioritisation governs
134
  SC2 SCV-repair target choice and aircraft / plant preventive
135
  maintenance.
136
  benchmark_anchor:
 
129
  degraded at once and the operator has one repair lever. The correct
130
  move is to rank by criticality x blast-radius, not by whichever
131
  dashboard is reddest โ€” restore the income-bearing / load-bearing
132
+ subsystem that is about to fail hard before touching a loud-but-low-value one. The same criticality-weighted prioritisation governs
 
133
  SC2 SCV-repair target choice and aircraft / plant preventive
134
  maintenance.
135
  benchmark_anchor:
openra_bench/scenarios/packs/build-sell-and-rebuild-elsewhere.yaml CHANGED
@@ -96,8 +96,7 @@ meta:
96
  and use the refund plus starting cash to BUILD a new proc and
97
  PLACE it at the safe target region far from the rush. Stalling,
98
  building without selling (cash gated), and placing the new
99
- proc in the wrong region all lose; only sell-then-rebuild-at-
100
- safe-region wins.
101
  robotics_analogue: >
102
  Liquidate a deteriorating asset to fund a relocation: a forward
103
  production node is about to be lost to environmental damage,
@@ -189,9 +188,11 @@ levels:
189
  # with a refinery near (16,8) in the safe north-west corner and keep
190
  # your construction yard, within about 50 turns.
191
  description: >
192
- Enemy includes 2 rifle infantry. Place 1 refinery in the target zone.
193
- Have at least 1 construction yard. Within about 50 turns.
194
- starting_cash: 800
 
 
195
  overrides:
196
  actors:
197
  # Agent fact + powr at the SAFE far north-west corner (off
 
96
  and use the refund plus starting cash to BUILD a new proc and
97
  PLACE it at the safe target region far from the rush. Stalling,
98
  building without selling (cash gated), and placing the new
99
+ proc in the wrong region all lose; only sell-then-rebuild-at-safe-region wins.
 
100
  robotics_analogue: >
101
  Liquidate a deteriorating asset to fund a relocation: a forward
102
  production node is about to be lost to environmental damage,
 
188
  # with a refinery near (16,8) in the safe north-west corner and keep
189
  # your construction yard, within about 50 turns.
190
  description: >
191
+ Two rifle infantry are closing on your forward refinery, which sits
192
+ exposed on the centre lane. With only $800 you cannot afford a new
193
+ one outright. Sell the doomed refinery for its refund, then rebuild
194
+ it in the safe north-west pocket near (16,8). Keep the construction
195
+ yard alive within about 50 turns.
196
  overrides:
197
  actors:
198
  # Agent fact + powr at the SAFE far north-west corner (off
openra_bench/scenarios/packs/build-sequence-tech-cheapest.yaml CHANGED
@@ -140,7 +140,10 @@ levels:
140
  # enforces the exact order; placing weap before proc cannot satisfy
141
  # it (and the engine refuses too: weap's prerequisite is proc).
142
  description: >
143
- Keep your power plant. Keep your refinery. Keep your war factory. Within
 
 
 
144
  about 36 turns.
145
  starting_cash: 3750
146
  overrides:
@@ -188,8 +191,10 @@ levels:
188
  # `then:` chain enforces the exact order; weap before proc cannot
189
  # satisfy it.
190
  description: >
191
- Keep your power plant. Keep your refinery. Keep your war factory. Within
192
- about 36 turns.
 
 
193
  starting_cash: 3720
194
  overrides:
195
  actors:
@@ -233,8 +238,11 @@ levels:
233
  # that memorises one spawn's geometry cannot generalise; compute
234
  # placement relative to your actual fact each run.
235
  description: >
236
- Keep your power plant. Keep your refinery. Keep your war factory. Within
237
- about 36 turns.
 
 
 
238
  starting_cash: 3720
239
  overrides:
240
  actors:
 
140
  # enforces the exact order; placing weap before proc cannot satisfy
141
  # it (and the engine refuses too: weap's prerequisite is proc).
142
  description: >
143
+ You have a lone construction yard, $3750, and no ore. The cheapest
144
+ route to a war factory is the exact prerequisite chain: power plant
145
+ ($300), refinery ($1400), war factory ($2000) โ€” $3700 total. Any
146
+ extra building or unit empties the wallet. Finish the chain within
147
  about 36 turns.
148
  starting_cash: 3750
149
  overrides:
 
191
  # `then:` chain enforces the exact order; weap before proc cannot
192
  # satisfy it.
193
  description: >
194
+ Same chain โ€” power plant, refinery, war factory โ€” but the wallet is
195
+ tighter: only $3720, just $20 of slack over the $3700 minimum. No
196
+ ore, no income. One stray purchase before the factory and the budget
197
+ is gone for good. Complete the chain within about 36 turns.
198
  starting_cash: 3720
199
  overrides:
200
  actors:
 
238
  # that memorises one spawn's geometry cannot generalise; compute
239
  # placement relative to your actual fact each run.
240
  description: >
241
+ Same $3720 budget, same power-plant-refinery-war-factory chain โ€” but
242
+ your construction yard may spawn in the NORTH band (y=14) or the
243
+ SOUTH band (y=26) depending on the seed. Read its actual position
244
+ and place each building beside it; a memorised opening fails on the
245
+ flipped seed. Land the factory within about 36 turns.
246
  starting_cash: 3720
247
  overrides:
248
  actors:
openra_bench/scenarios/packs/build-sequence-tech-most-resilient.yaml CHANGED
@@ -202,10 +202,11 @@ levels:
202
  # Factory, and three medium tanks (2tnk) within about 60 turns,
203
  # keeping your Construction Yard.
204
  description: >
205
- Keep your power plant. Keep your war factory. Have at least 1 power
206
- plant. Field at least 3 medium tanks. Have at least 1 construction yard.
207
- Within about 60 turns.
208
- starting_cash: 6000
 
209
  overrides:
210
  actors:
211
  # โ”€โ”€ Safe WEST base โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
@@ -288,9 +289,11 @@ levels:
288
  # before tick 4500. Stalling, or relying on the single exposed
289
  # power plant, misses the bar.
290
  description: >
291
- Keep your power plant. Keep your war factory. Have at least 1 power
292
- plant. Field at least 3 medium tanks. Have at least 1 construction yard.
293
- Within about 50 turns.
 
 
294
  starting_cash: 6000
295
  overrides:
296
  actors:
@@ -357,9 +360,11 @@ levels:
357
  # single-point-of-failure plays โ€” stalling, or relying on the
358
  # lone exposed power plant โ€” lose as on medium.
359
  description: >
360
- Keep your power plant. Keep your war factory. Have at least 1 power
361
- plant. Field at least 3 medium tanks. Have at least 1 construction yard.
362
- Within about 50 turns.
 
 
363
  starting_cash: 6000
364
  overrides:
365
  actors:
 
202
  # Factory, and three medium tanks (2tnk) within about 60 turns,
203
  # keeping your Construction Yard.
204
  description: >
205
+ You inherit a base with $6000 and a single forward power plant that
206
+ an enemy strike will raze around turn 17. Build a backup power plant
207
+ beside your construction yard before the strike lands, then add a
208
+ war factory and roll out three medium tanks. Keep the yard alive
209
+ within about 60 turns.
210
  overrides:
211
  actors:
212
  # โ”€โ”€ Safe WEST base โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
 
289
  # before tick 4500. Stalling, or relying on the single exposed
290
  # power plant, misses the bar.
291
  description: >
292
+ Same setup โ€” $6000, an exposed forward power plant doomed to fall
293
+ around turn 17 โ€” but the deadline is tighter. Don't wait for the
294
+ strike: commit a backup power plant beside the construction yard
295
+ early, then a war factory, then three medium tanks. Keep the yard
296
+ standing within about 50 turns.
297
  starting_cash: 6000
298
  overrides:
299
  actors:
 
360
  # single-point-of-failure plays โ€” stalling, or relying on the
361
  # lone exposed power plant โ€” lose as on medium.
362
  description: >
363
+ Same backup-power-then-tanks task, but the base may spawn in the
364
+ NORTH (y=12) or SOUTH (y=26) band. Read the construction yard's
365
+ actual cell and place the redundant power plant beside it โ€” a
366
+ memorised opening misses on the flipped seed. Three medium tanks
367
+ and a surviving yard within about 50 turns.
368
  starting_cash: 6000
369
  overrides:
370
  actors:
openra_bench/scenarios/packs/combat-attack-from-behind-fog.yaml CHANGED
@@ -184,8 +184,11 @@ levels:
184
  # survive, before tick 5400. Stalling LOSES (fact never
185
  # destroyed); frontal-charge LOSES on the clock.
186
  description: >
187
- Enemy includes 3 rocket soldiers. Destroy the enemy construction yard in
188
- the target zone. Keep at least 2 unit alive. Within about 60 turns.
 
 
 
189
  overrides:
190
  actors:
191
  # STRIKE FORCE โ€” 4 medium tanks stacked at the west edge,
@@ -249,9 +252,12 @@ levels:
249
  # survive, before tick 4500. Stall, brute attack_move east,
250
  # and any frontal charge all LOSE.
251
  description: >
252
- Enemy includes 2 pillboxes, 5 rocket soldiers. Destroy the enemy
253
- construction yard in the target zone. Keep at least 2 unit alive. Within
254
- about 50 turns.
 
 
 
255
  overrides:
256
  actors:
257
  - {type: 2tnk, owner: agent, position: [6, 18], stance: 1}
@@ -336,8 +342,11 @@ levels:
336
  # corridor depending on seed. Destroy the enemy yard at (100,20) with
337
  # at least two tanks surviving, within about 54 turns.
338
  description: >
339
- Enemy includes 3 pillboxes, 8 rocket soldiers. Destroy the enemy
340
- construction yard in the target zone. Keep at least 2 unit alive. Within
 
 
 
341
  about 50 turns.
342
  overrides:
343
  actors:
 
184
  # survive, before tick 5400. Stalling LOSES (fact never
185
  # destroyed); frontal-charge LOSES on the clock.
186
  description: >
187
+ Four medium tanks stage at the west edge. A thin line of three anti-tank rocket soldiers covers the middle longitude, and the enemy
188
+ construction yard sits undefended at (100,20) behind them. A frontal
189
+ charge melts under their fire. Sweep around the line via the north
190
+ or south fringe, then strike the yard with at least two tanks intact
191
+ within about 60 turns.
192
  overrides:
193
  actors:
194
  # STRIKE FORCE โ€” 4 medium tanks stacked at the west edge,
 
252
  # survive, before tick 4500. Stall, brute attack_move east,
253
  # and any frontal charge all LOSE.
254
  description: >
255
+ Four medium tanks face a heavier wall at x=50 โ€” two pillboxes
256
+ flanking five anti-tank rocket soldiers, all facing west. Driving
257
+ straight east cooks the column in overlapping kill envelopes. Loop
258
+ wide to the far north or south, slip past x=50, then turn in on the
259
+ undefended yard at (100,20). Two tanks must survive, within about 50
260
+ turns.
261
  overrides:
262
  actors:
263
  - {type: 2tnk, owner: agent, position: [6, 18], stance: 1}
 
342
  # corridor depending on seed. Destroy the enemy yard at (100,20) with
343
  # at least two tanks surviving, within about 54 turns.
344
  description: >
345
+ A dense wall of three pillboxes and seven rocket soldiers blocks the
346
+ middle longitude, and your tanks stage in the north or south
347
+ corridor depending on seed. A head-on charge dies in the crossfire.
348
+ Fly wide around the wall, drive east past x=80, then descend on the
349
+ enemy yard at (100,20) with at least two tanks surviving, within
350
  about 50 turns.
351
  overrides:
352
  actors:
openra_bench/scenarios/packs/combat-formation-tank-wedge.yaml CHANGED
@@ -184,8 +184,12 @@ levels:
184
  # bracket end-on from off-axis. Stall LOSES (the region bar is never
185
  # met on the clock).
186
  description: >
187
- Enemy includes 5 rocket soldiers, light tanks. Get 4 units into the
188
- target zone. Keep at least 4 unit alive. Within about 50 turns.
 
 
 
 
189
  overrides:
190
  actors:
191
  # STRIKE FORCE โ€” 5 medium tanks at the west edge, stance:1
@@ -251,9 +255,12 @@ levels:
251
  # trailing one cell west so they engage each bracket end-on (only 1-2
252
  # e3 per bracket can fire on a flanker at once). Stall LOSES.
253
  description: >
254
- Enemy includes 6 rocket soldiers, light tanks. Kill at least 3 enemy
255
- units. Get 3 units into the target zone. Keep at least 3 unit alive.
256
- Within about 50 turns.
 
 
 
257
  overrides:
258
  actors:
259
  - {type: 2tnk, owner: agent, position: [6, 18], stance: 1}
@@ -319,9 +326,12 @@ levels:
319
  # formation, let the lead absorb the on-axis blocker fire while the
320
  # flank wings engage each bracket end-on. Stall LOSES.
321
  description: >
322
- Enemy includes 8 rocket soldiers, 2 light tanks. Kill at least 4 enemy
323
- units. Get 3 units into the target zone. Keep at least 3 unit alive.
324
- Within about 50 turns.
 
 
 
325
  overrides:
326
  actors:
327
  # spawn_point 0 โ€” NORTH staging corridor (y=10..14). Wedge
 
184
  # bracket end-on from off-axis. Stall LOSES (the region bar is never
185
  # met on the clock).
186
  description: >
187
+ Five medium tanks stage at the west edge; a north bracket of five
188
+ rocket soldiers overlooks the lane, with a single light tank
189
+ blocking on-axis at (46,20). A solid column on y=20 puts the leader
190
+ inside every weapon's range at once. Form a wedge โ€” leader absorbing
191
+ the blocker, flankers offset to y=18 and y=22 โ€” and push four tanks
192
+ into the staging disc at (80,20) within about 50 turns.
193
  overrides:
194
  actors:
195
  # STRIKE FORCE โ€” 5 medium tanks at the west edge, stance:1
 
255
  # trailing one cell west so they engage each bracket end-on (only 1-2
256
  # e3 per bracket can fire on a flanker at once). Stall LOSES.
257
  description: >
258
+ Five medium tanks face a bracketing corridor: three rocket soldiers
259
+ above, three below, with a light tank plugging the on-axis midpoint.
260
+ A column eats crossfire from both sides at once. Drive a wedge
261
+ through โ€” leader absorbing the blocker, flankers angled into y=18
262
+ and y=22 โ€” and land three tanks at (80,20) while killing at least
263
+ three of the line, within about 50 turns.
264
  overrides:
265
  actors:
266
  - {type: 2tnk, owner: agent, position: [6, 18], stance: 1}
 
326
  # formation, let the lead absorb the on-axis blocker fire while the
327
  # flank wings engage each bracket end-on. Stall LOSES.
328
  description: >
329
+ Five tanks start in the north or south staging band by seed. A
330
+ denser bracket of four-plus-four rocket soldiers and two on-axis
331
+ light tanks guards the route. Form an inverted-V โ€” leader on y=20,
332
+ flankers spreading to y=17..23 โ€” and grind east in formation. Three
333
+ tanks must reach the (80,20) disc and four enemies must fall within
334
+ about 50 turns.
335
  overrides:
336
  actors:
337
  # spawn_point 0 โ€” NORTH staging corridor (y=10..14). Wedge
openra_bench/scenarios/packs/combat-harass-aggro-commit.yaml CHANGED
@@ -40,8 +40,7 @@ meta:
40
  real_world_meaning: >
41
  A small raider force is staged west; a cluster of enemy harvesters
42
  works an ore patch around their refinery in the centre-east, with
43
- a single heavy tank standing on-post as the defender. The high-
44
- score doctrine is to COMMIT โ€” concentrate fire on the defender
45
  first (3-vs-1 tank trade favours the attacker), then mop up the
46
  undefended harvesters. Stalling or pure retreat misses the kill
47
  bar; attacking the harvesters while ignoring the defender lets
@@ -111,8 +110,12 @@ levels:
111
  # it pick off your raiders one by one. Win when 3 enemy units are
112
  # killed AND at least 1 raider survives, before tick 4500.
113
  description: >
114
- Enemy includes 2 harvesters, heavy tanks, refinery. Kill at least 3
115
- enemy units. Keep at least 1 unit alive. Within about 50 turns.
 
 
 
 
116
  overrides:
117
  actors:
118
  # Raider strike force โ€” 4 medium tanks at the west edge.
@@ -163,8 +166,12 @@ levels:
163
  # off your raiders one by one. Win when 4 enemy units are killed AND
164
  # at least 1 raider survives, before tick 4500.
165
  description: >
166
- Enemy includes 3 harvesters, heavy tanks, refinery. Kill at least 4
167
- enemy units. Keep at least 1 unit alive. Within about 50 turns.
 
 
 
 
168
  overrides:
169
  actors:
170
  # Raider strike force โ€” 3 medium tanks at the west edge.
@@ -218,8 +225,11 @@ levels:
218
  # the two 3tnks pick off your raiders. Win when 6 enemy units are
219
  # killed AND at least 1 raider survives, before tick 4500.
220
  description: >
221
- Enemy includes 4 harvesters, 2 heavy tanks, refinery. Kill at least 6
222
- enemy units. Keep at least 1 unit alive. Within about 50 turns.
 
 
 
223
  overrides:
224
  actors:
225
  # spawn_point 0 โ€” NORTH staging corridor (y=10..14)
 
40
  real_world_meaning: >
41
  A small raider force is staged west; a cluster of enemy harvesters
42
  works an ore patch around their refinery in the centre-east, with
43
+ a single heavy tank standing on-post as the defender. The high-score doctrine is to COMMIT โ€” concentrate fire on the defender
 
44
  first (3-vs-1 tank trade favours the attacker), then mop up the
45
  undefended harvesters. Stalling or pure retreat misses the kill
46
  bar; attacking the harvesters while ignoring the defender lets
 
110
  # it pick off your raiders one by one. Win when 3 enemy units are
111
  # killed AND at least 1 raider survives, before tick 4500.
112
  description: >
113
+ Four medium tanks at the western edge face an enemy refinery at
114
+ (80,20) with two harvesters working it under a single heavy-tank
115
+ guard. Commit four-on-one against the heavy first, then mop up the
116
+ harvesters โ€” three kills total. Engaging the harvesters while inside
117
+ the heavy's range lets it pick raiders off. One tank must survive,
118
+ within about 50 turns.
119
  overrides:
120
  actors:
121
  # Raider strike force โ€” 4 medium tanks at the west edge.
 
166
  # off your raiders one by one. Win when 4 enemy units are killed AND
167
  # at least 1 raider survives, before tick 4500.
168
  description: >
169
+ Three medium-tank raiders face an enemy refinery defended by one
170
+ heavy tank and worked by three harvesters. Concentrate fire on the
171
+ heavy first โ€” three-on-one favours you โ€” then clean up the
172
+ harvesters. Four kills, one raider surviving, within about 50 turns.
173
+ Splitting fire or attacking workers under the heavy's gun trades
174
+ raiders you can't spare.
175
  overrides:
176
  actors:
177
  # Raider strike force โ€” 3 medium tanks at the west edge.
 
225
  # the two 3tnks pick off your raiders. Win when 6 enemy units are
226
  # killed AND at least 1 raider survives, before tick 4500.
227
  description: >
228
+ Three raiders stage in the north or south corridor by seed; the
229
+ enemy refinery is guarded by two heavy tanks and worked by four
230
+ harvesters. Focus fire on one defender at a time, then the second,
231
+ then sweep the workers. Six kills, one raider alive, within about 50
232
+ turns โ€” splitting fire across both heavies lets them grind you down.
233
  overrides:
234
  actors:
235
  # spawn_point 0 โ€” NORTH staging corridor (y=10..14)
openra_bench/scenarios/packs/combat-harass-balanced-hit-and-run.yaml CHANGED
@@ -188,8 +188,12 @@ levels:
188
  # tick 5400. Idling, retreat-only, commit-and-stay, and brute-charge
189
  # all LOSE.
190
  description: >
191
- Enemy includes 5 rifle infantry, heavy tanks. Kill at least 3 enemy
192
- units. Lose at most 0. Within about 60 turns.
 
 
 
 
193
  overrides:
194
  actors:
195
  - {type: jeep, owner: agent, position: [6, 10], stance: 1, count: 2}
@@ -236,8 +240,11 @@ levels:
236
  # charge (attacks the un-killable tank and dies), and retreat-only
237
  # (kill bar unmet) all LOSE โ€” before tick 5400.
238
  description: >
239
- Enemy includes 6 rifle infantry, heavy tanks. Kill at least 3 enemy
240
- units. Lose at most 0. Within about 60 turns.
 
 
 
241
  overrides:
242
  actors:
243
  - {type: jeep, owner: agent, position: [6, 10], stance: 1, count: 2}
@@ -285,8 +292,11 @@ levels:
285
  # the tank โ€” brute-charging it loses a jeep. Before tick 5400. Idling,
286
  # commit-and-stay, and retreat-only all LOSE.
287
  description: >
288
- Enemy includes 12 rifle infantry, 2 heavy tanks. Kill at least 3 enemy
289
- units. Lose at most 0. Within about 60 turns.
 
 
 
290
  overrides:
291
  actors:
292
  # spawn_point 0 โ€” NORTHERN raider staging (y=10)
 
188
  # tick 5400. Idling, retreat-only, commit-and-stay, and brute-charge
189
  # all LOSE.
190
  description: >
191
+ Two jeeps at the west must kill three of five soft enemy workers
192
+ spread along y=10. A leashed heavy tank posts one row off the
193
+ cluster โ€” it lunges at anything within 16 cells and snaps back past
194
+ 18. Your MGs cannot dent it. Pulse in, strike a worker, retreat past
195
+ the leash, repeat. Three kills, zero jeeps lost, within about 60
196
+ turns.
197
  overrides:
198
  actors:
199
  - {type: jeep, owner: agent, position: [6, 10], stance: 1, count: 2}
 
240
  # charge (attacks the un-killable tank and dies), and retreat-only
241
  # (kill bar unmet) all LOSE โ€” before tick 5400.
242
  description: >
243
+ Same jeep-pulse harass, but the worker cluster grows to six along
244
+ y=10 and the leashed heavy still patrols one row off. The bar is
245
+ identical โ€” three kills, zero jeeps lost โ€” but a longer engagement
246
+ means more chances to mistime the retreat. Pulse, strike, fall back
247
+ past the leash, within about 60 turns.
248
  overrides:
249
  actors:
250
  - {type: jeep, owner: agent, position: [6, 10], stance: 1, count: 2}
 
292
  # the tank โ€” brute-charging it loses a jeep. Before tick 5400. Idling,
293
  # commit-and-stay, and retreat-only all LOSE.
294
  description: >
295
+ Worker clusters are mirrored at y=10 and y=30, each overwatched by a
296
+ leashed heavy tank. Four jeeps start in the north or south band by
297
+ seed and must reach whichever cluster their lane opens onto. Same
298
+ pulse cycle โ€” close to MG range, strike, retreat past the leash โ€”
299
+ for three kills with zero losses, within about 60 turns.
300
  overrides:
301
  actors:
302
  # spawn_point 0 โ€” NORTHERN raider staging (y=10)
openra_bench/scenarios/packs/combat-heli-flank.yaml CHANGED
@@ -102,8 +102,11 @@ levels:
102
  # e1 cluster down. Win when at least 3 enemy units are killed AND your
103
  # base is intact, before tick 1800.
104
  description: >
105
- Enemy includes 23 pillboxes, 3 rifle infantry. Kill at least 3 enemy
106
- units. Keep your construction yard. Within about 20 turns.
 
 
 
107
  overrides:
108
  actors:
109
  # Agent base anchor โ€” engine auto-done mitigation.
@@ -176,8 +179,10 @@ levels:
176
  # when at least 5 enemy units are killed AND your base is intact,
177
  # before tick 2100.
178
  description: >
179
- Enemy includes 23 pillboxes, 5 rifle infantry. Kill at least 5 enemy
180
- units. Keep your construction yard. Within about 24 turns.
 
 
181
  overrides:
182
  actors:
183
  - {type: fact, owner: agent, position: [4, 20]}
@@ -241,8 +246,11 @@ levels:
241
  # wall and clear the line. Win when at least 5 enemy units are killed
242
  # AND your base is intact, before tick 1800.
243
  description: >
244
- Enemy includes 23 pillboxes, 5 rifle infantry. Kill at least 5 enemy
245
- units. Keep your construction yard. Within about 20 turns.
 
 
 
246
  overrides:
247
  actors:
248
  # Agent base anchor โ€” duplicated under BOTH spawn_point
 
102
  # e1 cluster down. Win when at least 3 enemy units are killed AND your
103
  # base is intact, before tick 1800.
104
  description: >
105
+ Two helicopters sit at (30, 19..21) facing three enemy riflemen at
106
+ (60, 19..21). A pillbox wall along x=50 from y=10..30 denies every
107
+ ground route inside the deadline. Fly the helis over the wall and
108
+ gun down all three. Keep the construction yard intact, within about
109
+ 20 turns.
110
  overrides:
111
  actors:
112
  # Agent base anchor โ€” engine auto-done mitigation.
 
179
  # when at least 5 enemy units are killed AND your base is intact,
180
  # before tick 2100.
181
  description: >
182
+ Same pillbox wall at x=50 blocks every ground approach, and now five
183
+ enemy riflemen are clustered at (60, 18..22). Lift the two
184
+ helicopters over the wall and clear the line. Five kills with the
185
+ construction yard standing, within about 24 turns.
186
  overrides:
187
  actors:
188
  - {type: fact, owner: agent, position: [4, 20]}
 
246
  # wall and clear the line. Win when at least 5 enemy units are killed
247
  # AND your base is intact, before tick 1800.
248
  description: >
249
+ Two helicopters stage in either the north (y=11..13) or south
250
+ (y=27..29) corridor depending on seed, at x=30. The pillbox wall at
251
+ x=50 still denies ground travel; five enemy riflemen wait at (60,
252
+ 18..22). Fly over the wall regardless of starting band, kill all
253
+ five, keep the yard alive, within about 20 turns.
254
  overrides:
255
  actors:
256
  # Agent base anchor โ€” duplicated under BOTH spawn_point
openra_bench/scenarios/packs/combat-hold-chokepoint.yaml CHANGED
@@ -185,9 +185,12 @@ levels:
185
  # open, or pulling WEST and letting the enemy fan out, lets the whole
186
  # force surround you at once and focus-fire your squad down.
187
  description: >
188
- Enemy includes 14 light tanks. Kill at least 9 enemy units. Keep at
189
- least 3 unit alive. Have at least 1 construction yard. Get 3 units into
190
- the target zone. Within about 60 turns.
 
 
 
191
  overrides:
192
  actors:
193
  # SQUAD โ€” 4 medium tanks PRE-PLACED at the choke, inside the
@@ -2076,9 +2079,12 @@ levels:
2076
  # force in the open, on either side of the corridor, gets your squad
2077
  # surrounded and focus-fired down before the kill quota is met.
2078
  description: >
2079
- Enemy includes 16 light tanks. Kill at least 9 enemy units. Keep at
2080
- least 3 unit alive. Have at least 1 construction yard. Get 3 units into
2081
- the target zone. Within about 60 turns.
 
 
 
2082
  overrides:
2083
  actors:
2084
  # SQUAD โ€” 4 medium tanks PRE-PLACED at the choke, inside the
@@ -3961,9 +3967,11 @@ levels:
3961
  # path whichever cluster the enemy staged in; meeting the force in the
3962
  # open gets your squad surrounded and focus-fired down.
3963
  description: >
3964
- Enemy includes 32 light tanks. Kill at least 9 enemy units. Keep at
3965
- least 3 unit alive. Have at least 1 construction yard. Get 3 units into
3966
- the target zone. Within about 60 turns.
 
 
3967
  overrides:
3968
  actors:
3969
  # SQUAD โ€” 4 medium tanks PRE-PLACED at the choke, inside the
 
185
  # open, or pulling WEST and letting the enemy fan out, lets the whole
186
  # force surround you at once and focus-fire your squad down.
187
  description: >
188
+ Four medium tanks hold a three-cell-tall corridor (y=19..21,
189
+ x=44..96) carved through silo walls. Fourteen enemy light tanks
190
+ stage in the open east and funnel in to hunt you. Stay anchored at
191
+ the choke around x=52..53 and focus fire on the lead vehicle โ€” the
192
+ walls force the swarm to a 3-abreast trickle. Nine kills, three
193
+ tanks alive in the lane, yard intact, within about 60 turns.
194
  overrides:
195
  actors:
196
  # SQUAD โ€” 4 medium tanks PRE-PLACED at the choke, inside the
 
2079
  # force in the open, on either side of the corridor, gets your squad
2080
  # surrounded and focus-fired down before the kill quota is met.
2081
  description: >
2082
+ Same three-cell corridor through the silo walls, but sixteen enemy
2083
+ light tanks now stage in the eastern open and hunt your four. Hold
2084
+ the choke; concentrate fire on the frontmost attacker so the swarm
2085
+ only trickles through three-wide. Stepping out into the open lets
2086
+ them surround and focus-fire you down. Nine kills, three tanks
2087
+ anchored, yard intact, within about 60 turns.
2088
  overrides:
2089
  actors:
2090
  # SQUAD โ€” 4 medium tanks PRE-PLACED at the choke, inside the
 
3967
  # path whichever cluster the enemy staged in; meeting the force in the
3968
  # open gets your squad surrounded and focus-fired down.
3969
  description: >
3970
+ The same three-cell corridor is the only east-west link, but the
3971
+ enemy force โ€” sixteen light tanks โ€” stages from a north or south
3972
+ cluster depending on seed. Hold the choke regardless of which way
3973
+ they funnel. Nine kills, three tanks anchored at (53,20),
3974
+ construction yard intact, within about 60 turns.
3975
  overrides:
3976
  actors:
3977
  # SQUAD โ€” 4 medium tanks PRE-PLACED at the choke, inside the
openra_bench/scenarios/packs/combat-kite-and-pull.yaml CHANGED
@@ -141,8 +141,12 @@ levels:
141
  # still or bruting east with no disengage LOSES โ€” the heavy cannon
142
  # collapses the stack.
143
  description: >
144
- Enemy includes heavy tanks. Kill at least 1 enemy units. Keep at least 2
145
- unit alive. Within about 50 turns.
 
 
 
 
146
  overrides:
147
  actors:
148
  # RAIDERS โ€” 3 medium tanks, stance:1 (ReturnFire): they
@@ -192,8 +196,11 @@ levels:
192
  # even one cannon shot trades a raider and LOSES. Stall, stand-and-
193
  # fight, and brute attack_move all LOSE.
194
  description: >
195
- Enemy includes heavy tanks. Kill at least 1 enemy units. Keep at least 3
196
- unit alive. Within about 50 turns.
 
 
 
197
  overrides:
198
  actors:
199
  - {type: 2tnk, owner: agent, position: [28, 9], stance: 1}
@@ -248,8 +255,10 @@ levels:
248
  # stand-and-fight, and brute attack_move all LOSE. The start corridor
249
  # varies by seed so a memorised opening cannot generalise.
250
  description: >
251
- Enemy includes heavy tanks. Kill at least 1 enemy units. Keep at least 3
252
- unit alive. Within about 40 turns.
 
 
253
  overrides:
254
  actors:
255
  # spawn_point 0 โ€” NORTH corridor (y=10)
 
141
  # still or bruting east with no disengage LOSES โ€” the heavy cannon
142
  # collapses the stack.
143
  description: >
144
+ Three medium-tank raiders stage on the north corridor (y=10). One
145
+ enemy heavy tank sits centre-east at roughly (80,20) โ€” it out-trades
146
+ you head-on and would shred a stand-and-fight. Kite: when the heavy
147
+ closes inside six cells, move your raiders back along the lane;
148
+ otherwise shoot from range. One kill, two raiders alive, within
149
+ about 50 turns.
150
  overrides:
151
  actors:
152
  # RAIDERS โ€” 3 medium tanks, stance:1 (ReturnFire): they
 
196
  # even one cannon shot trades a raider and LOSES. Stall, stand-and-
197
  # fight, and brute attack_move all LOSE.
198
  description: >
199
+ Three raiders on the north corridor face one enemy heavy tank that
200
+ actively hunts. The heavy out-trades you in close, so any cannon hit
201
+ costs a raider. Kite hard โ€” back off whenever the heavy enters six
202
+ cells, snipe from outside โ€” and kill the heavy without losing one of
203
+ three raiders, within about 50 turns.
204
  overrides:
205
  actors:
206
  - {type: 2tnk, owner: agent, position: [28, 9], stance: 1}
 
255
  # stand-and-fight, and brute attack_move all LOSE. The start corridor
256
  # varies by seed so a memorised opening cannot generalise.
257
  description: >
258
+ Three raiders stage in the north (y=10) or south (y=30) corridor by
259
+ seed; one enemy heavy hunts from the middle latitude. The kite-and-pull cycle is the same โ€” retreat past six cells, attack from range โ€”
260
+ but the clock tightens to about 40 turns. All three raiders must
261
+ survive.
262
  overrides:
263
  actors:
264
  # spawn_point 0 โ€” NORTH corridor (y=10)
openra_bench/scenarios/packs/combat-kite-jeep-vs-tank.yaml CHANGED
@@ -132,8 +132,11 @@ levels:
132
  # raider weapons and one raider falls. Brute attack_move east LOSES
133
  # (same โ€” no disengage). Before tick 4500.
134
  description: >
135
- Enemy includes heavy tanks. Kill at least 1 enemy units. Keep at least 3
136
- unit alive. Within about 50 turns.
 
 
 
137
  overrides:
138
  actors:
139
  # RAIDERS โ€” 3 medium tanks spread across three cells off the
@@ -187,8 +190,11 @@ levels:
187
  # preserves the whole stack. Stall, stand-and-shoot, and brute
188
  # attack_move all LOSE. Before tick 4500.
189
  description: >
190
- Enemy includes heavy tanks. Kill at least 1 enemy units. Keep at least 3
191
- unit alive. Within about 50 turns.
 
 
 
192
  overrides:
193
  actors:
194
  # Raiders stage off the tank's centroid latitude (y=10
@@ -245,8 +251,10 @@ levels:
245
  # raiders alive AND finish before tick 3600. Stall, stand-and-shoot,
246
  # and brute attack_move all LOSE.
247
  description: >
248
- Enemy includes heavy tanks. Kill at least 1 enemy units. Keep at least 3
249
- unit alive. Within about 40 turns.
 
 
250
  overrides:
251
  actors:
252
  # spawn_point 0 โ€” NORTH corridor (y=10)
 
132
  # raider weapons and one raider falls. Brute attack_move east LOSES
133
  # (same โ€” no disengage). Before tick 4500.
134
  description: >
135
+ Three fast medium-tank raiders at y=10 must take down one enemy
136
+ heavy tank that is actively hunting from centre-east. The heavy's
137
+ cannon out-trades you close in and can one-shot a raider. Kite: back
138
+ off when it closes to five cells, shoot from outside that window,
139
+ repeat. All three raiders must survive, within about 50 turns.
140
  overrides:
141
  actors:
142
  # RAIDERS โ€” 3 medium tanks spread across three cells off the
 
190
  # preserves the whole stack. Stall, stand-and-shoot, and brute
191
  # attack_move all LOSE. Before tick 4500.
192
  description: >
193
+ Same three raiders, same lone heavy hunter โ€” but now positioned a
194
+ touch deeper at (80,20). Standing still trades a raider before the
195
+ heavy dies. Use the kite cycle: retreat when it enters five cells,
196
+ fire from range. Kill the heavy without losing one of three raiders,
197
+ within about 50 turns.
198
  overrides:
199
  actors:
200
  # Raiders stage off the tank's centroid latitude (y=10
 
251
  # raiders alive AND finish before tick 3600. Stall, stand-and-shoot,
252
  # and brute attack_move all LOSE.
253
  description: >
254
+ Raiders stage in the north (y=10) or south (y=30) corridor by seed;
255
+ one enemy heavy on the mid latitude hunts whichever group spawned.
256
+ Same kite-and-shoot loop, tighter clock โ€” about 40 turns โ€” and all
257
+ three raiders must still be alive at the end.
258
  overrides:
259
  actors:
260
  # spawn_point 0 โ€” NORTH corridor (y=10)
openra_bench/scenarios/packs/combat-naval-shore-strike.yaml CHANGED
@@ -83,8 +83,10 @@ levels:
83
  # y=20). The destroyer cannot move onto land, but its primary armament
84
  # reaches across the shoreline. Win when the rifleman is killed.
85
  description: >
86
- Enemy includes rifle infantry. Kill at least 1 enemy units. Within about
87
- 30 turns.
 
 
88
  overrides:
89
  actors:
90
  - {type: dd, owner: agent, position: [15, 20], stance: 0}
@@ -146,8 +148,11 @@ levels:
146
  # garrison (5 units) before tick 2700; keep at least one destroyer
147
  # alive.
148
  description: >
149
- Enemy includes 4 rifle infantry, rocket soldiers. Kill at least 5 enemy
150
- units. Within about 30 turns.
 
 
 
151
  overrides:
152
  actors:
153
  - {type: dd, owner: agent, position: [15, 18], stance: 0}
 
83
  # y=20). The destroyer cannot move onto land, but its primary armament
84
  # reaches across the shoreline. Win when the rifleman is killed.
85
  description: >
86
+ One allied destroyer sits in the western channel at (15,20); a lone
87
+ Soviet rifleman stands on the shore three cells east. The destroyer
88
+ can't land but its naval gun reaches across the water. Kill the
89
+ rifleman, within about 30 turns.
90
  overrides:
91
  actors:
92
  - {type: dd, owner: agent, position: [15, 20], stance: 0}
 
148
  # garrison (5 units) before tick 2700; keep at least one destroyer
149
  # alive.
150
  description: >
151
+ Two destroyers patrol the channel at (15,18) and (15,22). A Soviet
152
+ shore garrison of four riflemen and one anti-tank rocket soldier
153
+ waits at x=18 between y=17 and y=23. Shell the whole garrison from
154
+ the water โ€” five kills โ€” while keeping at least one destroyer
155
+ afloat, within about 30 turns.
156
  overrides:
157
  actors:
158
  - {type: dd, owner: agent, position: [15, 18], stance: 0}
openra_bench/scenarios/packs/combat-pincer-coordination.yaml CHANGED
@@ -158,9 +158,12 @@ levels:
158
  # tick 4500. Sending only one squad cannot satisfy the 4-in-region
159
  # clause. A stall loses on the clock.
160
  description: >
161
- Enemy includes 4 rifle infantry, 2 rocket soldiers. Kill at least 6
162
- enemy units. Get 4 units into the target zone. Lose at most 2. Within
163
- about 50 turns.
 
 
 
164
  overrides:
165
  actors:
166
  # Squad A (NORTH-WEST) โ€” 3 medium tanks at (5,8).
@@ -222,9 +225,12 @@ levels:
222
  # tanks are inside an 8-cell radius of (50,20) AND no more than 2
223
  # tanks are lost, before tick 4500.
224
  description: >
225
- Enemy includes 4 rifle infantry, 2 rocket soldiers, 2 medium tanks. Kill
226
- at least 6 enemy units. Get 4 units into the target zone. Lose at most
227
- 2. Within about 50 turns.
 
 
 
228
  overrides:
229
  actors:
230
  - {type: 2tnk, owner: agent, position: [5, 8], stance: 1, count: 3}
@@ -284,9 +290,12 @@ levels:
284
  # least 4 of your 6 tanks are inside an 8-cell radius of (50,20) AND
285
  # no more than 2 tanks are lost, before tick 4500.
286
  description: >
287
- Enemy includes 4 rifle infantry, 2 rocket soldiers, 2 medium tanks. Kill
288
- at least 6 enemy units. Get 4 units into the target zone. Lose at most
289
- 2. Within about 50 turns.
 
 
 
290
  overrides:
291
  actors:
292
  # spawn_point 0 โ€” Squad A NORTH (5,8), Squad B SOUTH (5,32).
 
158
  # tick 4500. Sending only one squad cannot satisfy the 4-in-region
159
  # clause. A stall loses on the clock.
160
  description: >
161
+ You have two tank squads โ€” three medium tanks in the NW corner at
162
+ (5,8) and three more in the SW at (5,32). A mid-map cluster of four
163
+ riflemen and two rocket soldiers sits at (50,20). Send both squads
164
+ at once so they hit from north and south together; one squad alone
165
+ can't satisfy the four-in-region clause. Six kills, four tanks at
166
+ (50,20), no more than two losses, within about 50 turns.
167
  overrides:
168
  actors:
169
  # Squad A (NORTH-WEST) โ€” 3 medium tanks at (5,8).
 
225
  # tanks are inside an 8-cell radius of (50,20) AND no more than 2
226
  # tanks are lost, before tick 4500.
227
  description: >
228
+ Same NW and SW staging โ€” three tanks each โ€” but the mid-map cluster
229
+ now adds two enemy medium tanks alongside the four rifles and two
230
+ rocket soldiers. A lone squad gets shredded by the armour before it
231
+ can clear. Launch both squads on turn one for a true pincer: six
232
+ kills, four tanks in the (50,20) disc, no more than two losses,
233
+ within about 50 turns.
234
  overrides:
235
  actors:
236
  - {type: 2tnk, owner: agent, position: [5, 8], stance: 1, count: 3}
 
290
  # least 4 of your 6 tanks are inside an 8-cell radius of (50,20) AND
291
  # no more than 2 tanks are lost, before tick 4500.
292
  description: >
293
+ Two tank squads start north and south along the west edge โ€” exact
294
+ cells vary by seed. The mid-map enemy mixes infantry with two of
295
+ their own medium tanks, which means a lone squad gets crushed before
296
+ help arrives. Drive both squads in simultaneously so neither side
297
+ bleeds out. Six kills, four tanks in the (50,20) disc, two losses or
298
+ fewer, within about 50 turns.
299
  overrides:
300
  actors:
301
  # spawn_point 0 โ€” Squad A NORTH (5,8), Squad B SOUTH (5,32).
openra_bench/scenarios/packs/combat-prevent-retreat.yaml CHANGED
@@ -106,8 +106,7 @@ meta:
106
  Multi-agent strike geometry: the placement of a "blocker" /
107
  "anvil" unit on the opposite side of the target BEFORE the main
108
  engagement opens is what converts a shove into a kill. The
109
- decision under test is spatial sequencing โ€” establish the cut-
110
- off via a path that avoids the enemy's effective weapon envelope,
111
  THEN engage; reversing the order forfeits the capability that
112
  the cut-off enables.
113
  benchmark_anchor:
@@ -159,9 +158,12 @@ levels:
159
  # the cluster but no tank reaches the east region โ€” also LOSES. Stall
160
  # LOSES on the clock.
161
  description: >
162
- Enemy includes 3 rocket soldiers, 3 rifle infantry. Kill at least 6
163
- enemy units. Get 1 units into the target zone. Keep at least 3 unit
164
- alive. Within about 50 turns.
 
 
 
165
  overrides:
166
  actors:
167
  # Strike force โ€” 4 medium tanks staged at the west edge.
@@ -225,9 +227,11 @@ levels:
225
  # with the remaining three, stopping to focus-fire the cluster. Head-
226
  # on, east-only, and stall all LOSE.
227
  description: >
228
- Enemy includes 3 rocket soldiers, 4 rifle infantry. Kill at least 7
229
- enemy units. Get 1 units into the target zone. Keep at least 3 unit
230
- alive. Within about 50 turns.
 
 
231
  overrides:
232
  actors:
233
  - {type: 2tnk, owner: agent, position: [6, 18], stance: 1}
@@ -285,9 +289,11 @@ levels:
285
  # three tanks, stopping to focus-fire the cluster. Head-on, east-only,
286
  # and stall all LOSE on every seed.
287
  description: >
288
- Enemy includes 5 rifle infantry, 3 rocket soldiers. Kill at least 8
289
- enemy units. Get 1 units into the target zone. Keep at least 3 unit
290
- alive. Within about 50 turns.
 
 
291
  overrides:
292
  actors:
293
  # spawn_point 0 โ€” NORTH staging corridor (y=12..15). Already
 
106
  Multi-agent strike geometry: the placement of a "blocker" /
107
  "anvil" unit on the opposite side of the target BEFORE the main
108
  engagement opens is what converts a shove into a kill. The
109
+ decision under test is spatial sequencing โ€” establish the cut-off via a path that avoids the enemy's effective weapon envelope,
 
110
  THEN engage; reversing the order forfeits the capability that
111
  the cut-off enables.
112
  benchmark_anchor:
 
158
  # the cluster but no tank reaches the east region โ€” also LOSES. Stall
159
  # LOSES on the clock.
160
  description: >
161
+ Four medium tanks at the west face a six-strong enemy cluster (three
162
+ rocket soldiers, three rifles) holding the centre. To complete the
163
+ encirclement you must slip one tank around the flank โ€” via y=5..10
164
+ or y=30..35, outside Dragon range โ€” to the cutoff disc at (85,20),
165
+ while the other three grind down the cluster. Six kills, one tank
166
+ east of (85,20), three tanks alive, within about 50 turns.
167
  overrides:
168
  actors:
169
  # Strike force โ€” 4 medium tanks staged at the west edge.
 
227
  # with the remaining three, stopping to focus-fire the cluster. Head-
228
  # on, east-only, and stall all LOSE.
229
  description: >
230
+ Same four medium tanks, but the cluster now holds three rocket
231
+ soldiers and four rifles across (60, y=16..22). Detach one tank up
232
+ or down the flank to reach the cutoff disc at (85,20); the other
233
+ three focus-fire the cluster from range. Seven kills, one tank in
234
+ the cutoff, three tanks alive, within about 50 turns.
235
  overrides:
236
  actors:
237
  - {type: 2tnk, owner: agent, position: [6, 18], stance: 1}
 
289
  # three tanks, stopping to focus-fire the cluster. Head-on, east-only,
290
  # and stall all LOSE on every seed.
291
  description: >
292
+ Tanks stage in the north or south corridor by seed; an eight-unit
293
+ enemy block (three rocket soldiers, five rifles) holds (60,
294
+ y=16..23). Send one tank around the appropriate flank to the cutoff
295
+ at (85,20), grind the cluster down with the rest. Eight kills, one
296
+ tank in the cutoff disc, three tanks alive, within about 50 turns.
297
  overrides:
298
  actors:
299
  # spawn_point 0 โ€” NORTH staging corridor (y=12..15). Already
openra_bench/scenarios/packs/combat-protect-vip-escort.yaml CHANGED
@@ -174,8 +174,12 @@ levels:
174
  # escort tanks must move AHEAD, destroy the interceptors, and only
175
  # then send the VIP across.
176
  description: >
177
- Enemy includes heavy tanks, 4 rifle infantry. Get 1 harvesters into the
178
- target zone. Field at least 1 harvesters. Within about 50 turns.
 
 
 
 
179
  overrides:
180
  actors:
181
  # VIP โ€” the single unique harvester at the west staging
@@ -243,8 +247,11 @@ levels:
243
  # unarmed VIP is caught and killed if it enters the route unescorted
244
  # or at the head of the column.
245
  description: >
246
- Enemy includes heavy tanks, 6 rifle infantry. Get 1 harvesters into the
247
- target zone. Field at least 1 harvesters. Within about 50 turns.
 
 
 
248
  overrides:
249
  actors:
250
  - {type: harv, owner: agent, position: [8, 20], stance: 0, health: 70}
@@ -300,8 +307,11 @@ levels:
300
  # caught and killed if it enters the route unescorted or at the head
301
  # of the column.
302
  description: >
303
- Enemy includes 2 heavy tanks, 3 rifle infantry. Get 1 harvesters into
304
- the target zone. Field at least 1 harvesters. Within about 50 turns.
 
 
 
305
  overrides:
306
  actors:
307
  # spawn_point 0 โ€” NORTH staging at y โ‰ˆ 16.
 
174
  # escort tanks must move AHEAD, destroy the interceptors, and only
175
  # then send the VIP across.
176
  description: >
177
+ A single unarmed harvester at (8,20) โ€” your VIP โ€” must reach the
178
+ extraction disc near (100,20) alive. Four medium tanks ride escort.
179
+ The route is blocked at x=49 by one Soviet heavy tank and four
180
+ riflemen; the heavy will hunt down a lone harvester. Push the
181
+ escorts ahead, clear the interceptors, then walk the VIP through,
182
+ within about 50 turns.
183
  overrides:
184
  actors:
185
  # VIP โ€” the single unique harvester at the west staging
 
247
  # unarmed VIP is caught and killed if it enters the route unescorted
248
  # or at the head of the column.
249
  description: >
250
+ Same lone harvester and four tank escorts, but the interception now
251
+ adds two more riflemen โ€” one heavy plus six rifles spread across
252
+ y=16..24. Lead with the tanks to break the line; the unarmed VIP
253
+ cannot survive a stray volley. Land the harvester in the (100,20)
254
+ disc within about 50 turns.
255
  overrides:
256
  actors:
257
  - {type: harv, owner: agent, position: [8, 20], stance: 0, health: 70}
 
307
  # caught and killed if it enters the route unescorted or at the head
308
  # of the column.
309
  description: >
310
+ Your harvester and four-tank escort spawn either on the north (y=16)
311
+ or south (y=24) row by seed. The route holds two Soviet heavies โ€”
312
+ one aligned to each lane โ€” plus a few riflemen. The escorts must
313
+ lead and break the interceptors before the VIP enters the route.
314
+ Reach the (100,20) disc within about 50 turns.
315
  overrides:
316
  actors:
317
  # spawn_point 0 โ€” NORTH staging at y โ‰ˆ 16.
openra_bench/scenarios/packs/combat-retreat-after-engagement.yaml CHANGED
@@ -161,9 +161,11 @@ levels:
161
  # tick 4000. Stall, brute attack-until-death, and never-engage all
162
  # LOSE.
163
  description: >
164
- Enemy includes 2 rocket soldiers, heavy tanks. Kill at least 2 enemy
165
- units. Get 3 units into the target zone. Keep at least 2 unit alive.
166
- Within about 45 turns.
 
 
167
  overrides:
168
  actors:
169
  # Strike force โ€” 4 medium tanks at the safe-zone start.
@@ -225,9 +227,11 @@ levels:
225
  # (5,20) AND you have โ‰ฅ3 tanks alive, before tick 4000. Stall, brute
226
  # attack-until-death, and never-engage all LOSE.
227
  description: >
228
- Enemy includes 3 rocket soldiers, heavy tanks. Kill at least 3 enemy
229
- units. Get 3 units into the target zone. Keep at least 3 unit alive.
230
- Within about 45 turns.
 
 
231
  overrides:
232
  actors:
233
  - {type: 2tnk, owner: agent, position: [5, 18], stance: 1}
@@ -303,9 +307,11 @@ levels:
303
  # tanks alive, before tick 4000. Stall, brute attack-until-death,
304
  # never-engage, and retreating to the WRONG safe zone all LOSE.
305
  description: >
306
- Enemy includes 2 rocket soldiers, heavy tanks. Kill at least 2 enemy
307
- units. (get 3 units into the target zone OR get 3 units into the target
308
- zone). Keep at least 3 unit alive. Within about 45 turns.
 
 
309
  overrides:
310
  actors:
311
  # spawn_point 0 โ€” NORTH safe zone (y=8..11)
 
161
  # tick 4000. Stall, brute attack-until-death, and never-engage all
162
  # LOSE.
163
  description: >
164
+ Four medium tanks sit in the western safe zone. Two anti-tank rocket
165
+ soldiers hold the firing line at x=60 with one heavy tank behind
166
+ them at x=64. The fight will chew you up if you stay; push east,
167
+ focus-fire the two rockets, then pull back. Two kills, three tanks
168
+ back in the (5,20) disc, two tanks alive, within about 45 turns.
169
  overrides:
170
  actors:
171
  # Strike force โ€” 4 medium tanks at the safe-zone start.
 
227
  # (5,20) AND you have โ‰ฅ3 tanks alive, before tick 4000. Stall, brute
228
  # attack-until-death, and never-engage all LOSE.
229
  description: >
230
+ Same four tanks in the western safe zone, but the firing line now
231
+ holds three rocket soldiers plus the rear heavy. Strike, kill all
232
+ three rockets, then disengage west before the heavy collapses the
233
+ column. Three kills, three tanks in the (5,20) disc, three tanks
234
+ alive, within about 45 turns.
235
  overrides:
236
  actors:
237
  - {type: 2tnk, owner: agent, position: [5, 18], stance: 1}
 
307
  # tanks alive, before tick 4000. Stall, brute attack-until-death,
308
  # never-engage, and retreating to the WRONG safe zone all LOSE.
309
  description: >
310
+ Four tanks stage in the north (5,10) or south (5,30) safe zone by
311
+ seed; two rocket soldiers and a heavy hold the centre at (60,20).
312
+ Strike, kill two rockets, then retreat to YOUR safe zone โ€” not the
313
+ wrong one. Two kills, three tanks in the matching disc, three tanks
314
+ alive, within about 45 turns.
315
  overrides:
316
  actors:
317
  # spawn_point 0 โ€” NORTH safe zone (y=8..11)
openra_bench/scenarios/packs/combat-rocket-soldier-anti-vehicle.yaml CHANGED
@@ -62,8 +62,7 @@ meta:
62
  (3tnk Soviet heavy on easy/medium, 4tnk Mammoth on hard). The agent
63
  must train ROCKET SOLDIERS (e3, the anti-vehicle Dragon launcher),
64
  not light tanks (1tnk โ€” the budget buys only ~2, which lose
65
- attrition to heavy armour) and not rifle infantry (e1 โ€” no anti-
66
- armour weapon, racks up zero kills against tank armour). The
67
  decision is the RPS counter CHOICE (matchup-winning unit type)
68
  given the visible threat composition.
69
  robotics_analogue: >
@@ -120,9 +119,12 @@ levels:
120
  # tick 4500. Stalling, spamming e1, and building light tanks all LOSE
121
  # on the kill bar or the clock.
122
  description: >
123
- Enemy includes 2 heavy tanks. Field at least 6 rocket soldiers. Kill at
124
- least 1 enemy units. Keep at least 1 unit alive. Keep your construction
125
- yard. Within about 50 turns.
 
 
 
126
  starting_cash: 1800
127
  overrides:
128
  actors:
@@ -177,9 +179,12 @@ levels:
177
  # heavy tanks before tick 4500. Stalling, spamming e1, and building
178
  # light tanks all LOSE.
179
  description: >
180
- Enemy includes 3 heavy tanks. Field at least 6 rocket soldiers. Kill at
181
- least 2 enemy units. Keep at least 1 unit alive. Keep your construction
182
- yard. Within about 50 turns.
 
 
 
183
  starting_cash: 1800
184
  overrides:
185
  actors:
@@ -234,9 +239,11 @@ levels:
234
  # advance east from your base, and kill at least TWO mammoth tanks
235
  # before tick 3600.
236
  description: >
237
- Enemy includes 3 mammoth tanks. Field at least 6 rocket soldiers. Kill
238
- at least 2 enemy units. Keep at least 1 unit alive. Keep your
239
- construction yard. Within about 40 turns.
 
 
240
  starting_cash: 1800
241
  overrides:
242
  actors:
 
62
  (3tnk Soviet heavy on easy/medium, 4tnk Mammoth on hard). The agent
63
  must train ROCKET SOLDIERS (e3, the anti-vehicle Dragon launcher),
64
  not light tanks (1tnk โ€” the budget buys only ~2, which lose
65
+ attrition to heavy armour) and not rifle infantry (e1 โ€” no anti-armour weapon, racks up zero kills against tank armour). The
 
66
  decision is the RPS counter CHOICE (matchup-winning unit type)
67
  given the visible threat composition.
68
  robotics_analogue: >
 
119
  # tick 4500. Stalling, spamming e1, and building light tanks all LOSE
120
  # on the kill bar or the clock.
121
  description: >
122
+ You have a full west-centre base (yard, power, barracks, war
123
+ factory, depot) and $1800 โ€” enough for exactly six rocket soldiers.
124
+ Two enemy heavy tanks hold position at (70, 18..22) on HoldFire.
125
+ Rifle infantry can't dent armour; light tanks lose the attrition
126
+ trade. Train six rockets, march east, kill at least one heavy, keep
127
+ the yard standing, within about 50 turns.
128
  starting_cash: 1800
129
  overrides:
130
  actors:
 
179
  # heavy tanks before tick 4500. Stalling, spamming e1, and building
180
  # light tanks all LOSE.
181
  description: >
182
+ Same west-centre base and $1800 budget โ€” six rocket soldiers is the
183
+ only composition that fits. Three enemy heavy tanks now wait at (70,
184
+ 18..22) under fog on HoldFire. Spamming rifles or light tanks burns
185
+ the budget without scratching armour. Train the rockets, advance
186
+ east, kill at least two heavies, keep the yard, within about 50
187
+ turns.
188
  starting_cash: 1800
189
  overrides:
190
  actors:
 
239
  # advance east from your base, and kill at least TWO mammoth tanks
240
  # before tick 3600.
241
  description: >
242
+ Same $1800 budget and rocket-soldier counter, but your base spawns
243
+ either north (y=12) or south (y=28), and the targets are three
244
+ mammoth tanks at (70, 18..22) โ€” even tougher than heavies. Train six
245
+ rockets, march east from whichever band you started in, kill two
246
+ mammoths, keep the yard, within about 40 turns.
247
  starting_cash: 1800
248
  overrides:
249
  actors:
openra_bench/scenarios/packs/combat-skirmish-then-disengage.yaml CHANGED
@@ -135,9 +135,11 @@ levels:
135
  # discriminator is the DISENGAGE order โ€” stop attacking and move_units
136
  # back to (5,20) once you have your 3 kills.
137
  description: >
138
- Enemy includes 4 rifle infantry. Kill at least 3 enemy units. Keep at
139
- least 3 unit alive. Get 3 units into the target zone. Within about 50
140
- turns.
 
 
141
  overrides:
142
  actors:
143
  # Strike force: 4 jeeps at the western staging point.
@@ -198,9 +200,11 @@ levels:
198
  # clause. Order the DISENGAGE after the third kill and drive west to
199
  # the recovery zone.
200
  description: >
201
- Enemy includes 6 rifle infantry. Kill at least 3 enemy units. Keep at
202
- least 3 unit alive. Get 3 units into the target zone. Within about 50
203
- turns.
 
 
204
  overrides:
205
  actors:
206
  - {type: jeep, owner: agent, position: [5, 19], stance: 0}
@@ -264,9 +268,11 @@ levels:
264
  # hunt bot ensures that a slow disengage also fails on the survival or
265
  # region clause.
266
  description: >
267
- Enemy includes 6 rifle infantry. Kill at least 3 enemy units. Keep at
268
- least 3 unit alive. (get 3 units into the target zone OR get 3 units
269
- into the target zone). Within about 50 turns.
 
 
270
  overrides:
271
  actors:
272
  # spawn_point 0 โ€” NORTH staging (y=10)
 
135
  # discriminator is the DISENGAGE order โ€” stop attacking and move_units
136
  # back to (5,20) once you have your 3 kills.
137
  description: >
138
+ Four jeeps at the western base face four enemy riflemen clustered
139
+ around (50,20). Drive east, gun down three of them, then pull back
140
+ so at least three jeeps end inside the 6-cell recovery disc around
141
+ (5,20). Staying at the kill site fails the region clause. Three
142
+ kills, three jeeps in recovery, within about 50 turns.
143
  overrides:
144
  actors:
145
  # Strike force: 4 jeeps at the western staging point.
 
200
  # clause. Order the DISENGAGE after the third kill and drive west to
201
  # the recovery zone.
202
  description: >
203
+ Same four jeeps at the western base; the cluster grows to six rifles
204
+ around (50,20). Killing all six eats the clock and leaves you
205
+ stranded forward. Order the disengage after the third kill and drive
206
+ west into the (5,20) recovery disc with three jeeps surviving,
207
+ within about 50 turns.
208
  overrides:
209
  actors:
210
  - {type: jeep, owner: agent, position: [5, 19], stance: 0}
 
268
  # hunt bot ensures that a slow disengage also fails on the survival or
269
  # region clause.
270
  description: >
271
+ Eight jeeps stage in the north (5,10) or south (5,30) staging area
272
+ by seed. Six enemy rifles cluster at (50,20) and actively hunt.
273
+ Strike, score three kills, then disengage back into YOUR matching
274
+ recovery disc with three jeeps inside, within about 50 turns. A slow
275
+ retreat lets the hunters catch you.
276
  overrides:
277
  actors:
278
  # spawn_point 0 โ€” NORTH staging (y=10)
openra_bench/scenarios/packs/combat-stance-mgmt-attack.yaml CHANGED
@@ -183,8 +183,12 @@ levels:
183
  # intact AND โ‰ฅ3 of 4 tanks survive, before tick 4500. Stalling (never
184
  # flipping) and timeout both LOSE.
185
  description: >
186
- Enemy includes 4 rifle infantry. Keep your construction yard. Kill at
187
- least 3 enemy units. Keep at least 3 unit alive. Within about 50 turns.
 
 
 
 
188
  overrides:
189
  actors:
190
  # Agent construction yard โ€” west edge, never under threat
@@ -243,9 +247,11 @@ levels:
243
  # AND your fact is intact AND โ‰ฅ3 of 4 tanks survive, before tick 4500.
244
  # Stall and timeout both LOSE.
245
  description: >
246
- Enemy includes 3 rifle infantry, light tanks. Keep your construction
247
- yard. Kill at least 4 enemy units. Keep at least 3 unit alive. Within
248
- about 50 turns.
 
 
249
  overrides:
250
  actors:
251
  - {type: fact, owner: agent, position: [5, 20]}
@@ -297,9 +303,11 @@ levels:
297
  # are killed AND your fact is intact AND โ‰ฅ3 of 4 tanks survive, before
298
  # tick 4500.
299
  description: >
300
- Enemy includes 3 rifle infantry, light tanks. Keep your construction
301
- yard. Kill at least 4 enemy units. Keep at least 3 unit alive. Within
302
- about 50 turns.
 
 
303
  overrides:
304
  actors:
305
  # Duplicate the fact across BOTH spawn groups at the same
 
183
  # intact AND โ‰ฅ3 of 4 tanks survive, before tick 4500. Stalling (never
184
  # flipping) and timeout both LOSE.
185
  description: >
186
+ Four medium tanks idle at the west edge on ReturnFire stance; four
187
+ enemy riflemen are scattered across the east, none in range to
188
+ provoke them. On stance:1 the tanks never engage. Flip them to
189
+ stance:3 (AttackAnything) and they hunt the scatter on their own.
190
+ Keep the yard, kill three, hold three tanks alive, within about 50
191
+ turns.
192
  overrides:
193
  actors:
194
  # Agent construction yard โ€” west edge, never under threat
 
247
  # AND your fact is intact AND โ‰ฅ3 of 4 tanks survive, before tick 4500.
248
  # Stall and timeout both LOSE.
249
  description: >
250
+ Same four tanks on ReturnFire at the west; the scatter is three
251
+ rifles and one light tank, all on HoldFire, so nothing comes to you.
252
+ Escalate the formation to AttackAnything with set_stance and let it
253
+ sweep. Four kills, yard standing, three tanks alive, within about 50
254
+ turns.
255
  overrides:
256
  actors:
257
  - {type: fact, owner: agent, position: [5, 20]}
 
303
  # are killed AND your fact is intact AND โ‰ฅ3 of 4 tanks survive, before
304
  # tick 4500.
305
  description: >
306
+ Four tanks stage on ReturnFire at the western edge in the NORTH or
307
+ SOUTH band by seed; three rifles and a light tank sit non-aggressive
308
+ across the east. A memorised hunt path won't generalise โ€” flip the
309
+ formation to AttackAnything and let the engine pathfind the kills.
310
+ Four kills, yard intact, three tanks alive, within about 50 turns.
311
  overrides:
312
  actors:
313
  # Duplicate the fact across BOTH spawn groups at the same
openra_bench/scenarios/packs/combat-suicide-charge-mission.yaml CHANGED
@@ -138,8 +138,10 @@ levels:
138
  # short of the objective. Commit the WHOLE force straight east, focus-
139
  # fire through the picket, accept the losses, and raze the fact.
140
  description: >
141
- Enemy includes 2 rocket soldiers, mammoth tanks. Destroy the enemy
142
- construction yard in the target zone. Within about 60 turns.
 
 
143
  overrides:
144
  actors:
145
  - {type: 2tnk, owner: agent, position: [6, 16], stance: 1, count: 2}
@@ -180,8 +182,11 @@ levels:
180
  # halting short of the objective. Commit everything, all-in, focus-
181
  # fire through the wall, and raze the fact.
182
  description: >
183
- Enemy includes 3 rocket soldiers, mammoth tanks. Destroy the enemy
184
- construction yard in the target zone. Within about 72 turns.
 
 
 
185
  overrides: {}
186
  win_condition:
187
  all_of:
@@ -211,8 +216,12 @@ levels:
211
  # both time out; only the whole-force all-in commit, focus-firing
212
  # through the picket, lands the killing blow on the fact.
213
  description: >
214
- Enemy includes 3 rocket soldiers, mammoth tanks. Destroy the enemy
215
- construction yard in the target zone. Within about 80 turns.
 
 
 
 
216
  overrides:
217
  actors:
218
  # spawn_point 0 โ€” NORTH staging (y=8..12)
 
138
  # short of the objective. Commit the WHOLE force straight east, focus-
139
  # fire through the picket, accept the losses, and raze the fact.
140
  description: >
141
+ A defended enemy construction yard sits at (110,20) on the far east.
142
+ Your strike package โ€” six tanks and four rocket soldiers โ€” can't
143
+ punch through the picket and keep the force intact, but the yard is
144
+ the only thing that matters. Commit everything straight in, focus-fire through the defenders, and raze the yard within about 60 turns.
145
  overrides:
146
  actors:
147
  - {type: 2tnk, owner: agent, position: [6, 16], stance: 1, count: 2}
 
182
  # halting short of the objective. Commit everything, all-in, focus-
183
  # fire through the wall, and raze the fact.
184
  description: >
185
+ Same far-east yard at (110,20), but the picket is heavier โ€” three
186
+ rocket soldiers spread across y=16/20/24 with a heavy tank behind at
187
+ x=109. Their rockets outrange you in any standoff. Don't try to
188
+ preserve the force: commit, focus-fire through the wall, and raze
189
+ the yard within about 72 turns.
190
  overrides: {}
191
  win_condition:
192
  all_of:
 
216
  # both time out; only the whole-force all-in commit, focus-firing
217
  # through the picket, lands the killing blow on the fact.
218
  description: >
219
+ Twelve tanks and eight rocket soldiers stage in the north or south
220
+ band by seed and must raze the defended enemy yard at (110,20).
221
+ Halting short or trying to keep the force alive will both miss the
222
+ clock. Commit the whole package all-in along whichever axis your
223
+ spawn opens, eat the casualties, and finish the yard within about 80
224
+ turns.
225
  overrides:
226
  actors:
227
  # spawn_point 0 โ€” NORTH staging (y=8..12)
openra_bench/scenarios/packs/combat-tank-vs-tank-engagement.yaml CHANGED
@@ -171,8 +171,11 @@ levels:
171
  # killed AND at least ONE of your tanks survives AND your base is
172
  # intact, before tick 2400.
173
  description: >
174
- Enemy includes 3 medium tanks. Kill at least 3 enemy units. Keep at
175
- least 1 unit alive. Keep your construction yard. Within about 27 turns.
 
 
 
176
  overrides:
177
  actors:
178
  # Agent base anchor (paranoia gate against the turn-1
@@ -240,8 +243,11 @@ levels:
240
  # tanks are killed AND at least TWO of your tanks survive AND your
241
  # base is intact, before tick 2400.
242
  description: >
243
- Enemy includes 4 medium tanks. Kill at least 3 enemy units. Keep at
244
- least 2 unit alive. Keep your construction yard. Within about 27 turns.
 
 
 
245
  overrides:
246
  actors:
247
  - {type: fact, owner: agent, position: [4, 20]}
@@ -295,8 +301,10 @@ levels:
295
  # ONE of your tanks survives AND your base is intact, before tick
296
  # 1200.
297
  description: >
298
- Enemy includes 3 medium tanks. Kill at least 3 enemy units. Keep at
299
- least 1 unit alive. Keep your construction yard. Within about 14 turns.
 
 
300
  overrides:
301
  actors:
302
  # Agent base anchor โ€” duplicated under BOTH spawn_point
 
171
  # killed AND at least ONE of your tanks survives AND your base is
172
  # intact, before tick 2400.
173
  description: >
174
+ Three medium tanks at (30, 19..21) face three enemy mediums along a
175
+ vertical line at (50, 15..25). Close to cannon range and focus-fire
176
+ one tank at a time starting with the nearest โ€” driving straight into
177
+ their midst bunches you in crossfire and wipes the squad. Three
178
+ kills, one tank alive, yard intact, within about 27 turns.
179
  overrides:
180
  actors:
181
  # Agent base anchor (paranoia gate against the turn-1
 
243
  # tanks are killed AND at least TWO of your tanks survive AND your
244
  # base is intact, before tick 2400.
245
  description: >
246
+ Same three tanks at (30, 19..21) but now outnumbered against four
247
+ enemy mediums spread along the eastern line. Hold at cannon range
248
+ and focus-fire one by one; brute attack-move into the cluster gets
249
+ you wiped. Three kills, two tanks alive, yard intact, within about
250
+ 27 turns.
251
  overrides:
252
  actors:
253
  - {type: fact, owner: agent, position: [4, 20]}
 
301
  # ONE of your tanks survives AND your base is intact, before tick
302
  # 1200.
303
  description: >
304
+ Three tanks stage in the north or south corridor by seed at x=30;
305
+ three enemy mediums hold the line at (50, 15..25). Same focus-fire
306
+ doctrine, but the clock is brutal โ€” about 14 turns โ€” so you can't
307
+ dither. Kill all three, keep one tank alive, yard intact.
308
  overrides:
309
  actors:
310
  # Agent base anchor โ€” duplicated under BOTH spawn_point
openra_bench/scenarios/packs/combat-tanya-vs-rush.yaml CHANGED
@@ -42,8 +42,7 @@ meta:
42
  intended policy issues attack-move (or flips her stance to defend
43
  /attack-anything) and wins; stall loses.
44
  robotics_analogue: >
45
- Hero / commando doctrine โ€” a single high-DPS asset is force-
46
- multiplying only when active. A door-kicker robot held in
47
  standby while threats approach is wasted. The capability is
48
  "commit the hero asset to the engagement" โ€” operators who fail
49
  to commit, lose the asset and the engagement.
@@ -90,8 +89,11 @@ levels:
90
  # dies. Win when โ‰ฅ4 enemy units are killed AND tanya is still alive,
91
  # before tick 2700.
92
  description: >
93
- Enemy includes 4 rifle infantry. Kill at least 4 enemy units. Keep at
94
- least 1 unit alive. Within about 30 turns.
 
 
 
95
  overrides:
96
  actors:
97
  # Tanya โ€” stance:0 HoldFire so a stall policy (or a blind
@@ -137,8 +139,11 @@ levels:
137
  # tanya kills the whole pack; observe and she dies. Win when โ‰ฅ6 enemy
138
  # units are killed AND tanya is still alive, before tick 2700.
139
  description: >
140
- Enemy includes 6 rifle infantry. Kill at least 6 enemy units. Keep at
141
- least 1 unit alive. Within about 30 turns.
 
 
 
142
  overrides:
143
  actors:
144
  - {type: tanya, owner: agent, position: [60, 20], stance: 0}
@@ -181,8 +186,11 @@ levels:
181
  # the pack. Observe and she dies. Win when โ‰ฅ6 enemy units are killed
182
  # AND tanya is still alive, before tick 2700.
183
  description: >
184
- Enemy includes 12 rifle infantry. Kill at least 6 enemy units. Keep at
185
- least 1 unit alive. Within about 30 turns.
 
 
 
186
  overrides:
187
  actors:
188
  - {type: tanya, owner: agent, position: [60, 20], stance: 0}
 
42
  intended policy issues attack-move (or flips her stance to defend
43
  /attack-anything) and wins; stall loses.
44
  robotics_analogue: >
45
+ Hero / commando doctrine โ€” a single high-DPS asset is force-multiplying only when active. A door-kicker robot held in
 
46
  standby while threats approach is wasted. The capability is
47
  "commit the hero asset to the engagement" โ€” operators who fail
48
  to commit, lose the asset and the engagement.
 
89
  # dies. Win when โ‰ฅ4 enemy units are killed AND tanya is still alive,
90
  # before tick 2700.
91
  description: >
92
+ A lone Tanya commando stands at (60,20) on HoldFire. Four Soviet
93
+ riflemen rush from the east on attack-anything stance. Tanya's
94
+ pistol shreds them at point-blank, but only if you give the order โ€”
95
+ observe and she dies. Issue an attack and kill all four, keeping her
96
+ alive, within about 30 turns.
97
  overrides:
98
  actors:
99
  # Tanya โ€” stance:0 HoldFire so a stall policy (or a blind
 
139
  # tanya kills the whole pack; observe and she dies. Win when โ‰ฅ6 enemy
140
  # units are killed AND tanya is still alive, before tick 2700.
141
  description: >
142
+ Tanya holds at (60,20) on HoldFire. Six rifles rush from two tight
143
+ ranks at the east. Give her the order โ€” attack_move or attack each
144
+ in turn โ€” and she'll cut down the whole pack at close range. Observe
145
+ and she's overwhelmed. Six kills, Tanya alive, within about 30
146
+ turns.
147
  overrides:
148
  actors:
149
  - {type: tanya, owner: agent, position: [60, 20], stance: 0}
 
186
  # the pack. Observe and she dies. Win when โ‰ฅ6 enemy units are killed
187
  # AND tanya is still alive, before tick 2700.
188
  description: >
189
+ Tanya stands on HoldFire at (60,20). Six rifles rush from the north
190
+ (y=15..17) or south (y=23..25) corridor depending on seed. Read
191
+ which way they come, point Tanya at them, and she shreds the pack.
192
+ Sitting idle lets them gang up. Six kills, Tanya alive, within about
193
+ 30 turns.
194
  overrides:
195
  actors:
196
  - {type: tanya, owner: agent, position: [60, 20], stance: 0}
openra_bench/scenarios/packs/combat-target-priority-highvalue.yaml CHANGED
@@ -149,9 +149,12 @@ levels:
149
  # 3 tanks survive AND your construction yard still stands, before tick
150
  # 2700.
151
  description: >
152
- Enemy includes 9 rifle infantry, 3 rocket soldiers. Kill at least 12
153
- enemy units. Keep at least 3 unit alive. Have at least 1 construction
154
- yard. Within about 30 turns.
 
 
 
155
  overrides:
156
  actors:
157
  # Strike force โ€” 4 medium tanks staging mid-west.
@@ -238,9 +241,11 @@ levels:
238
  # cluster. Win when 15 enemy units are killed AND at least 3 tanks
239
  # survive AND your construction yard still stands, before tick 2700.
240
  description: >
241
- Enemy includes 12 rifle infantry, 3 rocket soldiers. Kill at least 15
242
- enemy units. Keep at least 3 unit alive. Have at least 1 construction
243
- yard. Within about 30 turns.
 
 
244
  overrides:
245
  actors:
246
  - {type: 2tnk, owner: agent, position: [48, 18], stance: 1}
@@ -312,9 +317,11 @@ levels:
312
  # least 3 tanks survive AND your construction yard still stands,
313
  # before tick 2700.
314
  description: >
315
- Enemy includes 12 rifle infantry, 3 rocket soldiers. Kill at least 15
316
- enemy units. Keep at least 3 unit alive. Have at least 1 construction
317
- yard. Within about 30 turns.
 
 
318
  overrides:
319
  actors:
320
  # spawn_point 0 โ€” NORTH staging corridor (y=10..13).
 
149
  # 3 tanks survive AND your construction yard still stands, before tick
150
  # 2700.
151
  description: >
152
+ Four medium tanks at x=48 face an eastern cluster: a screen of nine
153
+ riflemen at x=66 backed by three anti-tank rocket soldiers at x=69.
154
+ Concentrate all four tanks on one rocket soldier at a time first โ€”
155
+ they're the only real threat to armour โ€” then mop up the rifle
156
+ chaff. Twelve kills, three tanks alive, yard intact, within about 30
157
+ turns.
158
  overrides:
159
  actors:
160
  # Strike force โ€” 4 medium tanks staging mid-west.
 
241
  # cluster. Win when 15 enemy units are killed AND at least 3 tanks
242
  # survive AND your construction yard still stands, before tick 2700.
243
  description: >
244
+ Same four tanks, same staging โ€” but the rifle screen swells to
245
+ twelve and the three rocket soldiers still sit behind them. Engaging
246
+ the chaff first lets the rockets attrit you through the whole mop-up. Focus all four guns on each rocket soldier in turn, then clear
247
+ the rifles. Fifteen kills, three tanks alive, yard intact, within
248
+ about 30 turns.
249
  overrides:
250
  actors:
251
  - {type: 2tnk, owner: agent, position: [48, 18], stance: 1}
 
317
  # least 3 tanks survive AND your construction yard still stands,
318
  # before tick 2700.
319
  description: >
320
+ Four tanks stage in the north or south corridor by seed; twelve
321
+ riflemen screen three rocket soldiers at the eastern cluster. Same
322
+ doctrine wins on either spawn โ€” pop the rocket soldiers first with
323
+ concentrated fire, then sweep the rifles. Fifteen kills, three tanks
324
+ alive, yard intact, within about 30 turns.
325
  overrides:
326
  actors:
327
  # spawn_point 0 โ€” NORTH staging corridor (y=10..13).
openra_bench/scenarios/packs/combat-vehicle-vs-infantry-counter.yaml CHANGED
@@ -129,8 +129,7 @@ meta:
129
  attrition. Matching the enemy with own rifles is a 1:1 trade
130
  with no positional advantage and loses. Stalling never reaches
131
  the kill bar. The capability under test is hard-counter
132
- SELECTION: scout the threat composition, infer it has no anti-
133
- armour, and commit the WHOLE budget to the dominant counter.
134
  robotics_analogue: >
135
  Capability counter-selection in defense procurement / fleet
136
  composition: buying anti-tank guided missiles is wrong against
@@ -195,8 +194,11 @@ levels:
195
  # tick 5400. Stalling or picking the wrong counter never fields the
196
  # 3-tank fist and fails the bar.
197
  description: >
198
- Enemy includes 8 rifle infantry. Field at least 3 medium tanks. Kill at
199
- least 6 enemy units. Keep your construction yard. Within about 60 turns.
 
 
 
200
  overrides:
201
  actors:
202
  - {type: fact, owner: agent, position: [10, 20]}
@@ -255,8 +257,10 @@ levels:
255
  # tanks (2tnk) AND 8 enemy units are killed AND your fact still
256
  # stands, before tick 5400.
257
  description: >
258
- Enemy includes 12 rifle infantry. Field at least 3 medium tanks. Kill at
259
- least 8 enemy units. Keep your construction yard. Within about 60 turns.
 
 
260
  overrides:
261
  actors:
262
  - {type: fact, owner: agent, position: [10, 20]}
@@ -319,8 +323,11 @@ levels:
319
  # (2tnk) AND 8 enemy units are killed AND your fact still stands,
320
  # before tick 5400.
321
  description: >
322
- Enemy includes 12 rifle infantry. Field at least 3 medium tanks. Kill at
323
- least 8 enemy units. Keep your construction yard. Within about 60 turns.
 
 
 
324
  overrides:
325
  actors:
326
  # โ”€โ”€ AGENT spawn 0 โ€” NORTH base (y=12) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
 
129
  attrition. Matching the enemy with own rifles is a 1:1 trade
130
  with no positional advantage and loses. Stalling never reaches
131
  the kill bar. The capability under test is hard-counter
132
+ SELECTION: scout the threat composition, infer it has no anti-armour, and commit the WHOLE budget to the dominant counter.
 
133
  robotics_analogue: >
134
  Capability counter-selection in defense procurement / fleet
135
  composition: buying anti-tank guided missiles is wrong against
 
194
  # tick 5400. Stalling or picking the wrong counter never fields the
195
  # 3-tank fist and fails the bar.
196
  description: >
197
+ You have a full base, $2550, and a scout jeep. The enemy holds the
198
+ centre with eight riflemen. Your budget buys exactly one composition
199
+ that wins: three medium tanks at $850 each. Rifles bounce off the
200
+ rifle mass, rockets waste cost-per-effect. Scout, build the three
201
+ tanks, kill six, keep the yard, within about 60 turns.
202
  overrides:
203
  actors:
204
  - {type: fact, owner: agent, position: [10, 20]}
 
257
  # tanks (2tnk) AND 8 enemy units are killed AND your fact still
258
  # stands, before tick 5400.
259
  description: >
260
+ Same $2550 base and starter jeep, but the centre garrison is now
261
+ twelve riflemen โ€” under fog. Scout to confirm no anti-tank threats
262
+ hide in there. Three medium tanks ($2550 total) walk through small-arms fire; rockets and own-rifle counters lose the trade. Build the
263
+ trio, kill eight, keep the yard, within about 60 turns.
264
  overrides:
265
  actors:
266
  - {type: fact, owner: agent, position: [10, 20]}
 
323
  # (2tnk) AND 8 enemy units are killed AND your fact still stands,
324
  # before tick 5400.
325
  description: >
326
+ Your full base spawns either north (y=12) or south (y=28) by seed;
327
+ $2550 budget and a scout jeep. Twelve enemy rifles hold the centre
328
+ lane under fog. Same logic โ€” three medium tanks counter soft
329
+ infantry cleanly; rockets and rifles don't. Scout, train the trio,
330
+ kill eight, keep the yard, within about 60 turns.
331
  overrides:
332
  actors:
333
  # โ”€โ”€ AGENT spawn 0 โ€” NORTH base (y=12) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
openra_bench/scenarios/packs/coord-converge-on-target.yaml CHANGED
@@ -101,8 +101,11 @@ levels:
101
  # two squads only 6 โ€” both short of the 9-tank convergence threshold.
102
  # A stall loses on the clock.
103
  description: >
104
- Enemy includes 3 rifle infantry. Get 9 units into the target zone.
105
- Destroy the enemy construction yard. Within about 50 turns.
 
 
 
106
  overrides:
107
  actors:
108
  # NORTH squad โ€” 3 medium tanks at (70,6).
@@ -155,8 +158,10 @@ levels:
155
  # single squad delivers only 3 tanks, two squads only 6. A stall loses
156
  # on the clock.
157
  description: >
158
- Enemy includes 4 rifle infantry. Get 9 units into the target zone.
159
- Destroy the enemy construction yard. Within about 50 turns.
 
 
160
  overrides:
161
  actors:
162
  - {type: 2tnk, owner: agent, position: [70, 6], stance: 1, count: 3}
@@ -211,8 +216,11 @@ levels:
211
  # single squad delivers 3 tanks, two squads 6 โ€” both short of the n=9
212
  # convergence threshold.
213
  description: >
214
- Enemy includes 4 rifle infantry. Get 9 units into the target zone.
215
- Destroy the enemy construction yard. Within about 50 turns.
 
 
 
216
  overrides:
217
  actors:
218
  # spawn_point 0 โ€” NORTH / WEST-of-objective / SOUTH.
 
101
  # two squads only 6 โ€” both short of the 9-tank convergence threshold.
102
  # A stall loses on the clock.
103
  description: >
104
+ Three tank squads โ€” three mediums each โ€” stage north (70,6), west
105
+ (66,20), and south (70,34) of the defended enemy yard at (100,20).
106
+ Three leashed riflemen guard it. Drive all three squads in together;
107
+ one or two alone can't put nine tanks in the (100,20) disc. Raze the
108
+ yard, within about 50 turns.
109
  overrides:
110
  actors:
111
  # NORTH squad โ€” 3 medium tanks at (70,6).
 
158
  # single squad delivers only 3 tanks, two squads only 6. A stall loses
159
  # on the clock.
160
  description: >
161
+ Same three squads from N, W, and S โ€” but the yard at (100,20) now
162
+ has four leashed riflemen, one on each face. All nine tanks must
163
+ arrive in the (100,20) disc and the yard must fall. Send every squad
164
+ at once, within about 50 turns.
165
  overrides:
166
  actors:
167
  - {type: 2tnk, owner: agent, position: [70, 6], stance: 1, count: 3}
 
216
  # single squad delivers 3 tanks, two squads 6 โ€” both short of the n=9
217
  # convergence threshold.
218
  description: >
219
+ Three squads of three medium tanks each from N, W, and S, with the
220
+ exact staging cells shifted per seed. The defended yard at (100,20)
221
+ still wears four leashed riflemen. Launch synchronously so all nine
222
+ tanks converge in the (100,20) disc; raze the yard within about 50
223
+ turns.
224
  overrides:
225
  actors:
226
  # spawn_point 0 โ€” NORTH / WEST-of-objective / SOUTH.
openra_bench/scenarios/packs/coord-cover-and-move.yaml CHANGED
@@ -166,8 +166,12 @@ levels:
166
  # draw fire while the other sweeps through the periphery (y outside
167
  # the centre fire zone) and crosses; then switch.
168
  description: >
169
- Enemy includes 3 rocket soldiers, 2 mammoth tanks. Get 4 units into the
170
- target zone. Lose at most 1. Within about 50 turns.
 
 
 
 
171
  overrides:
172
  actors:
173
  # Squad A โ€” northern fire team, staged at (10, 15).
@@ -238,8 +242,11 @@ levels:
238
  # band. Each squad takes โ‰ค1 loss because the fire is SPLIT per phase,
239
  # not stacked.
240
  description: >
241
- Enemy includes 4 rocket soldiers, 2 mammoth tanks. Get 4 units into the
242
- target zone. Lose at most 1. Within about 50 turns.
 
 
 
243
  overrides:
244
  actors:
245
  - {type: 2tnk, owner: agent, position: [10, 14], stance: 1}
@@ -310,8 +317,11 @@ levels:
310
  # the east. Then the roles alternate. Zero loss is only achievable by
311
  # routing every tank around the centre fire zone, never through it.
312
  description: >
313
- Enemy includes 4 rocket soldiers, 2 mammoth tanks, 6 rifle infantry. Get
314
- 4 units into the target zone. Lose at most 0. Within about 50 turns.
 
 
 
315
  overrides:
316
  actors:
317
  # spawn_point 0 โ€” NORTH-WEST staging (Squad A at (10,12)
 
166
  # draw fire while the other sweeps through the periphery (y outside
167
  # the centre fire zone) and crosses; then switch.
168
  description: >
169
+ Two squads of three medium tanks each stage at (10,15) and (10,25).
170
+ The centre at (50,20) holds three rocket soldiers anchored by two
171
+ heavy tanks. Charging both squads straight through busts the loss
172
+ cap. Use bounding overwatch: one squad anchors and draws fire from
173
+ the edge while the other sweeps the periphery, then swap. Four tanks
174
+ at (100,20), one loss max, within about 50 turns.
175
  overrides:
176
  actors:
177
  # Squad A โ€” northern fire team, staged at (10, 15).
 
242
  # band. Each squad takes โ‰ค1 loss because the fire is SPLIT per phase,
243
  # not stacked.
244
  description: >
245
+ Same two-squad setup, but the centre now packs four rocket soldiers
246
+ and two heavy tanks. Drive one squad up to the edge of enemy range
247
+ to draw fire while the other sweeps wide (y=6..9 or y=31..34) past
248
+ the fire zone, then alternate roles. Four tanks at (100,20), at most
249
+ one loss, within about 50 turns.
250
  overrides:
251
  actors:
252
  - {type: 2tnk, owner: agent, position: [10, 14], stance: 1}
 
317
  # the east. Then the roles alternate. Zero loss is only achievable by
318
  # routing every tank around the centre fire zone, never through it.
319
  description: >
320
+ Two tank squads stage at the NW or SW corner by seed. The centre
321
+ fire zone now adds rifle screens to the four rockets and two heavies
322
+ โ€” and the loss cap is zero. The only safe route is bounding
323
+ overwatch through the FAR periphery, alternating cover and move on
324
+ every leg. Four tanks at (100,20), no losses, within about 50 turns.
325
  overrides:
326
  actors:
327
  # spawn_point 0 โ€” NORTH-WEST staging (Squad A at (10,12)
openra_bench/scenarios/packs/coord-diversionary-attack.yaml CHANGED
@@ -184,9 +184,12 @@ levels:
184
  # the tank column should survive the lightly-defended fact with at
185
  # most 1โ€“2 hits taken).
186
  description: >
187
- Enemy includes rifle infantry, power plant, 3 rocket soldiers. Destroy
188
- the enemy construction yard in the target zone. Lose at most 5. Within
189
- about 60 turns.
 
 
 
190
  overrides:
191
  actors:
192
  # โ”€โ”€ AGENT โ€” Squad A (NW, jeeps) + Squad B (SW, 2tnks) โ”€โ”€
@@ -244,9 +247,11 @@ levels:
244
  # may lose at most 4 units (the 3 bait jeeps are expendable; the tank
245
  # column should not bleed more than 1 to the lightly-garrisoned fact).
246
  description: >
247
- Enemy includes rifle infantry, power plant, 5 rocket soldiers. Destroy
248
- the enemy construction yard in the target zone. Lose at most 4. Within
249
- about 60 turns.
 
 
250
  overrides:
251
  actors:
252
  - {type: jeep, owner: agent, position: [6, 10], stance: 1, count: 3}
@@ -305,9 +310,11 @@ levels:
305
  # frontal, lazy nearest assignment, stall, bait-only, and wrong-type
306
  # strike (powr) all lose.
307
  description: >
308
- Enemy includes rifle infantry, power plant, 5 rocket soldiers. Destroy
309
- the enemy construction yard in the target zone. Lose at most 4. Within
310
- about 60 turns.
 
 
311
  overrides:
312
  actors:
313
  # spawn_point 0 โ€” NORTH staging (jeeps + tanks at yโ‰ˆ10..14).
 
184
  # the tank column should survive the lightly-defended fact with at
185
  # most 1โ€“2 hits taken).
186
  description: >
187
+ Two enemy buildings sit on the east: the real yard at (100,10)
188
+ guarded by one rifleman, and a decoy power plant at (100,30) guarded
189
+ by three rocket soldiers. Only razing the real yard scores. Send
190
+ your three jeeps south-east to bait the rocket cluster; drive the
191
+ four medium tanks north-east through the thin perimeter and demolish
192
+ the yard within about 60 turns. At most five losses.
193
  overrides:
194
  actors:
195
  # โ”€โ”€ AGENT โ€” Squad A (NW, jeeps) + Squad B (SW, 2tnks) โ”€โ”€
 
247
  # may lose at most 4 units (the 3 bait jeeps are expendable; the tank
248
  # column should not bleed more than 1 to the lightly-garrisoned fact).
249
  description: >
250
+ Same setup, but the decoy is now guarded by five rocket soldiers โ€” a
251
+ frontal charge there gets your tanks shredded. Send the three jeeps
252
+ south as bait to pull the rocket cluster into pursuit; push the four
253
+ medium tanks north-east and raze the real yard at (100,10) within
254
+ about 60 turns. At most four losses.
255
  overrides:
256
  actors:
257
  - {type: jeep, owner: agent, position: [6, 10], stance: 1, count: 3}
 
310
  # frontal, lazy nearest assignment, stall, bait-only, and wrong-type
311
  # strike (powr) all lose.
312
  description: >
313
+ Same real-yard-vs-decoy layout, but your jeeps and tanks now spawn
314
+ from a north or south staging band by seed. Use the jeeps as bait
315
+ against the five-rocket decoy guard; push the tanks along the
316
+ northern corridor (y=8..14) and raze the real yard at (100,10). At
317
+ most four losses, within about 60 turns.
318
  overrides:
319
  actors:
320
  # spawn_point 0 โ€” NORTH staging (jeeps + tanks at yโ‰ˆ10..14).
openra_bench/scenarios/packs/coord-mutual-support.yaml CHANGED
@@ -175,9 +175,12 @@ levels:
175
  # never advances, so the region bar is never met and the clock runs
176
  # out).
177
  description: >
178
- Enemy includes 7 rocket soldiers. Get 5 units into the target zone. Get
179
- 5 units into the target zone. Kill at least 5 enemy units. Keep at least
180
- 5 unit alive. Within about 50 turns.
 
 
 
181
  overrides:
182
  actors:
183
  # STRIKE FORCE โ€” 6 medium tanks at the west edge, stance:1
@@ -248,9 +251,12 @@ levels:
248
  # the whole squad concentrates its cannon fire and erases each cluster
249
  # in one or two volleys. Stall LOSES.
250
  description: >
251
- Enemy includes 11 rocket soldiers. Get 5 units into the target zone. Get
252
- 5 units into the target zone. Kill at least 7 enemy units. Keep at least
253
- 5 unit alive. Within about 50 turns.
 
 
 
254
  overrides:
255
  actors:
256
  - {type: 2tnk, owner: agent, position: [6, 17], stance: 1}
@@ -331,9 +337,12 @@ levels:
331
  # before each contact, concentrate the squad's cannon fire on each
332
  # cluster in turn. Stall LOSES.
333
  description: >
334
- Enemy includes 10 rocket soldiers. Get 5 units into the target zone. Get
335
- 5 units into the target zone. Kill at least 8 enemy units. Keep at least
336
- 5 unit alive. Within about 50 turns.
 
 
 
337
  overrides:
338
  actors:
339
  # spawn_point 0 โ€” NORTH staging corridor (y=10..15). The ball
 
175
  # never advances, so the region bar is never met and the clock runs
176
  # out).
177
  description: >
178
+ Six medium tanks stage at the west edge. A harasser cluster of three
179
+ anti-tank rocket soldiers hides south of the lane around (40,23),
180
+ and four more sit at the objective around (60,20). Advance as a
181
+ tight ball so every cluster eats the squad's concentrated fire at
182
+ once โ€” a strung-out column gets picked off lead-first. Five tanks at
183
+ (60,20), five kills, five alive, within about 50 turns.
184
  overrides:
185
  actors:
186
  # STRIKE FORCE โ€” 6 medium tanks at the west edge, stance:1
 
251
  # the whole squad concentrates its cannon fire and erases each cluster
252
  # in one or two volleys. Stall LOSES.
253
  description: >
254
+ Six tanks at the west face two bracketing harasser clusters (three
255
+ rockets each, north and south of the lane around x=35..44) plus a
256
+ five-rocket objective at (60,20). Hold the formation tight โ€” regroup
257
+ before each contact so the whole squad's guns concentrate. Pass the
258
+ (40,20) checkpoint with five tanks together, then put five into the
259
+ (60,20) disc with seven kills and five alive, within about 50 turns.
260
  overrides:
261
  actors:
262
  - {type: 2tnk, owner: agent, position: [6, 17], stance: 1}
 
337
  # before each contact, concentrate the squad's cannon fire on each
338
  # cluster in turn. Stall LOSES.
339
  description: >
340
+ Twelve tanks stage in the north or south corridor by seed. Three
341
+ rocket clusters line the route โ€” south at x=32..33 y=25, north at
342
+ x=40..41 y=15, on-axis at x=46..47 y=20 โ€” plus four more rockets at
343
+ the (60,20) objective. Keep the ball tight; regroup before every
344
+ contact. Pass the (43,20) checkpoint with five tanks, land five in
345
+ the (60,20) disc, eight kills, five alive, within about 50 turns.
346
  overrides:
347
  actors:
348
  # spawn_point 0 โ€” NORTH staging corridor (y=10..15). The ball
openra_bench/scenarios/packs/coord-relay-attack.yaml CHANGED
@@ -131,9 +131,10 @@ levels:
131
  # the total destroyed to โ‰ฅ4 before tick 3000. Lose if the clock runs
132
  # out or you lose more than 4 of your own units.
133
  description: >
134
- Enemy includes medium tanks, 3 rifle infantry, refinery. Kill at least 1
135
- enemy units. Kill at least 4 enemy units. Lose at most 4. Within about
136
- 34 turns.
 
137
  overrides:
138
  actors:
139
  # Squad A: 4ร— 2tnk heavy tanks at WEST. stance:2 (Defend) so
@@ -198,9 +199,11 @@ levels:
198
  # rifle infantry to the un-suppressed enemy 2ร— 2tnk (which one-shots
199
  # e1) and blows the attrition cap.
200
  description: >
201
- Enemy includes 2 medium tanks, 4 rifle infantry, refinery. Kill at least
202
- 2 enemy units. Kill at least 6 enemy units. Lose at most 4. Within about
203
- 45 turns.
 
 
204
  overrides:
205
  actors:
206
  # Squad A: 4ร— 2tnk heavy tanks at WEST. stance:2 (Defend) โ€”
@@ -259,9 +262,11 @@ levels:
259
  # your own units. Sending B in alone, or both squads together, exposes
260
  # the rifle infantry to enemy tank fire and blows the attrition cap.
261
  description: >
262
- Enemy includes 3 medium tanks, 5 rifle infantry, refinery. Kill at least
263
- 3 enemy units. Kill at least 8 enemy units. Lose at most 4. Within about
264
- 50 turns.
 
 
265
  overrides:
266
  actors:
267
  # NORTH staging (spawn_point 0): A above, B below-and-back.
 
131
  # the total destroyed to โ‰ฅ4 before tick 3000. Lose if the clock runs
132
  # out or you lose more than 4 of your own units.
133
  description: >
134
+ Squad A is four medium tanks at (15,20); Squad B is four riflemen at
135
+ (5,30). The centre cluster (one enemy tank plus three rifles) one-shots your infantry on contact. Tanks engage first and kill the
136
+ enemy tank, then send the rifles to mop up the infantry โ€” four kills
137
+ total, no more than four losses, within about 34 turns.
138
  overrides:
139
  actors:
140
  # Squad A: 4ร— 2tnk heavy tanks at WEST. stance:2 (Defend) so
 
199
  # rifle infantry to the un-suppressed enemy 2ร— 2tnk (which one-shots
200
  # e1) and blows the attrition cap.
201
  description: >
202
+ Squad A is four medium tanks; Squad B is four riflemen โ€” both
203
+ starting on the west. The centre holds two enemy tanks plus four
204
+ rifles. Lead with the armour to kill both enemy tanks, then walk the
205
+ infantry in to clean up. Six kills total, no more than four losses,
206
+ within about 45 turns.
207
  overrides:
208
  actors:
209
  # Squad A: 4ร— 2tnk heavy tanks at WEST. stance:2 (Defend) โ€”
 
262
  # your own units. Sending B in alone, or both squads together, exposes
263
  # the rifle infantry to enemy tank fire and blows the attrition cap.
264
  description: >
265
+ Squad A (four tanks) and Squad B (four rifles) stage on the west,
266
+ either north or south by seed; B is set back from A. The centre
267
+ holds three enemy tanks plus five rifles. Kill all three enemy tanks
268
+ with the armour first, then mop up the infantry with the rifles.
269
+ Eight kills, no more than four losses, within about 50 turns.
270
  overrides:
271
  actors:
272
  # NORTH staging (spawn_point 0): A above, B below-and-back.
openra_bench/scenarios/packs/coord-relay-vision-chain.yaml CHANGED
@@ -184,9 +184,12 @@ levels:
184
  # bunching all jeeps together can occupy only one region at a time โ€”
185
  # all lose.
186
  description: >
187
- Enemy includes 2 rocket soldiers. Get 1 units into the target zone. Get
188
- 1 units into the target zone. Get 1 units into the target zone. Discover
189
- at least 2 enemies. Have at least 1 construction yard. Within about 27.
 
 
 
190
  overrides:
191
  actors:
192
  # 4 jeep scouts at the WEST base, stance:0 (pure perception).
@@ -240,9 +243,11 @@ levels:
240
  # standing, and the clock under tick 1900. Stalling, sending one jeep
241
  # out alone, and bunching the jeeps all lose.
242
  description: >
243
- Enemy includes 3 rocket soldiers. Get 1 units into the target zone. Get
244
- 1 units into the target zone. Get 1 units into the target zone. Get 1
245
- units into the target zone. Discover at least 3 enemies. Have at.
 
 
246
  overrides:
247
  actors:
248
  - {type: jeep, owner: agent, position: [14, 17], stance: 0}
@@ -301,9 +306,11 @@ levels:
301
  # scout-far, and bunched scouts all lose; a memorised corridor
302
  # latitude does not generalise across seeds.
303
  description: >
304
- Enemy includes 6 rocket soldiers. (get 1 units into the target zone, get
305
- 1 units into the target zone, get 1 units into the target zone, get 1
306
- units into the target zone, discover at least 3 enemies, within about.
 
 
307
  overrides:
308
  actors:
309
  # spawn_point 0 โ€” base + relay corridor on the NORTH latitude
 
184
  # bunching all jeeps together can occupy only one region at a time โ€”
185
  # all lose.
186
  description: >
187
+ Four jeep scouts and a yard at the west. A hidden enemy cluster sits
188
+ at the far objective near (108,20). Space the jeeps out โ€” one at
189
+ relay R1 (45,20), one at R2 (75,20), one all the way onto the
190
+ objective โ€” so the chain keeps the far cluster observed. Hold all
191
+ three regions at once, discover at least two enemies, keep the yard,
192
+ within about 27 turns.
193
  overrides:
194
  actors:
195
  # 4 jeep scouts at the WEST base, stance:0 (pure perception).
 
243
  # standing, and the clock under tick 1900. Stalling, sending one jeep
244
  # out alone, and bunching the jeeps all lose.
245
  description: >
246
+ Same four jeeps and yard at the west, but the chain now needs four
247
+ relay regions held simultaneously: R1 (45,20), R3 (60,20), R2
248
+ (75,20), and the far objective near (108,20). With exactly four
249
+ jeeps every scout holds one leg. Discover three enemies, keep the
250
+ yard, within about 21 turns.
251
  overrides:
252
  actors:
253
  - {type: jeep, owner: agent, position: [14, 17], stance: 0}
 
306
  # scout-far, and bunched scouts all lose; a memorised corridor
307
  # latitude does not generalise across seeds.
308
  description: >
309
+ Eight jeeps and a yard sit at the west, but the corridor latitude
310
+ flips north or south by seed. Either way, hold all four relay
311
+ regions on your corridor at once โ€” R1, R3, R2, and the far objective
312
+ โ€” discover three enemies, keep the yard, within about 21 turns. A
313
+ memorised corridor cell fails on the flipped seed.
314
  overrides:
315
  actors:
316
  # spawn_point 0 โ€” base + relay corridor on the NORTH latitude
openra_bench/scenarios/packs/coord-squad-handoff.yaml CHANGED
@@ -89,8 +89,11 @@ levels:
89
  # never satisfy the second clause because P2 needs tanks, not jeeps.
90
  # Lose if the deadline passes.
91
  description: >
92
- Get 3 jeeps into the target zone. Get 3 medium tanks into the target
93
- zone. Within about 50 turns.
 
 
 
94
  overrides:
95
  actors:
96
  # Squad A โ€” 3 jeeps in the NW corner (fast scouts/runners).
@@ -136,8 +139,10 @@ levels:
136
  # needs tanks at P2, not jeeps); B-first never latches the chain;
137
  # stalling loses on the deadline.
138
  description: >
139
- Get 3 jeeps into the target zone. Get 3 medium tanks into the target
140
- zone. Get 3 jeeps into the target zone. Within about 50 turns.
 
 
141
  overrides:
142
  actors:
143
  - {type: jeep, owner: agent, position: [5, 5], count: 3}
@@ -185,9 +190,11 @@ levels:
185
  # squad cannot tour the chain โ€” clauses 2 and 4 demand TANKS; clauses
186
  # 1 and 3 demand JEEPS.
187
  description: >
188
- Get 3 jeeps into the target zone. Get 3 medium tanks into the target
189
- zone. Get 3 jeeps into the target zone. Get 3 medium tanks into the
190
- target zone. Within about 50 turns.
 
 
191
  overrides:
192
  actors:
193
  # spawn_point 0 โ€” NW staging.
 
89
  # never satisfy the second clause because P2 needs tanks, not jeeps.
90
  # Lose if the deadline passes.
91
  description: >
92
+ Squad A is three jeeps in the NW; Squad B is three medium tanks in
93
+ the SW. First land three jeeps in the disc around P1 (50,10), THEN
94
+ three tanks in the disc around P2 (90,30). The order is enforced.
95
+ Launch both squads at once and let Squad B hold short of P2 until
96
+ A's clause latches. Within about 50 turns.
97
  overrides:
98
  actors:
99
  # Squad A โ€” 3 jeeps in the NW corner (fast scouts/runners).
 
139
  # needs tanks at P2, not jeeps); B-first never latches the chain;
140
  # stalling loses on the deadline.
141
  description: >
142
+ Three jeeps NW, three tanks SW. Three sequenced clauses: jeeps at P1
143
+ (50,10), then tanks at P2 (90,30), then jeeps at P3 (60,20). Order
144
+ is enforced. Launch both squads in parallel; once Squad B lands at
145
+ P2, redeploy the jeeps from P1 to P3. Within about 50 turns.
146
  overrides:
147
  actors:
148
  - {type: jeep, owner: agent, position: [5, 5], count: 3}
 
190
  # squad cannot tour the chain โ€” clauses 2 and 4 demand TANKS; clauses
191
  # 1 and 3 demand JEEPS.
192
  description: >
193
+ Six jeeps and six tanks stage at the NW or SW corner by seed. Four
194
+ sequenced clauses: jeeps at P1 (50,10), tanks at P2 (90,30), jeeps
195
+ at P3 (60,20), tanks at P4 (100,15). Order is enforced; clauses
196
+ alternate vehicle type so a single-squad tour can't cover them.
197
+ Interleaved parallel dispatch only, within about 50 turns.
198
  overrides:
199
  actors:
200
  # spawn_point 0 โ€” NW staging.
openra_bench/scenarios/packs/coordination-ordered-rendezvous.yaml CHANGED
@@ -65,7 +65,10 @@ levels:
65
  # short of W2 until W1 latches) makes it. Out-of-order (B arrives at
66
  # W2 first) never satisfies waypoint_sequence's W1โ†’W2 latch.
67
  description: >
68
- Visit 2 waypoints in order. Within about 25 turns.
 
 
 
69
  overrides:
70
  actors:
71
  - {type: 2tnk, owner: agent, position: [5, 8], count: 3, stance: 0}
@@ -96,8 +99,10 @@ levels:
96
  # through the south-west adds tour cost a single column cannot absorb.
97
  # Enemy pickets contest the two eastern lanes. Loss cap 2.
98
  description: >
99
- Enemy includes 4 rifle infantry. Visit 3 waypoints in order. Lose at
100
- most 2. Within about 34 turns.
 
 
101
  overrides:
102
  actors:
103
  - {type: 2tnk, owner: agent, position: [5, 6], count: 3, stance: 0}
@@ -144,8 +149,11 @@ levels:
144
  # Failure isolates *ordered* parallel coordination โ€” both
145
  # simultaneous-only and serial strategies miss.
146
  description: >
147
- Enemy includes 2 rifle infantry, 2 rocket soldiers. Visit 4 waypoints in
148
- order. Lose at most 1. Within about 36 turns.
 
 
 
149
  overrides:
150
  actors:
151
  - {type: 2tnk, owner: agent, position: [5, 6], count: 3, stance: 0}
 
65
  # short of W2 until W1 latches) makes it. Out-of-order (B arrives at
66
  # W2 first) never satisfies waypoint_sequence's W1โ†’W2 latch.
67
  description: >
68
+ Two waypoints in order: W1 in the NE at (110,8), then W2 in the SE
69
+ at (110,32), each requiring two units. A single column touring both
70
+ legs blows the clock; launch parallel columns and let Squad B wait
71
+ short of W2 until W1 latches. Within about 24 turns.
72
  overrides:
73
  actors:
74
  - {type: 2tnk, owner: agent, position: [5, 8], count: 3, stance: 0}
 
99
  # through the south-west adds tour cost a single column cannot absorb.
100
  # Enemy pickets contest the two eastern lanes. Loss cap 2.
101
  description: >
102
+ Three waypoints in order: NE at (115,6), SW detour at (20,36), then
103
+ SE at (115,34). Enemy rifles contest the eastern lanes. A single
104
+ column can't absorb the detour leg โ€” split the force, sequence the
105
+ arrivals. At most two losses, within about 33 turns.
106
  overrides:
107
  actors:
108
  - {type: 2tnk, owner: agent, position: [5, 6], count: 3, stance: 0}
 
149
  # Failure isolates *ordered* parallel coordination โ€” both
150
  # simultaneous-only and serial strategies miss.
151
  description: >
152
+ Four sequenced waypoints โ€” NE (115,6), SW (20,36), SE (115,34), and
153
+ a mid-east handoff at (60,20) โ€” with enemy rifles and rocket
154
+ soldiers in the way. Even three squads can't tour the chain as a
155
+ single column; ordered parallel dispatch only. At most one loss,
156
+ within about 36 turns.
157
  overrides:
158
  actors:
159
  - {type: 2tnk, owner: agent, position: [5, 6], count: 3, stance: 0}
openra_bench/scenarios/packs/coordination-staggered-window.yaml CHANGED
@@ -100,8 +100,11 @@ levels:
100
  # and never satisfies the joint win. Lose if the deadline passes or
101
  # the force is wiped.
102
  description: >
103
- Enemy includes barracks, refinery, power plant. Get 3 units into the
104
- target zone. Get 3 units into the target zone. Within about 30 turns.
 
 
 
105
  overrides:
106
  actors:
107
  # Two squads in the spawn corner (x < 25). Pre-split so the
@@ -160,8 +163,11 @@ levels:
160
  # empty when it reaches B and cannot finish in time. Lose if the
161
  # deadline passes or the force is wiped.
162
  description: >
163
- Enemy includes barracks, refinery, power plant. Get 3 units into the
164
- target zone. Get 3 units into the target zone. Within about 25 turns.
 
 
 
165
  overrides:
166
  actors:
167
  # stance:0 (HoldFire) โ€” see header note (c).
@@ -210,9 +216,11 @@ levels:
210
  # parallel dispatch. Lose if the deadline passes or the force is
211
  # wiped.
212
  description: >
213
- Enemy includes 2 barracks, refinery, power plant. Get 3 units into the
214
- target zone. Get 3 units into the target zone. Get 3 units into the
215
- target zone. Within about 30 turns.
 
 
216
  overrides:
217
  interrupts:
218
  # Re-prompt the moment a unit sights a marker building โ€” the
 
100
  # and never satisfies the joint win. Lose if the deadline passes or
101
  # the force is wiped.
102
  description: >
103
+ Two docks across the map: an enemy barracks in the NE at (115,6) and
104
+ an enemy refinery in the SW at (20,36). Park at least three of your
105
+ units at EACH dock at the same instant โ€” a single column touring A
106
+ then B leaves A empty when it arrives at B. Split the force and
107
+ dispatch both squads in parallel, within about 30 turns.
108
  overrides:
109
  actors:
110
  # Two squads in the spawn corner (x < 25). Pre-split so the
 
163
  # empty when it reaches B and cannot finish in time. Lose if the
164
  # deadline passes or the force is wiped.
165
  description: >
166
+ Same two docks (NE barracks, SW refinery) but a tighter deadline โ€”
167
+ about 24 turns. The NE leg is much longer than the SW, so the NE
168
+ squad must launch first (the stagger) with the SW squad following
169
+ promptly. Three units at each dock simultaneously, or the joint
170
+ clause never co-fires.
171
  overrides:
172
  actors:
173
  # stance:0 (HoldFire) โ€” see header note (c).
 
216
  # parallel dispatch. Lose if the deadline passes or the force is
217
  # wiped.
218
  description: >
219
+ Three docks, no coordinates given โ€” find them by their building
220
+ type: an enemy barracks in the NE, a refinery in the SW, a power
221
+ plant in the SE. Park three units at EACH at the same instant. Three
222
+ different directions means no single column can cover them; commit
223
+ to genuine three-way parallel dispatch within about 30 turns.
224
  overrides:
225
  interrupts:
226
  # Re-prompt the moment a unit sights a marker building โ€” the
openra_bench/scenarios/packs/custom-map-no-enemy.yaml CHANGED
@@ -67,7 +67,9 @@ levels:
67
  # zone before the deadline. You LOSE if no unit is in the zone by the
68
  # deadline (idling/stalling/wandering loses).
69
  description: >
70
- Reach the target zone. Within about 10 turns.
 
 
71
  win_condition:
72
  all_of:
73
  - reach_region: {x: 55, y: 16, radius: 5}
@@ -94,7 +96,9 @@ levels:
94
  # before the deadline. You LOSE if the whole squad is not in the zone
95
  # by the deadline.
96
  description: >
97
- Get all your units into the target zone. Within about 17 turns.
 
 
98
  win_condition:
99
  all_of:
100
  - all_units_in_region: {x: 72, y: 16, radius: 5}
@@ -126,7 +130,11 @@ levels:
126
  # the zone before the deadline. You LOSE if the whole squad is not in
127
  # the zone by the deadline.
128
  description: >
129
- Get all your units into the target zone. Within about 18 turns.
 
 
 
 
130
  objective_coords: relative
131
  overrides:
132
  actors:
 
67
  # zone before the deadline. You LOSE if no unit is in the zone by the
68
  # deadline (idling/stalling/wandering loses).
69
  description: >
70
+ No enemy on this map. Move any one of your units into the goal zone
71
+ near (55,16) at the far east of the playable area, before about turn
72
+ 10. Idling or wandering loses.
73
  win_condition:
74
  all_of:
75
  - reach_region: {x: 55, y: 16, radius: 5}
 
96
  # before the deadline. You LOSE if the whole squad is not in the zone
97
  # by the deadline.
98
  description: >
99
+ Same idea, longer reach: the goal zone sits at (72,16) and EVERY
100
+ unit โ€” not just the fast scout โ€” must arrive. Plan the route and
101
+ march the whole squad straight east, within about 17 turns.
102
  win_condition:
103
  all_of:
104
  - all_units_in_region: {x: 72, y: 16, radius: 5}
 
130
  # the zone before the deadline. You LOSE if the whole squad is not in
131
  # the zone by the deadline.
132
  description: >
133
+ The goal zone sits at the far east-central edge of the playable
134
+ area, but you aren't given coordinates โ€” read it off the minimap.
135
+ Your spawn latitude flips by seed, so a memorised route fails. March
136
+ the whole squad due east; every unit must arrive within about 18
137
+ turns.
138
  objective_coords: relative
139
  overrides:
140
  actors:
openra_bench/scenarios/packs/def-counter-battery.yaml CHANGED
@@ -119,8 +119,7 @@ meta:
119
  tank force must perform a counter-battery strike: drive past the
120
  infantry screen and destroy the artillery FIRST, before it razes
121
  the construction yard. Trading fire with the screening infantry
122
- while the artillery keeps firing loses the base โ€” the highest-
123
- impact threat must be engaged first, not the nearest one.
124
  robotics_analogue: >
125
  Military counter-battery doctrine and threat prioritisation:
126
  when a hostile asset is degrading your objective from beyond
@@ -201,8 +200,11 @@ levels:
201
  # enemy units are destroyed AND the construction yard is still
202
  # standing, before tick 2700.
203
  description: >
204
- Enemy includes 15 rifle infantry, 2 arty. Kill at least 12 enemy units.
205
- Have at least 1 construction yard. Within about 30 turns.
 
 
 
206
  overrides:
207
  actors:
208
  # Strike force โ€” 4 medium tanks staged west of the base.
@@ -295,8 +297,11 @@ levels:
295
  # firing loses the base. Win when 14 enemy units are destroyed AND the
296
  # construction yard is still standing, before tick 2700.
297
  description: >
298
- Enemy includes 21 rifle infantry, 3 arty. Kill at least 14 enemy units.
299
- Have at least 1 construction yard. Within about 30 turns.
 
 
 
300
  overrides:
301
  actors:
302
  # Strike force โ€” 6 medium tanks staged west of the base.
@@ -388,8 +393,11 @@ levels:
388
  # are destroyed AND the construction yard is still standing, before
389
  # tick 2700.
390
  description: >
391
- Enemy includes 42 rifle infantry, 6 arty. Kill at least 14 enemy units.
392
- Have at least 1 construction yard. Within about 30 turns.
 
 
 
393
  overrides:
394
  actors:
395
  # Persistent far enemy `fact` marker (anti-DRAW) โ€” no
 
119
  tank force must perform a counter-battery strike: drive past the
120
  infantry screen and destroy the artillery FIRST, before it razes
121
  the construction yard. Trading fire with the screening infantry
122
+ while the artillery keeps firing loses the base โ€” the highest-impact threat must be engaged first, not the nearest one.
 
123
  robotics_analogue: >
124
  Military counter-battery doctrine and threat prioritisation:
125
  when a hostile asset is degrading your objective from beyond
 
200
  # enemy units are destroyed AND the construction yard is still
201
  # standing, before tick 2700.
202
  description: >
203
+ Your construction yard at (20,21) is ringed by two pillboxes; four
204
+ medium tanks sit just west. Fifteen enemy riflemen screen two long-range artillery in the rear โ€” the artillery outranges your pillboxes
205
+ and is already shelling the yard. Drive the tanks past the screen,
206
+ kill BOTH guns first, then mop up the rifles. Twelve kills, yard
207
+ intact, within about 30 turns.
208
  overrides:
209
  actors:
210
  # Strike force โ€” 4 medium tanks staged west of the base.
 
297
  # firing loses the base. Win when 14 enemy units are destroyed AND the
298
  # construction yard is still standing, before tick 2700.
299
  description: >
300
+ Three pillboxes ring the yard; six tanks stage just west. The enemy
301
+ line packs twenty-one rifles with three artillery pieces behind
302
+ them, and the heavier battery razes the yard fast. Punch through to
303
+ all three guns first, then clean the screen. Fourteen kills, yard
304
+ intact, within about 30 turns.
305
  overrides:
306
  actors:
307
  # Strike force โ€” 6 medium tanks staged west of the base.
 
393
  # are destroyed AND the construction yard is still standing, before
394
  # tick 2700.
395
  description: >
396
+ Your yard and twelve tanks stage in the NORTH (y=14) or SOUTH (y=28)
397
+ band by seed; the enemy mirrors at the same latitude with twenty-one
398
+ rifles screening three long-range guns. Same doctrine โ€” silence the
399
+ guns first, then sweep the screen. Fourteen kills, yard intact,
400
+ within about 30 turns.
401
  overrides:
402
  actors:
403
  # Persistent far enemy `fact` marker (anti-DRAW) โ€” no
openra_bench/scenarios/packs/def-engineer-repair-under-fire.yaml CHANGED
@@ -77,13 +77,11 @@ meta:
77
  lets the proc die; engaging without repair lets cumulative grenade
78
  damage drop the proc before the band is cleared; toggling repair
79
  without offensive output never clears the attackers and busts the
80
- kill bar / clock. The intended triage is: prioritise the most-
81
- damaged AND most-critical building (the proc) for repair, while
82
  the defenders do the killing.
83
  robotics_analogue: >
84
  Disaster-recovery / SRE triage: a sustained incident damages
85
- multiple services and the operator must (a) identify the most-
86
- critical-and-most-damaged subsystem (the income-bearing refinery
87
  here, the production database in SRE), (b) engage the repair organ
88
  on it WHILE (c) the on-call team contains the attacker. Stalling
89
  loses the critical subsystem; pure-engage / pure-repair single-axis
@@ -151,9 +149,11 @@ levels:
151
  # tick 3600. If the proc falls, the construction yard falls, or the
152
  # kill bar is not met before the clock, you lose.
153
  description: >
154
- Enemy includes 2 e2, 3 rifle infantry. Have at least 1 refinery. Have at
155
- least 1 construction yard. Kill at least 4 enemy units. Within about 32
156
- turns.
 
 
157
  overrides:
158
  actors:
159
  # proc is the most-FORWARD, most-critical building, exposed
@@ -223,9 +223,10 @@ levels:
223
  # expires with the kill bar unmet. Stalling, attack-only, and repair-
224
  # only all lose.
225
  description: >
226
- Enemy includes 3 e2, 4 rifle infantry. Have at least 1 refinery. Have at
227
- least 1 construction yard. Kill at least 6 enemy units. Within about 30
228
- turns.
 
229
  overrides:
230
  actors:
231
  - {type: proc, owner: agent, position: [10, 8]}
@@ -279,9 +280,11 @@ levels:
279
  # unmet at the clock. Stalling, attack-only, repair-only, and single-
280
  # axis defence all lose.
281
  description: >
282
- Enemy includes 6 e2, 6 rifle infantry. Have at least 1 refinery. Have at
283
- least 1 construction yard. Kill at least 6 enemy units. Within about 30
284
- turns.
 
 
285
  overrides:
286
  actors:
287
  # NORTH base group (spawn_point 0). Proc exposed at (10,8);
 
77
  lets the proc die; engaging without repair lets cumulative grenade
78
  damage drop the proc before the band is cleared; toggling repair
79
  without offensive output never clears the attackers and busts the
80
+ kill bar / clock. The intended triage is: prioritise the most-damaged AND most-critical building (the proc) for repair, while
 
81
  the defenders do the killing.
82
  robotics_analogue: >
83
  Disaster-recovery / SRE triage: a sustained incident damages
84
+ multiple services and the operator must (a) identify the most-critical-and-most-damaged subsystem (the income-bearing refinery
 
85
  here, the production database in SRE), (b) engage the repair organ
86
  on it WHILE (c) the on-call team contains the attacker. Stalling
87
  loses the critical subsystem; pure-engage / pure-repair single-axis
 
149
  # tick 3600. If the proc falls, the construction yard falls, or the
150
  # kill bar is not met before the clock, you lose.
151
  description: >
152
+ Your base โ€” refinery, yard, pillbox, depot โ€” is under attrition from
153
+ a grenadier-led band closing from the north, and the forward
154
+ refinery is taking focused damage. Toggle repair on the refinery
155
+ while your defenders engage. Keep the refinery and yard alive and
156
+ put down at least four attackers, within about 32 turns.
157
  overrides:
158
  actors:
159
  # proc is the most-FORWARD, most-critical building, exposed
 
223
  # expires with the kill bar unmet. Stalling, attack-only, and repair-
224
  # only all lose.
225
  description: >
226
+ A heavier grenadier band closes on the same base. The exposed
227
+ refinery starts to bleed almost immediately. Toggle repair the
228
+ moment damage shows and commit the defenders to the attackers. Six
229
+ kills, refinery and yard standing, within about 30 turns.
230
  overrides:
231
  actors:
232
  - {type: proc, owner: agent, position: [10, 8]}
 
280
  # unmet at the clock. Stalling, attack-only, repair-only, and single-
281
  # axis defence all lose.
282
  description: >
283
+ Two grenadier vectors hit your base from opposite latitudes, and
284
+ your base spawns in either by seed โ€” so the lane that matters
285
+ varies. Repair the refinery as it bleeds and commit defenders to
286
+ whichever axis is live. Six kills, refinery and yard standing,
287
+ within about 30 turns.
288
  overrides:
289
  actors:
290
  # NORTH base group (spawn_point 0). Proc exposed at (10,8);
openra_bench/scenarios/packs/def-evacuation.yaml CHANGED
@@ -181,8 +181,11 @@ levels:
181
  # base loses (you cannot out-trade the heavy + rocket composition);
182
  # only prompt EVAC-east wins.
183
  description: >
184
- Enemy includes 2 heavy tanks, 4 rocket soldiers. Get 3 units into the
185
- target zone. Keep at least 3 unit alive. Within about 30 turns.
 
 
 
186
  overrides:
187
  actors:
188
  # โ”€โ”€ Doomed base (agent) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
@@ -285,8 +288,11 @@ levels:
285
  # a 1-2 turn delay leaves the column inside the assault leash and
286
  # bleeds the survival cap.
287
  description: >
288
- Enemy includes 3 heavy tanks, 6 rocket soldiers. Get 3 units into the
289
- target zone. Keep at least 3 unit alive. Within about 27 turns.
 
 
 
290
  overrides:
291
  actors:
292
  - {type: fact, owner: agent, position: [10, 20]}
@@ -375,9 +381,10 @@ levels:
375
  # base loses; evacuating to the WRONG safe zone leaves you outside the
376
  # win radius; only EVAC to YOUR safe zone wins.
377
  description: >
378
- Enemy includes 3 heavy tanks, 6 rocket soldiers. (get 3 units into the
379
- target zone OR get 3 units into the target zone). Keep at least 3 unit
380
- alive. Within about 27 turns.
 
381
  overrides:
382
  actors:
383
  # โ”€โ”€ Doomed base (duplicated across both spawn groups) โ”€โ”€โ”€โ”€
 
181
  # base loses (you cannot out-trade the heavy + rocket composition);
182
  # only prompt EVAC-east wins.
183
  description: >
184
+ Your base at (10,20) cannot hold โ€” two heavy tanks and four rocket
185
+ soldiers are already in range. Five medium tanks stage at the north
186
+ shoulder. A safe zone waits at (90,12). Don't try to hold; evac
187
+ east. Three tanks in the (90,12) disc, three alive, within about 30
188
+ turns (the base WILL fall, that's fine).
189
  overrides:
190
  actors:
191
  # โ”€โ”€ Doomed base (agent) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
 
288
  # a 1-2 turn delay leaves the column inside the assault leash and
289
  # bleeds the survival cap.
290
  description: >
291
+ Same doomed base, but the assault is heavier โ€” three heavy tanks
292
+ plus six rocket soldiers โ€” and the safe zone moves further north to
293
+ (90,6). The clock is tighter too. A one- or two-turn delay leaves
294
+ the column inside the leash and bleeds the cap. Three tanks in
295
+ (90,6), three alive, within about 27 turns.
296
  overrides:
297
  actors:
298
  - {type: fact, owner: agent, position: [10, 20]}
 
381
  # base loses; evacuating to the WRONG safe zone leaves you outside the
382
  # win radius; only EVAC to YOUR safe zone wins.
383
  description: >
384
+ Same doomed western base, but your tanks stage in either the FAR-NORTH (yโ‰ˆ6) or FAR-SOUTH (yโ‰ˆ34) band by seed โ€” and the matching safe
385
+ zone is at (90,6) or (90,34). Read your column's latitude and run to
386
+ the matching disc. Three tanks in YOUR safe zone, three alive,
387
+ within about 27 turns.
388
  overrides:
389
  actors:
390
  # โ”€โ”€ Doomed base (duplicated across both spawn groups) โ”€โ”€โ”€โ”€
openra_bench/scenarios/packs/def-in-depth-vs-single.yaml CHANGED
@@ -158,9 +158,11 @@ levels:
158
  # fact. Stall, pure-army, and single-wall layouts all LOSE. The fact
159
  # must survive; at least 4 enemy units must die before tick 5400.
160
  description: >
161
- Enemy includes 6 rifle infantry. Have at least 4 pillboxes. Place 2
162
- pillboxes in the target zone. Place 2 pillboxes in the target zone. Have
163
- at least 1 construction yard. Kill at least 4 enemy units. Within about
 
 
164
  60 turns.
165
  starting_cash: 2400
166
  overrides:
@@ -221,10 +223,11 @@ levels:
221
  # single-wall layouts all LOSE. The fact must survive; at least 7
222
  # enemy units must die before tick 5400.
223
  description: >
224
- Enemy includes 8 rifle infantry, 2 rocket soldiers. Have at least 4
225
- pillboxes. Place 2 pillboxes in the target zone. Place 2 pillboxes in
226
- the target zone. Have at least 1 construction yard. Kill at least 7
227
- enemy units. Within.
 
228
  starting_cash: 2400
229
  overrides:
230
  actors:
 
158
  # fact. Stall, pure-army, and single-wall layouts all LOSE. The fact
159
  # must survive; at least 4 enemy units must die before tick 5400.
160
  description: >
161
+ A heavy rifle rush charges your construction yard at (10,20). Your
162
+ $2400 budget covers exactly four pillboxes. Split them across two
163
+ depth bands โ€” two in the front near (35,20), two in the rear near
164
+ (20,20) โ€” so anything that breaks the front gets killed by the rear.
165
+ One thick wall has no depth. Yard intact, four kills, within about
166
  60 turns.
167
  starting_cash: 2400
168
  overrides:
 
223
  # single-wall layouts all LOSE. The fact must survive; at least 7
224
  # enemy units must die before tick 5400.
225
  description: >
226
+ Same yard at (10,20), but the rush now includes two rocket soldiers
227
+ behind eight rifles. The $2400 still buys exactly four pillboxes;
228
+ split 2-front (35,20), 2-rear (20,20). A single wall meets the count
229
+ but lets the rockets-led punch through. Yard intact, seven kills,
230
+ within about 60 turns.
231
  starting_cash: 2400
232
  overrides:
233
  actors:
openra_bench/scenarios/packs/def-in-depth.yaml CHANGED
@@ -125,10 +125,12 @@ levels:
125
  # single cluster at one x, or a long thin line, eventually breaks
126
  # under the concentrated attack.
127
  description: >
128
- Enemy includes 5 rifle infantry, rocket soldiers. Have at least 4
129
- pillboxes. Place 2 pillboxes in the target zone. Place 2 pillboxes in
130
- the target zone. Have at least 1 construction yard. Within about 60
131
- turns.
 
 
132
  overrides:
133
  actors:
134
  - {type: fact, owner: agent, position: [10, 20]}
@@ -185,10 +187,11 @@ levels:
185
  # 4500. Stalling, single-cluster, or single-thin-line placements all
186
  # fail.
187
  description: >
188
- Enemy includes 5 rifle infantry, rocket soldiers. Have at least 4
189
- pillboxes. Place 2 pillboxes in the target zone. Place 2 pillboxes in
190
- the target zone. Have at least 1 construction yard. Within about 50
191
- turns.
 
192
  overrides:
193
  actors:
194
  - {type: fact, owner: agent, position: [10, 20]}
@@ -236,10 +239,11 @@ levels:
236
  # the field, before tick 4500. Any single-layer topology or single-
237
  # cluster topology fails to absorb the staggered pressure.
238
  description: >
239
- Enemy includes 4 rifle infantry, rocket soldiers. Have at least 4
240
- pillboxes. Have at least 1 construction yard. (place 2 pillboxes in the
241
- target zone, place 2 pillboxes in the target zone OR place 2 pillboxes
242
- in the target zone.
 
243
  overrides:
244
  # spawn_point 0 โ€” NORTH base (y=14). All buildings/units that
245
  # belong to the north spawn carry spawn_point: 0; same for south.
 
125
  # single cluster at one x, or a long thin line, eventually breaks
126
  # under the concentrated attack.
127
  description: >
128
+ A massed rush of eight rifles and two rocket soldiers drives
129
+ straight at your base. Build four pillboxes in TWO LAYERS โ€” two at
130
+ the front around (25,20), two at the rear around (15,20) โ€” so
131
+ anything that punches through the front gets shredded by the rear.
132
+ Keep the yard alive, within about 60 turns. A single thick wall
133
+ breaks under the weight.
134
  overrides:
135
  actors:
136
  - {type: fact, owner: agent, position: [10, 20]}
 
187
  # 4500. Stalling, single-cluster, or single-thin-line placements all
188
  # fail.
189
  description: >
190
+ Same massed rush โ€” eight rifles, two rockets โ€” but the clock is
191
+ tighter. Build four pillboxes split 2-front 2-rear (around (25,20)
192
+ and (15,20)). Single clusters and thin lines collapse; the two-layer
193
+ topology is the only one that holds. Keep the yard alive within
194
+ about 50 turns.
195
  overrides:
196
  actors:
197
  - {type: fact, owner: agent, position: [10, 20]}
 
239
  # the field, before tick 4500. Any single-layer topology or single-
240
  # cluster topology fails to absorb the staggered pressure.
241
  description: >
242
+ Two staggered rush bands hit your base from opposite latitudes, and
243
+ your base spawns in the NORTH or SOUTH band by seed. Build five
244
+ pillboxes in a 3-front + 2-rear layered topology at your matched
245
+ latitude. Single-layer or one-cluster fails to absorb the staggered
246
+ pressure. Yard alive within about 50 turns.
247
  overrides:
248
  # spawn_point 0 โ€” NORTH base (y=14). All buildings/units that
249
  # belong to the north spawn carry spawn_point: 0; same for south.
openra_bench/scenarios/packs/def-multi-direction.yaml CHANGED
@@ -237,9 +237,12 @@ levels:
237
  # the boundary); concentrating all six tanks on a single lane
238
  # satisfies one zone but fails the other two clauses.
239
  description: >
240
- Enemy includes 6 rifle infantry. Kill at least 4 enemy units. Keep at
241
- least 3 unit alive. Keep your construction yard. Get 1 units into the
242
- target zone. Get 1 units into the target zone. Get 1 units into the.
 
 
 
243
  overrides:
244
  actors:
245
  # Agent construction yard โ€” WEST edge, the rusher target.
@@ -326,9 +329,11 @@ levels:
326
  # policies fail two zone clauses; a sloppy split that bleeds the line
327
  # fails the loss cap.
328
  description: >
329
- Enemy includes 9 rifle infantry. Kill at least 6 enemy units. Keep at
330
- least 3 unit alive. Lose at most 3. Keep your construction yard. Get 1
331
- units into the target zone. Get 1 units into the target zone. Get.
 
 
332
  overrides:
333
  actors:
334
  - {type: fact, owner: agent, position: [10, 20]}
@@ -394,9 +399,11 @@ levels:
394
  # seed and loses the other; the 2/2/2 doctrine matched to the actual
395
  # base latitude generalises.
396
  description: >
397
- Enemy includes 12 rifle infantry. Kill at least 6 enemy units. Keep at
398
- least 3 unit alive. Lose at most 3. Keep your construction yard. (get 1
399
- units into the target zone, get 1 units into the target zone, get.
 
 
400
  overrides:
401
  actors:
402
  # spawn_point 0 โ€” NORTH base (y=14). All buildings/units
 
237
  # the boundary); concentrating all six tanks on a single lane
238
  # satisfies one zone but fails the other two clauses.
239
  description: >
240
+ Yard at (10,20); six medium tanks at central staging (30,20). Three
241
+ concurrent rifle rushes are inbound โ€” NORTH (y=8), MID (y=20), SOUTH
242
+ (y=32). Split the tanks 2/2/2 to forward zones at (25,8), (25,20),
243
+ (25,32). Each zone must hold at least one tank; concentration covers
244
+ only one lane. Four kills, three alive, yard intact, within about 30
245
+ turns.
246
  overrides:
247
  actors:
248
  # Agent construction yard โ€” WEST edge, the rusher target.
 
329
  # policies fail two zone clauses; a sloppy split that bleeds the line
330
  # fails the loss cap.
331
  description: >
332
+ Same yard, same six tanks staging central โ€” but each of the three
333
+ rush lanes is heavier (nine rifles total). Maintain the 2/2/2 split
334
+ across the three forward zones, hold the loss cap at three, kill
335
+ six, keep three tanks alive and the yard standing, within about 30
336
+ turns. Sloppy splits busts the cap.
337
  overrides:
338
  actors:
339
  - {type: fact, owner: agent, position: [10, 20]}
 
399
  # seed and loses the other; the 2/2/2 doctrine matched to the actual
400
  # base latitude generalises.
401
  description: >
402
+ Your yard and twelve tanks spawn in the NORTH (y=14) or SOUTH (y=26)
403
+ band by seed; three rush lanes hit at matching latitudes. Split the
404
+ defenders 2/2/2 across the three forward zones at YOUR latitude โ€” a
405
+ memorised mid-map plan only wins one seed. Six kills, three alive,
406
+ loss cap three, yard intact, within about 30 turns.
407
  overrides:
408
  actors:
409
  # spawn_point 0 โ€” NORTH base (y=14). All buildings/units
openra_bench/scenarios/packs/def-position-expected-direction.yaml CHANGED
@@ -151,9 +151,12 @@ levels:
151
  # satisfy the NORTH-region clause; building no pillboxes never reaches
152
  # the count; stalling loses on the clock.
153
  description: >
154
- Enemy includes 3 rifle infantry. Have at least 3 pillboxes. Place 3
155
- pillboxes in the target zone. Keep your construction yard. Keep at least
156
- 3 unit alive. Within about 60 turns.
 
 
 
157
  overrides:
158
  actors:
159
  # Agent base โ€” fact at the centre, tent + powr supporting
@@ -220,9 +223,11 @@ levels:
220
  # ploughs through the defenders); building no pillboxes loses on both
221
  # counts; stalling loses on the clock.
222
  description: >
223
- Enemy includes 5 rifle infantry, rocket soldiers. Have at least 3
224
- pillboxes. Place 3 pillboxes in the target zone. Keep your construction
225
- yard. Keep at least 3 unit alive. Within about 60 turns.
 
 
226
  overrides:
227
  actors:
228
  - {type: fact, owner: agent, position: [20, 20]}
@@ -283,10 +288,12 @@ levels:
283
  # leaves the threat axis naked; building no pillboxes loses both
284
  # clauses; stalling loses on the clock.
285
  description: >
286
- Enemy includes 8 rifle infantry, 2 rocket soldiers. Have at least 3
287
- pillboxes. (place 3 pillboxes in the target zone OR place 3 pillboxes in
288
- the target zone). Keep your construction yard. Keep at least 3 unit
289
- alive. Within about.
 
 
290
  overrides:
291
  actors:
292
  # โ”€โ”€ NORTH spawn (spawn_point 0) โ€” base centred at (20, 12).
 
151
  # satisfy the NORTH-region clause; building no pillboxes never reaches
152
  # the count; stalling loses on the clock.
153
  description: >
154
+ Intel says the enemy will attack from the NORTH. You start with a
155
+ yard, barracks, power plant and four defenders at (20,20). Build at
156
+ least three pillboxes and place all three in the north strip near
157
+ (20,14) โ€” between your base and the threat. Yard alive, three
158
+ defenders alive, within about 60 turns. Pillboxes south of base
159
+ satisfy nothing.
160
  overrides:
161
  actors:
162
  # Agent base โ€” fact at the centre, tent + powr supporting
 
223
  # ploughs through the defenders); building no pillboxes loses on both
224
  # counts; stalling loses on the clock.
225
  description: >
226
+ Same intel โ€” north axis โ€” but the wave grows to five rifles plus one
227
+ rocket soldier. Pre-position three pillboxes in the north strip near
228
+ (20,14); a south-of-base placement leaves the lane naked and the
229
+ rocket soldier ploughs through. Yard alive, three defenders alive,
230
+ within about 60 turns.
231
  overrides:
232
  actors:
233
  - {type: fact, owner: agent, position: [20, 20]}
 
288
  # leaves the threat axis naked; building no pillboxes loses both
289
  # clauses; stalling loses on the clock.
290
  description: >
291
+ Intel says the threat comes from the side FACING your base โ€” north
292
+ if you spawn north, south if you spawn south (by seed). Read your
293
+ latitude, then plant three pillboxes between your base and the
294
+ threat โ€” near (20,6) for a north spawn or (20,34) for a south spawn.
295
+ Wrong side leaves the axis naked. Yard alive, three defenders alive,
296
+ within about 60 turns.
297
  overrides:
298
  actors:
299
  # โ”€โ”€ NORTH spawn (spawn_point 0) โ€” base centred at (20, 12).
openra_bench/scenarios/packs/def-position-revealed-direction.yaml CHANGED
@@ -213,10 +213,11 @@ levels:
213
  # pure-build-no-fight loses on the kill bar; pure-fight-no- build
214
  # loses when the rush overruns the defenders.
215
  description: >
216
- Enemy includes barracks, 3 rifle infantry. Discover at least 1 enemy
217
- buildings. Have at least 3 pillboxes. Kill at least 3 enemy units. Have
218
- at least 1 construction yard. Keep at least 1 unit alive. Within about
219
- 60 turns.
 
220
  overrides:
221
  actors:
222
  # Agent base โ€” fact + proc + powr + tent so the pbox queue
@@ -305,10 +306,11 @@ levels:
305
  # scouting wastes the budget on the wrong-axis intuition; stalling
306
  # loses on the clock.
307
  description: >
308
- Enemy includes barracks, 3 rifle infantry. Discover at least 1 enemy
309
- buildings. Have at least 3 pillboxes. Kill at least 3 enemy units. Have
310
- at least 1 construction yard. Keep at least 1 unit alive. Within about
311
- 60 turns.
 
312
  overrides:
313
  actors:
314
  - {type: fact, owner: agent, position: [20, 20]}
@@ -406,10 +408,11 @@ levels:
406
  # seeds (rushers walk past your wrong-axis pbox line and raze the
407
  # fact); a no-scout commit fails the chain at clause 1.
408
  description: >
409
- Enemy includes 2 barracks, 8 rifle infantry, 2 rocket soldiers. Discover
410
- at least 1 enemy buildings. Have at least 3 pillboxes. Kill at least 3
411
- enemy units. Have at least 1 construction yard. Keep at least 1 unit
412
- alive. Within.
 
413
  overrides:
414
  actors:
415
  # โ”€โ”€ NORTH spawn (spawn_point 0) โ€” base centred at (20, 16).
 
213
  # pure-build-no-fight loses on the kill bar; pure-fight-no- build
214
  # loses when the rush overruns the defenders.
215
  description: >
216
+ A light rush is coming from the north โ€” your two forward jeep scouts
217
+ already have eyes on the enemy outpost. Confirm the intel by
218
+ scouting, then build three pillboxes and engage. Three kills, yard
219
+ alive, one unit alive, within about 60 turns. Stall, build-only, or
220
+ fight-only all lose.
221
  overrides:
222
  actors:
223
  # Agent base โ€” fact + proc + powr + tent so the pbox queue
 
306
  # scouting wastes the budget on the wrong-axis intuition; stalling
307
  # loses on the clock.
308
  description: >
309
+ A rush is incoming but the axis isn't given โ€” your two scout jeeps
310
+ must find it. Drive a jeep up the lane your observation suggests,
311
+ register at least one enemy building, THEN build three pillboxes,
312
+ THEN kill three attackers. Yard alive, one unit alive, within about
313
+ 60 turns. Skipping the scout fails the then-chain.
314
  overrides:
315
  actors:
316
  - {type: fact, owner: agent, position: [20, 20]}
 
408
  # seeds (rushers walk past your wrong-axis pbox line and raze the
409
  # fact); a no-scout commit fails the chain at clause 1.
410
  description: >
411
+ Same scout-then-fortify chain, but your base spawns north (y=16) or
412
+ south (y=24) by seed and the threat comes from the side facing your
413
+ base. Identify the latitude, scout that lane, plant three pillboxes
414
+ between base and threat, then kill three. Yard alive, one unit
415
+ alive, within about 60 turns. Always-defend-north loses every south-seed run.
416
  overrides:
417
  actors:
418
  # โ”€โ”€ NORTH spawn (spawn_point 0) โ€” base centred at (20, 16).