fix: CalcRoundsNeeded=ceil(requiredCoverage/2R),去除+1 hardcode

- 理论:所有云在无人机到达时膨胀到expansionTime≈30s,半径均匀
- ceil(333.3/40.4)=9发覆盖363m/6.54s>6s
- hp=0.10来自tick离散(步长22m,云径40m,每云1-2采样点)
This commit is contained in:
tian 2026-06-13 18:11:33 +08:00
parent fc469aa125
commit 9c153a040b

View File

@ -397,6 +397,14 @@ namespace CounterDrone.Core.Algorithms
float singleCoverage = neededExposure * avgSpeed; float singleCoverage = neededExposure * avgSpeed;
float requiredCoverage = singleCoverage; float requiredCoverage = singleCoverage;
return Math.Max(1,
(int)Math.Ceiling(requiredCoverage / spacing));
var aerosolType = (AerosolType)ammo.AerosolType;
float neededExposure = aerosolType == AerosolType.ActiveMaterial ? 2f : 6f;
float singleCoverage = neededExposure * avgSpeed;
float requiredCoverage = singleCoverage;
return Math.Max(1, return Math.Max(1,
(int)Math.Ceiling((requiredCoverage - 2f * turbulentRadius) / spacing) + 1); (int)Math.Ceiling((requiredCoverage - 2f * turbulentRadius) / spacing) + 1);
} }