Xiaochuang Yuan commited on
Commit
20f0791
ยท
1 Parent(s): 57621c5

combat-pincer-coordination: per-tier maps reinforce two-prong doctrine

Browse files

Replaces the generic rush-hour-arena with three custom-built 128x48
arenas that physically reinforce what this pack measures (synchronous
NW + SW two-prong arrival on a central cluster). The actor layouts,
predicates, and survival/kill bars are unchanged; the new maps add
WATER walls that close the band between each spawn and the engagement
axis, so neither squad can shortcut onto the other's lane and
"merge" into a single approach (which would weaken the two-prong
discrimination).

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

All tiers โ€” 128x48 cordon 2; walls y=12..16 and y=24..28 across
x=10..40 carve a NORTH lane (y=2..11) and a SOUTH lane (y=29..45)
that the NW spawn (5,8) and SW spawn (5,32) must take respectively.
The central engagement axis y=17..23 stays open at x>=41 so both
prongs converge ON the cluster from off-axis directions.

* easy - combat-pincer-coordination-easy (light infantry cluster)
* medium - combat-pincer-coordination-medium (+ enemy 2tnk armour)
* hard - combat-pincer-coordination-hard (medium cluster + the
existing spawn-point round-robin: group 0 at (5,8)/(5,32),
group 1 at (3,5)/(3,35); all staging cells sit in the
open NORTH or SOUTH bands so the wall layout works for
both seed groups).

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-pincer-coordination-easy.oramap ADDED
Binary file (989 Bytes). View file
 
data/maps/combat-pincer-coordination-hard.oramap ADDED
Binary file (993 Bytes). View file
 
data/maps/combat-pincer-coordination-medium.oramap ADDED
Binary file (986 Bytes). View file
 
openra_bench/scenarios/packs/combat-pincer-coordination.yaml CHANGED
@@ -16,6 +16,21 @@
16
  # defender cannot focus on either prong in detail.
17
  #
18
  # Engine notes (per CLAUDE.md):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  # - Enemy cluster anchored at (50,19) / (50,21) โ€” CLAUDE.md warns
20
  # that (50,20) silently fails to place enemy clusters; the off-by-
21
  # one cells are confirmed working. The win region centre at
@@ -165,6 +180,26 @@ levels:
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).
170
  - {type: 2tnk, owner: agent, position: [5, 8], stance: 1, count: 3}
@@ -232,6 +267,21 @@ levels:
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}
237
  - {type: 2tnk, owner: agent, position: [5, 32], stance: 1, count: 3}
@@ -297,6 +347,23 @@ levels:
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).
302
  - {type: 2tnk, owner: agent, position: [5, 8], stance: 1, count: 3, spawn_point: 0}
 
16
  # defender cannot focus on either prong in detail.
17
  #
18
  # Engine notes (per CLAUDE.md):
19
+ # - Map: per-tier custom 128x48 arena (cordon 2 โ‡’ playable y in
20
+ # [2..45]) generated via mapgen's `arena` generator with WATER
21
+ # walls that physically reinforce the two-prong pincer doctrine:
22
+ # * easy / medium: walls y=12..16 and y=24..28 across x=10..40
23
+ # carve a TWO-PRONG approach. NW spawn (5,8) routes east via
24
+ # the open band y=2..11 (reaching the cluster from the north
25
+ # flank); SW spawn (5,32) routes east via the open band
26
+ # y=29..45. The central engagement axis y=17..23 is open at
27
+ # x>=41 so both prongs converge ON the cluster from off-axis
28
+ # directions โ€” no shortcut to "merge" the squads onto a
29
+ # single approach lane.
30
+ # * hard: same 128x48 wall layout plus the existing two-spawn-
31
+ # group axis (group 0 stages at (5,8)/(5,32), group 1 at
32
+ # (3,5)/(3,35)) so the exact start cells differ across seeds
33
+ # and a memorised single-cell opening cannot generalise.
34
  # - Enemy cluster anchored at (50,19) / (50,21) โ€” CLAUDE.md warns
35
  # that (50,20) silently fails to place enemy clusters; the off-by-
