Updated Task Processing logic.

This commit is contained in:
FlightControl
2016-11-08 18:38:30 +01:00
parent 764266d552
commit 1bd61837f2
11 changed files with 233 additions and 175 deletions

View File

@@ -88,8 +88,9 @@ end
-- @param #MISSION self
function MISSION:SetPlannedMenu()
for _, Task in pairs( self.Tasks ) do
local Task = Task -- Task#TASK_BASE
self:E( self.Tasks )
for _, TaskData in pairs( self.Tasks ) do
local Task = TaskData -- Tasking.Task#TASK_BASE
Task:RemoveMenu()
Task:SetPlannedMenu()
end

View File

@@ -186,7 +186,7 @@ function TASK_BASE:IsAssignedToGroup( TaskGroup )
return false
end
--- Assign the @{Task}to an alive @{Unit}.
--- Assign the @{Task} to an alive @{Unit}.
-- @param #TASK_BASE self
-- @param Unit#UNIT TaskUnit
-- @return #TASK_BASE self
@@ -463,7 +463,7 @@ end
function TASK_BASE:RemoveProcesses( TaskUnitName )
for ProcessID, ProcessData in pairs( self.Processes[TaskUnitName] ) do
local Process = ProcessData -- Process#PROCESS
local Process = ProcessData -- Process.Process#PROCESS
Process:StopEvents()
Process = nil
self.Processes[TaskUnitName][ProcessID] = nil
@@ -827,15 +827,14 @@ function TASK_BASE:OnSuccess( TaskUnit, Fsm, Event, From, To )
self:E("Success")
self:UnAssignFromGroups()
self:RemoveMenu()
local TaskGroup = TaskUnit:GetGroup()
self.Mission:SetPlannedMenu()
self:StateSuccess()
-- The task has become successful, the event catchers can be cleaned.
self:CleanUp()
self:EventRemoveAll()
end
--- StateMachine callback function for a TASK

View File

@@ -39,7 +39,7 @@ do -- TASK_SEAD
-- @param Zone#ZONE_BASE TargetZone
-- @return #TASK_SEAD self
function TASK_SEAD:New( Mission, SetGroup, TaskName, TargetSetUnit, TargetZone )
local self = BASE:Inherit( self, TASK_BASE:New( Mission, SetGroup, TaskName, "SEAD", "A2G" ) )
local self = BASE:Inherit( self, TASK_BASE:New( Mission, SetGroup, TaskName, "SEAD", "A2G" ) ) -- Tasking.Task_SEAD#TASK_SEAD
self:F()
self.TargetSetUnit = TargetSetUnit