mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2026-08-13 17:31:41 +00:00
Made user exits for Mission Completion evaluation...
Man, this is going to rock!
This commit is contained in:
@@ -294,7 +294,7 @@ function BASE:Inherit( Child, Parent )
|
|||||||
setmetatable( Child, Parent )
|
setmetatable( Child, Parent )
|
||||||
Child.__index = Child
|
Child.__index = Child
|
||||||
|
|
||||||
Child:_SetDestructor()
|
--Child:_SetDestructor()
|
||||||
end
|
end
|
||||||
--self:T( 'Inherited from ' .. Parent.ClassName )
|
--self:T( 'Inherited from ' .. Parent.ClassName )
|
||||||
return Child
|
return Child
|
||||||
|
|||||||
@@ -1295,7 +1295,7 @@ do -- DETECTION_UNITS
|
|||||||
|
|
||||||
for DetectedItemID, DetectedItem in pairs( self.DetectedItems ) do
|
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
|
local DetectedTypeName = DetectedItem.Type
|
||||||
|
|
||||||
for DetectedUnitName, DetectedUnitData in pairs( DetectedItemSet ) do
|
for DetectedUnitName, DetectedUnitData in pairs( DetectedItemSet ) do
|
||||||
|
|||||||
@@ -45,10 +45,184 @@ function MISSION:New( CommandCenter, MissionName, MissionPriority, MissionBriefi
|
|||||||
self:SetStartState( "Idle" )
|
self:SetStartState( "Idle" )
|
||||||
|
|
||||||
self:AddTransition( "Idle", "Start", "Ongoing" )
|
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" )
|
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" )
|
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" )
|
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:T( { MissionName, MissionPriority, MissionBriefing, MissionCoalition } )
|
||||||
|
|
||||||
self.CommandCenter = CommandCenter
|
self.CommandCenter = CommandCenter
|
||||||
@@ -64,10 +238,10 @@ function MISSION:New( CommandCenter, MissionName, MissionPriority, MissionBriefi
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
--- FSM function for a MISSION
|
-- FSM function for a MISSION
|
||||||
-- @param #MISSION self
|
-- @param #MISSION self
|
||||||
-- @param #string Event
|
|
||||||
-- @param #string From
|
-- @param #string From
|
||||||
|
-- @param #string Event
|
||||||
-- @param #string To
|
-- @param #string To
|
||||||
function MISSION:onbeforeComplete( From, Event, To )
|
function MISSION:onbeforeComplete( From, Event, To )
|
||||||
|
|
||||||
@@ -80,10 +254,10 @@ function MISSION:onbeforeComplete( From, Event, To )
|
|||||||
return true -- Allow Mission completion.
|
return true -- Allow Mission completion.
|
||||||
end
|
end
|
||||||
|
|
||||||
--- FSM function for a MISSION
|
-- FSM function for a MISSION
|
||||||
-- @param #MISSION self
|
-- @param #MISSION self
|
||||||
-- @param #string Event
|
|
||||||
-- @param #string From
|
-- @param #string From
|
||||||
|
-- @param #string Event
|
||||||
-- @param #string To
|
-- @param #string To
|
||||||
function MISSION:onenterCompleted( From, Event, To )
|
function MISSION:onenterCompleted( From, Event, To )
|
||||||
|
|
||||||
|
|||||||
@@ -238,7 +238,7 @@ do -- TASK_A2G_DISPATCHER
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
if CASTask and CASTask:IsStatePlanned() then
|
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
|
end
|
||||||
|
|
||||||
-- Evaluate BAI Tasking
|
-- Evaluate BAI Tasking
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
+35497
-17
File diff suppressed because it is too large
Load Diff
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
+11
@@ -32,3 +32,14 @@ local FACAreas = DETECTION_UNITS:New( FACSet )
|
|||||||
local AttackGroups = SET_GROUP:New():FilterCoalitions( "red" ):FilterPrefixes( "Attack" ):FilterStart()
|
local AttackGroups = SET_GROUP:New():FilterCoalitions( "red" ):FilterPrefixes( "Attack" ):FilterStart()
|
||||||
local TaskDispatcher = TASK_A2G_DISPATCHER:New( Mission, HQ, AttackGroups, FACAreas )
|
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
|
||||||
Reference in New Issue
Block a user