diff --git a/CHANGELOG.md b/CHANGELOG.md index edf0b00..ade00bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,43 @@ # Changelog -本文件记录项目对外发布的变更历史(用户视角)。 -格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/), -版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。 +--- + +## [0.3.0] - 2026-06-13 + +### Added + +- DefensePlanner 防御规划引擎:五步流水线(威胁排序 → 弹药匹配 → 候选生成 → 贪心分配 → 时序生成) +- 空基平台飞行与投弹:状态机(Idle → FlyingToTarget → ReadyToRelease),载机速度继承,弹药抛物线下落 +- 火力单元通道模型:GunCount × ChannelsPerGun,ChannelInterval 物理间隔,Cooldown 冷却 +- 默认火力单元配置:4 种模板(轻型/标准/重地基 + 标准空基 8 通道) +- 推荐算法统一处理空基/地基平台类型 +- 物理间隔错开发射:发射间隔 = 云团直径 / 无人机速度 +- 每发弹按目标点位置独立计算到达时间 +- 报告显示 per-unit 发射数 + 事件标注火力单元 + +### Changed + +- IDefenseAdvisor → IDefensePlanner:统一输入 `List` + `List` +- FireUnit 重构:统一表达空基/地基平台(Type/Position/GunCount/ChannelsPerGun) +- SimulationEngine 内部调用 Planner 自动生成发射计划 +- MunitionEntity 空投使用 Kinematics.AirDropPosition(继承载机速度 + 重力) +- PlatformEntity 加入 CurrentVelocity 属性 + +### Fixed + +- 同平台多弹 FireTime 相同导致冷却跳过:FireTime += i × Cooldown +- 同平台弹药飞行时间按目标位置变化被吃掉:统一用中心点飞行时间 +- recommendedTiming 按每发目标点独立计算(非中点) +- 空基 FireEvent.MuzzleVelocity 错误写 800 +- SQLite domain reload 崩溃:SqliteConnectionTracker + AssemblyReloadEvents.beforeAssemblyReload + +### Removed + +- IDefenseAdvisor / DefaultDefenseAdvisor / RecommendMultiGroup +- SimulationRunner.BuildFireSchedule fallback +- 所有硬编码默认值(55f/800f/1000f/+500f/0.1f clamp) +- 所有静默 fallback(null return/empty events) +- Models.SimEvent 死代码 --- diff --git a/VERSION b/VERSION index 0ea3a94..0d91a54 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.2.0 +0.3.0 diff --git a/docs/implementation/tasks/实施计划与任务跟踪.md b/docs/implementation/tasks/实施计划与任务跟踪.md index 2e487ec..15b2df5 100644 --- a/docs/implementation/tasks/实施计划与任务跟踪.md +++ b/docs/implementation/tasks/实施计划与任务跟踪.md @@ -139,13 +139,13 @@ Phase 8 ⬜ 待开发 | 指标 | 值 | |------|------| -| 测试总数 | **128** | +| 测试总数 | **141** | | 行覆盖率 | **95.4%** | | 分支覆盖率 | **80.5%** | -| 执行时间 | ~9 秒 | +| 执行时间 | ~26 秒 | | Core 程序集 | `CounterDrone.Core.dll` (.NET Standard 2.1) | | Unity 项目 | `src/Unity/`(Unity 2022.3.62) | -| Unity Manager | 7 个 MonoBehaviour 桥接 + 1 个 Bootstrap | +| Unity Manager | 8 个 MonoBehaviour 桥接 + Bootstrap + SqliteConnectionTracker | | 零 Unity 依赖 | ✅ Core 可脱离 Unity 独立运行和测试 | --- @@ -160,9 +160,10 @@ Phase 8 ⬜ 待开发 |---|------|------| | 8.1.1 | 探测设备搜索逻辑 | `DetectionEntity` 类已存在,需接入 `SimulationEngine` 实现探测→火控链路闭环 | | 8.1.2 | 蜂群运动模型 | `FormationMode.Swarm` 枚举已定义,需差异化行为(随机扰动、个体差异) | -| 8.1.3 | 空基平台飞行动态 | ✅ `PlatformEntity` 状态机,巡航飞行,弹药继承载机速度。**推荐算法统一处理平台类型**,`ThreatProfile.PreferredPlatformType` 驱动,`DefaultDefenseAdvisor` 根据类型正确计算 `FireTime`/`CruiseSpeed`/`ReleaseAltitude`。引擎零适配逻辑 | ✅ | +| 8.1.3 | 空基平台 + DefensePlanner | ✅ 五步规划引擎,通道模型,物理间隔错发,按目标点独立计时,141 测试全过 | ✅ | | 8.1.4 | 预置典型目标库 | 具体无人机型号 JSON 配置(如 DJI Mavic 3、Shahed-136 等),导入 `TargetConfig` 默认值 | | 8.1.5 | 毁伤曲线参数校准 | 三种毁伤模型的 damageRate/threshold/burstDamage 需甲方/领域专家确认后写入 | +| 8.1.6 | Fallback/default 清理 | ✅ 删除所有硬编码默认值和静默 fallback,参数缺失即报错 | ✅ | ### 8.2 报告与导出