Got PATROLZONE working with new FSM mechanism

This commit is contained in:
FlightControl 2016-12-06 13:04:06 +01:00
parent b45f20579e
commit c8e8aecf34
2 changed files with 10 additions and 10 deletions

View File

@ -1,6 +1,6 @@
-- This test mission models the behaviour of the PROCESS_PATROLZONE class.
-- This test mission models the behaviour of the PATROLZONE class.
--
-- It creates a 2 PROCESS_PATROLZONE objects with the name Patrol1 and Patrol2.
-- It creates a 2 PATROLZONE objects with the name Patrol1 and Patrol2.
-- Patrol1 will govern a GROUP object to patrol the zone defined by PatrolZone1, within 3000 meters and 6000 meters, within a speed of 400 and 600 km/h.
-- When the GROUP object that is assigned to Patrol has fuel below 20%, the GROUP object will orbit for 60 secondes, before returning to base.
--
@ -23,16 +23,16 @@ local PatrolZone2 = ZONE_POLYGON:New( "Patrol Zone 2", PatrolZoneGroup2 )
local PatrolSpawn = SPAWN:New( "Patrol Group" )
local PatrolGroup = PatrolSpawn:Spawn()
local Patrol1 = PROCESS_PATROLZONE:New( PatrolZone1, 3000, 6000, 400, 600 )
local Patrol1 = PATROLZONE:New( PatrolZone1, 3000, 6000, 400, 600 )
Patrol1:ManageFuel( 0.2, 60 )
Patrol1:SetControllable( PatrolGroup )
Patrol1:__Start( 5 )
local Patrol2 = PROCESS_PATROLZONE:New( PatrolZone2, 600, 1000, 300, 400 )
local Patrol2 = PATROLZONE:New( PatrolZone2, 600, 1000, 300, 400 )
Patrol2:ManageFuel( 0.2, 0 )
--- State transition function for the PROCESS\_PATROLZONE **Patrol1** object
-- @param #PROCESS_PATROLZONE self
-- @param #PATROLZONE self
-- @param Wrapper.Group#GROUP AIGroup
-- @return #boolean If false is returned, then the OnAfter state transition function will not be called.
function Patrol1:OnBeforeRTB( AIGroup )
@ -40,7 +40,7 @@ function Patrol1:OnBeforeRTB( AIGroup )
end
--- State transition function for the PROCESS\_PATROLZONE **Patrol1** object
-- @param Process_PatrolCore.Zone#PROCESS_PATROLZONE self
-- @param Process_PatrolCore.Zone#PATROLZONE self
-- @param Wrapper.Group#GROUP AIGroup
function Patrol1:OnAfterRTB( AIGroup )
local NewGroup = PatrolSpawn:Spawn()
@ -49,14 +49,14 @@ function Patrol1:OnAfterRTB( AIGroup )
end
--- State transition function for the PROCESS\_PATROLZONE **Patrol1** object
-- @param Process_PatrolCore.Zone#PROCESS_PATROLZONE self
-- @param Process_PatrolCore.Zone#PATROLZONE self
-- @param Wrapper.Group#GROUP AIGroup
function Patrol1:OnAfterPatrol( AIGroup )
AIGroup:MessageToRed( "Patrolling in zone " .. PatrolZone1:GetName() , 20 )
end
--- State transition function for the PROCESS\_PATROLZONE **Patrol2** object
-- @param #PROCESS_PATROLZONE self
-- @param #PATROLZONE self
-- @param Wrapper.Group#GROUP AIGroup
-- @return #boolean If false is returned, then the OnAfter state transition function will not be called.
function Patrol2:OnBeforeRTB( AIGroup )
@ -64,7 +64,7 @@ function Patrol2:OnBeforeRTB( AIGroup )
end
--- State transition function for the PROCESS\_PATROLZONE **Patrol2** object
-- @param Process_PatrolCore.Zone#PROCESS_PATROLZONE self
-- @param Process_PatrolCore.Zone#PATROLZONE self
-- @param Wrapper.Group#GROUP AIGroup
function Patrol2:OnAfterRTB( AIGroup )
local NewGroup = PatrolSpawn:Spawn()
@ -73,7 +73,7 @@ function Patrol2:OnAfterRTB( AIGroup )
end
--- State transition function for the PROCESS\_PATROLZONE **Patrol2** object
-- @param Process_PatrolCore.Zone#PROCESS_PATROLZONE self
-- @param Process_PatrolCore.Zone#PATROLZONE self
-- @param Wrapper.Group#GROUP AIGroup
function Patrol2:OnAfterPatrol( AIGroup )
AIGroup:MessageToRed( "Patrolling in zone " .. PatrolZone2:GetName() , 20 )