From f50a275c7ee4a8de5115368350f11992f1538e8a Mon Sep 17 00:00:00 2001 From: jedarden Date: Mon, 25 May 2026 13:54:30 -0400 Subject: [PATCH] =?UTF-8?q?fix(engine):=20set=20ZoneShrinkStep=20to=202=20?= =?UTF-8?q?per=20plan=20=C2=A73.7.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- engine/types.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/engine/types.go b/engine/types.go index 670c261..3f21cf1 100644 --- a/engine/types.go +++ b/engine/types.go @@ -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) }