Xiaochuang Yuan commited on
Commit
dac8bc3
ยท
1 Parent(s): b53d4ed

combat-prevent-retreat: per-tier maps reinforce encirclement geometry

Browse files

Replaces the generic rush-hour-arena with three custom-built 128x48
arenas that physically reinforce what this pack measures (establish
the eastern cut-off BEFORE engaging the centre). The actor layouts,
predicates, and survival/kill bars are unchanged; the new maps add
a WATER wall y=15..25 across x=63..78 that closes the direct
east-on-y=20 corridor between the centre cluster (x=60) and the
cut-off disc (85,20,r=8). The flanker MUST transit via the FAR
NORTH lane (y=2..7) or FAR SOUTH lane (y=33..45) to reach (85,20),
descending east of the wall (x>=79). A naive brute attack-move on
y=20 still drives into the cluster (LOSS by survival cap) and
cannot satisfy the in-region clause.

Map design (mapgen 'arena' generator + obstacle clusters):

* easy - combat-prevent-retreat-easy 128x48 cordon 2
ONE flank lane (NORTH y=2..7). South half y=27..45
walled across x=10..125 so the south flank is
unavailable on easy. Mid-east wall y=15..25 at x=63..78
blocks the y=20 cut-off corridor.

* medium - combat-prevent-retreat-medium 128x48 cordon 2
TWO flank lanes (NORTH y=2..7 + SOUTH y=33..45). Same
mid-east wall.

* hard - combat-prevent-retreat-hard 128x48 cordon 2
Same mid-east wall plus the existing spawn-point round-
robin (NORTH staging y=12..15 / SOUTH staging y=25..28).
Both flank lanes open; the natural corridor flips per
seed.

Cluster at (60, y=17..22) sits west of the wall (x=63..78), in the
open band; cut-off disc at (85,20) sits east of the wall, in the
open band. Sentinel `fact` at (120,4) inside the cleared north band.

Smoke check: every level compiles with map_supported=True; all
actors in-bounds (x in [0..127], y in [0..47]); no actor placed
on a WATER cell.

data/maps/combat-prevent-retreat-easy.oramap ADDED
Binary file (979 Bytes). View file
 
data/maps/combat-prevent-retreat-hard.oramap ADDED
Binary file (969 Bytes). View file
 
data/maps/combat-prevent-retreat-medium.oramap ADDED
Binary file (971 Bytes). View file
 
openra_bench/scenarios/packs/combat-prevent-retreat.yaml CHANGED
@@ -66,7 +66,20 @@
66
  # satisfied โ†’ WIN.
67
  #
68
  # Engine guardrails (per CLAUDE.md):
69
- # - Map: rush-hour-arena (128 ร— 40, playable x โˆˆ [2..126], y โˆˆ [2..38]).
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  # - All declared cells are well within playable bounds.
71
  # - Persistent unarmed enemy `fact` at (120, 4) keeps the episode
72
  # alive past the moment the cluster is wiped (otherwise the
@@ -165,6 +178,29 @@ levels:
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.
170
  # Stance:1 ReturnFire so they don't auto-charge across the
@@ -233,6 +269,20 @@ levels:
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}
238
  - {type: 2tnk, owner: agent, position: [6, 19], stance: 1}
@@ -295,6 +345,20 @@ levels:
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
300
  # off-axis from the e1/e3 cluster (e3 Dragon range ~5, so a
 
66
  # satisfied โ†’ WIN.
67
  #
68
  # Engine guardrails (per CLAUDE.md):
69
+ # - Map: per-tier custom 128x48 arena (cordon 2 โ‡’ playable y in
70
+ # [2..45]) generated via mapgen's `arena` generator with WATER
71
+ # walls that physically reinforce the encirclement doctrine. A
72
+ # mid-east wall band y=15..25 across x=63..78 closes the direct
73
+ # east-on-y=20 route to the cut-off region (85,20,r=8): the
74
+ # cluster at (60, y=17..22) sits west of the wall (clear); the
75
+ # cut-off disc is east of the wall (clear); the wall blocks the
76
+ # y=20 corridor between them so the cut-off tank must transit
77
+ # via a NORTH flank (y=2..7) or SOUTH flank (y=33..45) to reach
78
+ # (85,20). Walls also close shallow shortcuts on easy / medium so
79
+ # the flanker is geometrically forced to the FAR flank, well
80
+ # outside e3 Dragon range. Hard adds two seed-driven agent
81
+ # spawn-point groups (NORTH y=12..15 vs SOUTH y=25..28); the
82
+ # mid-east wall is the same on every tier.
83
  # - All declared cells are well within playable bounds.
