复用判定: AmmoChangeTime替代固定10分钟; 同种弹秒级复用, 异种弹检查间隔

This commit is contained in:
tian 2026-06-12 15:26:09 +08:00
parent 44d88ad383
commit 42b390a264

View File

@ -373,7 +373,8 @@ CounterDroneBackend_Data/
| MunitionCount | INTEGER | NULLABLE | 挂载弹药数量 |
| MuzzleVelocity | REAL | NULLABLE | **NEW** 弹药初速 m/s地基炮弹用 |
| ReleaseAltitude | REAL | NULLABLE | **NEW** 弹药释放高度 m空基平台用 |
| Cooldown | REAL | DEFAULT 5 | 发射冷却时间 s |
| Cooldown | REAL | DEFAULT 5 | 发射冷却时间 s同弹种连发间隔 |
| AmmoChangeTime | REAL | DEFAULT 300 | **NEW** 更换弹种所需时间 s默认 5 分钟) |
| // 以下为探测设备专用字段 |
| DetectionRadius | REAL | NULLABLE | 探测半径 m |
@ -1364,8 +1365,10 @@ foreach (var droneGroup in threat.DroneGroups)
allSolutions.Add(solution);
}
// 如果某编队间隔足够大,算法可判定同一组装备复用
// 如编队B在编队A抵达后10分钟才到可用同一火力单元
// 复用判定(不写死"一对一"或"一对多"
// 同种弹药 → 只需冷却时间(秒级),可直接复用
// 异种弹药 → 需要 AmmoChangeTime默认 5 分钟),检查编队间隔是否够
// 弹药耗尽 → 不可复用
var merged = MergeFireSchedules(allSolutions);
engine.SetFireSchedule(merged);