mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-08-15 10:47:21 +00:00
Merge remote-tracking branch 'refs/remotes/origin/master' into Detection
# Conflicts: # Moose Test Missions/Moose_Test_DETECTION/Moose_Test_DETECTION_Laser.miz
This commit is contained in:
74
Moose Development/Moose/Task_SEAD.lua
Normal file
74
Moose Development/Moose/Task_SEAD.lua
Normal file
@@ -0,0 +1,74 @@
|
||||
--- @module Task_SEAD
|
||||
|
||||
--- The TASK_SEAD class
|
||||
-- @type TASK_SEAD
|
||||
-- @extends Task#TASK_BASE
|
||||
TASK_SEAD = {
|
||||
ClassName = "TASK_SEAD",
|
||||
}
|
||||
|
||||
--- Instantiates a new TASK_SEAD. Should never be used. Interface Class.
|
||||
-- @param #TASK_SEAD self
|
||||
-- @param Set#SET_UNIT UnitSetTargets
|
||||
-- @return #TASK_SEAD self
|
||||
function TASK_SEAD:New( TargetSetUnit, TargetZone )
|
||||
local self = BASE:Inherit( self, BASE:New() )
|
||||
self:F()
|
||||
|
||||
self.TargetSetUnit= TargetSetUnit
|
||||
self.TargetZone = TargetZone
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
--- Assign the @{Task} to a @{Unit}.
|
||||
-- @param #TASK_SEAD self
|
||||
-- @param Unit#UNIT TaskUnit
|
||||
-- @return #TASK_SEAD self
|
||||
function TASK_SEAD:AssignToUnit( TaskUnit )
|
||||
|
||||
local ProcessRoute = self:AddProcess( TaskUnit, PROCESS_ROUTE:New( self, TaskUnit, self.TargetZone ) )
|
||||
local ProcessSEAD = self:AddProcess( TaskUnit, PROCESS_SEAD:New( self, TaskUnit, self.TargetUnitSet ) )
|
||||
|
||||
local Process = self:AddStateMachine( TaskUnit, STATEMACHINE:New( {
|
||||
initial = 'None',
|
||||
events = {
|
||||
{ name = 'Start', from = 'None', to = 'Assigned' },
|
||||
{ name = 'Next', from = 'Unassigned', to = 'Assigned' },
|
||||
{ name = 'Next', from = 'Assigned', to = 'Success' },
|
||||
{ name = 'Fail', from = 'Assigned', to = 'Failed' },
|
||||
{ name = 'Fail', from = 'Arrived', to = 'Failed' }
|
||||
},
|
||||
subs = {
|
||||
Route = { onstateparent = 'Assigned', oneventparent = 'Start', fsm = ProcessRoute.Fsm, event = 'Route' },
|
||||
Sead = { onstateparent = 'Assigned', oneventparent = 'Next', fsm = ProcessSEAD.Fsm, event = 'Await', returnevents = { 'Next' } }
|
||||
}
|
||||
} ) )
|
||||
|
||||
---Task_Client_Sead:AddScore( "Destroy", "Destroyed RADAR", 25 )
|
||||
---Task_Client_Sead:AddScore( "Success", "Destroyed all radars!!!", 100 )
|
||||
|
||||
Process:Start()
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
--- @param #TASK_SEAD self
|
||||
function TASK_SEAD:_Schedule()
|
||||
self:F2()
|
||||
|
||||
self.TaskScheduler = SCHEDULER:New( self, _Scheduler, {}, 15, 15 )
|
||||
return self
|
||||
end
|
||||
|
||||
|
||||
--- @param #TASK_SEAD self
|
||||
function TASK_SEAD._Scheduler()
|
||||
self:F2()
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user