From c8e8aecf34ae266b1880ff1520d4b003141792c7 Mon Sep 17 00:00:00 2001 From: FlightControl Date: Tue, 6 Dec 2016 13:04:06 +0100 Subject: [PATCH] Got PATROLZONE working with new FSM mechanism --- .../PATROLZONE - Switching.lua} | 20 +++++++++--------- .../PATROLZONE - Switching.miz} | Bin 25545 -> 25552 bytes 2 files changed, 10 insertions(+), 10 deletions(-) rename Moose Test Missions/Patrolling/{Moose_Test_PROCESS_PATROLZONE_Switching/Moose_Test_PROCESS_PATROLZONE_Switching.lua => PATROLZONE - Switching/PATROLZONE - Switching.lua} (83%) rename Moose Test Missions/Patrolling/{Moose_Test_PROCESS_PATROLZONE_Switching/Moose_Test_PROCESS_PATROLZONE_Switching.miz => PATROLZONE - Switching/PATROLZONE - Switching.miz} (52%) diff --git a/Moose Test Missions/Patrolling/Moose_Test_PROCESS_PATROLZONE_Switching/Moose_Test_PROCESS_PATROLZONE_Switching.lua b/Moose Test Missions/Patrolling/PATROLZONE - Switching/PATROLZONE - Switching.lua similarity index 83% rename from Moose Test Missions/Patrolling/Moose_Test_PROCESS_PATROLZONE_Switching/Moose_Test_PROCESS_PATROLZONE_Switching.lua rename to Moose Test Missions/Patrolling/PATROLZONE - Switching/PATROLZONE - Switching.lua index 01e13ad58..b33b25e70 100644 --- a/Moose Test Missions/Patrolling/Moose_Test_PROCESS_PATROLZONE_Switching/Moose_Test_PROCESS_PATROLZONE_Switching.lua +++ b/Moose Test Missions/Patrolling/PATROLZONE - Switching/PATROLZONE - Switching.lua @@ -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 ) diff --git a/Moose Test Missions/Patrolling/Moose_Test_PROCESS_PATROLZONE_Switching/Moose_Test_PROCESS_PATROLZONE_Switching.miz b/Moose Test Missions/Patrolling/PATROLZONE - Switching/PATROLZONE - Switching.miz similarity index 52% rename from Moose Test Missions/Patrolling/Moose_Test_PROCESS_PATROLZONE_Switching/Moose_Test_PROCESS_PATROLZONE_Switching.miz rename to Moose Test Missions/Patrolling/PATROLZONE - Switching/PATROLZONE - Switching.miz index d4d38246d6acf421f22450abd23d7086587efdfe..b205c712f7e381f2da03d244936b9c9c983d8030 100644 GIT binary patch delta 11111 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