mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Progress
This commit is contained in:
parent
fbae55b9f9
commit
3bd0cdbe32
@ -1408,7 +1408,7 @@ do -- DETECTION_AREAS
|
|||||||
local DetectedItem = self:GetParent( self ).AddDetectedItem( self, Set, Zone )
|
local DetectedItem = self:GetParent( self ).AddDetectedItem( self, Set, Zone )
|
||||||
|
|
||||||
DetectedItem.Removed = false
|
DetectedItem.Removed = false
|
||||||
DetectedItem.AreaID = #self.DetectedItems + 1
|
DetectedItem.AreaID = #self.DetectedItems
|
||||||
|
|
||||||
self:T( { #self.DetectedItems, DetectedItem } )
|
self:T( { #self.DetectedItems, DetectedItem } )
|
||||||
|
|
||||||
@ -1433,8 +1433,7 @@ do -- DETECTION_AREAS
|
|||||||
local DetectedItemPointVec3 = DetectedZone:GetPointVec3()
|
local DetectedItemPointVec3 = DetectedZone:GetPointVec3()
|
||||||
local DetectedAreaPointLL = DetectedItemPointVec3:ToStringLL( 3, true )
|
local DetectedAreaPointLL = DetectedItemPointVec3:ToStringLL( 3, true )
|
||||||
local ReportSummary = string.format(
|
local ReportSummary = string.format(
|
||||||
"Area #%d - %s - Threat Level [%s] (%2d)",
|
"%s - Threat Level [%s] (%2d)",
|
||||||
Index,
|
|
||||||
DetectedAreaPointLL,
|
DetectedAreaPointLL,
|
||||||
string.rep( "■", ThreatLevelA2G ),
|
string.rep( "■", ThreatLevelA2G ),
|
||||||
ThreatLevelA2G
|
ThreatLevelA2G
|
||||||
|
|||||||
@ -185,7 +185,7 @@ do -- TASK_A2G_DISPATCHER
|
|||||||
|
|
||||||
--- Assigns tasks in relation to the detected items to the @{Set#SET_GROUP}.
|
--- Assigns tasks in relation to the detected items to the @{Set#SET_GROUP}.
|
||||||
-- @param #TASK_A2G_DISPATCHER self
|
-- @param #TASK_A2G_DISPATCHER self
|
||||||
-- @param Functional.Detection#DETECTION_AREAS Detection The detection created by the @{Detection#DETECTION_AREAS} object.
|
-- @param Functional.Detection#DETECTION_BASE Detection The detection created by the @{Detection#DETECTION_BASE} derived object.
|
||||||
-- @return #boolean Return true if you want the task assigning to continue... false will cancel the loop.
|
-- @return #boolean Return true if you want the task assigning to continue... false will cancel the loop.
|
||||||
function TASK_A2G_DISPATCHER:ProcessDetected( Detection )
|
function TASK_A2G_DISPATCHER:ProcessDetected( Detection )
|
||||||
self:F2()
|
self:F2()
|
||||||
@ -195,6 +195,9 @@ do -- TASK_A2G_DISPATCHER
|
|||||||
local ChangeMsg = {}
|
local ChangeMsg = {}
|
||||||
|
|
||||||
local Mission = self.Mission
|
local Mission = self.Mission
|
||||||
|
local ReportSEAD = REPORT:New( " - SEAD Tasks:")
|
||||||
|
local ReportCAS = REPORT:New( " - CAS Tasks:")
|
||||||
|
local ReportBAI = REPORT:New( " - BAI Tasks:")
|
||||||
|
|
||||||
--- First we need to the detected targets.
|
--- First we need to the detected targets.
|
||||||
for DetectedItemID, DetectedItem in pairs( Detection:GetDetectedItems() ) do
|
for DetectedItemID, DetectedItem in pairs( Detection:GetDetectedItems() ) do
|
||||||
@ -208,65 +211,51 @@ do -- TASK_A2G_DISPATCHER
|
|||||||
local AreaID = DetectedItem.AreaID
|
local AreaID = DetectedItem.AreaID
|
||||||
|
|
||||||
-- Evaluate SEAD Tasking
|
-- Evaluate SEAD Tasking
|
||||||
local SEADTask = Mission:GetTask( "SEAD." .. AreaID )
|
local SEADTask = Mission:GetTask( string.format( "SEAD.%03d", AreaID ) )
|
||||||
SEADTask = self:EvaluateRemoveTask( Mission, SEADTask, DetectedItem )
|
SEADTask = self:EvaluateRemoveTask( Mission, SEADTask, DetectedItem )
|
||||||
if not SEADTask then
|
if not SEADTask then
|
||||||
local TargetSetUnit = self:EvaluateSEAD( DetectedItem ) -- Returns a SetUnit if there are targets to be SEADed...
|
local TargetSetUnit = self:EvaluateSEAD( DetectedItem ) -- Returns a SetUnit if there are targets to be SEADed...
|
||||||
if TargetSetUnit then
|
if TargetSetUnit then
|
||||||
local Task = TASK_SEAD:New( Mission, self.SetGroup, "SEAD." .. AreaID, TargetSetUnit )
|
local Task = TASK_SEAD:New( Mission, self.SetGroup, string.format( "SEAD.%03d", AreaID ), TargetSetUnit )
|
||||||
Task:SetTargetZone( DetectedZone )
|
Task:SetTargetZone( DetectedZone )
|
||||||
SEADTask = Mission:AddTask( Task )
|
SEADTask = Mission:AddTask( Task )
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if SEADTask and SEADTask:IsStatePlanned() then
|
if SEADTask and SEADTask:IsStatePlanned() then
|
||||||
TaskMsg[#TaskMsg+1] = " - " .. SEADTask:GetStateString() .. " SEAD " .. AreaID .. " - " .. SEADTask.TargetSetUnit:GetUnitTypesText()
|
ReportSEAD:Add( string.format( " - %s.%02d - %s", "SEAD", AreaID, Detection:DetectedItemReportSummary(DetectedItemID) ) )
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Evaluate CAS Tasking
|
-- Evaluate CAS Tasking
|
||||||
local CASTask = Mission:GetTask( "CAS." .. AreaID )
|
local CASTask = Mission:GetTask( string.format( "CAS.%03d", AreaID ) )
|
||||||
CASTask = self:EvaluateRemoveTask( Mission, CASTask, DetectedItem )
|
CASTask = self:EvaluateRemoveTask( Mission, CASTask, DetectedItem )
|
||||||
if not CASTask then
|
if not CASTask then
|
||||||
local TargetSetUnit = self:EvaluateCAS( DetectedItem ) -- Returns a SetUnit if there are targets to be SEADed...
|
local TargetSetUnit = self:EvaluateCAS( DetectedItem ) -- Returns a SetUnit if there are targets to be SEADed...
|
||||||
if TargetSetUnit then
|
if TargetSetUnit then
|
||||||
local Task = TASK_CAS:New( Mission, self.SetGroup, "CAS." .. AreaID, TargetSetUnit )
|
local Task = TASK_CAS:New( Mission, self.SetGroup, string.format( "CAS.%03d", AreaID ), TargetSetUnit )
|
||||||
Task:SetTargetZone( DetectedZone )
|
Task:SetTargetZone( DetectedZone )
|
||||||
CASTask = Mission:AddTask( Task )
|
CASTask = Mission:AddTask( Task )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if CASTask and CASTask:IsStatePlanned() then
|
if CASTask and CASTask:IsStatePlanned() then
|
||||||
TaskMsg[#TaskMsg+1] = " - " .. CASTask:GetStateString() .. " CAS " .. AreaID .. " - " .. CASTask.TargetSetUnit:GetUnitTypesText()
|
ReportCAS:Add( string.format( " - %s.%02d - %s", "CAS.", AreaID, Detection:DetectedItemReportSummary(DetectedItemID) ) )
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Evaluate BAI Tasking
|
-- Evaluate BAI Tasking
|
||||||
local BAITask = Mission:GetTask( "BAI." .. AreaID )
|
local BAITask = Mission:GetTask( string.format( "BAI.%03d", AreaID ) )
|
||||||
BAITask = self:EvaluateRemoveTask( Mission, BAITask, DetectedItem )
|
BAITask = self:EvaluateRemoveTask( Mission, BAITask, DetectedItem )
|
||||||
if not BAITask then
|
if not BAITask then
|
||||||
local TargetSetUnit = self:EvaluateBAI( DetectedItem, self.CommandCenter:GetCoalition() ) -- Returns a SetUnit if there are targets to be SEADed...
|
local TargetSetUnit = self:EvaluateBAI( DetectedItem, self.CommandCenter:GetCoalition() ) -- Returns a SetUnit if there are targets to be SEADed...
|
||||||
if TargetSetUnit then
|
if TargetSetUnit then
|
||||||
local Task = TASK_BAI:New( Mission, self.SetGroup, "BAI." .. AreaID, TargetSetUnit )
|
local Task = TASK_BAI:New( Mission, self.SetGroup, string.format( "BAI.%03d", AreaID ), TargetSetUnit )
|
||||||
Task:SetTargetZone( DetectedZone )
|
Task:SetTargetZone( DetectedZone )
|
||||||
BAITask = Mission:AddTask( Task )
|
BAITask = Mission:AddTask( Task )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if BAITask and BAITask:IsStatePlanned() then
|
if BAITask and BAITask:IsStatePlanned() then
|
||||||
TaskMsg[#TaskMsg+1] = " - " .. BAITask:GetStateString() .. " BAI " .. AreaID .. " - " .. BAITask.TargetSetUnit:GetUnitTypesText()
|
ReportBAI:Add( string.format( " - %s.%02d - %s", "BAI", AreaID, Detection:DetectedItemReportSummary(DetectedItemID) ) )
|
||||||
end
|
end
|
||||||
|
|
||||||
-- if #TaskMsg > 0 then
|
|
||||||
--
|
|
||||||
-- local ThreatLevel = Detection:GetTreatLevelA2G( DetectedItem )
|
|
||||||
--
|
|
||||||
-- local DetectedAreaVec3 = DetectedZone:GetVec3()
|
|
||||||
-- local DetectedAreaPointVec3 = POINT_VEC3:New( DetectedAreaVec3.x, DetectedAreaVec3.y, DetectedAreaVec3.z )
|
|
||||||
-- local DetectedAreaPointLL = DetectedAreaPointVec3:ToStringLL( 3, true )
|
|
||||||
-- AreaMsg[#AreaMsg+1] = string.format( " - Area #%d - %s - Threat Level [%s] (%2d)",
|
|
||||||
-- DetectedItemID,
|
|
||||||
-- DetectedAreaPointLL,
|
|
||||||
-- string.rep( "■", ThreatLevel ),
|
|
||||||
-- ThreatLevel
|
|
||||||
-- )
|
|
||||||
--
|
|
||||||
-- -- Loop through the changes ...
|
-- -- Loop through the changes ...
|
||||||
-- local ChangeText = Detection:GetChangeText( DetectedItem )
|
-- local ChangeText = Detection:GetChangeText( DetectedItem )
|
||||||
--
|
--
|
||||||
@ -283,16 +272,14 @@ do -- TASK_A2G_DISPATCHER
|
|||||||
-- TODO set menus using the HQ coordinator
|
-- TODO set menus using the HQ coordinator
|
||||||
Mission:GetCommandCenter():SetMenu()
|
Mission:GetCommandCenter():SetMenu()
|
||||||
|
|
||||||
if #TaskMsg > 0 then
|
for TaskGroupID, TaskGroup in pairs( self.SetGroup:GetSet() ) do
|
||||||
for TaskGroupID, TaskGroup in pairs( self.SetGroup:GetSet() ) do
|
if not TaskGroup:GetState( TaskGroup, "Assigned" ) then
|
||||||
if not TaskGroup:GetState( TaskGroup, "Assigned" ) then
|
self.CommandCenter:MessageToGroup(
|
||||||
self.CommandCenter:MessageToGroup(
|
string.format( "HQ Reporting - Planned tasks for mission '%s':\n%s\n",
|
||||||
string.format( "HQ Reporting - Target areas for mission '%s':\nTasks:\n%s ",
|
self.Mission:GetName(),
|
||||||
self.Mission:GetName(),
|
string.format( "%s\n%s\n%s", ReportSEAD:Text(), ReportCAS:Text(), ReportBAI:Text() )
|
||||||
table.concat( TaskMsg, "\n" )
|
), self:GetReportDisplayTime(), TaskGroup
|
||||||
), self:GetReportDisplayTime(), TaskGroup
|
)
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
env.info( '*** MOOSE STATIC INCLUDE START *** ' )
|
env.info( '*** MOOSE STATIC INCLUDE START *** ' )
|
||||||
env.info( 'Moose Generation Timestamp: 20170309_1321' )
|
env.info( 'Moose Generation Timestamp: 20170309_1744' )
|
||||||
local base = _G
|
local base = _G
|
||||||
|
|
||||||
Include = {}
|
Include = {}
|
||||||
@ -26646,7 +26646,7 @@ do -- DETECTION_AREAS
|
|||||||
local DetectedItem = self:GetParent( self ).AddDetectedItem( self, Set, Zone )
|
local DetectedItem = self:GetParent( self ).AddDetectedItem( self, Set, Zone )
|
||||||
|
|
||||||
DetectedItem.Removed = false
|
DetectedItem.Removed = false
|
||||||
DetectedItem.AreaID = #self.DetectedItems + 1
|
DetectedItem.AreaID = #self.DetectedItems
|
||||||
|
|
||||||
self:T( { #self.DetectedItems, DetectedItem } )
|
self:T( { #self.DetectedItems, DetectedItem } )
|
||||||
|
|
||||||
@ -26671,8 +26671,7 @@ do -- DETECTION_AREAS
|
|||||||
local DetectedItemPointVec3 = DetectedZone:GetPointVec3()
|
local DetectedItemPointVec3 = DetectedZone:GetPointVec3()
|
||||||
local DetectedAreaPointLL = DetectedItemPointVec3:ToStringLL( 3, true )
|
local DetectedAreaPointLL = DetectedItemPointVec3:ToStringLL( 3, true )
|
||||||
local ReportSummary = string.format(
|
local ReportSummary = string.format(
|
||||||
"Area #%d - %s - Threat Level [%s] (%2d)",
|
"%s - Threat Level [%s] (%2d)",
|
||||||
Index,
|
|
||||||
DetectedAreaPointLL,
|
DetectedAreaPointLL,
|
||||||
string.rep( "■", ThreatLevelA2G ),
|
string.rep( "■", ThreatLevelA2G ),
|
||||||
ThreatLevelA2G
|
ThreatLevelA2G
|
||||||
@ -34411,7 +34410,7 @@ do -- TASK_A2G_DISPATCHER
|
|||||||
|
|
||||||
--- Assigns tasks in relation to the detected items to the @{Set#SET_GROUP}.
|
--- Assigns tasks in relation to the detected items to the @{Set#SET_GROUP}.
|
||||||
-- @param #TASK_A2G_DISPATCHER self
|
-- @param #TASK_A2G_DISPATCHER self
|
||||||
-- @param Functional.Detection#DETECTION_AREAS Detection The detection created by the @{Detection#DETECTION_AREAS} object.
|
-- @param Functional.Detection#DETECTION_BASE Detection The detection created by the @{Detection#DETECTION_BASE} derived object.
|
||||||
-- @return #boolean Return true if you want the task assigning to continue... false will cancel the loop.
|
-- @return #boolean Return true if you want the task assigning to continue... false will cancel the loop.
|
||||||
function TASK_A2G_DISPATCHER:ProcessDetected( Detection )
|
function TASK_A2G_DISPATCHER:ProcessDetected( Detection )
|
||||||
self:F2()
|
self:F2()
|
||||||
@ -34421,6 +34420,9 @@ do -- TASK_A2G_DISPATCHER
|
|||||||
local ChangeMsg = {}
|
local ChangeMsg = {}
|
||||||
|
|
||||||
local Mission = self.Mission
|
local Mission = self.Mission
|
||||||
|
local ReportSEAD = REPORT:New( " - SEAD Tasks:")
|
||||||
|
local ReportCAS = REPORT:New( " - CAS Tasks:")
|
||||||
|
local ReportBAI = REPORT:New( " - BAI Tasks:")
|
||||||
|
|
||||||
--- First we need to the detected targets.
|
--- First we need to the detected targets.
|
||||||
for DetectedItemID, DetectedItem in pairs( Detection:GetDetectedItems() ) do
|
for DetectedItemID, DetectedItem in pairs( Detection:GetDetectedItems() ) do
|
||||||
@ -34434,65 +34436,51 @@ do -- TASK_A2G_DISPATCHER
|
|||||||
local AreaID = DetectedItem.AreaID
|
local AreaID = DetectedItem.AreaID
|
||||||
|
|
||||||
-- Evaluate SEAD Tasking
|
-- Evaluate SEAD Tasking
|
||||||
local SEADTask = Mission:GetTask( "SEAD." .. AreaID )
|
local SEADTask = Mission:GetTask( string.format( "SEAD.%03d", AreaID ) )
|
||||||
SEADTask = self:EvaluateRemoveTask( Mission, SEADTask, DetectedItem )
|
SEADTask = self:EvaluateRemoveTask( Mission, SEADTask, DetectedItem )
|
||||||
if not SEADTask then
|
if not SEADTask then
|
||||||
local TargetSetUnit = self:EvaluateSEAD( DetectedItem ) -- Returns a SetUnit if there are targets to be SEADed...
|
local TargetSetUnit = self:EvaluateSEAD( DetectedItem ) -- Returns a SetUnit if there are targets to be SEADed...
|
||||||
if TargetSetUnit then
|
if TargetSetUnit then
|
||||||
local Task = TASK_SEAD:New( Mission, self.SetGroup, "SEAD." .. AreaID, TargetSetUnit )
|
local Task = TASK_SEAD:New( Mission, self.SetGroup, string.format( "SEAD.%03d", AreaID ), TargetSetUnit )
|
||||||
Task:SetTargetZone( DetectedZone )
|
Task:SetTargetZone( DetectedZone )
|
||||||
SEADTask = Mission:AddTask( Task )
|
SEADTask = Mission:AddTask( Task )
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if SEADTask and SEADTask:IsStatePlanned() then
|
if SEADTask and SEADTask:IsStatePlanned() then
|
||||||
TaskMsg[#TaskMsg+1] = " - " .. SEADTask:GetStateString() .. " SEAD " .. AreaID .. " - " .. SEADTask.TargetSetUnit:GetUnitTypesText()
|
ReportSEAD:Add( string.format( " - %s.%02d - %s", "SEAD", AreaID, Detection:DetectedItemReportSummary(DetectedItemID) ) )
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Evaluate CAS Tasking
|
-- Evaluate CAS Tasking
|
||||||
local CASTask = Mission:GetTask( "CAS." .. AreaID )
|
local CASTask = Mission:GetTask( string.format( "CAS.%03d", AreaID ) )
|
||||||
CASTask = self:EvaluateRemoveTask( Mission, CASTask, DetectedItem )
|
CASTask = self:EvaluateRemoveTask( Mission, CASTask, DetectedItem )
|
||||||
if not CASTask then
|
if not CASTask then
|
||||||
local TargetSetUnit = self:EvaluateCAS( DetectedItem ) -- Returns a SetUnit if there are targets to be SEADed...
|
local TargetSetUnit = self:EvaluateCAS( DetectedItem ) -- Returns a SetUnit if there are targets to be SEADed...
|
||||||
if TargetSetUnit then
|
if TargetSetUnit then
|
||||||
local Task = TASK_CAS:New( Mission, self.SetGroup, "CAS." .. AreaID, TargetSetUnit )
|
local Task = TASK_CAS:New( Mission, self.SetGroup, string.format( "CAS.%03d", AreaID ), TargetSetUnit )
|
||||||
Task:SetTargetZone( DetectedZone )
|
Task:SetTargetZone( DetectedZone )
|
||||||
CASTask = Mission:AddTask( Task )
|
CASTask = Mission:AddTask( Task )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if CASTask and CASTask:IsStatePlanned() then
|
if CASTask and CASTask:IsStatePlanned() then
|
||||||
TaskMsg[#TaskMsg+1] = " - " .. CASTask:GetStateString() .. " CAS " .. AreaID .. " - " .. CASTask.TargetSetUnit:GetUnitTypesText()
|
ReportCAS:Add( string.format( " - %s.%02d - %s", "CAS.", AreaID, Detection:DetectedItemReportSummary(DetectedItemID) ) )
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Evaluate BAI Tasking
|
-- Evaluate BAI Tasking
|
||||||
local BAITask = Mission:GetTask( "BAI." .. AreaID )
|
local BAITask = Mission:GetTask( string.format( "BAI.%03d", AreaID ) )
|
||||||
BAITask = self:EvaluateRemoveTask( Mission, BAITask, DetectedItem )
|
BAITask = self:EvaluateRemoveTask( Mission, BAITask, DetectedItem )
|
||||||
if not BAITask then
|
if not BAITask then
|
||||||
local TargetSetUnit = self:EvaluateBAI( DetectedItem, self.CommandCenter:GetCoalition() ) -- Returns a SetUnit if there are targets to be SEADed...
|
local TargetSetUnit = self:EvaluateBAI( DetectedItem, self.CommandCenter:GetCoalition() ) -- Returns a SetUnit if there are targets to be SEADed...
|
||||||
if TargetSetUnit then
|
if TargetSetUnit then
|
||||||
local Task = TASK_BAI:New( Mission, self.SetGroup, "BAI." .. AreaID, TargetSetUnit )
|
local Task = TASK_BAI:New( Mission, self.SetGroup, string.format( "BAI.%03d", AreaID ), TargetSetUnit )
|
||||||
Task:SetTargetZone( DetectedZone )
|
Task:SetTargetZone( DetectedZone )
|
||||||
BAITask = Mission:AddTask( Task )
|
BAITask = Mission:AddTask( Task )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if BAITask and BAITask:IsStatePlanned() then
|
if BAITask and BAITask:IsStatePlanned() then
|
||||||
TaskMsg[#TaskMsg+1] = " - " .. BAITask:GetStateString() .. " BAI " .. AreaID .. " - " .. BAITask.TargetSetUnit:GetUnitTypesText()
|
ReportBAI:Add( string.format( " - %s.%02d - %s", "BAI", AreaID, Detection:DetectedItemReportSummary(DetectedItemID) ) )
|
||||||
end
|
end
|
||||||
|
|
||||||
-- if #TaskMsg > 0 then
|
|
||||||
--
|
|
||||||
-- local ThreatLevel = Detection:GetTreatLevelA2G( DetectedItem )
|
|
||||||
--
|
|
||||||
-- local DetectedAreaVec3 = DetectedZone:GetVec3()
|
|
||||||
-- local DetectedAreaPointVec3 = POINT_VEC3:New( DetectedAreaVec3.x, DetectedAreaVec3.y, DetectedAreaVec3.z )
|
|
||||||
-- local DetectedAreaPointLL = DetectedAreaPointVec3:ToStringLL( 3, true )
|
|
||||||
-- AreaMsg[#AreaMsg+1] = string.format( " - Area #%d - %s - Threat Level [%s] (%2d)",
|
|
||||||
-- DetectedItemID,
|
|
||||||
-- DetectedAreaPointLL,
|
|
||||||
-- string.rep( "■", ThreatLevel ),
|
|
||||||
-- ThreatLevel
|
|
||||||
-- )
|
|
||||||
--
|
|
||||||
-- -- Loop through the changes ...
|
-- -- Loop through the changes ...
|
||||||
-- local ChangeText = Detection:GetChangeText( DetectedItem )
|
-- local ChangeText = Detection:GetChangeText( DetectedItem )
|
||||||
--
|
--
|
||||||
@ -34509,16 +34497,14 @@ do -- TASK_A2G_DISPATCHER
|
|||||||
-- TODO set menus using the HQ coordinator
|
-- TODO set menus using the HQ coordinator
|
||||||
Mission:GetCommandCenter():SetMenu()
|
Mission:GetCommandCenter():SetMenu()
|
||||||
|
|
||||||
if #TaskMsg > 0 then
|
for TaskGroupID, TaskGroup in pairs( self.SetGroup:GetSet() ) do
|
||||||
for TaskGroupID, TaskGroup in pairs( self.SetGroup:GetSet() ) do
|
if not TaskGroup:GetState( TaskGroup, "Assigned" ) then
|
||||||
if not TaskGroup:GetState( TaskGroup, "Assigned" ) then
|
self.CommandCenter:MessageToGroup(
|
||||||
self.CommandCenter:MessageToGroup(
|
string.format( "HQ Reporting - Planned tasks for mission '%s':\n%s\n",
|
||||||
string.format( "HQ Reporting - Target areas for mission '%s':\nTasks:\n%s ",
|
self.Mission:GetName(),
|
||||||
self.Mission:GetName(),
|
string.format( "%s\n%s\n%s", ReportSEAD:Text(), ReportCAS:Text(), ReportBAI:Text() )
|
||||||
table.concat( TaskMsg, "\n" )
|
), self:GetReportDisplayTime(), TaskGroup
|
||||||
), self:GetReportDisplayTime(), TaskGroup
|
)
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
env.info( '*** MOOSE STATIC INCLUDE START *** ' )
|
env.info( '*** MOOSE STATIC INCLUDE START *** ' )
|
||||||
env.info( 'Moose Generation Timestamp: 20170309_1321' )
|
env.info( 'Moose Generation Timestamp: 20170309_1744' )
|
||||||
local base = _G
|
local base = _G
|
||||||
|
|
||||||
Include = {}
|
Include = {}
|
||||||
@ -26646,7 +26646,7 @@ do -- DETECTION_AREAS
|
|||||||
local DetectedItem = self:GetParent( self ).AddDetectedItem( self, Set, Zone )
|
local DetectedItem = self:GetParent( self ).AddDetectedItem( self, Set, Zone )
|
||||||
|
|
||||||
DetectedItem.Removed = false
|
DetectedItem.Removed = false
|
||||||
DetectedItem.AreaID = #self.DetectedItems + 1
|
DetectedItem.AreaID = #self.DetectedItems
|
||||||
|
|
||||||
self:T( { #self.DetectedItems, DetectedItem } )
|
self:T( { #self.DetectedItems, DetectedItem } )
|
||||||
|
|
||||||
@ -26671,8 +26671,7 @@ do -- DETECTION_AREAS
|
|||||||
local DetectedItemPointVec3 = DetectedZone:GetPointVec3()
|
local DetectedItemPointVec3 = DetectedZone:GetPointVec3()
|
||||||
local DetectedAreaPointLL = DetectedItemPointVec3:ToStringLL( 3, true )
|
local DetectedAreaPointLL = DetectedItemPointVec3:ToStringLL( 3, true )
|
||||||
local ReportSummary = string.format(
|
local ReportSummary = string.format(
|
||||||
"Area #%d - %s - Threat Level [%s] (%2d)",
|
"%s - Threat Level [%s] (%2d)",
|
||||||
Index,
|
|
||||||
DetectedAreaPointLL,
|
DetectedAreaPointLL,
|
||||||
string.rep( "■", ThreatLevelA2G ),
|
string.rep( "■", ThreatLevelA2G ),
|
||||||
ThreatLevelA2G
|
ThreatLevelA2G
|
||||||
@ -34411,7 +34410,7 @@ do -- TASK_A2G_DISPATCHER
|
|||||||
|
|
||||||
--- Assigns tasks in relation to the detected items to the @{Set#SET_GROUP}.
|
--- Assigns tasks in relation to the detected items to the @{Set#SET_GROUP}.
|
||||||
-- @param #TASK_A2G_DISPATCHER self
|
-- @param #TASK_A2G_DISPATCHER self
|
||||||
-- @param Functional.Detection#DETECTION_AREAS Detection The detection created by the @{Detection#DETECTION_AREAS} object.
|
-- @param Functional.Detection#DETECTION_BASE Detection The detection created by the @{Detection#DETECTION_BASE} derived object.
|
||||||
-- @return #boolean Return true if you want the task assigning to continue... false will cancel the loop.
|
-- @return #boolean Return true if you want the task assigning to continue... false will cancel the loop.
|
||||||
function TASK_A2G_DISPATCHER:ProcessDetected( Detection )
|
function TASK_A2G_DISPATCHER:ProcessDetected( Detection )
|
||||||
self:F2()
|
self:F2()
|
||||||
@ -34421,6 +34420,9 @@ do -- TASK_A2G_DISPATCHER
|
|||||||
local ChangeMsg = {}
|
local ChangeMsg = {}
|
||||||
|
|
||||||
local Mission = self.Mission
|
local Mission = self.Mission
|
||||||
|
local ReportSEAD = REPORT:New( " - SEAD Tasks:")
|
||||||
|
local ReportCAS = REPORT:New( " - CAS Tasks:")
|
||||||
|
local ReportBAI = REPORT:New( " - BAI Tasks:")
|
||||||
|
|
||||||
--- First we need to the detected targets.
|
--- First we need to the detected targets.
|
||||||
for DetectedItemID, DetectedItem in pairs( Detection:GetDetectedItems() ) do
|
for DetectedItemID, DetectedItem in pairs( Detection:GetDetectedItems() ) do
|
||||||
@ -34434,65 +34436,51 @@ do -- TASK_A2G_DISPATCHER
|
|||||||
local AreaID = DetectedItem.AreaID
|
local AreaID = DetectedItem.AreaID
|
||||||
|
|
||||||
-- Evaluate SEAD Tasking
|
-- Evaluate SEAD Tasking
|
||||||
local SEADTask = Mission:GetTask( "SEAD." .. AreaID )
|
local SEADTask = Mission:GetTask( string.format( "SEAD.%03d", AreaID ) )
|
||||||
SEADTask = self:EvaluateRemoveTask( Mission, SEADTask, DetectedItem )
|
SEADTask = self:EvaluateRemoveTask( Mission, SEADTask, DetectedItem )
|
||||||
if not SEADTask then
|
if not SEADTask then
|
||||||
local TargetSetUnit = self:EvaluateSEAD( DetectedItem ) -- Returns a SetUnit if there are targets to be SEADed...
|
local TargetSetUnit = self:EvaluateSEAD( DetectedItem ) -- Returns a SetUnit if there are targets to be SEADed...
|
||||||
if TargetSetUnit then
|
if TargetSetUnit then
|
||||||
local Task = TASK_SEAD:New( Mission, self.SetGroup, "SEAD." .. AreaID, TargetSetUnit )
|
local Task = TASK_SEAD:New( Mission, self.SetGroup, string.format( "SEAD.%03d", AreaID ), TargetSetUnit )
|
||||||
Task:SetTargetZone( DetectedZone )
|
Task:SetTargetZone( DetectedZone )
|
||||||
SEADTask = Mission:AddTask( Task )
|
SEADTask = Mission:AddTask( Task )
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if SEADTask and SEADTask:IsStatePlanned() then
|
if SEADTask and SEADTask:IsStatePlanned() then
|
||||||
TaskMsg[#TaskMsg+1] = " - " .. SEADTask:GetStateString() .. " SEAD " .. AreaID .. " - " .. SEADTask.TargetSetUnit:GetUnitTypesText()
|
ReportSEAD:Add( string.format( " - %s.%02d - %s", "SEAD", AreaID, Detection:DetectedItemReportSummary(DetectedItemID) ) )
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Evaluate CAS Tasking
|
-- Evaluate CAS Tasking
|
||||||
local CASTask = Mission:GetTask( "CAS." .. AreaID )
|
local CASTask = Mission:GetTask( string.format( "CAS.%03d", AreaID ) )
|
||||||
CASTask = self:EvaluateRemoveTask( Mission, CASTask, DetectedItem )
|
CASTask = self:EvaluateRemoveTask( Mission, CASTask, DetectedItem )
|
||||||
if not CASTask then
|
if not CASTask then
|
||||||
local TargetSetUnit = self:EvaluateCAS( DetectedItem ) -- Returns a SetUnit if there are targets to be SEADed...
|
local TargetSetUnit = self:EvaluateCAS( DetectedItem ) -- Returns a SetUnit if there are targets to be SEADed...
|
||||||
if TargetSetUnit then
|
if TargetSetUnit then
|
||||||
local Task = TASK_CAS:New( Mission, self.SetGroup, "CAS." .. AreaID, TargetSetUnit )
|
local Task = TASK_CAS:New( Mission, self.SetGroup, string.format( "CAS.%03d", AreaID ), TargetSetUnit )
|
||||||
Task:SetTargetZone( DetectedZone )
|
Task:SetTargetZone( DetectedZone )
|
||||||
CASTask = Mission:AddTask( Task )
|
CASTask = Mission:AddTask( Task )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if CASTask and CASTask:IsStatePlanned() then
|
if CASTask and CASTask:IsStatePlanned() then
|
||||||
TaskMsg[#TaskMsg+1] = " - " .. CASTask:GetStateString() .. " CAS " .. AreaID .. " - " .. CASTask.TargetSetUnit:GetUnitTypesText()
|
ReportCAS:Add( string.format( " - %s.%02d - %s", "CAS.", AreaID, Detection:DetectedItemReportSummary(DetectedItemID) ) )
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Evaluate BAI Tasking
|
-- Evaluate BAI Tasking
|
||||||
local BAITask = Mission:GetTask( "BAI." .. AreaID )
|
local BAITask = Mission:GetTask( string.format( "BAI.%03d", AreaID ) )
|
||||||
BAITask = self:EvaluateRemoveTask( Mission, BAITask, DetectedItem )
|
BAITask = self:EvaluateRemoveTask( Mission, BAITask, DetectedItem )
|
||||||
if not BAITask then
|
if not BAITask then
|
||||||
local TargetSetUnit = self:EvaluateBAI( DetectedItem, self.CommandCenter:GetCoalition() ) -- Returns a SetUnit if there are targets to be SEADed...
|
local TargetSetUnit = self:EvaluateBAI( DetectedItem, self.CommandCenter:GetCoalition() ) -- Returns a SetUnit if there are targets to be SEADed...
|
||||||
if TargetSetUnit then
|
if TargetSetUnit then
|
||||||
local Task = TASK_BAI:New( Mission, self.SetGroup, "BAI." .. AreaID, TargetSetUnit )
|
local Task = TASK_BAI:New( Mission, self.SetGroup, string.format( "BAI.%03d", AreaID ), TargetSetUnit )
|
||||||
Task:SetTargetZone( DetectedZone )
|
Task:SetTargetZone( DetectedZone )
|
||||||
BAITask = Mission:AddTask( Task )
|
BAITask = Mission:AddTask( Task )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if BAITask and BAITask:IsStatePlanned() then
|
if BAITask and BAITask:IsStatePlanned() then
|
||||||
TaskMsg[#TaskMsg+1] = " - " .. BAITask:GetStateString() .. " BAI " .. AreaID .. " - " .. BAITask.TargetSetUnit:GetUnitTypesText()
|
ReportBAI:Add( string.format( " - %s.%02d - %s", "BAI", AreaID, Detection:DetectedItemReportSummary(DetectedItemID) ) )
|
||||||
end
|
end
|
||||||
|
|
||||||
-- if #TaskMsg > 0 then
|
|
||||||
--
|
|
||||||
-- local ThreatLevel = Detection:GetTreatLevelA2G( DetectedItem )
|
|
||||||
--
|
|
||||||
-- local DetectedAreaVec3 = DetectedZone:GetVec3()
|
|
||||||
-- local DetectedAreaPointVec3 = POINT_VEC3:New( DetectedAreaVec3.x, DetectedAreaVec3.y, DetectedAreaVec3.z )
|
|
||||||
-- local DetectedAreaPointLL = DetectedAreaPointVec3:ToStringLL( 3, true )
|
|
||||||
-- AreaMsg[#AreaMsg+1] = string.format( " - Area #%d - %s - Threat Level [%s] (%2d)",
|
|
||||||
-- DetectedItemID,
|
|
||||||
-- DetectedAreaPointLL,
|
|
||||||
-- string.rep( "■", ThreatLevel ),
|
|
||||||
-- ThreatLevel
|
|
||||||
-- )
|
|
||||||
--
|
|
||||||
-- -- Loop through the changes ...
|
-- -- Loop through the changes ...
|
||||||
-- local ChangeText = Detection:GetChangeText( DetectedItem )
|
-- local ChangeText = Detection:GetChangeText( DetectedItem )
|
||||||
--
|
--
|
||||||
@ -34509,16 +34497,14 @@ do -- TASK_A2G_DISPATCHER
|
|||||||
-- TODO set menus using the HQ coordinator
|
-- TODO set menus using the HQ coordinator
|
||||||
Mission:GetCommandCenter():SetMenu()
|
Mission:GetCommandCenter():SetMenu()
|
||||||
|
|
||||||
if #TaskMsg > 0 then
|
for TaskGroupID, TaskGroup in pairs( self.SetGroup:GetSet() ) do
|
||||||
for TaskGroupID, TaskGroup in pairs( self.SetGroup:GetSet() ) do
|
if not TaskGroup:GetState( TaskGroup, "Assigned" ) then
|
||||||
if not TaskGroup:GetState( TaskGroup, "Assigned" ) then
|
self.CommandCenter:MessageToGroup(
|
||||||
self.CommandCenter:MessageToGroup(
|
string.format( "HQ Reporting - Planned tasks for mission '%s':\n%s\n",
|
||||||
string.format( "HQ Reporting - Target areas for mission '%s':\nTasks:\n%s ",
|
self.Mission:GetName(),
|
||||||
self.Mission:GetName(),
|
string.format( "%s\n%s\n%s", ReportSEAD:Text(), ReportCAS:Text(), ReportBAI:Text() )
|
||||||
table.concat( TaskMsg, "\n" )
|
), self:GetReportDisplayTime(), TaskGroup
|
||||||
), self:GetReportDisplayTime(), TaskGroup
|
)
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
---
|
---
|
||||||
-- Name: TAD-100 - A2G Task Dispatching DETECTION_AREAS
|
-- Name: TAD-100 - A2G Task Dispatching DETECTION_AREAS
|
||||||
-- Author: FlightControl
|
-- Author: FlightControl
|
||||||
-- Date Created: 06 Mar 2017
|
-- Date Created: 06 Mar 2017
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user