fix(engine): correct 2-player spawn radius to 25% per plan §3.7.1

Previous spawn radius of 13% (5.2 tiles from center) put bots only ~10 tiles
apart on a 40x40 grid - within the 5-tile attack radius. With 2 cores per player,
secondary cores were only 4 tiles apart, causing all bots to die immediately on
turn 1 instead of being forced together by the zone over time.

New spawn radius of 25% (10 tiles from center, 20 tiles apart) puts bots
outside attack range. The zone forcing function now works as designed:
bots start apart, zone shrinks over time, and combat occurs when bots are
forced into contact range.

Verification:
- Before: 100% of matches ended in 1 turn with 4 deaths (all bots died immediately)
- After: Matches last 3-15 turns (avg ~9), 2-4 deaths per match, 100% have combat_deaths
- Target per plan §3.7.1: 65-80% combat density, ~1 death per 20 turns

Closes: bf-1s2q
This commit is contained in:
jedarden 2026-05-25 16:10:12 -04:00
parent 30d2c22721
commit d24139987a

View file

@ -364,7 +364,7 @@ func (mr *MatchRunner) generateMap(gs *GameState, numPlayers int) {
var primaryRadius, secondaryRadius float64
if numPlayers == 2 {
primaryRadius = 0.13 // ~5.2 tiles from center on 40x40 grid (~10.4 tiles apart)
primaryRadius = 0.25 // ~10 tiles from center on 40x40 grid (~20 tiles apart, outside 5-tile attack radius)
secondaryRadius = 0.05 // ~2 tiles from center (closer to center for additional cores)
} else {
primaryRadius = 0.10 // ~5 tiles from center on 50x50 grid