Spaces:
Running
combat-pincer-coordination: per-tier maps reinforce two-prong doctrine
Browse filesReplaces 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.
|
Binary file (989 Bytes). View file
|
|
|
|
Binary file (993 Bytes). View file
|
|
|
|
Binary file (986 Bytes). View file
|
|
|
|
@@ -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}
|