From 9abc4f97254c6de5d4b32dd56be7103eb5a676a1 Mon Sep 17 00:00:00 2001 From: FlightControl Date: Thu, 18 May 2017 13:26:25 +0200 Subject: [PATCH] INTERCEPT logic working --- .../Moose/Functional/Detection.lua | 3 ++- .../Moose/Tasking/Task_A2A_Dispatcher.lua | 19 +++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/Moose Development/Moose/Functional/Detection.lua b/Moose Development/Moose/Functional/Detection.lua index f6eb2dc97..8ac93731c 100644 --- a/Moose Development/Moose/Functional/Detection.lua +++ b/Moose Development/Moose/Functional/Detection.lua @@ -1192,6 +1192,7 @@ do -- DETECTION_BASE end DetectedItem.Set = Set or SET_UNIT:New():FilterDeads():FilterCrashes() + DetectedItem.Index = DetectedItemIndex DetectedItem.ItemID = ItemPrefix .. "." .. self.DetectedItemMax DetectedItem.ID = self.DetectedItemMax DetectedItem.Removed = false @@ -1578,7 +1579,7 @@ do -- DETECTION_UNITS -- @param Index -- @return #string function DETECTION_UNITS:DetectedItemReportSummary( Index ) - self:F( Index ) + self:F( { Index, self.DetectedItems } ) local DetectedItem = self:GetDetectedItem( Index ) local DetectedSet = self:GetDetectedSet( Index ) diff --git a/Moose Development/Moose/Tasking/Task_A2A_Dispatcher.lua b/Moose Development/Moose/Tasking/Task_A2A_Dispatcher.lua index d950581a7..7b7ef235d 100644 --- a/Moose Development/Moose/Tasking/Task_A2A_Dispatcher.lua +++ b/Moose Development/Moose/Tasking/Task_A2A_Dispatcher.lua @@ -167,25 +167,26 @@ do -- TASK_A2A_DISPATCHER self:E( { "Targets in DetectedItem", DetectedItem.ItemID, DetectedSet:Count(), tostring( DetectedItem ) } ) DetectedSet:Flush() - local DetectedItemID = DetectedItem.ID + local DetectedID = DetectedItem.ID + local DetectedIndex = DetectedItem.Index local DetectedItemChanged = DetectedItem.Changed - local Task = self.Tasks[DetectedItemID] - Task = self:EvaluateRemoveTask( Mission, Task, DetectedItemID, DetectedItemChanged ) -- Task will be removed if it is planned and changed. + local Task = self.Tasks[DetectedID] + Task = self:EvaluateRemoveTask( Mission, Task, DetectedID, DetectedItemChanged ) -- Task will be removed if it is planned and changed. -- Evaluate INTERCEPT if not Task then local TargetSetUnit = self:EvaluateINTERCEPT( DetectedItem ) -- Returns a SetUnit if there are targets to be INTERCEPTed... 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 if Task then - self.Tasks[DetectedItemID] = Task + self.Tasks[DetectedID] = Task Task:SetTargetZone( DetectedZone ) Task:SetDispatcher( self ) Task:SetInfo( "ThreatLevel", DetectedSet:CalculateThreatLevelA2G() ) - Task:SetInfo( "Detection", Detection:DetectedItemReportSummary( DetectedItemID ) ) + Task:SetInfo( "Detection", Detection:DetectedItemReportSummary( DetectedIndex ) ) Task:SetInfo( "Changes", Detection:GetChangeText( DetectedItem ) ) Mission:AddTask( Task ) else @@ -202,10 +203,12 @@ do -- TASK_A2A_DISPATCHER -- TODO set menus using the HQ coordinator Mission:GetCommandCenter():SetMenu() + + local TaskText = TaskReport:Text(", ") for TaskGroupID, TaskGroup in pairs( self.SetGroup:GetSet() ) do - if not Mission:IsGroupAssigned(TaskGroup) then - Mission:GetCommandCenter():MessageToGroup( string.format( "%s has tasks %s. Subscribe to a task using the radio menu.", Mission:GetName(), TaskReport:Text(", ") ), TaskGroup ) + 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(), TaskText ), TaskGroup ) end end