fix: roundInLane+ch 双重错开 + TargetY 分析

- stagger = (baseRoundInLane+ch)×CloudCoverInterval
- 引擎 span=7.20s, Planner单元测试 span=7.27s
- 2/3 击毁,第三架 FormationOffsetY 垂向偏移导致覆盖窗口缩短
This commit is contained in:
tian 2026-06-13 14:42:16 +08:00
parent 0c9cdb7b82
commit b596b4a791

View File

@ -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++;
}