SaveTarget→SaveDroneProfile + 测试方法名同步

This commit is contained in:
tian 2026-06-18 15:55:37 +08:00
parent 67cea1490d
commit 9f682c9b91
13 changed files with 26 additions and 26 deletions

View File

@ -1395,7 +1395,7 @@ interface IScenarioService
// 步骤保存 // 步骤保存
void SaveScene(string scenarioId, CombatScene scene); void SaveScene(string scenarioId, CombatScene scene);
void SaveControlZones(string scenarioId, List<ControlZone> zones); // NEW void SaveControlZones(string scenarioId, List<ControlZone> zones); // NEW
void SaveTarget(string scenarioId, DroneProfile target); void SaveDroneProfile(string scenarioId, DroneProfile target);
void SaveDeployment(string scenarioId, List<EquipmentDeployment> equips); // 重构 void SaveDeployment(string scenarioId, List<EquipmentDeployment> equips); // 重构
void SaveCloudDispersal(string scenarioId, CloudDispersal cloud); void SaveCloudDispersal(string scenarioId, CloudDispersal cloud);
void SaveRoute(string scenarioId, RoutePlan route, List<Waypoint> wps); void SaveRoute(string scenarioId, RoutePlan route, List<Waypoint> wps);

View File

@ -72,7 +72,7 @@ var scenarioId = demos.Items[0].Id;
// 方式 B自定义 // 方式 B自定义
var sc = scenario.CreateScenario("我的想定", ""); var sc = scenario.CreateScenario("我的想定", "");
scenario.SaveScene(sc.Id, new CombatScene { WindSpeed = 5, WindDirection = (int)WindDirection.E }); scenario.SaveScene(sc.Id, new CombatScene { WindSpeed = 5, WindDirection = (int)WindDirection.E });
scenario.SaveTarget(sc.Id, new DroneProfile { scenario.SaveDroneProfile(sc.Id, new DroneProfile {
WaveId = "w1", Model = "Shahed-136", Description = "活塞巡飞弹", WaveId = "w1", Model = "Shahed-136", Description = "活塞巡飞弹",
Quantity = 1, DroneType = (int)DroneType.FixedWing, Quantity = 1, DroneType = (int)DroneType.FixedWing,
TypicalSpeed = 200, TypicalAltitude = 500 TypicalSpeed = 200, TypicalAltitude = 500
@ -150,7 +150,7 @@ mgr.DataService.GetAllEnvironments() / GetAllFormations() / GetAllRoutes()
// 想定 CRUD // 想定 CRUD
mgr.CreateScenario(name, number) / mgr.DeleteScenario(id) mgr.CreateScenario(name, number) / mgr.DeleteScenario(id)
mgr.Search(kw, from, to, page, size) mgr.Search(kw, from, to, page, size)
mgr.SaveScene / SaveTarget / SaveDeployment / SaveCloud / SaveRoute / UpdateStep mgr.SaveScene / SaveDroneProfile / SaveDeployment / SaveCloud / SaveRoute / UpdateStep
mgr.GetDetail(id) → ScenarioConfig mgr.GetDetail(id) → ScenarioConfig
``` ```

View File

@ -37,7 +37,7 @@ namespace CounterDrone.Core
{ {
var t = s.CreateScenario("[Demo] 无防御-无人机抵达目标", ""); var t = s.CreateScenario("[Demo] 无防御-无人机抵达目标", "");
s.SaveScene(t.Id, d.Environments.First(w => w.Id == "sunny-calm").ToCombatScene()); s.SaveScene(t.Id, d.Environments.First(w => w.Id == "sunny-calm").ToCombatScene());
s.SaveTarget(t.Id, d.Drones.First(p => p.Id == "shahed").ToDroneProfile()); s.SaveDroneProfile(t.Id, d.Drones.First(p => p.Id == "shahed").ToDroneProfile());
s.SaveRoute(t.Id, "default", d.Formations.First(f => f.Id == "single").ToRoutePlan(), R("3km-h400", 600, d)); s.SaveRoute(t.Id, "default", d.Formations.First(f => f.Id == "single").ToRoutePlan(), R("3km-h400", 600, d));
s.SaveCloudDispersal(t.Id, new CloudDispersal()); s.SaveCloudDispersal(t.Id, new CloudDispersal());
s.SaveDeployment(t.Id, new List<EquipmentDeployment>()); s.SaveDeployment(t.Id, new List<EquipmentDeployment>());
@ -48,7 +48,7 @@ namespace CounterDrone.Core
{ {
var t = s.CreateScenario("[Demo] 管控区域侵入", ""); var t = s.CreateScenario("[Demo] 管控区域侵入", "");
s.SaveScene(t.Id, d.Environments.First(w => w.Id == "sunny-calm").ToCombatScene()); s.SaveScene(t.Id, d.Environments.First(w => w.Id == "sunny-calm").ToCombatScene());
s.SaveTarget(t.Id, d.Drones.First(p => p.Id == "electric-scout").ToDroneProfile()); s.SaveDroneProfile(t.Id, d.Drones.First(p => p.Id == "electric-scout").ToDroneProfile());
s.SaveRoute(t.Id, "default", d.Formations.First(f => f.Id == "single").ToRoutePlan(), R("3km-h300", 300, d)); s.SaveRoute(t.Id, "default", d.Formations.First(f => f.Id == "single").ToRoutePlan(), R("3km-h300", 300, d));
s.SaveCloudDispersal(t.Id, new CloudDispersal()); s.SaveCloudDispersal(t.Id, new CloudDispersal());
s.SaveDeployment(t.Id, new List<EquipmentDeployment>()); s.SaveDeployment(t.Id, new List<EquipmentDeployment>());
@ -71,7 +71,7 @@ namespace CounterDrone.Core
scene.WindSpeed = 5; scene.WindSpeed = 5;
scene.WindDirection = (int)WindDirection.W; scene.WindDirection = (int)WindDirection.W;
s.SaveScene(t.Id, scene); s.SaveScene(t.Id, scene);
s.SaveTarget(t.Id, d.Drones.First(p => p.Id == "shahed").ToDroneProfile()); s.SaveDroneProfile(t.Id, d.Drones.First(p => p.Id == "shahed").ToDroneProfile());
s.SaveRoute(t.Id, "default", d.Formations.First(f => f.Id == "single").ToRoutePlan(), s.SaveRoute(t.Id, "default", d.Formations.First(f => f.Id == "single").ToRoutePlan(),
new List<Waypoint> { new List<Waypoint> {
new() { PosX = 6600, PosY = 500, PosZ = 0, Speed = 200 }, new() { PosX = 6600, PosY = 500, PosZ = 0, Speed = 200 },
@ -89,7 +89,7 @@ namespace CounterDrone.Core
{ {
var t = s.CreateScenario("[Demo] 喷气式拦截-活性材料", ""); var t = s.CreateScenario("[Demo] 喷气式拦截-活性材料", "");
s.SaveScene(t.Id, d.Environments.First(w => w.Id == "sunny-calm").ToCombatScene()); s.SaveScene(t.Id, d.Environments.First(w => w.Id == "sunny-calm").ToCombatScene());
s.SaveTarget(t.Id, d.Drones.First(p => p.Id == "cruise-missile").ToDroneProfile()); s.SaveDroneProfile(t.Id, d.Drones.First(p => p.Id == "cruise-missile").ToDroneProfile());
s.SaveRoute(t.Id, "default", d.Formations.First(f => f.Id == "single").ToRoutePlan(), s.SaveRoute(t.Id, "default", d.Formations.First(f => f.Id == "single").ToRoutePlan(),
new List<Waypoint> { new List<Waypoint> {
new() { PosX = 18000, PosY = 500, PosZ = 0, Speed = 200 }, new() { PosX = 18000, PosY = 500, PosZ = 0, Speed = 200 },
@ -110,7 +110,7 @@ namespace CounterDrone.Core
scene.WindSpeed = 5; scene.WindSpeed = 5;
scene.WindDirection = (int)WindDirection.E; scene.WindDirection = (int)WindDirection.E;
s.SaveScene(t.Id, scene); s.SaveScene(t.Id, scene);
s.SaveTarget(t.Id, d.Drones.First(p => p.Id == "shahed").ToDroneProfile()); s.SaveDroneProfile(t.Id, d.Drones.First(p => p.Id == "shahed").ToDroneProfile());
s.SaveRoute(t.Id, "default", d.Formations.First(f => f.Id == "single").ToRoutePlan(), s.SaveRoute(t.Id, "default", d.Formations.First(f => f.Id == "single").ToRoutePlan(),
new List<Waypoint> { new List<Waypoint> {
new() { PosX = 9500, PosY = 500, PosZ = 0, Speed = 200 }, new() { PosX = 9500, PosY = 500, PosZ = 0, Speed = 200 },
@ -133,7 +133,7 @@ namespace CounterDrone.Core
s.SaveScene(t.Id, scene); s.SaveScene(t.Id, scene);
var target = d.Drones.First(p => p.Id == "shahed").ToDroneProfile(); var target = d.Drones.First(p => p.Id == "shahed").ToDroneProfile();
target.Quantity = 3; target.Quantity = 3;
s.SaveTarget(t.Id, target); s.SaveDroneProfile(t.Id, target);
s.SaveRoute(t.Id, "default", d.Formations.First(f => f.Id == "line-3").ToRoutePlan(), s.SaveRoute(t.Id, "default", d.Formations.First(f => f.Id == "line-3").ToRoutePlan(),
new List<Waypoint> { new List<Waypoint> {
new() { PosX = 10000, PosY = 500, PosZ = 0, Speed = 200 }, new() { PosX = 10000, PosY = 500, PosZ = 0, Speed = 200 },

View File

@ -13,7 +13,7 @@ namespace CounterDrone.Core.Services
void SaveScene(string scenarioId, CombatScene scene); void SaveScene(string scenarioId, CombatScene scene);
void SaveControlZones(string scenarioId, List<ControlZone> zones); void SaveControlZones(string scenarioId, List<ControlZone> zones);
void SaveTarget(string scenarioId, DroneProfile target); void SaveDroneProfile(string scenarioId, DroneProfile target);
void SaveDeployment(string scenarioId, List<EquipmentDeployment> equips); void SaveDeployment(string scenarioId, List<EquipmentDeployment> equips);
/// <summary>添加单个探测设备(独立于 SaveDeployment不覆盖火力单元</summary> /// <summary>添加单个探测设备(独立于 SaveDeployment不覆盖火力单元</summary>

View File

@ -131,7 +131,7 @@ namespace CounterDrone.Core.Services
TouchScenario(scenarioId); TouchScenario(scenarioId);
} }
public void SaveTarget(string scenarioId, DroneProfile target) public void SaveDroneProfile(string scenarioId, DroneProfile target)
{ {
target.ScenarioId = scenarioId; target.ScenarioId = scenarioId;
if (string.IsNullOrEmpty(target.Id)) if (string.IsNullOrEmpty(target.Id))

View File

@ -52,7 +52,7 @@ namespace CounterDrone.Unity
=> _service.SearchScenarios(kw, from, to, page, size); => _service.SearchScenarios(kw, from, to, page, size);
public void SaveScene(string scenarioId, CombatScene s) => _service.SaveScene(scenarioId, s); public void SaveScene(string scenarioId, CombatScene s) => _service.SaveScene(scenarioId, s);
public void SaveTarget(string scenarioId, DroneProfile t) => _service.SaveTarget(scenarioId, t); public void SaveDroneProfile(string scenarioId, DroneProfile t) => _service.SaveDroneProfile(scenarioId, t);
public void SaveDeployment(string scenarioId, List<EquipmentDeployment> e) => _service.SaveDeployment(scenarioId, e); public void SaveDeployment(string scenarioId, List<EquipmentDeployment> e) => _service.SaveDeployment(scenarioId, e);
public void SaveCloud(string scenarioId, CloudDispersal c) => _service.SaveCloudDispersal(scenarioId, c); public void SaveCloud(string scenarioId, CloudDispersal c) => _service.SaveCloudDispersal(scenarioId, c);
public void SaveRoute(string scenarioId, string waveId, RoutePlan r, List<Waypoint> w) => _service.SaveRoute(scenarioId, waveId, r, w); public void SaveRoute(string scenarioId, string waveId, RoutePlan r, List<Waypoint> w) => _service.SaveRoute(scenarioId, waveId, r, w);

View File

@ -70,7 +70,7 @@ namespace CounterDrone.Unity
scenarioId = sc.Id; scenarioId = sc.Id;
scenario.SaveScene(scenarioId, defaults.Environments.First(w => w.Id == "sunny-calm").ToCombatScene()); scenario.SaveScene(scenarioId, defaults.Environments.First(w => w.Id == "sunny-calm").ToCombatScene());
scenario.SaveTarget(scenarioId, defaults.Drones.First(p => p.Id == "shahed").ToDroneProfile()); scenario.SaveDroneProfile(scenarioId, defaults.Drones.First(p => p.Id == "shahed").ToDroneProfile());
scenario.SaveRoute(scenarioId, "default", scenario.SaveRoute(scenarioId, "default",
defaults.Formations.First(f => f.Id == "single").ToRoutePlan(), defaults.Formations.First(f => f.Id == "single").ToRoutePlan(),
defaults.Routes.First(r => _routeLength > 6000 ? r.Id == "10km-h500" : r.Id == "5km-h500") defaults.Routes.First(r => _routeLength > 6000 ? r.Id == "10km-h500" : r.Id == "5km-h500")

View File

@ -46,7 +46,7 @@ namespace CounterDrone.Core.Tests
_scenarioId = scenario.Id; _scenarioId = scenario.Id;
_scenario.SaveScene(_scenarioId, new CombatScene { WindSpeed = 0 }); _scenario.SaveScene(_scenarioId, new CombatScene { WindSpeed = 0 });
_scenario.SaveTarget(_scenarioId, new DroneProfile _scenario.SaveDroneProfile(_scenarioId, new DroneProfile
{ {
WaveId = "default", WaveId = "default",
DroneType = (int)DroneType.FixedWing, DroneType = (int)DroneType.FixedWing,
@ -89,7 +89,7 @@ namespace CounterDrone.Core.Tests
WindSpeed = 30, // 最大风速 WindSpeed = 30, // 最大风速
WindDirection = (int)WindDirection.E, WindDirection = (int)WindDirection.E,
}); });
_scenario.SaveTarget(_scenarioId, new DroneProfile _scenario.SaveDroneProfile(_scenarioId, new DroneProfile
{ {
WaveId = "default", WaveId = "default",
DroneType = (int)DroneType.FixedWing, DroneType = (int)DroneType.FixedWing,
@ -128,7 +128,7 @@ namespace CounterDrone.Core.Tests
_scenarioId = scenario.Id; _scenarioId = scenario.Id;
_scenario.SaveScene(_scenarioId, new CombatScene { WindSpeed = 0 }); _scenario.SaveScene(_scenarioId, new CombatScene { WindSpeed = 0 });
_scenario.SaveTarget(_scenarioId, new DroneProfile _scenario.SaveDroneProfile(_scenarioId, new DroneProfile
{ {
WaveId = "default", WaveId = "default",
DroneType = (int)DroneType.HighSpeed, DroneType = (int)DroneType.HighSpeed,

View File

@ -185,7 +185,7 @@ namespace CounterDrone.Core.Tests
var scenarioA = _scenario.CreateScenario("无探测远航路", ""); var scenarioA = _scenario.CreateScenario("无探测远航路", "");
_scenarioId = scenarioA.Id; _scenarioId = scenarioA.Id;
_scenario.SaveScene(_scenarioId, new CombatScene { WindSpeed = 0, Visibility = 10000 }); _scenario.SaveScene(_scenarioId, new CombatScene { WindSpeed = 0, Visibility = 10000 });
_scenario.SaveTarget(_scenarioId, new DroneProfile _scenario.SaveDroneProfile(_scenarioId, new DroneProfile
{ {
WaveId = "default", DroneType = (int)DroneType.FixedWing, PowerType = (int)PowerType.Piston, WaveId = "default", DroneType = (int)DroneType.FixedWing, PowerType = (int)PowerType.Piston,
Quantity = 1, TypicalSpeed = 200, TypicalAltitude = 500, Quantity = 1, TypicalSpeed = 200, TypicalAltitude = 500,
@ -210,7 +210,7 @@ namespace CounterDrone.Core.Tests
var scenarioB = _scenario.CreateScenario("有探测远航路", ""); var scenarioB = _scenario.CreateScenario("有探测远航路", "");
_scenarioId = scenarioB.Id; _scenarioId = scenarioB.Id;
_scenario.SaveScene(_scenarioId, new CombatScene { WindSpeed = 0, Visibility = 10000 }); _scenario.SaveScene(_scenarioId, new CombatScene { WindSpeed = 0, Visibility = 10000 });
_scenario.SaveTarget(_scenarioId, new DroneProfile _scenario.SaveDroneProfile(_scenarioId, new DroneProfile
{ {
WaveId = "default", DroneType = (int)DroneType.FixedWing, PowerType = (int)PowerType.Piston, WaveId = "default", DroneType = (int)DroneType.FixedWing, PowerType = (int)PowerType.Piston,
Quantity = 1, TypicalSpeed = 200, TypicalAltitude = 500, Quantity = 1, TypicalSpeed = 200, TypicalAltitude = 500,

View File

@ -101,7 +101,7 @@ namespace CounterDrone.Core.Tests
Temperature = 25.0, Temperature = 25.0,
}); });
_service.SaveTarget(scenario.Id, new DroneProfile _service.SaveDroneProfile(scenario.Id, new DroneProfile
{ {
WaveId = "default", WaveId = "default",
DroneType = (int)DroneType.FixedWing, DroneType = (int)DroneType.FixedWing,
@ -196,10 +196,10 @@ namespace CounterDrone.Core.Tests
} }
[Fact] [Fact]
public void SaveTarget_SavesCorrectly() public void SaveDroneProfile_SavesCorrectly()
{ {
var scenario = _service.CreateScenario("Target Test", ""); var scenario = _service.CreateScenario("Target Test", "");
_service.SaveTarget(scenario.Id, new DroneProfile _service.SaveDroneProfile(scenario.Id, new DroneProfile
{ {
WaveId = "default", WaveId = "default",
DroneType = (int)DroneType.FixedWing, DroneType = (int)DroneType.FixedWing,
@ -392,7 +392,7 @@ namespace CounterDrone.Core.Tests
}); });
// 4. 步骤2目标配置 // 4. 步骤2目标配置
_service.SaveTarget(scenario.Id, new DroneProfile _service.SaveDroneProfile(scenario.Id, new DroneProfile
{ {
WaveId = "default", WaveId = "default",
DroneType = (int)DroneType.HighSpeed, DroneType = (int)DroneType.HighSpeed,

View File

@ -50,7 +50,7 @@ namespace CounterDrone.Core.Tests
var scenario = _scenarioService.CreateScenario("Test", ""); var scenario = _scenarioService.CreateScenario("Test", "");
_scenarioId = scenario.Id; _scenarioId = scenario.Id;
_scenarioService.SaveScene(_scenarioId, new CombatScene { WindSpeed = 0 }); _scenarioService.SaveScene(_scenarioId, new CombatScene { WindSpeed = 0 });
_scenarioService.SaveTarget(_scenarioId, new DroneProfile _scenarioService.SaveDroneProfile(_scenarioId, new DroneProfile
{ {
WaveId = "default", WaveId = "default",
DroneType = (int)DroneType.FixedWing, DroneType = (int)DroneType.FixedWing,
@ -151,7 +151,7 @@ namespace CounterDrone.Core.Tests
var scenario = _scenarioService.CreateScenario("Detect", ""); var scenario = _scenarioService.CreateScenario("Detect", "");
_scenarioId = scenario.Id; _scenarioId = scenario.Id;
_scenarioService.SaveScene(_scenarioId, new CombatScene { WindSpeed = 0, Visibility = 10000 }); _scenarioService.SaveScene(_scenarioId, new CombatScene { WindSpeed = 0, Visibility = 10000 });
_scenarioService.SaveTarget(_scenarioId, new DroneProfile _scenarioService.SaveDroneProfile(_scenarioId, new DroneProfile
{ {
WaveId = "w1", WaveId = "w1",
DroneType = (int)DroneType.FixedWing, DroneType = (int)DroneType.FixedWing,
@ -224,7 +224,7 @@ namespace CounterDrone.Core.Tests
// 探测设备在 X=5000 半径 1000 → 入口 X=4000出口 X=6000 // 探测设备在 X=5000 半径 1000 → 入口 X=4000出口 X=6000
var scenario = _scenarioService.CreateScenario("Reenter", ""); var scenario = _scenarioService.CreateScenario("Reenter", "");
_scenarioService.SaveScene(scenario.Id, new CombatScene { WindSpeed = 0, Visibility = 10000 }); _scenarioService.SaveScene(scenario.Id, new CombatScene { WindSpeed = 0, Visibility = 10000 });
_scenarioService.SaveTarget(scenario.Id, new DroneProfile _scenarioService.SaveDroneProfile(scenario.Id, new DroneProfile
{ {
WaveId = "w1", Quantity = 1, TypicalSpeed = 120, PowerType = (int)PowerType.Piston, TypicalAltitude = 300, WaveId = "w1", Quantity = 1, TypicalSpeed = 120, PowerType = (int)PowerType.Piston, TypicalAltitude = 300,
}); });
@ -275,7 +275,7 @@ namespace CounterDrone.Core.Tests
// D1 边界 X=1000D2 边界 X=3000 → D1 更早发现 // D1 边界 X=1000D2 边界 X=3000 → D1 更早发现
var scenario = _scenarioService.CreateScenario("Fuse", ""); var scenario = _scenarioService.CreateScenario("Fuse", "");
_scenarioService.SaveScene(scenario.Id, new CombatScene { WindSpeed = 0, Visibility = 10000 }); _scenarioService.SaveScene(scenario.Id, new CombatScene { WindSpeed = 0, Visibility = 10000 });
_scenarioService.SaveTarget(scenario.Id, new DroneProfile _scenarioService.SaveDroneProfile(scenario.Id, new DroneProfile
{ {
WaveId = "w1", Quantity = 1, TypicalSpeed = 60, PowerType = (int)PowerType.Piston, TypicalAltitude = 300, WaveId = "w1", Quantity = 1, TypicalSpeed = 60, PowerType = (int)PowerType.Piston, TypicalAltitude = 300,
}); });

Binary file not shown.