mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2026-08-18 13:16:03 +00:00
INTERCEPT logic working
This commit is contained in:
@@ -1192,6 +1192,7 @@ do -- DETECTION_BASE
|
|||||||
end
|
end
|
||||||
|
|
||||||
DetectedItem.Set = Set or SET_UNIT:New():FilterDeads():FilterCrashes()
|
DetectedItem.Set = Set or SET_UNIT:New():FilterDeads():FilterCrashes()
|
||||||
|
DetectedItem.Index = DetectedItemIndex
|
||||||
DetectedItem.ItemID = ItemPrefix .. "." .. self.DetectedItemMax
|
DetectedItem.ItemID = ItemPrefix .. "." .. self.DetectedItemMax
|
||||||
DetectedItem.ID = self.DetectedItemMax
|
DetectedItem.ID = self.DetectedItemMax
|
||||||
DetectedItem.Removed = false
|
DetectedItem.Removed = false
|
||||||
@@ -1578,7 +1579,7 @@ do -- DETECTION_UNITS
|
|||||||
-- @param Index
|
-- @param Index
|
||||||
-- @return #string
|
-- @return #string
|
||||||
function DETECTION_UNITS:DetectedItemReportSummary( Index )
|
function DETECTION_UNITS:DetectedItemReportSummary( Index )
|
||||||
self:F( Index )
|
self:F( { Index, self.DetectedItems } )
|
||||||
|
|
||||||
local DetectedItem = self:GetDetectedItem( Index )
|
local DetectedItem = self:GetDetectedItem( Index )
|
||||||
local DetectedSet = self:GetDetectedSet( Index )
|
local DetectedSet = self:GetDetectedSet( Index )
|
||||||
|
|||||||
@@ -167,25 +167,26 @@ do -- TASK_A2A_DISPATCHER
|
|||||||
self:E( { "Targets in DetectedItem", DetectedItem.ItemID, DetectedSet:Count(), tostring( DetectedItem ) } )
|
self:E( { "Targets in DetectedItem", DetectedItem.ItemID, DetectedSet:Count(), tostring( DetectedItem ) } )
|
||||||
DetectedSet:Flush()
|
DetectedSet:Flush()
|
||||||
|
|
||||||
local DetectedItemID = DetectedItem.ID
|
local DetectedID = DetectedItem.ID
|
||||||
|
local DetectedIndex = DetectedItem.Index
|
||||||
local DetectedItemChanged = DetectedItem.Changed
|
local DetectedItemChanged = DetectedItem.Changed
|
||||||
|
|
||||||
local Task = self.Tasks[DetectedItemID]
|
local Task = self.Tasks[DetectedID]
|
||||||
Task = self:EvaluateRemoveTask( Mission, Task, DetectedItemID, DetectedItemChanged ) -- Task will be removed if it is planned and changed.
|
Task = self:EvaluateRemoveTask( Mission, Task, DetectedID, DetectedItemChanged ) -- Task will be removed if it is planned and changed.
|
||||||
|
|
||||||
-- Evaluate INTERCEPT
|
-- Evaluate INTERCEPT
|
||||||
if not Task then
|
if not Task then
|
||||||
local TargetSetUnit = self:EvaluateINTERCEPT( DetectedItem ) -- Returns a SetUnit if there are targets to be INTERCEPTed...
|
local TargetSetUnit = self:EvaluateINTERCEPT( DetectedItem ) -- Returns a SetUnit if there are targets to be INTERCEPTed...
|
||||||
if TargetSetUnit then
|
if TargetSetUnit then
|
||||||
Task = TASK_INTERCEPT:New( Mission, self.SetGroup, string.format( "INTERCEPT.%03d", DetectedItemID ), TargetSetUnit )
|
Task = TASK_INTERCEPT:New( Mission, self.SetGroup, string.format( "INTERCEPT.%03d", DetectedID ), TargetSetUnit )
|
||||||
end
|
end
|
||||||
|
|
||||||
if Task then
|
if Task then
|
||||||
self.Tasks[DetectedItemID] = Task
|
self.Tasks[DetectedID] = Task
|
||||||
Task:SetTargetZone( DetectedZone )
|
Task:SetTargetZone( DetectedZone )
|
||||||
Task:SetDispatcher( self )
|
Task:SetDispatcher( self )
|
||||||
Task:SetInfo( "ThreatLevel", DetectedSet:CalculateThreatLevelA2G() )
|
Task:SetInfo( "ThreatLevel", DetectedSet:CalculateThreatLevelA2G() )
|
||||||
Task:SetInfo( "Detection", Detection:DetectedItemReportSummary( DetectedItemID ) )
|
Task:SetInfo( "Detection", Detection:DetectedItemReportSummary( DetectedIndex ) )
|
||||||
Task:SetInfo( "Changes", Detection:GetChangeText( DetectedItem ) )
|
Task:SetInfo( "Changes", Detection:GetChangeText( DetectedItem ) )
|
||||||
Mission:AddTask( Task )
|
Mission:AddTask( Task )
|
||||||
else
|
else
|
||||||
@@ -202,10 +203,12 @@ do -- TASK_A2A_DISPATCHER
|
|||||||
|
|
||||||
-- TODO set menus using the HQ coordinator
|
-- TODO set menus using the HQ coordinator
|
||||||
Mission:GetCommandCenter():SetMenu()
|
Mission:GetCommandCenter():SetMenu()
|
||||||
|
|
||||||
|
local TaskText = TaskReport:Text(", ")
|
||||||
|
|
||||||
for TaskGroupID, TaskGroup in pairs( self.SetGroup:GetSet() ) do
|
for TaskGroupID, TaskGroup in pairs( self.SetGroup:GetSet() ) do
|
||||||
if not Mission:IsGroupAssigned(TaskGroup) then
|
if ( not Mission:IsGroupAssigned(TaskGroup) ) and TaskText ~= "" then
|
||||||
Mission:GetCommandCenter():MessageToGroup( string.format( "%s has tasks %s. Subscribe to a task using the radio menu.", Mission:GetName(), TaskReport:Text(", ") ), TaskGroup )
|
Mission:GetCommandCenter():MessageToGroup( string.format( "%s has tasks %s. Subscribe to a task using the radio menu.", Mission:GetName(), TaskText ), TaskGroup )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user