yxc20098 commited on
Commit
0f48535
·
1 Parent(s): ce2878c

fix(scenario): build-defensive-skirt-corners — restore hard-tier seed-driven spawn variation

Browse files

The hard tier's two agent spawn_point groups both parked their
non-combatant spawn-witness e1 at the identical cell (4,36), so
whichever spawn_point the seed round-robin selected the only unit
in units_summary was always at (4,36) — every seed produced the
same start {((4,36),)}, failing
test_curated_hard_still_compiles_and_runs.

Give each spawn group a DISTINCT inert stance:0 HoldFire witness:
spawn_point 0 (WEST base) keeps the far-SW corner (4,36),
spawn_point 1 (EAST base) moves to the far-NW corner (4,4). Both
satisfy the far-corner non-combat-screen bound; the seed round-
robin now yields two distinct units_summary starts across seeds
1-4. stance:0 guarantees zero kill contribution so the pbox skirt
remains the sole kill source and the no-cheat bar is unchanged.

openra_bench/scenarios/packs/build-defensive-skirt-corners.yaml CHANGED
@@ -311,19 +311,25 @@ levels:
311
  actors:
312
  # spawn_point 0 — WEST base. Fact at (50,20); corner regions
313
  # at NE (68,9), NW (32,9), SE (68,31), SW (32,31). A single
314
- # non-combatant e1 parks in the far SW map corner (zero kill
315
- # contribution; non-empty units_summary for the env-reset
316
- # check).
 
 
 
317
  - {type: fact, owner: agent, position: [50, 20], spawn_point: 0}
318
  - {type: tent, owner: agent, position: [46, 16], spawn_point: 0}
319
  - {type: powr, owner: agent, position: [46, 24], spawn_point: 0}
320
- - {type: e1, owner: agent, position: [4, 36], stance: 2, spawn_point: 0}
321
  # spawn_point 1 — EAST base. Fact at (78,20); corner regions
322
- # at NE (96,9), NW (60,9), SE (96,31), SW (60,31).
 
 
 
323
  - {type: fact, owner: agent, position: [78, 20], spawn_point: 1}
324
  - {type: tent, owner: agent, position: [74, 16], spawn_point: 1}
325
  - {type: powr, owner: agent, position: [74, 24], spawn_point: 1}
326
- - {type: e1, owner: agent, position: [4, 36], stance: 2, spawn_point: 1}
327
  # Anti-DRAW marker on the symmetry axis.
328
  - {type: fact, owner: enemy, position: [64, 4]}
329
  # Scheduled rush wave — EIGHT bands (3× e1 each), four sitting on
 
311
  actors:
312
  # spawn_point 0 — WEST base. Fact at (50,20); corner regions
313
  # at NE (68,9), NW (32,9), SE (68,31), SW (32,31). A single
314
+ # inert spawn-witness e1 (stance:0 HoldFire never auto-
315
+ # engages, even when attacked) parks in the far SW map corner.
316
+ # Its position is DISTINCT from the spawn_point-1 witness so
317
+ # the seed→spawn round-robin produces a distinct units_summary
318
+ # start every seed (hard-tier spawn contract); it never reaches
319
+ # combat and contributes ZERO kills.
320
  - {type: fact, owner: agent, position: [50, 20], spawn_point: 0}
321
  - {type: tent, owner: agent, position: [46, 16], spawn_point: 0}
322
  - {type: powr, owner: agent, position: [46, 24], spawn_point: 0}
323
+ - {type: e1, owner: agent, position: [4, 36], stance: 0, spawn_point: 0}
324
  # spawn_point 1 — EAST base. Fact at (78,20); corner regions
325
+ # at NE (96,9), NW (60,9), SE (96,31), SW (60,31). The inert
326
+ # spawn-witness e1 parks in the far NW map corner — a cell
327
+ # DISTINCT from the spawn_point-0 witness so units_summary
328
+ # reports a different start when this spawn fires.
329
  - {type: fact, owner: agent, position: [78, 20], spawn_point: 1}
330
  - {type: tent, owner: agent, position: [74, 16], spawn_point: 1}
331
  - {type: powr, owner: agent, position: [74, 24], spawn_point: 1}
332
+ - {type: e1, owner: agent, position: [4, 4], stance: 0, spawn_point: 1}
333
  # Anti-DRAW marker on the symmetry axis.
334
  - {type: fact, owner: enemy, position: [64, 4]}
335
  # Scheduled rush wave — EIGHT bands (3× e1 each), four sitting on