fix(engine): set ZoneShrinkStep to 2 per plan §3.7.1

Plan §3.7.1 specifies ZoneShrinkStep = 2 for both 2-player and 3+
player matches. Previous implementation had ZoneShrinkStep = 1,
causing the zone to shrink too slowly and delaying the forcing
function that pushes bots into combat range.

- Update ConfigForPlayers() to set ZoneShrinkStep = 2
- Update DefaultConfig() to set ZoneShrinkStep = 2
- Update comments to reference plan §3.7.1

Closes: bf-1noo

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
jedarden 2026-05-25 13:54:30 -04:00
parent 9dae3bd3de
commit f50a275c7e

View file

@ -193,7 +193,7 @@ func DefaultConfig() Config {
ZoneEnabled: true,
ZoneStartTurn: 10, // Per plan §3.7.1 (both 2-player and 3+)
ZoneShrinkInterval: 1, // Per plan §3.7.1 (both 2-player and 3+)
ZoneShrinkStep: 1,
ZoneShrinkStep: 2, // Per plan §3.7.1 (both 2-player and 3+)
ZoneMinRadius: 3,
}
}
@ -242,13 +242,13 @@ func ConfigForPlayers(numPlayers, coresPerPlayer int) Config {
if numPlayers == 2 {
cfg.ZoneStartTurn = 10 // Per plan §3.7.1
cfg.ZoneShrinkInterval = 1 // Per plan §3.7.1
cfg.ZoneShrinkStep = 1 // 1 tile per turn (slower zone to allow bots time to reach center)
cfg.ZoneShrinkStep = 2 // Per plan §3.7.1: 2 tiles per step forces engagement
cfg.ZoneMinRadius = 2 // Final zone diameter (4) <= 2 * attack radius (10), forces contact
cfg.AttackRadius2 = 25 // 5 tiles (reduced from 6 to achieve 65-80% combat density target)
} else {
cfg.ZoneStartTurn = 10 // Per plan §3.7.1
cfg.ZoneShrinkInterval = 1 // Per plan §3.7.1
cfg.ZoneShrinkStep = 1 // 1 tile per turn (slower zone to allow bots time to reach center)
cfg.ZoneShrinkStep = 2 // Per plan §3.7.1: 2 tiles per step forces engagement
cfg.ZoneMinRadius = 1 // Zone diameter (2) < attack radius (3.5), forces contact
cfg.AttackRadius2 = 12 // 3.5 tiles per plan §3.4 (3+ player)
}