mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Made user exits for Mission Completion evaluation...
Man, this is going to rock!
This commit is contained in:
parent
450892bfd9
commit
9fc3f7a601
@ -294,7 +294,7 @@ function BASE:Inherit( Child, Parent )
|
||||
setmetatable( Child, Parent )
|
||||
Child.__index = Child
|
||||
|
||||
Child:_SetDestructor()
|
||||
--Child:_SetDestructor()
|
||||
end
|
||||
--self:T( 'Inherited from ' .. Parent.ClassName )
|
||||
return Child
|
||||
|
||||
@ -1295,7 +1295,7 @@ do -- DETECTION_UNITS
|
||||
|
||||
for DetectedItemID, DetectedItem in pairs( self.DetectedItems ) do
|
||||
|
||||
local DetectedItemSet = DetectedItem:GetSet() -- Core.Set#SET_UNIT
|
||||
local DetectedItemSet = DetectedItem.Set -- Core.Set#SET_UNIT
|
||||
local DetectedTypeName = DetectedItem.Type
|
||||
|
||||
for DetectedUnitName, DetectedUnitData in pairs( DetectedItemSet ) do
|
||||
|
||||
@ -45,10 +45,184 @@ function MISSION:New( CommandCenter, MissionName, MissionPriority, MissionBriefi
|
||||
self:SetStartState( "Idle" )
|
||||
|
||||
self:AddTransition( "Idle", "Start", "Ongoing" )
|
||||
|
||||
--- OnLeave Transition Handler for State Idle.
|
||||
-- @function [parent=#MISSION] OnLeaveIdle
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
-- @return #boolean Return false to cancel Transition.
|
||||
|
||||
--- OnEnter Transition Handler for State Idle.
|
||||
-- @function [parent=#MISSION] OnEnterIdle
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
|
||||
--- OnLeave Transition Handler for State Ongoing.
|
||||
-- @function [parent=#MISSION] OnLeaveOngoing
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
-- @return #boolean Return false to cancel Transition.
|
||||
|
||||
--- OnEnter Transition Handler for State Ongoing.
|
||||
-- @function [parent=#MISSION] OnEnterOngoing
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
|
||||
--- OnBefore Transition Handler for Event Start.
|
||||
-- @function [parent=#MISSION] OnBeforeStart
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
-- @return #boolean Return false to cancel Transition.
|
||||
|
||||
--- OnAfter Transition Handler for Event Start.
|
||||
-- @function [parent=#MISSION] OnAfterStart
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
|
||||
--- Synchronous Event Trigger for Event Start.
|
||||
-- @function [parent=#MISSION] Start
|
||||
-- @param #MISSION self
|
||||
|
||||
--- Asynchronous Event Trigger for Event Start.
|
||||
-- @function [parent=#MISSION] __Start
|
||||
-- @param #MISSION self
|
||||
-- @param #number Delay The delay in seconds.
|
||||
|
||||
self:AddTransition( "Ongoing", "Stop", "Idle" )
|
||||
|
||||
--- OnLeave Transition Handler for State Idle.
|
||||
-- @function [parent=#MISSION] OnLeaveIdle
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
-- @return #boolean Return false to cancel Transition.
|
||||
|
||||
--- OnEnter Transition Handler for State Idle.
|
||||
-- @function [parent=#MISSION] OnEnterIdle
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
|
||||
--- OnBefore Transition Handler for Event Stop.
|
||||
-- @function [parent=#MISSION] OnBeforeStop
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
-- @return #boolean Return false to cancel Transition.
|
||||
|
||||
--- OnAfter Transition Handler for Event Stop.
|
||||
-- @function [parent=#MISSION] OnAfterStop
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
|
||||
--- Synchronous Event Trigger for Event Stop.
|
||||
-- @function [parent=#MISSION] Stop
|
||||
-- @param #MISSION self
|
||||
|
||||
--- Asynchronous Event Trigger for Event Stop.
|
||||
-- @function [parent=#MISSION] __Stop
|
||||
-- @param #MISSION self
|
||||
-- @param #number Delay The delay in seconds.
|
||||
|
||||
self:AddTransition( "Ongoing", "Complete", "Completed" )
|
||||
|
||||
--- OnLeave Transition Handler for State Completed.
|
||||
-- @function [parent=#MISSION] OnLeaveCompleted
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
-- @return #boolean Return false to cancel Transition.
|
||||
|
||||
--- OnEnter Transition Handler for State Completed.
|
||||
-- @function [parent=#MISSION] OnEnterCompleted
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
|
||||
--- OnBefore Transition Handler for Event Complete.
|
||||
-- @function [parent=#MISSION] OnBeforeComplete
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
-- @return #boolean Return false to cancel Transition.
|
||||
|
||||
--- OnAfter Transition Handler for Event Complete.
|
||||
-- @function [parent=#MISSION] OnAfterComplete
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
|
||||
--- Synchronous Event Trigger for Event Complete.
|
||||
-- @function [parent=#MISSION] Complete
|
||||
-- @param #MISSION self
|
||||
|
||||
--- Asynchronous Event Trigger for Event Complete.
|
||||
-- @function [parent=#MISSION] __Complete
|
||||
-- @param #MISSION self
|
||||
-- @param #number Delay The delay in seconds.
|
||||
|
||||
self:AddTransition( "*", "Fail", "Failed" )
|
||||
|
||||
--- OnLeave Transition Handler for State Failed.
|
||||
-- @function [parent=#MISSION] OnLeaveFailed
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
-- @return #boolean Return false to cancel Transition.
|
||||
|
||||
--- OnEnter Transition Handler for State Failed.
|
||||
-- @function [parent=#MISSION] OnEnterFailed
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
|
||||
--- OnBefore Transition Handler for Event Fail.
|
||||
-- @function [parent=#MISSION] OnBeforeFail
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
-- @return #boolean Return false to cancel Transition.
|
||||
|
||||
--- OnAfter Transition Handler for Event Fail.
|
||||
-- @function [parent=#MISSION] OnAfterFail
|
||||
-- @param #MISSION self
|
||||
-- @param #string From The From State string.
|
||||
-- @param #string Event The Event string.
|
||||
-- @param #string To The To State string.
|
||||
|
||||
--- Synchronous Event Trigger for Event Fail.
|
||||
-- @function [parent=#MISSION] Fail
|
||||
-- @param #MISSION self
|
||||
|
||||
--- Asynchronous Event Trigger for Event Fail.
|
||||
-- @function [parent=#MISSION] __Fail
|
||||
-- @param #MISSION self
|
||||
-- @param #number Delay The delay in seconds.
|
||||
|
||||
self:T( { MissionName, MissionPriority, MissionBriefing, MissionCoalition } )
|
||||
|
||||
self.CommandCenter = CommandCenter
|
||||
@ -64,10 +238,10 @@ function MISSION:New( CommandCenter, MissionName, MissionPriority, MissionBriefi
|
||||
return self
|
||||
end
|
||||
|
||||
--- FSM function for a MISSION
|
||||
-- FSM function for a MISSION
|
||||
-- @param #MISSION self
|
||||
-- @param #string Event
|
||||
-- @param #string From
|
||||
-- @param #string Event
|
||||
-- @param #string To
|
||||
function MISSION:onbeforeComplete( From, Event, To )
|
||||
|
||||
@ -80,10 +254,10 @@ function MISSION:onbeforeComplete( From, Event, To )
|
||||
return true -- Allow Mission completion.
|
||||
end
|
||||
|
||||
--- FSM function for a MISSION
|
||||
-- FSM function for a MISSION
|
||||
-- @param #MISSION self
|
||||
-- @param #string Event
|
||||
-- @param #string From
|
||||
-- @param #string Event
|
||||
-- @param #string To
|
||||
function MISSION:onenterCompleted( From, Event, To )
|
||||
|
||||
|
||||
@ -238,7 +238,7 @@ do -- TASK_A2G_DISPATCHER
|
||||
end
|
||||
end
|
||||
if CASTask and CASTask:IsStatePlanned() then
|
||||
ReportCAS:Add( string.format( " - %s.%02d - %s", "CAS.", ItemID, Detection:DetectedItemReportSummary(DetectedItemID) ) )
|
||||
ReportCAS:Add( string.format( " - %s.%02d - %s", "CAS", ItemID, Detection:DetectedItemReportSummary(DetectedItemID) ) )
|
||||
end
|
||||
|
||||
-- Evaluate BAI Tasking
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -32,3 +32,14 @@ local FACAreas = DETECTION_UNITS:New( FACSet )
|
||||
local AttackGroups = SET_GROUP:New():FilterCoalitions( "red" ):FilterPrefixes( "Attack" ):FilterStart()
|
||||
local TaskDispatcher = TASK_A2G_DISPATCHER:New( Mission, HQ, AttackGroups, FACAreas )
|
||||
|
||||
|
||||
-- Now this is REALLY neat. I set the goal of the mission to be the destruction of Target #004.
|
||||
-- This is just an example, but many more examples can follow...
|
||||
function Mission:OnBeforeComplete( From, Event, To )
|
||||
local Group004 = GROUP:FindByName( "Target #004" )
|
||||
if Group004:IsAlive() == false then
|
||||
Mission:GetCommandCenter():MessageToCoalition( "Mission Complete!" )
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
Loading…
x
Reference in New Issue
Block a user