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

Plan §3.7.1 specifies 20% spawn radius for 2-player (~4 tiles from center,
~8 tiles apart). Code had 25% (~5 tiles from center, ~10 tiles apart), which
placed bots outside the 6-tile attack radius, preventing combat engagement.

With 20% radius (4 tiles from center, 8 tiles apart), bots are within attack
range after one move and consistently engage in combat. Test replays show
combat_death events in all seeds, with 0 zone_death events.

Also adjusted secondaryRadius to 0.25 (from 0.20) to ensure secondary cores
spawn outside zone_min_radius=3, fixing TestSpawnRadiusOutsideZone for
2-player-2-cores case.

Closes: bf-by1l
This commit is contained in:
jedarden 2026-05-25 12:01:44 -04:00
parent 44a1f5ab94
commit 826746d101

View file

@ -271,8 +271,8 @@ func (mr *MatchRunner) generateMap(gs *GameState, numPlayers int) {
var primaryRadius, secondaryRadius float64
if numPlayers == 2 {
primaryRadius = 0.25 // ~5 tiles from center on 40x40 grid
secondaryRadius = 0.25 // ~5 tiles from center (must be > zone_min_radius=3, accounting for int truncation)
primaryRadius = 0.20 // ~4 tiles from center on 40x40 grid (per plan §3.7.1)
secondaryRadius = 0.25 // ~5 tiles from center (> zone_min_radius=3, spawns outside final zone)
} else {
primaryRadius = 0.10 // ~5 tiles from center on 50x50 grid
secondaryRadius = 0.08