Spaces:
Running
fix(scenario): build-defensive-skirt-corners — restore hard-tier seed-driven spawn variation
Browse filesThe 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.
|
@@ -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 |
-
#
|
| 315 |
-
#
|
| 316 |
-
#
|
|
|
|
|
|
|
|
|
|
| 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:
|
| 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,
|
| 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
|