84
  # - Persistent unarmed enemy `fact` at (120, 4) keeps the episode
85
  # alive past the moment the cluster is wiped (otherwise the
 
178
  while the other three grind down the cluster. Six kills, one tank
179
  east of (85,20), three tanks alive, within about 50 turns.
180
  overrides:
181
+ # EASY MAP โ€” 128x48 arena (cordon 2 -> playable y in [2..45]).
182
+ # ONE flank lane (NORTH y=2..7). Mid-east wall y=15..25 across
183
+ # x=63..78 closes the direct east-on-y=20 route to the
184
+ # cut-off region (85,20,r=8). South half y=27..45 walled
185
+ # across x=10..125 (south flank unavailable on easy). The
186
+ # cluster at (60, y=17..22) sits west of the wall (clear);
187
+ # the cut-off at (85,20) sits east of the wall (clear).
188
+ base_map:
189
+ generator: arena
190
+ name: combat-prevent-retreat-easy
191
+ width: 128
192
+ height: 48
193
+ cordon: 2
194
+ title: 'Prevent Retreat โ€” Easy (North Flank Only)'
195
+ obstacles:
196
+ # Mid-east wall โ€” closes y=15..25 across x=63..78, the
197
+ # direct route between the cluster (x=60) and the cut-off
198
+ # disc (x=85). The flanker MUST transit via the north
199
+ # lane y=2..7, descend at x>=79.
200
+ - {x: 63, y: 15, w: 16, h: 11}
201
+ # South wall โ€” closes y=27..45 across x=10..125 so the
202
+ # south flank lane is unavailable on easy.
203
+ - {x: 10, y: 27, w: 116, h: 19}
204
  actors:
205
  # Strike force โ€” 4 medium tanks staged at the west edge.
206
  # Stance:1 ReturnFire so they don't auto-charge across the
 
269
  three focus-fire the cluster from range. Seven kills, one tank in
270
  the cutoff, three tanks alive, within about 50 turns.
271
  overrides:
272
+ # MEDIUM MAP โ€” 128x48 arena (cordon 2 -> playable y in [2..45]).
273
+ # TWO flank lanes (NORTH y=2..7 + SOUTH y=33..45). Mid-east wall
274
+ # y=15..25 across x=63..78 still closes the direct east-on-y=20
275
+ # route. The flanker can transit via either lane.
276
+ base_map:
277
+ generator: arena
278
+ name: combat-prevent-retreat-medium
279
+ width: 128
280
+ height: 48
281
+ cordon: 2
282
+ title: 'Prevent Retreat โ€” Medium (Two Flank Lanes)'
283
+ obstacles:
284
+ # Mid-east wall โ€” same as easy.
285
+ - {x: 63, y: 15, w: 16, h: 11}
286
  actors:
287
  - {type: 2tnk, owner: agent, position: [6, 18], stance: 1}
288
  - {type: 2tnk, owner: agent, position: [6, 19], stance: 1}
 
345
  at (85,20), grind the cluster down with the rest. Eight kills, one
346
  tank in the cutoff disc, three tanks alive, within about 50 turns.
347
  overrides:
348
+ # HARD MAP โ€” 128x48 arena (cordon 2 -> playable y in [2..45]).
349
+ # Same mid-east wall y=15..25 across x=63..78 as easy/medium.
350
+ # Both NORTH (y=2..7) and SOUTH (y=33..45) flank lanes open;
351
+ # spawn-point round-robin (NORTH staging y=12..15 / SOUTH
352
+ # staging y=25..28) varies the natural flank corridor per seed.
353
+ base_map:
354
+ generator: arena
355
+ name: combat-prevent-retreat-hard
356
+ width: 128
357
+ height: 48
358
+ cordon: 2
359
+ title: 'Prevent Retreat โ€” Hard (Spawn-Varied)'
360
+ obstacles:
361
+ - {x: 63, y: 15, w: 16, h: 11}
362
  actors:
363
  # spawn_point 0 โ€” NORTH staging corridor (y=12..15). Already
364
  # off-axis from the e1/e3 cluster (e3 Dragon range ~5, so a