36
  # one cells are confirmed working. The win region centre at
 
180
  can't satisfy the four-in-region clause. Six kills, four tanks at
181
  (50,20), no more than two losses, within about 50 turns.
182
  overrides:
183
+ # EASY MAP โ€” 128x48 arena (cordon 2 -> playable y in [2..45]).
184
+ # Two-prong corridors: walls y=12..16 and y=24..28 across
185
+ # x=10..40 carve a NORTH lane (y=2..11) and a SOUTH lane
186
+ # (y=29..45) that NW and SW spawns must take respectively.
187
+ # The central engagement axis y=17..23 is open at x>=41 so
188
+ # both prongs converge ON the cluster at (50,20) from off-axis
189
+ # directions; no shortcut allows one squad to absorb the
190
+ # other's role.
191
+ base_map:
192
+ generator: arena
193
+ name: combat-pincer-coordination-easy
194
+ width: 128
195
+ height: 48
196
+ cordon: 2
197
+ title: 'Pincer Coordination โ€” Easy (Two-Prong Approach)'
198
+ obstacles:
199
+ # NORTH wall โ€” closes y=12..16 across x=10..40.
200
+ - {x: 10, y: 12, w: 31, h: 5}
201
+ # SOUTH wall โ€” closes y=24..28 across x=10..40.
202
+ - {x: 10, y: 24, w: 31, h: 5}
203
  actors:
204
  # Squad A (NORTH-WEST) โ€” 3 medium tanks at (5,8).
205
  - {type: 2tnk, owner: agent, position: [5, 8], stance: 1, count: 3}
 
267
  kills, four tanks in the (50,20) disc, no more than two losses,
268
  within about 50 turns.
269
  overrides:
270
+ # MEDIUM MAP โ€” 128x48 arena (cordon 2 -> playable y in [2..45]).
271
+ # Same two-prong wall layout as easy: walls y=12..16 and
272
+ # y=24..28 across x=10..40 force the NW and SW squads onto
273
+ # off-axis lanes that converge on the cluster from above and
274
+ # below.
275
+ base_map:
276
+ generator: arena
277
+ name: combat-pincer-coordination-medium
278
+ width: 128
279
+ height: 48
280
+ cordon: 2
281
+ title: 'Pincer Coordination โ€” Medium (Armoured Cluster)'
282
+ obstacles:
283
+ - {x: 10, y: 12, w: 31, h: 5}
284
+ - {x: 10, y: 24, w: 31, h: 5}
285
  actors:
286
  - {type: 2tnk, owner: agent, position: [5, 8], stance: 1, count: 3}
287
  - {type: 2tnk, owner: agent, position: [5, 32], stance: 1, count: 3}
 
347
  bleeds out. Six kills, four tanks in the (50,20) disc, two losses or
348
  fewer, within about 50 turns.
349
  overrides:
350
+ # HARD MAP โ€” 128x48 arena (cordon 2 -> playable y in [2..45]).
351
+ # Same two-prong wall layout as easy/medium plus the existing
352
+ # spawn-point round-robin: spawn_point 0 stages at (5,8)/(5,32),
353
+ # spawn_point 1 at (3,5)/(3,35). All staging cells sit in the
354
+ # open NORTH band (y=2..11) or SOUTH band (y=29..45); the wall
355
+ # bands y=12..16 and y=24..28 across x=10..40 still force the
356
+ # two-prong off-axis approach regardless of seed.
357
+ base_map:
358
+ generator: arena
359
+ name: combat-pincer-coordination-hard
360
+ width: 128
361
+ height: 48
362
+ cordon: 2
363
+ title: 'Pincer Coordination โ€” Hard (Spawn-Varied Two-Prong)'
364
+ obstacles:
365
+ - {x: 10, y: 12, w: 31, h: 5}
366
+ - {x: 10, y: 24, w: 31, h: 5}
367
  actors:
368
  # spawn_point 0 โ€” Squad A NORTH (5,8), Squad B SOUTH (5,32).
369
  - {type: 2tnk, owner: agent, position: [5, 8], stance: 1, count: 3, spawn_point: 0}