Clean up the detection code. It is complicated

This commit is contained in:
FlightControl_Master
2018-03-17 05:23:44 +01:00
parent 0f18b29144
commit 9be9277a08
7 changed files with 128 additions and 216 deletions

View File

@@ -875,7 +875,7 @@ end
function TASK:MenuMarkToGroup( TaskGroup )
self:F()
self:UpdateTaskInfo()
self:UpdateTaskInfo( self.DetectedItem )
local Report = REPORT:New():SetIndent( 0 )
@@ -1380,14 +1380,14 @@ do -- Links
--- Set detection of a task
-- @param #TASK self
-- @param Function.Detection#DETECTION_BASE Detection
-- @param #number DetectedItemIndex
-- @param DetectedItem
-- @return #TASK
function TASK:SetDetection( Detection, DetectedItemIndex )
function TASK:SetDetection( Detection, DetectedItem )
self:E({DetectedItemIndex,Detection})
self:E( { DetectedItem, Detection } )
self.Detection = Detection
self.DetectedItemIndex = DetectedItemIndex
self.DetectedItem = DetectedItem
end
end
@@ -1420,7 +1420,7 @@ end
-- @return #string
function TASK:ReportOverview( ReportGroup )
self:UpdateTaskInfo()
self:UpdateTaskInfo( self.DetectedItem )
-- List the name of the Task.
local TaskName = self:GetName()
@@ -1480,7 +1480,7 @@ end
-- @return #string
function TASK:ReportDetails( ReportGroup )
self:UpdateTaskInfo()
self:UpdateTaskInfo( self.DetectedItem )
local Report = REPORT:New():SetIndent( 3 )

View File

@@ -308,16 +308,16 @@ do -- TASK_A2A
--- @param #TASK_A2A self
function TASK_A2A:UpdateTaskInfo()
function TASK_A2A:UpdateTaskInfo( DetectedItem )
if self:IsStatePlanned() or self:IsStateAssigned() then
local TargetCoordinate = self.Detection and self.Detection:GetDetectedItemCoordinate( self.DetectedItemIndex ) or self.TargetSetUnit:GetFirst():GetCoordinate()
local TargetCoordinate = DetectedItem and self.Detection:GetDetectedItemCoordinate( DetectedItem ) or self.TargetSetUnit:GetFirst():GetCoordinate()
self.TaskInfo:AddTaskName( 0, "MSOD" )
self.TaskInfo:AddCoordinate( TargetCoordinate, 1, "SOD" )
local ThreatLevel, ThreatText
if self.Detection then
ThreatLevel, ThreatText = self.Detection:GetDetectedItemThreatLevel( self.DetectedItemIndex )
if DetectedItem then
ThreatLevel, ThreatText = self.Detection:GetDetectedItemThreatLevel( DetectedItem )
else
ThreatLevel, ThreatText = self.TargetSetUnit:CalculateThreatLevelA2G()
end

View File

@@ -307,16 +307,16 @@ do -- TASK_A2G
end
--- @param #TASK_A2G self
function TASK_A2G:UpdateTaskInfo()
function TASK_A2G:UpdateTaskInfo( DetectedItem )
if self:IsStatePlanned() or self:IsStateAssigned() then
local TargetCoordinate = self.Detection and self.Detection:GetDetectedItemCoordinate( self.DetectedItemIndex ) or self.TargetSetUnit:GetFirst():GetCoordinate()
local TargetCoordinate = DetectedItem and self.Detection:GetDetectedItemCoordinate( self.DetectedItem ) or self.TargetSetUnit:GetFirst():GetCoordinate()
self.TaskInfo:AddTaskName( 0, "MSOD" )
self.TaskInfo:AddCoordinate( TargetCoordinate, 1, "SOD" )
local ThreatLevel, ThreatText
if self.Detection then
ThreatLevel, ThreatText = self.Detection:GetDetectedItemThreatLevel( self.DetectedItemIndex )
if DetectedItem then
ThreatLevel, ThreatText = self.Detection:GetDetectedItemThreatLevel( self.DetectedItem )
else
ThreatLevel, ThreatText = self.TargetSetUnit:CalculateThreatLevelA2G()
end

View File

@@ -612,7 +612,7 @@ do -- TASK_A2G_DISPATCHER
if TargetSetUnit then
if Task:IsInstanceOf( TASK_A2G_SEAD ) then
Task:SetTargetSetUnit( TargetSetUnit )
Task:UpdateTaskInfo()
Task:UpdateTaskInfo( DetectedItem )
TargetsReport:Add( Detection:GetChangeText( DetectedItem ) )
else
Task:Cancel()
@@ -623,7 +623,7 @@ do -- TASK_A2G_DISPATCHER
if Task:IsInstanceOf( TASK_A2G_CAS ) then
Task:SetTargetSetUnit( TargetSetUnit )
Task:SetDetection( Detection, TaskIndex )
Task:UpdateTaskInfo()
Task:UpdateTaskInfo( DetectedItem )
TargetsReport:Add( Detection:GetChangeText( DetectedItem ) )
else
Task:Cancel()
@@ -635,7 +635,7 @@ do -- TASK_A2G_DISPATCHER
if Task:IsInstanceOf( TASK_A2G_BAI ) then
Task:SetTargetSetUnit( TargetSetUnit )
Task:SetDetection( Detection, TaskIndex )
Task:UpdateTaskInfo()
Task:UpdateTaskInfo( DetectedItem )
TargetsReport:Add( Detection:GetChangeText( DetectedItem ) )
else
Task:Cancel()
@@ -663,7 +663,7 @@ do -- TASK_A2G_DISPATCHER
local TargetSetUnit = self:EvaluateSEAD( DetectedItem ) -- Returns a SetUnit if there are targets to be SEADed...
if TargetSetUnit then
Task:SetTargetSetUnit( TargetSetUnit )
Task:UpdateTaskInfo()
Task:UpdateTaskInfo( DetectedItem )
else
Task:Cancel()
Task = self:RemoveTask( TaskIndex )
@@ -674,7 +674,7 @@ do -- TASK_A2G_DISPATCHER
if TargetSetUnit then
Task:SetTargetSetUnit( TargetSetUnit )
Task:SetDetection( Detection, TaskIndex )
Task:UpdateTaskInfo()
Task:UpdateTaskInfo( DetectedItem )
else
Task:Cancel()
Task = self:RemoveTask( TaskIndex )
@@ -685,7 +685,7 @@ do -- TASK_A2G_DISPATCHER
if TargetSetUnit then
Task:SetTargetSetUnit( TargetSetUnit )
Task:SetDetection( Detection, TaskIndex )
Task:UpdateTaskInfo()
Task:UpdateTaskInfo( DetectedItem )
else
Task:Cancel()
Task = self:RemoveTask( TaskIndex )
@@ -730,7 +730,7 @@ do -- TASK_A2G_DISPATCHER
self.Tasks[TaskIndex] = Task
Task:SetTargetZone( DetectedZone )
Task:SetDispatcher( self )
Task:UpdateTaskInfo()
Task:UpdateTaskInfo( DetectedItem )
Mission:AddTask( Task )
TaskReport:Add( Task:GetName() )

View File

@@ -810,7 +810,7 @@ do -- TASK_CARGO
end
--- @param #TASK_CARGO self
function TASK_CARGO:UpdateTaskInfo()
function TASK_CARGO:UpdateTaskInfo( DetectedItem )
if self:IsStatePlanned() or self:IsStateAssigned() then
self.TaskInfo:AddTaskName( 0, "MSOD" )