报告: 环境与目标分为独立章节

This commit is contained in:
tian 2026-06-12 11:44:57 +08:00
parent 481c91fc28
commit bf3f403b81

View File

@ -30,20 +30,32 @@ namespace CounterDrone.Core.Services
sb.AppendLine($"| 拦截概率(算法估计) | {(config.Cloud.Source == "Algorithm" ? "" : "")} |");
sb.AppendLine();
// === 一、环境与目标 ===
sb.AppendLine("## 一、环境与目标");
// === 一、环境 ===
sb.AppendLine("## 一、作战环境");
sb.AppendLine();
sb.AppendLine($"| 环境 | 值 | 目标 | 值 |");
sb.AppendLine($"|------|-----|------|-----|");
sb.AppendLine($"| 天气 | {TranslateWeather((WeatherType)scene.WeatherType)} | 类型 | {TranslateTarget((TargetType)(target?.TargetType ?? 0))} |");
sb.AppendLine($"| 风速 | {scene.WindSpeed} m/s | 数量 | {config.Targets.Sum(t => t.Quantity)} 架 |");
sb.AppendLine($"| 风向 | {scene.WindDirection} | 速度 | {target?.TypicalSpeed ?? 0} km/h |");
sb.AppendLine($"| 温度 | {scene.Temperature}°C | 高度 | {target?.TypicalAltitude ?? 0} m |");
sb.AppendLine($"| 能见度 | {scene.Visibility} m | 动力 | {TranslatePower((PowerType)(target?.PowerType ?? 0))} |");
sb.AppendLine($"| 参数 | 值 |");
sb.AppendLine($"|------|-----|");
sb.AppendLine($"| 天气 | {TranslateWeather((WeatherType)scene.WeatherType)} |");
sb.AppendLine($"| 风速 | {scene.WindSpeed} m/s |");
sb.AppendLine($"| 风向 | {scene.WindDirection} |");
sb.AppendLine($"| 温度 | {scene.Temperature}°C |");
sb.AppendLine($"| 能见度 | {scene.Visibility} m |");
sb.AppendLine();
// === 二、目标 ===
sb.AppendLine("## 二、威胁目标");
sb.AppendLine();
sb.AppendLine($"| 参数 | 值 |");
sb.AppendLine($"|------|-----|");
sb.AppendLine($"| 类型 | {TranslateTarget((TargetType)(target?.TargetType ?? 0))} |");
sb.AppendLine($"| 数量 | {config.Targets.Sum(t => t.Quantity)} 架 |");
sb.AppendLine($"| 速度 | {target?.TypicalSpeed ?? 0} km/h |");
sb.AppendLine($"| 高度 | {target?.TypicalAltitude ?? 0} m |");
sb.AppendLine($"| 动力 | {TranslatePower((PowerType)(target?.PowerType ?? 0))} |");
sb.AppendLine();
// === 二、我方部署 ===
sb.AppendLine("## 二、我方部署");
sb.AppendLine("## 、我方部署");
sb.AppendLine();
sb.AppendLine($"| 装备 | 数量 |");
sb.AppendLine($"|------|------|");
@ -54,7 +66,7 @@ namespace CounterDrone.Core.Services
sb.AppendLine();
// === 三、事件时序 ===
sb.AppendLine("## 、事件时序");
sb.AppendLine("## 、事件时序");
sb.AppendLine();
sb.AppendLine("| 时间(s) | 事件 | 详情 |");
sb.AppendLine("|---------|------|------|");
@ -79,7 +91,7 @@ namespace CounterDrone.Core.Services
var launchTime = events.Where(e => e.Type == SimEventType.MunitionLaunched).Select(e => e.OccurredAt).DefaultIfEmpty(0).Min();
var cloudTime = events.Where(e => e.Type == SimEventType.CloudGenerated).Select(e => e.OccurredAt).DefaultIfEmpty(0).Min();
var destroyTime = events.Where(e => e.Type == SimEventType.DroneDestroyed).Select(e => e.OccurredAt).DefaultIfEmpty(0).Min();
sb.AppendLine("## 、时间线");
sb.AppendLine("## 、时间线");
sb.AppendLine();
sb.AppendLine($"| 阶段 | 时间 | 耗时 |");
sb.AppendLine($"|------|------|------|");
@ -97,7 +109,7 @@ namespace CounterDrone.Core.Services
var totalDrones = config.Targets.Sum(t => t.Quantity);
var result = DetermineInterceptResult(destroyed, reached + intruded, totalDrones);
sb.AppendLine("## 、结果统计");
sb.AppendLine("## 、结果统计");
sb.AppendLine();
sb.AppendLine($"| 统计项 | 值 |");
sb.AppendLine($"|--------|-----|");