mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-08-15 10:47:21 +00:00
Fixed the removal of obscolete planned tasks
This commit is contained in:
parent
fb1e9972a5
commit
f3b49ecc0a
@ -2365,7 +2365,7 @@ do -- DETECTION_AREAS
|
|||||||
self:IdentifyDetectedObject( DetectedObject )
|
self:IdentifyDetectedObject( DetectedObject )
|
||||||
AreaExists = true
|
AreaExists = true
|
||||||
|
|
||||||
DetectedItem.Zone:BoundZone( 12, self.CountryID, true)
|
--DetectedItem.Zone:BoundZone( 12, self.CountryID, true)
|
||||||
|
|
||||||
-- Assign the Unit as the new center unit of the detected area.
|
-- Assign the Unit as the new center unit of the detected area.
|
||||||
DetectedItem.Zone = ZONE_UNIT:New( DetectedUnit:GetName(), DetectedUnit, self.DetectionZoneRange )
|
DetectedItem.Zone = ZONE_UNIT:New( DetectedUnit:GetName(), DetectedUnit, self.DetectionZoneRange )
|
||||||
@ -2418,7 +2418,7 @@ do -- DETECTION_AREAS
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
DetectedItem.Zone:BoundZone( 12, self.CountryID, true)
|
--DetectedItem.Zone:BoundZone( 12, self.CountryID, true)
|
||||||
self:RemoveDetectedItem( DetectedItemID )
|
self:RemoveDetectedItem( DetectedItemID )
|
||||||
self:AddChangeItem( DetectedItem, "RA" )
|
self:AddChangeItem( DetectedItem, "RA" )
|
||||||
end
|
end
|
||||||
|
|||||||
@ -181,9 +181,16 @@ do -- TASK_A2A_DISPATCHER
|
|||||||
Remove = true
|
Remove = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local DetectedSet = DetectedItem.Set -- Core.Set#SET_UNIT
|
||||||
|
DetectedSet:Flush()
|
||||||
|
self:E( { DetectedSetCount = DetectedSet:Count() } )
|
||||||
|
if DetectedSet:Count() == 0 then
|
||||||
|
Remove = true
|
||||||
|
end
|
||||||
|
|
||||||
if DetectedItemChanged == true or Remove then
|
if DetectedItemChanged == true or Remove then
|
||||||
self:T2( "Removing Tasking: " .. Task:GetTaskName() )
|
self:E( "Removing Tasking: " .. Task:GetTaskName() )
|
||||||
Mission:RemoveTask( Task )
|
Mission:RemoveTask( Task )
|
||||||
self.Tasks[DetectedItemID] = nil
|
self.Tasks[DetectedItemID] = nil
|
||||||
end
|
end
|
||||||
@ -306,6 +313,7 @@ do -- TASK_A2A_DISPATCHER
|
|||||||
|
|
||||||
local DetectedItem = DetectedItem -- Functional.Detection#DETECTION_BASE.DetectedItem
|
local DetectedItem = DetectedItem -- Functional.Detection#DETECTION_BASE.DetectedItem
|
||||||
local DetectedSet = DetectedItem.Set -- Core.Set#SET_UNIT
|
local DetectedSet = DetectedItem.Set -- Core.Set#SET_UNIT
|
||||||
|
local DetectedCount = DetectedSet:Count()
|
||||||
local DetectedZone = DetectedItem.Zone
|
local DetectedZone = DetectedItem.Zone
|
||||||
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()
|
||||||
@ -318,7 +326,7 @@ do -- TASK_A2A_DISPATCHER
|
|||||||
Task = self:EvaluateRemoveTask( Mission, Task, Detection, DetectedItem, DetectedID, DetectedItemChanged ) -- Task will be removed if it is planned and changed.
|
Task = self:EvaluateRemoveTask( Mission, Task, Detection, DetectedItem, DetectedID, DetectedItemChanged ) -- Task will be removed if it is planned and changed.
|
||||||
|
|
||||||
-- Evaluate INTERCEPT
|
-- Evaluate INTERCEPT
|
||||||
if not Task then
|
if not Task and DetectedCount > 0 then
|
||||||
local TargetSetUnit = self:EvaluateENGAGE( DetectedItem ) -- Returns a SetUnit if there are targets to be INTERCEPTed...
|
local TargetSetUnit = self:EvaluateENGAGE( DetectedItem ) -- Returns a SetUnit if there are targets to be INTERCEPTed...
|
||||||
if TargetSetUnit then
|
if TargetSetUnit then
|
||||||
Task = TASK_A2A_ENGAGE:New( Mission, self.SetGroup, string.format( "ENGAGE.%03d", DetectedID ), TargetSetUnit )
|
Task = TASK_A2A_ENGAGE:New( Mission, self.SetGroup, string.format( "ENGAGE.%03d", DetectedID ), TargetSetUnit )
|
||||||
@ -342,11 +350,12 @@ do -- TASK_A2A_DISPATCHER
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local FriendliesCount, FriendliesReport = self:GetFriendliesNearBy( DetectedItem )
|
if Task then
|
||||||
Task:SetInfo( "Friendlies", string.format( "%d ( %s )", FriendliesCount, FriendliesReport:Text( "," ) ) )
|
local FriendliesCount, FriendliesReport = self:GetFriendliesNearBy( DetectedItem )
|
||||||
|
Task:SetInfo( "Friendlies", string.format( "%d ( %s )", FriendliesCount, FriendliesReport:Text( "," ) ) )
|
||||||
local PlayersCount, PlayersReport = self:GetPlayerFriendliesNearBy( DetectedItem )
|
local PlayersCount, PlayersReport = self:GetPlayerFriendliesNearBy( DetectedItem )
|
||||||
Task:SetInfo( "Players", string.format( "%d ( %s )", PlayersCount, PlayersReport:Text( "," ) ) )
|
Task:SetInfo( "Players", string.format( "%d ( %s )", PlayersCount, PlayersReport:Text( "," ) ) )
|
||||||
|
end
|
||||||
|
|
||||||
-- OK, so the tasking has been done, now delete the changes reported for the area.
|
-- OK, so the tasking has been done, now delete the changes reported for the area.
|
||||||
Detection:AcceptChanges( DetectedItem )
|
Detection:AcceptChanges( DetectedItem )
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user