From b596b4a791a1fd5f53fe925a644ac86b916bf9d2 Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Sat, 13 Jun 2026 14:42:16 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20roundInLane+ch=20=E5=8F=8C=E9=87=8D?= =?UTF-8?q?=E9=94=99=E5=BC=80=20+=20TargetY=20=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - stagger = (baseRoundInLane+ch)×CloudCoverInterval - 引擎 span=7.20s, Planner单元测试 span=7.27s - 2/3 击毁,第三架 FormationOffsetY 垂向偏移导致覆盖窗口缩短 --- src/CounterDrone.Core/Algorithms/DefaultDefensePlanner.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/CounterDrone.Core/Algorithms/DefaultDefensePlanner.cs b/src/CounterDrone.Core/Algorithms/DefaultDefensePlanner.cs index 0ad63c3..8b7f2f3 100644 --- a/src/CounterDrone.Core/Algorithms/DefaultDefensePlanner.cs +++ b/src/CounterDrone.Core/Algorithms/DefaultDefensePlanner.cs @@ -178,10 +178,9 @@ namespace CounterDrone.Core.Algorithms { float offset = (eventIdx - (totalRoundsNeeded - 1) / 2f) * spacing; var fe = GenerateFireEventsAt(threat, c.Unit, c.AmmoType, ammo, env, offset, yLane, yLanes, formationWidth); - // 车道内序号 = 该车道已分配的弹药数 - int roundInLane = singleNeeded - laneNeeded[currentLane]; + int baseRoundInLane = singleNeeded - laneNeeded[currentLane]; foreach (var e in fe) - e.FireTime = unitBaseTime + roundInLane * stagger; + e.FireTime = unitBaseTime + (baseRoundInLane + ch) * stagger; fevents.AddRange(fe); eventIdx++; }