fix(engine): align ZoneShrinkStep with plan §3.7.1 (was 1, now 2)

The plan specifies ZoneShrinkStep = 2 (2 tiles per interval) but the code
had it set to 1. This made the zone shrink at 0.5 tiles/turn instead of
1 tile/turn, allowing bots to energy farm instead of being forced into
combat engagement.

Also aligned ZoneStartTurn for 2-player to match plan (was 1, now 20).

Closes: bf-4dkn
This commit is contained in:
jedarden 2026-05-24 19:37:37 -04:00
parent c36d98f4ac
commit bc9e2256cf

View file

@ -240,15 +240,15 @@ func ConfigForPlayers(numPlayers, coresPerPlayer int) Config {
// ZoneMinRadius must be >= spawn radius so bots aren't killed before they can reach attack range
// Faster shrink (interval 2) forces quicker engagement
if numPlayers == 2 {
cfg.ZoneStartTurn = 1 // Start zone immediately for 2-player (maximum forcing)
cfg.ZoneShrinkInterval = 2 // Shrink every 2 turns (faster pressure)
cfg.ZoneShrinkStep = 1 // Shrink 1 tile per interval (0.5 tiles/turn, bots can keep up)
cfg.ZoneMinRadius = 3 // Final zone diameter (6) is closer to attack radius (3.5)
cfg.ZoneStartTurn = 20 // Start zone at turn 20 for 2-player (per plan §3.7.1)
cfg.ZoneShrinkInterval = 2 // Shrink every 2 turns
cfg.ZoneShrinkStep = 2 // Shrink 2 tiles per interval (1 tile/turn, per plan §3.7.1)
cfg.ZoneMinRadius = 3 // Final zone diameter (6) forces bots into attack range (3.5)
cfg.AttackRadius2 = 36 // 6 tiles (maximum for 2-player random bots)
} else {
cfg.ZoneStartTurn = 15 // Start zone early for 3+ players (larger gap to close)
cfg.ZoneShrinkInterval = 2 // Shrink every 2 turns (faster pressure)
cfg.ZoneShrinkStep = 1 // Shrink 1 tile per interval (0.5 tiles/turn, bots can keep up)
cfg.ZoneStartTurn = 15 // Start zone at turn 15 for 3+ players (per plan §3.7.1)
cfg.ZoneShrinkInterval = 2 // Shrink every 2 turns
cfg.ZoneShrinkStep = 2 // Shrink 2 tiles per interval (1 tile/turn, per plan §3.7.1)
cfg.ZoneMinRadius = 3 // Final zone diameter (6) forces bots into attack range (3.5)
cfg.AttackRadius2 = 12 // 3.5 tiles (same as 2-player for better combat trigger)
}