侦察,干扰,指挥,开火构建完毕

This commit is contained in:
2025-09-19 10:27:31 +08:00
parent 826c030dc5
commit bc21884da0
9 changed files with 191 additions and 114 deletions

View File

@@ -74,6 +74,8 @@ processor IADS_CMDR_TASK_MGR WSF_TASK_PROCESSOR
script void MakeAssignments()
#writeln("MakeAssignments ");
Array<WsfPlatform> filter = Array<WsfPlatform>();
Array<WsfPlatform> mover = Array<WsfPlatform>();
Array<WsfPlatform> waiter = Array<WsfPlatform>();
foreach (WsfPlatform sub in PLATFORM.Subordinates())
{
#writeln("is Subordinates");
@@ -89,6 +91,16 @@ processor IADS_CMDR_TASK_MGR WSF_TASK_PROCESSOR
writeln("*** Adding ", sub.Name(), " to filter");
filter.PushBack(sub);
}
if(WeaponsAvailable(sub) &&
!(TRACK.WithinZoneOf(sub, "battalion_sector")))
{
writeln("*** Adding ", sub.Name(), " to mover");
mover.PushBack(sub);
}
if(!WeaponsAvailable(sub))
{
waiter.PushBack(sub);
}
}
}
@@ -99,6 +111,20 @@ processor IADS_CMDR_TASK_MGR WSF_TASK_PROCESSOR
writeln("assign fire");
AssignTask(TRACK, "ENGAGE", filter[i]);
}
int numMover=(int)(mover.Size());
for (int i=0; i < numMover; i = i + 1)
{
writeln("assign move");
AssignTask(TRACK, "MOVE", mover[i]);
}
int numWaiter=(int)(waiter.Size());
for (int i=0; i < numWaiter; i = i + 1)
{
writeln("assign wait");
AssignTask(TRACK, "WAIT", waiter[i]);
}
end_script
# -------------------------------------------------------------------------
@@ -108,7 +134,6 @@ processor IADS_CMDR_TASK_MGR WSF_TASK_PROCESSOR
state DETECTED
next_state ASSIGNED
if (! IsAssignable()) return false;
MakeAssignments();
return true;
end_next_state