mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Documentation and embedding pictures in AI_CAS_ZONE
This commit is contained in:
parent
04c6d12247
commit
114517bb05
@ -6,23 +6,44 @@
|
|||||||
--
|
--
|
||||||
-- ===
|
-- ===
|
||||||
--
|
--
|
||||||
-- # 1) @{#AI_CAS_ZONE} class, extends @{AI.AI_Patrol#AI_PATROLZONE}
|
-- # 1) @{#AI_CAS_ZONE} class, extends @{AI.AI_Patrol#AI_PATROL_ZONE}
|
||||||
--
|
--
|
||||||
-- @{#AI_CAS_ZONE} derives from the @{AI.AI_Patrol#AI_PATROLZONE}, inheriting its methods and behaviour.
|
-- @{#AI_CAS_ZONE} derives from the @{AI.AI_Patrol#AI_PATROL_ZONE}, inheriting its methods and behaviour.
|
||||||
--
|
--
|
||||||
-- The @{#AI_CAS_ZONE} class implements the core functions to provide Close Air Support in an Engage @{Zone} by an AIR @{Controllable} or @{Group}.
|
-- The @{#AI_CAS_ZONE} class implements the core functions to provide Close Air Support in an Engage @{Zone} by an AIR @{Controllable} or @{Group}.
|
||||||
-- The AI_CASE_ZONE is assigned a @(Group) and this must be done before the AI_CAS_ZONE process can be started through the **Start** event.
|
-- The AI_CAS_ZONE runs a process. It holds an AI in a Patrol Zone and when the AI is commanded to engage, it will fly to an Engage Zone.
|
||||||
|
--
|
||||||
|
-- 
|
||||||
|
--
|
||||||
|
-- The AI_CAS_ZONE is assigned a @(Group) and this must be done before the AI_CAS_ZONE process can be started through the **Start** event.
|
||||||
|
--
|
||||||
|
-- 
|
||||||
--
|
--
|
||||||
-- Upon started, The AI will **Route** itself towards the random 3D point within a patrol zone,
|
-- Upon started, The AI will **Route** itself towards the random 3D point within a patrol zone,
|
||||||
-- using a random speed within the given altitude and speed limits.
|
-- using a random speed within the given altitude and speed limits.
|
||||||
-- Upon arrival at the 3D point, a new random 3D point will be selected within the patrol zone using the given limits.
|
-- Upon arrival at the 3D point, a new random 3D point will be selected within the patrol zone using the given limits.
|
||||||
-- This cycle will continue until a fuel or damage treshold has been reached by the AI, or when the AI is commanded to RTB.
|
-- This cycle will continue until a fuel or damage treshold has been reached by the AI, or when the AI is commanded to RTB.
|
||||||
--
|
--
|
||||||
|
-- 
|
||||||
|
--
|
||||||
-- When the AI is commanded to provide Close Air Support (through the event **Engage**), the AI will fly towards the Engage Zone.
|
-- When the AI is commanded to provide Close Air Support (through the event **Engage**), the AI will fly towards the Engage Zone.
|
||||||
-- Any target that is detected in the Engage Zone will be reported and will be destroyed by the AI.
|
-- Any target that is detected in the Engage Zone will be reported and will be destroyed by the AI.
|
||||||
--
|
--
|
||||||
-- Note that the AI does not know when the Engage Zone is cleared, and therefore will keep circling in the zone
|
-- 
|
||||||
-- until it is notified through the event **Accomplish**, which is to be triggered by an observing party:
|
--
|
||||||
|
-- The AI will detect the targets and will only destroy the targets within the Engage Zone.
|
||||||
|
--
|
||||||
|
-- 
|
||||||
|
--
|
||||||
|
-- Every target that is destroyed, is reported< by the AI.
|
||||||
|
--
|
||||||
|
-- 
|
||||||
|
--
|
||||||
|
-- Note that the AI does not know when the Engage Zone is cleared, and therefore will keep circling in the zone.
|
||||||
|
--
|
||||||
|
-- 
|
||||||
|
--
|
||||||
|
-- Until it is notified through the event **Accomplish**, which is to be triggered by an observing party:
|
||||||
--
|
--
|
||||||
-- * a FAC
|
-- * a FAC
|
||||||
-- * a timed event
|
-- * a timed event
|
||||||
@ -30,12 +51,18 @@
|
|||||||
-- * a condition
|
-- * a condition
|
||||||
-- * others ...
|
-- * others ...
|
||||||
--
|
--
|
||||||
|
-- 
|
||||||
|
--
|
||||||
-- When the AI has accomplished the CAS, it will fly back to the Patrol Zone.
|
-- When the AI has accomplished the CAS, it will fly back to the Patrol Zone.
|
||||||
|
--
|
||||||
|
-- 
|
||||||
|
--
|
||||||
-- It will keep patrolling there, until it is notified to RTB or move to another CAS Zone.
|
-- It will keep patrolling there, until it is notified to RTB or move to another CAS Zone.
|
||||||
-- It can be notified to go RTB through the **RTB** event.
|
-- It can be notified to go RTB through the **RTB** event.
|
||||||
--
|
--
|
||||||
-- When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.
|
-- When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.
|
||||||
--
|
--
|
||||||
|
-- 
|
||||||
--
|
--
|
||||||
-- # 1.1) AI_CAS_ZONE constructor
|
-- # 1.1) AI_CAS_ZONE constructor
|
||||||
--
|
--
|
||||||
@ -83,12 +110,12 @@
|
|||||||
--
|
--
|
||||||
-- * **[Quax](https://forums.eagle.ru/member.php?u=90530)**: Concept, Advice & Testing.
|
-- * **[Quax](https://forums.eagle.ru/member.php?u=90530)**: Concept, Advice & Testing.
|
||||||
-- * **[Pikey](https://forums.eagle.ru/member.php?u=62835)**: Concept, Advice & Testing.
|
-- * **[Pikey](https://forums.eagle.ru/member.php?u=62835)**: Concept, Advice & Testing.
|
||||||
|
-- * **[Gunterlund](http://forums.eagle.ru:8080/member.php?u=75036)**: Test case revision.
|
||||||
--
|
--
|
||||||
-- ### Authors:
|
-- ### Authors:
|
||||||
--
|
--
|
||||||
-- * **FlightControl**: Concept, Design & Programming.
|
-- * **FlightControl**: Concept, Design & Programming.
|
||||||
--
|
--
|
||||||
--
|
|
||||||
-- @module AI_Cas
|
-- @module AI_Cas
|
||||||
|
|
||||||
|
|
||||||
@ -115,7 +142,7 @@ AI_CAS_ZONE = {
|
|||||||
function AI_CAS_ZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, EngageZone )
|
function AI_CAS_ZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, EngageZone )
|
||||||
|
|
||||||
-- Inherits from BASE
|
-- Inherits from BASE
|
||||||
local self = BASE:Inherit( self, AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed ) ) -- #AI_CAS_ZONE
|
local self = BASE:Inherit( self, AI_PATROL_ZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed ) ) -- #AI_CAS_ZONE
|
||||||
|
|
||||||
self.EngageZone = EngageZone
|
self.EngageZone = EngageZone
|
||||||
self.Accomplished = false
|
self.Accomplished = false
|
||||||
@ -284,6 +311,22 @@ function AI_CAS_ZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Set the Engage Zone where the AI is performing CAS. Note that if the EngageZone is changed, the AI needs to re-detect targets.
|
||||||
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
-- @param Core.Zone#ZONE EngageZone The zone where the AI is performing CAS.
|
||||||
|
-- @return #AI_PATROL_ZONE self
|
||||||
|
function AI_CAS_ZONE:SetEngageZone( EngageZone )
|
||||||
|
self:F2()
|
||||||
|
|
||||||
|
if EngageZone then
|
||||||
|
self.EngageZone = EngageZone
|
||||||
|
else
|
||||||
|
self.EngageZone = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- onafter State Transition for Event Start.
|
--- onafter State Transition for Event Start.
|
||||||
-- @param #AI_CAS_ZONE self
|
-- @param #AI_CAS_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
|
|||||||
@ -6,30 +6,30 @@
|
|||||||
--
|
--
|
||||||
-- ===
|
-- ===
|
||||||
--
|
--
|
||||||
-- # 1) @{#AI_PATROLZONE} class, extends @{Core.Fsm#FSM_CONTROLLABLE}
|
-- # 1) @{#AI_PATROL_ZONE} class, extends @{Core.Fsm#FSM_CONTROLLABLE}
|
||||||
--
|
--
|
||||||
-- The @{#AI_PATROLZONE} class implements the core functions to patrol a @{Zone} by an AI @{Controllable} or @{Group}.
|
-- The @{#AI_PATROL_ZONE} class implements the core functions to patrol a @{Zone} by an AI @{Controllable} or @{Group}.
|
||||||
-- The AI_PATROLZONE is assigned a @(Group) and this must be done before the AI_PATROLZONE process can be started.
|
-- The AI_PATROL_ZONE is assigned a @(Group) and this must be done before the AI_PATROL_ZONE process can be started.
|
||||||
-- The AI will fly towards the random 3D point within the patrol zone, using a random speed within the given altitude and speed limits.
|
-- The AI will fly towards the random 3D point within the patrol zone, using a random speed within the given altitude and speed limits.
|
||||||
-- Upon arrival at the 3D point, a new random 3D point will be selected within the patrol zone using the given limits.
|
-- Upon arrival at the 3D point, a new random 3D point will be selected within the patrol zone using the given limits.
|
||||||
-- This cycle will continue until a fuel or damage treshold has been reached by the AI, or when the AI is commanded to RTB.
|
-- This cycle will continue until a fuel or damage treshold has been reached by the AI, or when the AI is commanded to RTB.
|
||||||
-- When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.
|
-- When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.
|
||||||
--
|
--
|
||||||
-- ## 1.1) AI_PATROLZONE constructor
|
-- ## 1.1) AI_PATROL_ZONE constructor
|
||||||
--
|
--
|
||||||
-- * @{#AI_PATROLZONE.New}(): Creates a new AI_PATROLZONE object.
|
-- * @{#AI_PATROL_ZONE.New}(): Creates a new AI_PATROL_ZONE object.
|
||||||
--
|
--
|
||||||
-- ## 1.2) AI_PATROLZONE is a FSM
|
-- ## 1.2) AI_PATROL_ZONE is a FSM
|
||||||
--
|
--
|
||||||
-- 
|
-- 
|
||||||
--
|
--
|
||||||
-- ### 1.2.1) AI_PATROLZONE States
|
-- ### 1.2.1) AI_PATROL_ZONE States
|
||||||
--
|
--
|
||||||
-- * **None** ( Group ): The process is not started yet.
|
-- * **None** ( Group ): The process is not started yet.
|
||||||
-- * **Patrolling** ( Group ): The AI is patrolling the Patrol Zone.
|
-- * **Patrolling** ( Group ): The AI is patrolling the Patrol Zone.
|
||||||
-- * **Returning** ( Group ): The AI is returning to Base..
|
-- * **Returning** ( Group ): The AI is returning to Base..
|
||||||
--
|
--
|
||||||
-- ### 1.2.2) AI_PATROLZONE Events:
|
-- ### 1.2.2) AI_PATROL_ZONE Events:
|
||||||
--
|
--
|
||||||
-- * **Start** ( Group ): Start the process.
|
-- * **Start** ( Group ): Start the process.
|
||||||
-- * **Route** ( Group ): Route the AI to a new random 3D point within the Patrol Zone.
|
-- * **Route** ( Group ): Route the AI to a new random 3D point within the Patrol Zone.
|
||||||
@ -40,13 +40,13 @@
|
|||||||
--
|
--
|
||||||
-- ## 1.3) Set or Get the AI controllable
|
-- ## 1.3) Set or Get the AI controllable
|
||||||
--
|
--
|
||||||
-- * @{#AI_PATROLZONE.SetControllable}(): Set the AIControllable.
|
-- * @{#AI_PATROL_ZONE.SetControllable}(): Set the AIControllable.
|
||||||
-- * @{#AI_PATROLZONE.GetControllable}(): Get the AIControllable.
|
-- * @{#AI_PATROL_ZONE.GetControllable}(): Get the AIControllable.
|
||||||
--
|
--
|
||||||
-- ## 1.4) Set the Speed and Altitude boundaries of the AI controllable
|
-- ## 1.4) Set the Speed and Altitude boundaries of the AI controllable
|
||||||
--
|
--
|
||||||
-- * @{#AI_PATROLZONE.SetSpeed}(): Set the patrol speed boundaries of the AI, for the next patrol.
|
-- * @{#AI_PATROL_ZONE.SetSpeed}(): Set the patrol speed boundaries of the AI, for the next patrol.
|
||||||
-- * @{#AI_PATROLZONE.SetAltitude}(): Set altitude boundaries of the AI, for the next patrol.
|
-- * @{#AI_PATROL_ZONE.SetAltitude}(): Set altitude boundaries of the AI, for the next patrol.
|
||||||
--
|
--
|
||||||
-- ## 1.5) Manage the detection process of the AI controllable
|
-- ## 1.5) Manage the detection process of the AI controllable
|
||||||
--
|
--
|
||||||
@ -54,31 +54,31 @@
|
|||||||
-- Detection requires an amount of CPU power, which has an impact on your mission performance.
|
-- Detection requires an amount of CPU power, which has an impact on your mission performance.
|
||||||
-- Only put detection on when absolutely necessary, and the frequency of the detection can also be set.
|
-- Only put detection on when absolutely necessary, and the frequency of the detection can also be set.
|
||||||
--
|
--
|
||||||
-- * @{#AI_PATROLZONE.SetDetectionOn}(): Set the detection on. The AI will detect for targets.
|
-- * @{#AI_PATROL_ZONE.SetDetectionOn}(): Set the detection on. The AI will detect for targets.
|
||||||
-- * @{#AI_PATROLZONE.SetDetectionOff}(): Set the detection off, the AI will not detect for targets. The existing target list will NOT be erased.
|
-- * @{#AI_PATROL_ZONE.SetDetectionOff}(): Set the detection off, the AI will not detect for targets. The existing target list will NOT be erased.
|
||||||
--
|
--
|
||||||
-- The detection frequency can be set with @{#AI_PATROLZONE.SetDetectionInterval}( seconds ), where the amount of seconds specify how much seconds will be waited before the next detection.
|
-- The detection frequency can be set with @{#AI_PATROL_ZONE.SetDetectionInterval}( seconds ), where the amount of seconds specify how much seconds will be waited before the next detection.
|
||||||
-- Use the method @{#AI_PATROLZONE.GetDetectedUnits}() to obtain a list of the @{Unit}s detected by the AI.
|
-- Use the method @{#AI_PATROL_ZONE.GetDetectedUnits}() to obtain a list of the @{Unit}s detected by the AI.
|
||||||
--
|
--
|
||||||
-- The detection can be filtered to potential targets in a specific zone.
|
-- The detection can be filtered to potential targets in a specific zone.
|
||||||
-- Use the method @{#AI_PATROLZONE.SetDetectionZone}() to set the zone where targets need to be detected.
|
-- Use the method @{#AI_PATROL_ZONE.SetDetectionZone}() to set the zone where targets need to be detected.
|
||||||
-- Note that when the zone is too far away, or the AI is not heading towards the zone, or the AI is too high, no targets may be detected
|
-- Note that when the zone is too far away, or the AI is not heading towards the zone, or the AI is too high, no targets may be detected
|
||||||
-- according the weather conditions.
|
-- according the weather conditions.
|
||||||
--
|
--
|
||||||
-- ## 1.6) Manage the "out of fuel" in the AI_PATROLZONE
|
-- ## 1.6) Manage the "out of fuel" in the AI_PATROL_ZONE
|
||||||
--
|
--
|
||||||
-- When the AI is out of fuel, it is required that a new AI is started, before the old AI can return to the home base.
|
-- When the AI is out of fuel, it is required that a new AI is started, before the old AI can return to the home base.
|
||||||
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
|
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
|
||||||
-- When the fuel treshold is reached, the AI will continue for a given time its patrol task in orbit,
|
-- When the fuel treshold is reached, the AI will continue for a given time its patrol task in orbit,
|
||||||
-- while a new AI is targetted to the AI_PATROLZONE.
|
-- while a new AI is targetted to the AI_PATROL_ZONE.
|
||||||
-- Once the time is finished, the old AI will return to the base.
|
-- Once the time is finished, the old AI will return to the base.
|
||||||
-- Use the method @{#AI_PATROLZONE.ManageFuel}() to have this proces in place.
|
-- Use the method @{#AI_PATROL_ZONE.ManageFuel}() to have this proces in place.
|
||||||
--
|
--
|
||||||
-- ## 1.7) Manage "damage" behaviour of the AI in the AI_PATROLZONE
|
-- ## 1.7) Manage "damage" behaviour of the AI in the AI_PATROL_ZONE
|
||||||
--
|
--
|
||||||
-- When the AI is damaged, it is required that a new AIControllable is started. However, damage cannon be foreseen early on.
|
-- When the AI is damaged, it is required that a new AIControllable is started. However, damage cannon be foreseen early on.
|
||||||
-- Therefore, when the damage treshold is reached, the AI will return immediately to the home base (RTB).
|
-- Therefore, when the damage treshold is reached, the AI will return immediately to the home base (RTB).
|
||||||
-- Use the method @{#AI_PATROLZONE.ManageDamage}() to have this proces in place.
|
-- Use the method @{#AI_PATROL_ZONE.ManageDamage}() to have this proces in place.
|
||||||
--
|
--
|
||||||
-- ====
|
-- ====
|
||||||
--
|
--
|
||||||
@ -91,7 +91,7 @@
|
|||||||
--
|
--
|
||||||
-- Hereby the change log:
|
-- Hereby the change log:
|
||||||
--
|
--
|
||||||
-- 2016-01-15: Complete revision. AI_PATROLZONE is the base class for other AI_PATROL like classes.
|
-- 2016-01-15: Complete revision. AI_PATROL_ZONE is the base class for other AI_PATROL like classes.
|
||||||
--
|
--
|
||||||
-- 2016-09-01: Initial class and API.
|
-- 2016-09-01: Initial class and API.
|
||||||
--
|
--
|
||||||
@ -110,8 +110,8 @@
|
|||||||
--
|
--
|
||||||
-- @module AI_Patrol
|
-- @module AI_Patrol
|
||||||
|
|
||||||
--- AI_PATROLZONE class
|
--- AI_PATROL_ZONE class
|
||||||
-- @type AI_PATROLZONE
|
-- @type AI_PATROL_ZONE
|
||||||
-- @field Wrapper.Controllable#CONTROLLABLE AIControllable The @{Controllable} patrolling.
|
-- @field Wrapper.Controllable#CONTROLLABLE AIControllable The @{Controllable} patrolling.
|
||||||
-- @field Core.Zone#ZONE_BASE PatrolZone The @{Zone} where the patrol needs to be executed.
|
-- @field Core.Zone#ZONE_BASE PatrolZone The @{Zone} where the patrol needs to be executed.
|
||||||
-- @field Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
-- @field Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
||||||
@ -120,27 +120,27 @@
|
|||||||
-- @field Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
-- @field Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
||||||
-- @field Functional.Spawn#SPAWN CoordTest
|
-- @field Functional.Spawn#SPAWN CoordTest
|
||||||
-- @extends Core.Fsm#FSM_CONTROLLABLE
|
-- @extends Core.Fsm#FSM_CONTROLLABLE
|
||||||
AI_PATROLZONE = {
|
AI_PATROL_ZONE = {
|
||||||
ClassName = "AI_PATROLZONE",
|
ClassName = "AI_PATROL_ZONE",
|
||||||
}
|
}
|
||||||
|
|
||||||
--- Creates a new AI_PATROLZONE object
|
--- Creates a new AI_PATROL_ZONE object
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Core.Zone#ZONE_BASE PatrolZone The @{Zone} where the patrol needs to be executed.
|
-- @param Core.Zone#ZONE_BASE PatrolZone The @{Zone} where the patrol needs to be executed.
|
||||||
-- @param Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
-- @param Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
||||||
-- @param Dcs.DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
-- @param Dcs.DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
||||||
-- @param Dcs.DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Controllable} in km/h.
|
-- @param Dcs.DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Controllable} in km/h.
|
||||||
-- @param Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
-- @param Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
-- @usage
|
-- @usage
|
||||||
-- -- Define a new AI_PATROLZONE Object. This PatrolArea will patrol an AIControllable within PatrolZone between 3000 and 6000 meters, with a variying speed between 600 and 900 km/h.
|
-- -- Define a new AI_PATROL_ZONE Object. This PatrolArea will patrol an AIControllable within PatrolZone between 3000 and 6000 meters, with a variying speed between 600 and 900 km/h.
|
||||||
-- PatrolZone = ZONE:New( 'PatrolZone' )
|
-- PatrolZone = ZONE:New( 'PatrolZone' )
|
||||||
-- PatrolSpawn = SPAWN:New( 'Patrol Group' )
|
-- PatrolSpawn = SPAWN:New( 'Patrol Group' )
|
||||||
-- PatrolArea = AI_PATROLZONE:New( PatrolZone, 3000, 6000, 600, 900 )
|
-- PatrolArea = AI_PATROL_ZONE:New( PatrolZone, 3000, 6000, 600, 900 )
|
||||||
function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed )
|
function AI_PATROL_ZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed )
|
||||||
|
|
||||||
-- Inherits from BASE
|
-- Inherits from BASE
|
||||||
local self = BASE:Inherit( self, FSM_CONTROLLABLE:New() ) -- #AI_PATROLZONE
|
local self = BASE:Inherit( self, FSM_CONTROLLABLE:New() ) -- #AI_PATROL_ZONE
|
||||||
|
|
||||||
|
|
||||||
self.PatrolZone = PatrolZone
|
self.PatrolZone = PatrolZone
|
||||||
@ -163,8 +163,8 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
self:AddTransition( "None", "Start", "Patrolling" )
|
self:AddTransition( "None", "Start", "Patrolling" )
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event Start.
|
--- OnBefore Transition Handler for Event Start.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeStart
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeStart
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -172,25 +172,25 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event Start.
|
--- OnAfter Transition Handler for Event Start.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterStart
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterStart
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event Start.
|
--- Synchronous Event Trigger for Event Start.
|
||||||
-- @function [parent=#AI_PATROLZONE] Start
|
-- @function [parent=#AI_PATROL_ZONE] Start
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event Start.
|
--- Asynchronous Event Trigger for Event Start.
|
||||||
-- @function [parent=#AI_PATROLZONE] __Start
|
-- @function [parent=#AI_PATROL_ZONE] __Start
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
--- OnLeave Transition Handler for State Patrolling.
|
--- OnLeave Transition Handler for State Patrolling.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnLeavePatrolling
|
-- @function [parent=#AI_PATROL_ZONE] OnLeavePatrolling
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -198,18 +198,18 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnEnter Transition Handler for State Patrolling.
|
--- OnEnter Transition Handler for State Patrolling.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnEnterPatrolling
|
-- @function [parent=#AI_PATROL_ZONE] OnEnterPatrolling
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
self:AddTransition( "Patrolling", "Route", "Patrolling" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROLZONE.
|
self:AddTransition( "Patrolling", "Route", "Patrolling" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROL_ZONE.
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event Route.
|
--- OnBefore Transition Handler for Event Route.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeRoute
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeRoute
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -217,27 +217,27 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event Route.
|
--- OnAfter Transition Handler for Event Route.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterRoute
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterRoute
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event Route.
|
--- Synchronous Event Trigger for Event Route.
|
||||||
-- @function [parent=#AI_PATROLZONE] Route
|
-- @function [parent=#AI_PATROL_ZONE] Route
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event Route.
|
--- Asynchronous Event Trigger for Event Route.
|
||||||
-- @function [parent=#AI_PATROLZONE] __Route
|
-- @function [parent=#AI_PATROL_ZONE] __Route
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
self:AddTransition( "*", "Status", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROLZONE.
|
self:AddTransition( "*", "Status", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROL_ZONE.
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event Status.
|
--- OnBefore Transition Handler for Event Status.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeStatus
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeStatus
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -245,27 +245,27 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event Status.
|
--- OnAfter Transition Handler for Event Status.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterStatus
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterStatus
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event Status.
|
--- Synchronous Event Trigger for Event Status.
|
||||||
-- @function [parent=#AI_PATROLZONE] Status
|
-- @function [parent=#AI_PATROL_ZONE] Status
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event Status.
|
--- Asynchronous Event Trigger for Event Status.
|
||||||
-- @function [parent=#AI_PATROLZONE] __Status
|
-- @function [parent=#AI_PATROL_ZONE] __Status
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
self:AddTransition( "*", "Detect", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROLZONE.
|
self:AddTransition( "*", "Detect", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROL_ZONE.
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event Detect.
|
--- OnBefore Transition Handler for Event Detect.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeDetect
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeDetect
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -273,27 +273,27 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event Detect.
|
--- OnAfter Transition Handler for Event Detect.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterDetect
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterDetect
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event Detect.
|
--- Synchronous Event Trigger for Event Detect.
|
||||||
-- @function [parent=#AI_PATROLZONE] Detect
|
-- @function [parent=#AI_PATROL_ZONE] Detect
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event Detect.
|
--- Asynchronous Event Trigger for Event Detect.
|
||||||
-- @function [parent=#AI_PATROLZONE] __Detect
|
-- @function [parent=#AI_PATROL_ZONE] __Detect
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
self:AddTransition( "*", "Detected", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROLZONE.
|
self:AddTransition( "*", "Detected", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROL_ZONE.
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event Detected.
|
--- OnBefore Transition Handler for Event Detected.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeDetected
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeDetected
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -301,27 +301,27 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event Detected.
|
--- OnAfter Transition Handler for Event Detected.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterDetected
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterDetected
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event Detected.
|
--- Synchronous Event Trigger for Event Detected.
|
||||||
-- @function [parent=#AI_PATROLZONE] Detected
|
-- @function [parent=#AI_PATROL_ZONE] Detected
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event Detected.
|
--- Asynchronous Event Trigger for Event Detected.
|
||||||
-- @function [parent=#AI_PATROLZONE] __Detected
|
-- @function [parent=#AI_PATROL_ZONE] __Detected
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
self:AddTransition( "*", "RTB", "RTB" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROLZONE.
|
self:AddTransition( "*", "RTB", "RTB" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROL_ZONE.
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event RTB.
|
--- OnBefore Transition Handler for Event RTB.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeRTB
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeRTB
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -329,25 +329,25 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event RTB.
|
--- OnAfter Transition Handler for Event RTB.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterRTB
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterRTB
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event RTB.
|
--- Synchronous Event Trigger for Event RTB.
|
||||||
-- @function [parent=#AI_PATROLZONE] RTB
|
-- @function [parent=#AI_PATROL_ZONE] RTB
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event RTB.
|
--- Asynchronous Event Trigger for Event RTB.
|
||||||
-- @function [parent=#AI_PATROLZONE] __RTB
|
-- @function [parent=#AI_PATROL_ZONE] __RTB
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
--- OnLeave Transition Handler for State Returning.
|
--- OnLeave Transition Handler for State Returning.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnLeaveReturning
|
-- @function [parent=#AI_PATROL_ZONE] OnLeaveReturning
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -355,8 +355,8 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnEnter Transition Handler for State Returning.
|
--- OnEnter Transition Handler for State Returning.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnEnterReturning
|
-- @function [parent=#AI_PATROL_ZONE] OnEnterReturning
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -369,11 +369,11 @@ end
|
|||||||
|
|
||||||
|
|
||||||
--- Sets (modifies) the minimum and maximum speed of the patrol.
|
--- Sets (modifies) the minimum and maximum speed of the patrol.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Dcs.DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Controllable} in km/h.
|
-- @param Dcs.DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Controllable} in km/h.
|
||||||
-- @param Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
-- @param Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetSpeed( PatrolMinSpeed, PatrolMaxSpeed )
|
function AI_PATROL_ZONE:SetSpeed( PatrolMinSpeed, PatrolMaxSpeed )
|
||||||
self:F2( { PatrolMinSpeed, PatrolMaxSpeed } )
|
self:F2( { PatrolMinSpeed, PatrolMaxSpeed } )
|
||||||
|
|
||||||
self.PatrolMinSpeed = PatrolMinSpeed
|
self.PatrolMinSpeed = PatrolMinSpeed
|
||||||
@ -383,24 +383,24 @@ end
|
|||||||
|
|
||||||
|
|
||||||
--- Sets the floor and ceiling altitude of the patrol.
|
--- Sets the floor and ceiling altitude of the patrol.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
-- @param Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
||||||
-- @param Dcs.DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
-- @param Dcs.DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetAltitude( PatrolFloorAltitude, PatrolCeilingAltitude )
|
function AI_PATROL_ZONE:SetAltitude( PatrolFloorAltitude, PatrolCeilingAltitude )
|
||||||
self:F2( { PatrolFloorAltitude, PatrolCeilingAltitude } )
|
self:F2( { PatrolFloorAltitude, PatrolCeilingAltitude } )
|
||||||
|
|
||||||
self.PatrolFloorAltitude = PatrolFloorAltitude
|
self.PatrolFloorAltitude = PatrolFloorAltitude
|
||||||
self.PatrolCeilingAltitude = PatrolCeilingAltitude
|
self.PatrolCeilingAltitude = PatrolCeilingAltitude
|
||||||
end
|
end
|
||||||
|
|
||||||
-- * @{#AI_PATROLZONE.SetDetectionOn}(): Set the detection on. The AI will detect for targets.
|
-- * @{#AI_PATROL_ZONE.SetDetectionOn}(): Set the detection on. The AI will detect for targets.
|
||||||
-- * @{#AI_PATROLZONE.SetDetectionOff}(): Set the detection off, the AI will not detect for targets. The existing target list will NOT be erased.
|
-- * @{#AI_PATROL_ZONE.SetDetectionOff}(): Set the detection off, the AI will not detect for targets. The existing target list will NOT be erased.
|
||||||
|
|
||||||
--- Set the detection on. The AI will detect for targets.
|
--- Set the detection on. The AI will detect for targets.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetDetectionOn()
|
function AI_PATROL_ZONE:SetDetectionOn()
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
self.DetectUnits = true
|
self.DetectUnits = true
|
||||||
@ -408,9 +408,9 @@ end
|
|||||||
|
|
||||||
--- Set the detection off. The AI will NOT detect for targets.
|
--- Set the detection off. The AI will NOT detect for targets.
|
||||||
-- However, the list of already detected targets will be kept and can be enquired!
|
-- However, the list of already detected targets will be kept and can be enquired!
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetDetectionOff()
|
function AI_PATROL_ZONE:SetDetectionOff()
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
self.DetectUnits = false
|
self.DetectUnits = false
|
||||||
@ -421,10 +421,10 @@ end
|
|||||||
-- Newly detected targets will be added, but already detected targets that were
|
-- Newly detected targets will be added, but already detected targets that were
|
||||||
-- not detected in this cycle, will NOT be removed!
|
-- not detected in this cycle, will NOT be removed!
|
||||||
-- The default interval is 30 seconds.
|
-- The default interval is 30 seconds.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Seconds The interval in seconds.
|
-- @param #number Seconds The interval in seconds.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetDetectionInterval( Seconds )
|
function AI_PATROL_ZONE:SetDetectionInterval( Seconds )
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
if Seconds then
|
if Seconds then
|
||||||
@ -435,10 +435,10 @@ function AI_PATROLZONE:SetDetectionInterval( Seconds )
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- Set the detection zone where the AI is detecting targets.
|
--- Set the detection zone where the AI is detecting targets.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Core.Zone#ZONE DetectionZone The zone where to detect targets.
|
-- @param Core.Zone#ZONE DetectionZone The zone where to detect targets.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetDetectionZone( DetectionZone )
|
function AI_PATROL_ZONE:SetDetectionZone( DetectionZone )
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
if DetectionZone then
|
if DetectionZone then
|
||||||
@ -451,9 +451,9 @@ end
|
|||||||
--- Gets a list of @{Wrapper.Unit#UNIT}s that were detected by the AI.
|
--- Gets a list of @{Wrapper.Unit#UNIT}s that were detected by the AI.
|
||||||
-- No filtering is applied, so, ANY detected UNIT can be in this list.
|
-- No filtering is applied, so, ANY detected UNIT can be in this list.
|
||||||
-- It is up to the mission designer to use the @{Unit} class and methods to filter the targets.
|
-- It is up to the mission designer to use the @{Unit} class and methods to filter the targets.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @return #table The list of @{Wrapper.Unit#UNIT}s
|
-- @return #table The list of @{Wrapper.Unit#UNIT}s
|
||||||
function AI_PATROLZONE:GetDetectedUnits()
|
function AI_PATROL_ZONE:GetDetectedUnits()
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
return self.DetectedUnits
|
return self.DetectedUnits
|
||||||
@ -462,13 +462,13 @@ end
|
|||||||
|
|
||||||
--- When the AI is out of fuel, it is required that a new AI is started, before the old AI can return to the home base.
|
--- When the AI is out of fuel, it is required that a new AI is started, before the old AI can return to the home base.
|
||||||
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
|
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
|
||||||
-- When the fuel treshold is reached, the AI will continue for a given time its patrol task in orbit, while a new AIControllable is targetted to the AI_PATROLZONE.
|
-- When the fuel treshold is reached, the AI will continue for a given time its patrol task in orbit, while a new AIControllable is targetted to the AI_PATROL_ZONE.
|
||||||
-- Once the time is finished, the old AI will return to the base.
|
-- Once the time is finished, the old AI will return to the base.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number PatrolFuelTresholdPercentage The treshold in percentage (between 0 and 1) when the AIControllable is considered to get out of fuel.
|
-- @param #number PatrolFuelTresholdPercentage The treshold in percentage (between 0 and 1) when the AIControllable is considered to get out of fuel.
|
||||||
-- @param #number PatrolOutOfFuelOrbitTime The amount of seconds the out of fuel AIControllable will orbit before returning to the base.
|
-- @param #number PatrolOutOfFuelOrbitTime The amount of seconds the out of fuel AIControllable will orbit before returning to the base.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:ManageFuel( PatrolFuelTresholdPercentage, PatrolOutOfFuelOrbitTime )
|
function AI_PATROL_ZONE:ManageFuel( PatrolFuelTresholdPercentage, PatrolOutOfFuelOrbitTime )
|
||||||
|
|
||||||
self.PatrolManageFuel = true
|
self.PatrolManageFuel = true
|
||||||
self.PatrolFuelTresholdPercentage = PatrolFuelTresholdPercentage
|
self.PatrolFuelTresholdPercentage = PatrolFuelTresholdPercentage
|
||||||
@ -483,10 +483,10 @@ end
|
|||||||
-- the AI will return immediately to the home base (RTB).
|
-- the AI will return immediately to the home base (RTB).
|
||||||
-- Note that for groups, the average damage of the complete group will be calculated.
|
-- Note that for groups, the average damage of the complete group will be calculated.
|
||||||
-- So, in a group of 4 airplanes, 2 lost and 2 with damage 0.2, the damage treshold will be 0.25.
|
-- So, in a group of 4 airplanes, 2 lost and 2 with damage 0.2, the damage treshold will be 0.25.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number PatrolDamageTreshold The treshold in percentage (between 0 and 1) when the AI is considered to be damaged.
|
-- @param #number PatrolDamageTreshold The treshold in percentage (between 0 and 1) when the AI is considered to be damaged.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:ManageDamage( PatrolDamageTreshold )
|
function AI_PATROL_ZONE:ManageDamage( PatrolDamageTreshold )
|
||||||
|
|
||||||
self.PatrolManageDamage = true
|
self.PatrolManageDamage = true
|
||||||
self.PatrolDamageTreshold = PatrolDamageTreshold
|
self.PatrolDamageTreshold = PatrolDamageTreshold
|
||||||
@ -495,13 +495,13 @@ function AI_PATROLZONE:ManageDamage( PatrolDamageTreshold )
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- Defines a new patrol route using the @{Process_PatrolZone} parameters and settings.
|
--- Defines a new patrol route using the @{Process_PatrolZone} parameters and settings.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
function AI_PATROLZONE:onafterStart( Controllable, From, Event, To )
|
function AI_PATROL_ZONE:onafterStart( Controllable, From, Event, To )
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
self:Route() -- Route to the patrol point.
|
self:Route() -- Route to the patrol point.
|
||||||
@ -514,16 +514,16 @@ function AI_PATROLZONE:onafterStart( Controllable, From, Event, To )
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--- @param #AI_PATROLZONE self
|
--- @param #AI_PATROL_ZONE self
|
||||||
--- @param Wrapper.Controllable#CONTROLLABLE Controllable
|
--- @param Wrapper.Controllable#CONTROLLABLE Controllable
|
||||||
function AI_PATROLZONE:onbeforeDetect( Controllable, From, Event, To )
|
function AI_PATROL_ZONE:onbeforeDetect( Controllable, From, Event, To )
|
||||||
|
|
||||||
return self.DetectUnits
|
return self.DetectUnits
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #AI_PATROLZONE self
|
--- @param #AI_PATROL_ZONE self
|
||||||
--- @param Wrapper.Controllable#CONTROLLABLE Controllable
|
--- @param Wrapper.Controllable#CONTROLLABLE Controllable
|
||||||
function AI_PATROLZONE:onafterDetect( Controllable, From, Event, To )
|
function AI_PATROL_ZONE:onafterDetect( Controllable, From, Event, To )
|
||||||
|
|
||||||
local DetectedTargets = Controllable:GetDetectedTargets()
|
local DetectedTargets = Controllable:GetDetectedTargets()
|
||||||
for TargetID, Target in pairs( DetectedTargets ) do
|
for TargetID, Target in pairs( DetectedTargets ) do
|
||||||
@ -552,18 +552,18 @@ end
|
|||||||
function _NewPatrolRoute( AIControllable )
|
function _NewPatrolRoute( AIControllable )
|
||||||
|
|
||||||
AIControllable:T( "NewPatrolRoute" )
|
AIControllable:T( "NewPatrolRoute" )
|
||||||
local PatrolZone = AIControllable:GetState( AIControllable, "PatrolZone" ) -- PatrolCore.Zone#AI_PATROLZONE
|
local PatrolZone = AIControllable:GetState( AIControllable, "PatrolZone" ) -- PatrolCore.Zone#AI_PATROL_ZONE
|
||||||
PatrolZone:Route()
|
PatrolZone:Route()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--- Defines a new patrol route using the @{Process_PatrolZone} parameters and settings.
|
--- Defines a new patrol route using the @{Process_PatrolZone} parameters and settings.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
function AI_PATROLZONE:onafterRoute( Controllable, From, Event, To )
|
function AI_PATROL_ZONE:onafterRoute( Controllable, From, Event, To )
|
||||||
|
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
@ -666,14 +666,14 @@ function AI_PATROLZONE:onafterRoute( Controllable, From, Event, To )
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #AI_PATROLZONE self
|
--- @param #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:onbeforeStatus()
|
function AI_PATROL_ZONE:onbeforeStatus()
|
||||||
|
|
||||||
return self.CheckStatus
|
return self.CheckStatus
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #AI_PATROLZONE self
|
--- @param #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:onafterStatus()
|
function AI_PATROL_ZONE:onafterStatus()
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
if self.Controllable and self.Controllable:IsAlive() then
|
if self.Controllable and self.Controllable:IsAlive() then
|
||||||
@ -707,8 +707,8 @@ function AI_PATROLZONE:onafterStatus()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #AI_PATROLZONE self
|
--- @param #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:onafterRTB()
|
function AI_PATROL_ZONE:onafterRTB()
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
if self.Controllable and self.Controllable:IsAlive() then
|
if self.Controllable and self.Controllable:IsAlive() then
|
||||||
|
|||||||
@ -24581,30 +24581,30 @@ end
|
|||||||
--
|
--
|
||||||
-- ===
|
-- ===
|
||||||
--
|
--
|
||||||
-- # 1) @{#AI_PATROLZONE} class, extends @{Core.Fsm#FSM_CONTROLLABLE}
|
-- # 1) @{#AI_PATROL_ZONE} class, extends @{Core.Fsm#FSM_CONTROLLABLE}
|
||||||
--
|
--
|
||||||
-- The @{#AI_PATROLZONE} class implements the core functions to patrol a @{Zone} by an AI @{Controllable} or @{Group}.
|
-- The @{#AI_PATROL_ZONE} class implements the core functions to patrol a @{Zone} by an AI @{Controllable} or @{Group}.
|
||||||
-- The AI_PATROLZONE is assigned a @(Group) and this must be done before the AI_PATROLZONE process can be started.
|
-- The AI_PATROL_ZONE is assigned a @(Group) and this must be done before the AI_PATROL_ZONE process can be started.
|
||||||
-- The AI will fly towards the random 3D point within the patrol zone, using a random speed within the given altitude and speed limits.
|
-- The AI will fly towards the random 3D point within the patrol zone, using a random speed within the given altitude and speed limits.
|
||||||
-- Upon arrival at the 3D point, a new random 3D point will be selected within the patrol zone using the given limits.
|
-- Upon arrival at the 3D point, a new random 3D point will be selected within the patrol zone using the given limits.
|
||||||
-- This cycle will continue until a fuel or damage treshold has been reached by the AI, or when the AI is commanded to RTB.
|
-- This cycle will continue until a fuel or damage treshold has been reached by the AI, or when the AI is commanded to RTB.
|
||||||
-- When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.
|
-- When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.
|
||||||
--
|
--
|
||||||
-- ## 1.1) AI_PATROLZONE constructor
|
-- ## 1.1) AI_PATROL_ZONE constructor
|
||||||
--
|
--
|
||||||
-- * @{#AI_PATROLZONE.New}(): Creates a new AI_PATROLZONE object.
|
-- * @{#AI_PATROL_ZONE.New}(): Creates a new AI_PATROL_ZONE object.
|
||||||
--
|
--
|
||||||
-- ## 1.2) AI_PATROLZONE is a FSM
|
-- ## 1.2) AI_PATROL_ZONE is a FSM
|
||||||
--
|
--
|
||||||
-- 
|
-- 
|
||||||
--
|
--
|
||||||
-- ### 1.2.1) AI_PATROLZONE States
|
-- ### 1.2.1) AI_PATROL_ZONE States
|
||||||
--
|
--
|
||||||
-- * **None** ( Group ): The process is not started yet.
|
-- * **None** ( Group ): The process is not started yet.
|
||||||
-- * **Patrolling** ( Group ): The AI is patrolling the Patrol Zone.
|
-- * **Patrolling** ( Group ): The AI is patrolling the Patrol Zone.
|
||||||
-- * **Returning** ( Group ): The AI is returning to Base..
|
-- * **Returning** ( Group ): The AI is returning to Base..
|
||||||
--
|
--
|
||||||
-- ### 1.2.2) AI_PATROLZONE Events:
|
-- ### 1.2.2) AI_PATROL_ZONE Events:
|
||||||
--
|
--
|
||||||
-- * **Start** ( Group ): Start the process.
|
-- * **Start** ( Group ): Start the process.
|
||||||
-- * **Route** ( Group ): Route the AI to a new random 3D point within the Patrol Zone.
|
-- * **Route** ( Group ): Route the AI to a new random 3D point within the Patrol Zone.
|
||||||
@ -24615,13 +24615,13 @@ end
|
|||||||
--
|
--
|
||||||
-- ## 1.3) Set or Get the AI controllable
|
-- ## 1.3) Set or Get the AI controllable
|
||||||
--
|
--
|
||||||
-- * @{#AI_PATROLZONE.SetControllable}(): Set the AIControllable.
|
-- * @{#AI_PATROL_ZONE.SetControllable}(): Set the AIControllable.
|
||||||
-- * @{#AI_PATROLZONE.GetControllable}(): Get the AIControllable.
|
-- * @{#AI_PATROL_ZONE.GetControllable}(): Get the AIControllable.
|
||||||
--
|
--
|
||||||
-- ## 1.4) Set the Speed and Altitude boundaries of the AI controllable
|
-- ## 1.4) Set the Speed and Altitude boundaries of the AI controllable
|
||||||
--
|
--
|
||||||
-- * @{#AI_PATROLZONE.SetSpeed}(): Set the patrol speed boundaries of the AI, for the next patrol.
|
-- * @{#AI_PATROL_ZONE.SetSpeed}(): Set the patrol speed boundaries of the AI, for the next patrol.
|
||||||
-- * @{#AI_PATROLZONE.SetAltitude}(): Set altitude boundaries of the AI, for the next patrol.
|
-- * @{#AI_PATROL_ZONE.SetAltitude}(): Set altitude boundaries of the AI, for the next patrol.
|
||||||
--
|
--
|
||||||
-- ## 1.5) Manage the detection process of the AI controllable
|
-- ## 1.5) Manage the detection process of the AI controllable
|
||||||
--
|
--
|
||||||
@ -24629,31 +24629,31 @@ end
|
|||||||
-- Detection requires an amount of CPU power, which has an impact on your mission performance.
|
-- Detection requires an amount of CPU power, which has an impact on your mission performance.
|
||||||
-- Only put detection on when absolutely necessary, and the frequency of the detection can also be set.
|
-- Only put detection on when absolutely necessary, and the frequency of the detection can also be set.
|
||||||
--
|
--
|
||||||
-- * @{#AI_PATROLZONE.SetDetectionOn}(): Set the detection on. The AI will detect for targets.
|
-- * @{#AI_PATROL_ZONE.SetDetectionOn}(): Set the detection on. The AI will detect for targets.
|
||||||
-- * @{#AI_PATROLZONE.SetDetectionOff}(): Set the detection off, the AI will not detect for targets. The existing target list will NOT be erased.
|
-- * @{#AI_PATROL_ZONE.SetDetectionOff}(): Set the detection off, the AI will not detect for targets. The existing target list will NOT be erased.
|
||||||
--
|
--
|
||||||
-- The detection frequency can be set with @{#AI_PATROLZONE.SetDetectionInterval}( seconds ), where the amount of seconds specify how much seconds will be waited before the next detection.
|
-- The detection frequency can be set with @{#AI_PATROL_ZONE.SetDetectionInterval}( seconds ), where the amount of seconds specify how much seconds will be waited before the next detection.
|
||||||
-- Use the method @{#AI_PATROLZONE.GetDetectedUnits}() to obtain a list of the @{Unit}s detected by the AI.
|
-- Use the method @{#AI_PATROL_ZONE.GetDetectedUnits}() to obtain a list of the @{Unit}s detected by the AI.
|
||||||
--
|
--
|
||||||
-- The detection can be filtered to potential targets in a specific zone.
|
-- The detection can be filtered to potential targets in a specific zone.
|
||||||
-- Use the method @{#AI_PATROLZONE.SetDetectionZone}() to set the zone where targets need to be detected.
|
-- Use the method @{#AI_PATROL_ZONE.SetDetectionZone}() to set the zone where targets need to be detected.
|
||||||
-- Note that when the zone is too far away, or the AI is not heading towards the zone, or the AI is too high, no targets may be detected
|
-- Note that when the zone is too far away, or the AI is not heading towards the zone, or the AI is too high, no targets may be detected
|
||||||
-- according the weather conditions.
|
-- according the weather conditions.
|
||||||
--
|
--
|
||||||
-- ## 1.6) Manage the "out of fuel" in the AI_PATROLZONE
|
-- ## 1.6) Manage the "out of fuel" in the AI_PATROL_ZONE
|
||||||
--
|
--
|
||||||
-- When the AI is out of fuel, it is required that a new AI is started, before the old AI can return to the home base.
|
-- When the AI is out of fuel, it is required that a new AI is started, before the old AI can return to the home base.
|
||||||
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
|
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
|
||||||
-- When the fuel treshold is reached, the AI will continue for a given time its patrol task in orbit,
|
-- When the fuel treshold is reached, the AI will continue for a given time its patrol task in orbit,
|
||||||
-- while a new AI is targetted to the AI_PATROLZONE.
|
-- while a new AI is targetted to the AI_PATROL_ZONE.
|
||||||
-- Once the time is finished, the old AI will return to the base.
|
-- Once the time is finished, the old AI will return to the base.
|
||||||
-- Use the method @{#AI_PATROLZONE.ManageFuel}() to have this proces in place.
|
-- Use the method @{#AI_PATROL_ZONE.ManageFuel}() to have this proces in place.
|
||||||
--
|
--
|
||||||
-- ## 1.7) Manage "damage" behaviour of the AI in the AI_PATROLZONE
|
-- ## 1.7) Manage "damage" behaviour of the AI in the AI_PATROL_ZONE
|
||||||
--
|
--
|
||||||
-- When the AI is damaged, it is required that a new AIControllable is started. However, damage cannon be foreseen early on.
|
-- When the AI is damaged, it is required that a new AIControllable is started. However, damage cannon be foreseen early on.
|
||||||
-- Therefore, when the damage treshold is reached, the AI will return immediately to the home base (RTB).
|
-- Therefore, when the damage treshold is reached, the AI will return immediately to the home base (RTB).
|
||||||
-- Use the method @{#AI_PATROLZONE.ManageDamage}() to have this proces in place.
|
-- Use the method @{#AI_PATROL_ZONE.ManageDamage}() to have this proces in place.
|
||||||
--
|
--
|
||||||
-- ====
|
-- ====
|
||||||
--
|
--
|
||||||
@ -24666,7 +24666,7 @@ end
|
|||||||
--
|
--
|
||||||
-- Hereby the change log:
|
-- Hereby the change log:
|
||||||
--
|
--
|
||||||
-- 2016-01-15: Complete revision. AI_PATROLZONE is the base class for other AI_PATROL like classes.
|
-- 2016-01-15: Complete revision. AI_PATROL_ZONE is the base class for other AI_PATROL like classes.
|
||||||
--
|
--
|
||||||
-- 2016-09-01: Initial class and API.
|
-- 2016-09-01: Initial class and API.
|
||||||
--
|
--
|
||||||
@ -24685,8 +24685,8 @@ end
|
|||||||
--
|
--
|
||||||
-- @module AI_Patrol
|
-- @module AI_Patrol
|
||||||
|
|
||||||
--- AI_PATROLZONE class
|
--- AI_PATROL_ZONE class
|
||||||
-- @type AI_PATROLZONE
|
-- @type AI_PATROL_ZONE
|
||||||
-- @field Wrapper.Controllable#CONTROLLABLE AIControllable The @{Controllable} patrolling.
|
-- @field Wrapper.Controllable#CONTROLLABLE AIControllable The @{Controllable} patrolling.
|
||||||
-- @field Core.Zone#ZONE_BASE PatrolZone The @{Zone} where the patrol needs to be executed.
|
-- @field Core.Zone#ZONE_BASE PatrolZone The @{Zone} where the patrol needs to be executed.
|
||||||
-- @field Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
-- @field Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
||||||
@ -24695,27 +24695,27 @@ end
|
|||||||
-- @field Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
-- @field Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
||||||
-- @field Functional.Spawn#SPAWN CoordTest
|
-- @field Functional.Spawn#SPAWN CoordTest
|
||||||
-- @extends Core.Fsm#FSM_CONTROLLABLE
|
-- @extends Core.Fsm#FSM_CONTROLLABLE
|
||||||
AI_PATROLZONE = {
|
AI_PATROL_ZONE = {
|
||||||
ClassName = "AI_PATROLZONE",
|
ClassName = "AI_PATROL_ZONE",
|
||||||
}
|
}
|
||||||
|
|
||||||
--- Creates a new AI_PATROLZONE object
|
--- Creates a new AI_PATROL_ZONE object
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Core.Zone#ZONE_BASE PatrolZone The @{Zone} where the patrol needs to be executed.
|
-- @param Core.Zone#ZONE_BASE PatrolZone The @{Zone} where the patrol needs to be executed.
|
||||||
-- @param Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
-- @param Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
||||||
-- @param Dcs.DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
-- @param Dcs.DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
||||||
-- @param Dcs.DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Controllable} in km/h.
|
-- @param Dcs.DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Controllable} in km/h.
|
||||||
-- @param Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
-- @param Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
-- @usage
|
-- @usage
|
||||||
-- -- Define a new AI_PATROLZONE Object. This PatrolArea will patrol an AIControllable within PatrolZone between 3000 and 6000 meters, with a variying speed between 600 and 900 km/h.
|
-- -- Define a new AI_PATROL_ZONE Object. This PatrolArea will patrol an AIControllable within PatrolZone between 3000 and 6000 meters, with a variying speed between 600 and 900 km/h.
|
||||||
-- PatrolZone = ZONE:New( 'PatrolZone' )
|
-- PatrolZone = ZONE:New( 'PatrolZone' )
|
||||||
-- PatrolSpawn = SPAWN:New( 'Patrol Group' )
|
-- PatrolSpawn = SPAWN:New( 'Patrol Group' )
|
||||||
-- PatrolArea = AI_PATROLZONE:New( PatrolZone, 3000, 6000, 600, 900 )
|
-- PatrolArea = AI_PATROL_ZONE:New( PatrolZone, 3000, 6000, 600, 900 )
|
||||||
function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed )
|
function AI_PATROL_ZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed )
|
||||||
|
|
||||||
-- Inherits from BASE
|
-- Inherits from BASE
|
||||||
local self = BASE:Inherit( self, FSM_CONTROLLABLE:New() ) -- #AI_PATROLZONE
|
local self = BASE:Inherit( self, FSM_CONTROLLABLE:New() ) -- #AI_PATROL_ZONE
|
||||||
|
|
||||||
|
|
||||||
self.PatrolZone = PatrolZone
|
self.PatrolZone = PatrolZone
|
||||||
@ -24738,8 +24738,8 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
self:AddTransition( "None", "Start", "Patrolling" )
|
self:AddTransition( "None", "Start", "Patrolling" )
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event Start.
|
--- OnBefore Transition Handler for Event Start.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeStart
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeStart
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24747,25 +24747,25 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event Start.
|
--- OnAfter Transition Handler for Event Start.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterStart
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterStart
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event Start.
|
--- Synchronous Event Trigger for Event Start.
|
||||||
-- @function [parent=#AI_PATROLZONE] Start
|
-- @function [parent=#AI_PATROL_ZONE] Start
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event Start.
|
--- Asynchronous Event Trigger for Event Start.
|
||||||
-- @function [parent=#AI_PATROLZONE] __Start
|
-- @function [parent=#AI_PATROL_ZONE] __Start
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
--- OnLeave Transition Handler for State Patrolling.
|
--- OnLeave Transition Handler for State Patrolling.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnLeavePatrolling
|
-- @function [parent=#AI_PATROL_ZONE] OnLeavePatrolling
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24773,18 +24773,18 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnEnter Transition Handler for State Patrolling.
|
--- OnEnter Transition Handler for State Patrolling.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnEnterPatrolling
|
-- @function [parent=#AI_PATROL_ZONE] OnEnterPatrolling
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
self:AddTransition( "Patrolling", "Route", "Patrolling" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROLZONE.
|
self:AddTransition( "Patrolling", "Route", "Patrolling" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROL_ZONE.
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event Route.
|
--- OnBefore Transition Handler for Event Route.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeRoute
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeRoute
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24792,27 +24792,27 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event Route.
|
--- OnAfter Transition Handler for Event Route.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterRoute
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterRoute
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event Route.
|
--- Synchronous Event Trigger for Event Route.
|
||||||
-- @function [parent=#AI_PATROLZONE] Route
|
-- @function [parent=#AI_PATROL_ZONE] Route
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event Route.
|
--- Asynchronous Event Trigger for Event Route.
|
||||||
-- @function [parent=#AI_PATROLZONE] __Route
|
-- @function [parent=#AI_PATROL_ZONE] __Route
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
self:AddTransition( "*", "Status", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROLZONE.
|
self:AddTransition( "*", "Status", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROL_ZONE.
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event Status.
|
--- OnBefore Transition Handler for Event Status.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeStatus
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeStatus
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24820,27 +24820,27 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event Status.
|
--- OnAfter Transition Handler for Event Status.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterStatus
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterStatus
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event Status.
|
--- Synchronous Event Trigger for Event Status.
|
||||||
-- @function [parent=#AI_PATROLZONE] Status
|
-- @function [parent=#AI_PATROL_ZONE] Status
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event Status.
|
--- Asynchronous Event Trigger for Event Status.
|
||||||
-- @function [parent=#AI_PATROLZONE] __Status
|
-- @function [parent=#AI_PATROL_ZONE] __Status
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
self:AddTransition( "*", "Detect", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROLZONE.
|
self:AddTransition( "*", "Detect", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROL_ZONE.
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event Detect.
|
--- OnBefore Transition Handler for Event Detect.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeDetect
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeDetect
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24848,27 +24848,27 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event Detect.
|
--- OnAfter Transition Handler for Event Detect.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterDetect
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterDetect
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event Detect.
|
--- Synchronous Event Trigger for Event Detect.
|
||||||
-- @function [parent=#AI_PATROLZONE] Detect
|
-- @function [parent=#AI_PATROL_ZONE] Detect
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event Detect.
|
--- Asynchronous Event Trigger for Event Detect.
|
||||||
-- @function [parent=#AI_PATROLZONE] __Detect
|
-- @function [parent=#AI_PATROL_ZONE] __Detect
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
self:AddTransition( "*", "Detected", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROLZONE.
|
self:AddTransition( "*", "Detected", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROL_ZONE.
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event Detected.
|
--- OnBefore Transition Handler for Event Detected.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeDetected
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeDetected
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24876,27 +24876,27 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event Detected.
|
--- OnAfter Transition Handler for Event Detected.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterDetected
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterDetected
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event Detected.
|
--- Synchronous Event Trigger for Event Detected.
|
||||||
-- @function [parent=#AI_PATROLZONE] Detected
|
-- @function [parent=#AI_PATROL_ZONE] Detected
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event Detected.
|
--- Asynchronous Event Trigger for Event Detected.
|
||||||
-- @function [parent=#AI_PATROLZONE] __Detected
|
-- @function [parent=#AI_PATROL_ZONE] __Detected
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
self:AddTransition( "*", "RTB", "RTB" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROLZONE.
|
self:AddTransition( "*", "RTB", "RTB" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROL_ZONE.
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event RTB.
|
--- OnBefore Transition Handler for Event RTB.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeRTB
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeRTB
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24904,25 +24904,25 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event RTB.
|
--- OnAfter Transition Handler for Event RTB.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterRTB
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterRTB
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event RTB.
|
--- Synchronous Event Trigger for Event RTB.
|
||||||
-- @function [parent=#AI_PATROLZONE] RTB
|
-- @function [parent=#AI_PATROL_ZONE] RTB
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event RTB.
|
--- Asynchronous Event Trigger for Event RTB.
|
||||||
-- @function [parent=#AI_PATROLZONE] __RTB
|
-- @function [parent=#AI_PATROL_ZONE] __RTB
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
--- OnLeave Transition Handler for State Returning.
|
--- OnLeave Transition Handler for State Returning.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnLeaveReturning
|
-- @function [parent=#AI_PATROL_ZONE] OnLeaveReturning
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24930,8 +24930,8 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnEnter Transition Handler for State Returning.
|
--- OnEnter Transition Handler for State Returning.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnEnterReturning
|
-- @function [parent=#AI_PATROL_ZONE] OnEnterReturning
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24944,11 +24944,11 @@ end
|
|||||||
|
|
||||||
|
|
||||||
--- Sets (modifies) the minimum and maximum speed of the patrol.
|
--- Sets (modifies) the minimum and maximum speed of the patrol.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Dcs.DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Controllable} in km/h.
|
-- @param Dcs.DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Controllable} in km/h.
|
||||||
-- @param Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
-- @param Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetSpeed( PatrolMinSpeed, PatrolMaxSpeed )
|
function AI_PATROL_ZONE:SetSpeed( PatrolMinSpeed, PatrolMaxSpeed )
|
||||||
self:F2( { PatrolMinSpeed, PatrolMaxSpeed } )
|
self:F2( { PatrolMinSpeed, PatrolMaxSpeed } )
|
||||||
|
|
||||||
self.PatrolMinSpeed = PatrolMinSpeed
|
self.PatrolMinSpeed = PatrolMinSpeed
|
||||||
@ -24958,24 +24958,24 @@ end
|
|||||||
|
|
||||||
|
|
||||||
--- Sets the floor and ceiling altitude of the patrol.
|
--- Sets the floor and ceiling altitude of the patrol.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
-- @param Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
||||||
-- @param Dcs.DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
-- @param Dcs.DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetAltitude( PatrolFloorAltitude, PatrolCeilingAltitude )
|
function AI_PATROL_ZONE:SetAltitude( PatrolFloorAltitude, PatrolCeilingAltitude )
|
||||||
self:F2( { PatrolFloorAltitude, PatrolCeilingAltitude } )
|
self:F2( { PatrolFloorAltitude, PatrolCeilingAltitude } )
|
||||||
|
|
||||||
self.PatrolFloorAltitude = PatrolFloorAltitude
|
self.PatrolFloorAltitude = PatrolFloorAltitude
|
||||||
self.PatrolCeilingAltitude = PatrolCeilingAltitude
|
self.PatrolCeilingAltitude = PatrolCeilingAltitude
|
||||||
end
|
end
|
||||||
|
|
||||||
-- * @{#AI_PATROLZONE.SetDetectionOn}(): Set the detection on. The AI will detect for targets.
|
-- * @{#AI_PATROL_ZONE.SetDetectionOn}(): Set the detection on. The AI will detect for targets.
|
||||||
-- * @{#AI_PATROLZONE.SetDetectionOff}(): Set the detection off, the AI will not detect for targets. The existing target list will NOT be erased.
|
-- * @{#AI_PATROL_ZONE.SetDetectionOff}(): Set the detection off, the AI will not detect for targets. The existing target list will NOT be erased.
|
||||||
|
|
||||||
--- Set the detection on. The AI will detect for targets.
|
--- Set the detection on. The AI will detect for targets.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetDetectionOn()
|
function AI_PATROL_ZONE:SetDetectionOn()
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
self.DetectUnits = true
|
self.DetectUnits = true
|
||||||
@ -24983,9 +24983,9 @@ end
|
|||||||
|
|
||||||
--- Set the detection off. The AI will NOT detect for targets.
|
--- Set the detection off. The AI will NOT detect for targets.
|
||||||
-- However, the list of already detected targets will be kept and can be enquired!
|
-- However, the list of already detected targets will be kept and can be enquired!
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetDetectionOff()
|
function AI_PATROL_ZONE:SetDetectionOff()
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
self.DetectUnits = false
|
self.DetectUnits = false
|
||||||
@ -24996,10 +24996,10 @@ end
|
|||||||
-- Newly detected targets will be added, but already detected targets that were
|
-- Newly detected targets will be added, but already detected targets that were
|
||||||
-- not detected in this cycle, will NOT be removed!
|
-- not detected in this cycle, will NOT be removed!
|
||||||
-- The default interval is 30 seconds.
|
-- The default interval is 30 seconds.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Seconds The interval in seconds.
|
-- @param #number Seconds The interval in seconds.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetDetectionInterval( Seconds )
|
function AI_PATROL_ZONE:SetDetectionInterval( Seconds )
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
if Seconds then
|
if Seconds then
|
||||||
@ -25010,10 +25010,10 @@ function AI_PATROLZONE:SetDetectionInterval( Seconds )
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- Set the detection zone where the AI is detecting targets.
|
--- Set the detection zone where the AI is detecting targets.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Core.Zone#ZONE DetectionZone The zone where to detect targets.
|
-- @param Core.Zone#ZONE DetectionZone The zone where to detect targets.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetDetectionZone( DetectionZone )
|
function AI_PATROL_ZONE:SetDetectionZone( DetectionZone )
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
if DetectionZone then
|
if DetectionZone then
|
||||||
@ -25026,9 +25026,9 @@ end
|
|||||||
--- Gets a list of @{Wrapper.Unit#UNIT}s that were detected by the AI.
|
--- Gets a list of @{Wrapper.Unit#UNIT}s that were detected by the AI.
|
||||||
-- No filtering is applied, so, ANY detected UNIT can be in this list.
|
-- No filtering is applied, so, ANY detected UNIT can be in this list.
|
||||||
-- It is up to the mission designer to use the @{Unit} class and methods to filter the targets.
|
-- It is up to the mission designer to use the @{Unit} class and methods to filter the targets.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @return #table The list of @{Wrapper.Unit#UNIT}s
|
-- @return #table The list of @{Wrapper.Unit#UNIT}s
|
||||||
function AI_PATROLZONE:GetDetectedUnits()
|
function AI_PATROL_ZONE:GetDetectedUnits()
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
return self.DetectedUnits
|
return self.DetectedUnits
|
||||||
@ -25037,13 +25037,13 @@ end
|
|||||||
|
|
||||||
--- When the AI is out of fuel, it is required that a new AI is started, before the old AI can return to the home base.
|
--- When the AI is out of fuel, it is required that a new AI is started, before the old AI can return to the home base.
|
||||||
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
|
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
|
||||||
-- When the fuel treshold is reached, the AI will continue for a given time its patrol task in orbit, while a new AIControllable is targetted to the AI_PATROLZONE.
|
-- When the fuel treshold is reached, the AI will continue for a given time its patrol task in orbit, while a new AIControllable is targetted to the AI_PATROL_ZONE.
|
||||||
-- Once the time is finished, the old AI will return to the base.
|
-- Once the time is finished, the old AI will return to the base.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number PatrolFuelTresholdPercentage The treshold in percentage (between 0 and 1) when the AIControllable is considered to get out of fuel.
|
-- @param #number PatrolFuelTresholdPercentage The treshold in percentage (between 0 and 1) when the AIControllable is considered to get out of fuel.
|
||||||
-- @param #number PatrolOutOfFuelOrbitTime The amount of seconds the out of fuel AIControllable will orbit before returning to the base.
|
-- @param #number PatrolOutOfFuelOrbitTime The amount of seconds the out of fuel AIControllable will orbit before returning to the base.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:ManageFuel( PatrolFuelTresholdPercentage, PatrolOutOfFuelOrbitTime )
|
function AI_PATROL_ZONE:ManageFuel( PatrolFuelTresholdPercentage, PatrolOutOfFuelOrbitTime )
|
||||||
|
|
||||||
self.PatrolManageFuel = true
|
self.PatrolManageFuel = true
|
||||||
self.PatrolFuelTresholdPercentage = PatrolFuelTresholdPercentage
|
self.PatrolFuelTresholdPercentage = PatrolFuelTresholdPercentage
|
||||||
@ -25058,10 +25058,10 @@ end
|
|||||||
-- the AI will return immediately to the home base (RTB).
|
-- the AI will return immediately to the home base (RTB).
|
||||||
-- Note that for groups, the average damage of the complete group will be calculated.
|
-- Note that for groups, the average damage of the complete group will be calculated.
|
||||||
-- So, in a group of 4 airplanes, 2 lost and 2 with damage 0.2, the damage treshold will be 0.25.
|
-- So, in a group of 4 airplanes, 2 lost and 2 with damage 0.2, the damage treshold will be 0.25.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number PatrolDamageTreshold The treshold in percentage (between 0 and 1) when the AI is considered to be damaged.
|
-- @param #number PatrolDamageTreshold The treshold in percentage (between 0 and 1) when the AI is considered to be damaged.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:ManageDamage( PatrolDamageTreshold )
|
function AI_PATROL_ZONE:ManageDamage( PatrolDamageTreshold )
|
||||||
|
|
||||||
self.PatrolManageDamage = true
|
self.PatrolManageDamage = true
|
||||||
self.PatrolDamageTreshold = PatrolDamageTreshold
|
self.PatrolDamageTreshold = PatrolDamageTreshold
|
||||||
@ -25070,13 +25070,13 @@ function AI_PATROLZONE:ManageDamage( PatrolDamageTreshold )
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- Defines a new patrol route using the @{Process_PatrolZone} parameters and settings.
|
--- Defines a new patrol route using the @{Process_PatrolZone} parameters and settings.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
function AI_PATROLZONE:onafterStart( Controllable, From, Event, To )
|
function AI_PATROL_ZONE:onafterStart( Controllable, From, Event, To )
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
self:Route() -- Route to the patrol point.
|
self:Route() -- Route to the patrol point.
|
||||||
@ -25089,16 +25089,16 @@ function AI_PATROLZONE:onafterStart( Controllable, From, Event, To )
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--- @param #AI_PATROLZONE self
|
--- @param #AI_PATROL_ZONE self
|
||||||
--- @param Wrapper.Controllable#CONTROLLABLE Controllable
|
--- @param Wrapper.Controllable#CONTROLLABLE Controllable
|
||||||
function AI_PATROLZONE:onbeforeDetect( Controllable, From, Event, To )
|
function AI_PATROL_ZONE:onbeforeDetect( Controllable, From, Event, To )
|
||||||
|
|
||||||
return self.DetectUnits
|
return self.DetectUnits
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #AI_PATROLZONE self
|
--- @param #AI_PATROL_ZONE self
|
||||||
--- @param Wrapper.Controllable#CONTROLLABLE Controllable
|
--- @param Wrapper.Controllable#CONTROLLABLE Controllable
|
||||||
function AI_PATROLZONE:onafterDetect( Controllable, From, Event, To )
|
function AI_PATROL_ZONE:onafterDetect( Controllable, From, Event, To )
|
||||||
|
|
||||||
local DetectedTargets = Controllable:GetDetectedTargets()
|
local DetectedTargets = Controllable:GetDetectedTargets()
|
||||||
for TargetID, Target in pairs( DetectedTargets ) do
|
for TargetID, Target in pairs( DetectedTargets ) do
|
||||||
@ -25127,18 +25127,18 @@ end
|
|||||||
function _NewPatrolRoute( AIControllable )
|
function _NewPatrolRoute( AIControllable )
|
||||||
|
|
||||||
AIControllable:T( "NewPatrolRoute" )
|
AIControllable:T( "NewPatrolRoute" )
|
||||||
local PatrolZone = AIControllable:GetState( AIControllable, "PatrolZone" ) -- PatrolCore.Zone#AI_PATROLZONE
|
local PatrolZone = AIControllable:GetState( AIControllable, "PatrolZone" ) -- PatrolCore.Zone#AI_PATROL_ZONE
|
||||||
PatrolZone:Route()
|
PatrolZone:Route()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--- Defines a new patrol route using the @{Process_PatrolZone} parameters and settings.
|
--- Defines a new patrol route using the @{Process_PatrolZone} parameters and settings.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
function AI_PATROLZONE:onafterRoute( Controllable, From, Event, To )
|
function AI_PATROL_ZONE:onafterRoute( Controllable, From, Event, To )
|
||||||
|
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
@ -25241,14 +25241,14 @@ function AI_PATROLZONE:onafterRoute( Controllable, From, Event, To )
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #AI_PATROLZONE self
|
--- @param #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:onbeforeStatus()
|
function AI_PATROL_ZONE:onbeforeStatus()
|
||||||
|
|
||||||
return self.CheckStatus
|
return self.CheckStatus
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #AI_PATROLZONE self
|
--- @param #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:onafterStatus()
|
function AI_PATROL_ZONE:onafterStatus()
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
if self.Controllable and self.Controllable:IsAlive() then
|
if self.Controllable and self.Controllable:IsAlive() then
|
||||||
@ -25282,8 +25282,8 @@ function AI_PATROLZONE:onafterStatus()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #AI_PATROLZONE self
|
--- @param #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:onafterRTB()
|
function AI_PATROL_ZONE:onafterRTB()
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
if self.Controllable and self.Controllable:IsAlive() then
|
if self.Controllable and self.Controllable:IsAlive() then
|
||||||
@ -26351,9 +26351,9 @@ end -- AI_CARGO_GROUPED
|
|||||||
--
|
--
|
||||||
-- ===
|
-- ===
|
||||||
--
|
--
|
||||||
-- # 1) @{#AI_CAS_ZONE} class, extends @{AI.AI_Patrol#AI_PATROLZONE}
|
-- # 1) @{#AI_CAS_ZONE} class, extends @{AI.AI_Patrol#AI_PATROL_ZONE}
|
||||||
--
|
--
|
||||||
-- @{#AI_CAS_ZONE} derives from the @{AI.AI_Patrol#AI_PATROLZONE}, inheriting its methods and behaviour.
|
-- @{#AI_CAS_ZONE} derives from the @{AI.AI_Patrol#AI_PATROL_ZONE}, inheriting its methods and behaviour.
|
||||||
--
|
--
|
||||||
-- The @{#AI_CAS_ZONE} class implements the core functions to provide Close Air Support in an Engage @{Zone} by an AIR @{Controllable} or @{Group}.
|
-- The @{#AI_CAS_ZONE} class implements the core functions to provide Close Air Support in an Engage @{Zone} by an AIR @{Controllable} or @{Group}.
|
||||||
-- The AI_CASE_ZONE is assigned a @(Group) and this must be done before the AI_CAS_ZONE process can be started through the **Start** event.
|
-- The AI_CASE_ZONE is assigned a @(Group) and this must be done before the AI_CAS_ZONE process can be started through the **Start** event.
|
||||||
@ -26460,7 +26460,7 @@ AI_CAS_ZONE = {
|
|||||||
function AI_CAS_ZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, EngageZone )
|
function AI_CAS_ZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, EngageZone )
|
||||||
|
|
||||||
-- Inherits from BASE
|
-- Inherits from BASE
|
||||||
local self = BASE:Inherit( self, AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed ) ) -- #AI_CAS_ZONE
|
local self = BASE:Inherit( self, AI_PATROL_ZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed ) ) -- #AI_CAS_ZONE
|
||||||
|
|
||||||
self.EngageZone = EngageZone
|
self.EngageZone = EngageZone
|
||||||
self.Accomplished = false
|
self.Accomplished = false
|
||||||
|
|||||||
@ -24581,30 +24581,30 @@ end
|
|||||||
--
|
--
|
||||||
-- ===
|
-- ===
|
||||||
--
|
--
|
||||||
-- # 1) @{#AI_PATROLZONE} class, extends @{Core.Fsm#FSM_CONTROLLABLE}
|
-- # 1) @{#AI_PATROL_ZONE} class, extends @{Core.Fsm#FSM_CONTROLLABLE}
|
||||||
--
|
--
|
||||||
-- The @{#AI_PATROLZONE} class implements the core functions to patrol a @{Zone} by an AI @{Controllable} or @{Group}.
|
-- The @{#AI_PATROL_ZONE} class implements the core functions to patrol a @{Zone} by an AI @{Controllable} or @{Group}.
|
||||||
-- The AI_PATROLZONE is assigned a @(Group) and this must be done before the AI_PATROLZONE process can be started.
|
-- The AI_PATROL_ZONE is assigned a @(Group) and this must be done before the AI_PATROL_ZONE process can be started.
|
||||||
-- The AI will fly towards the random 3D point within the patrol zone, using a random speed within the given altitude and speed limits.
|
-- The AI will fly towards the random 3D point within the patrol zone, using a random speed within the given altitude and speed limits.
|
||||||
-- Upon arrival at the 3D point, a new random 3D point will be selected within the patrol zone using the given limits.
|
-- Upon arrival at the 3D point, a new random 3D point will be selected within the patrol zone using the given limits.
|
||||||
-- This cycle will continue until a fuel or damage treshold has been reached by the AI, or when the AI is commanded to RTB.
|
-- This cycle will continue until a fuel or damage treshold has been reached by the AI, or when the AI is commanded to RTB.
|
||||||
-- When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.
|
-- When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.
|
||||||
--
|
--
|
||||||
-- ## 1.1) AI_PATROLZONE constructor
|
-- ## 1.1) AI_PATROL_ZONE constructor
|
||||||
--
|
--
|
||||||
-- * @{#AI_PATROLZONE.New}(): Creates a new AI_PATROLZONE object.
|
-- * @{#AI_PATROL_ZONE.New}(): Creates a new AI_PATROL_ZONE object.
|
||||||
--
|
--
|
||||||
-- ## 1.2) AI_PATROLZONE is a FSM
|
-- ## 1.2) AI_PATROL_ZONE is a FSM
|
||||||
--
|
--
|
||||||
-- 
|
-- 
|
||||||
--
|
--
|
||||||
-- ### 1.2.1) AI_PATROLZONE States
|
-- ### 1.2.1) AI_PATROL_ZONE States
|
||||||
--
|
--
|
||||||
-- * **None** ( Group ): The process is not started yet.
|
-- * **None** ( Group ): The process is not started yet.
|
||||||
-- * **Patrolling** ( Group ): The AI is patrolling the Patrol Zone.
|
-- * **Patrolling** ( Group ): The AI is patrolling the Patrol Zone.
|
||||||
-- * **Returning** ( Group ): The AI is returning to Base..
|
-- * **Returning** ( Group ): The AI is returning to Base..
|
||||||
--
|
--
|
||||||
-- ### 1.2.2) AI_PATROLZONE Events:
|
-- ### 1.2.2) AI_PATROL_ZONE Events:
|
||||||
--
|
--
|
||||||
-- * **Start** ( Group ): Start the process.
|
-- * **Start** ( Group ): Start the process.
|
||||||
-- * **Route** ( Group ): Route the AI to a new random 3D point within the Patrol Zone.
|
-- * **Route** ( Group ): Route the AI to a new random 3D point within the Patrol Zone.
|
||||||
@ -24615,13 +24615,13 @@ end
|
|||||||
--
|
--
|
||||||
-- ## 1.3) Set or Get the AI controllable
|
-- ## 1.3) Set or Get the AI controllable
|
||||||
--
|
--
|
||||||
-- * @{#AI_PATROLZONE.SetControllable}(): Set the AIControllable.
|
-- * @{#AI_PATROL_ZONE.SetControllable}(): Set the AIControllable.
|
||||||
-- * @{#AI_PATROLZONE.GetControllable}(): Get the AIControllable.
|
-- * @{#AI_PATROL_ZONE.GetControllable}(): Get the AIControllable.
|
||||||
--
|
--
|
||||||
-- ## 1.4) Set the Speed and Altitude boundaries of the AI controllable
|
-- ## 1.4) Set the Speed and Altitude boundaries of the AI controllable
|
||||||
--
|
--
|
||||||
-- * @{#AI_PATROLZONE.SetSpeed}(): Set the patrol speed boundaries of the AI, for the next patrol.
|
-- * @{#AI_PATROL_ZONE.SetSpeed}(): Set the patrol speed boundaries of the AI, for the next patrol.
|
||||||
-- * @{#AI_PATROLZONE.SetAltitude}(): Set altitude boundaries of the AI, for the next patrol.
|
-- * @{#AI_PATROL_ZONE.SetAltitude}(): Set altitude boundaries of the AI, for the next patrol.
|
||||||
--
|
--
|
||||||
-- ## 1.5) Manage the detection process of the AI controllable
|
-- ## 1.5) Manage the detection process of the AI controllable
|
||||||
--
|
--
|
||||||
@ -24629,31 +24629,31 @@ end
|
|||||||
-- Detection requires an amount of CPU power, which has an impact on your mission performance.
|
-- Detection requires an amount of CPU power, which has an impact on your mission performance.
|
||||||
-- Only put detection on when absolutely necessary, and the frequency of the detection can also be set.
|
-- Only put detection on when absolutely necessary, and the frequency of the detection can also be set.
|
||||||
--
|
--
|
||||||
-- * @{#AI_PATROLZONE.SetDetectionOn}(): Set the detection on. The AI will detect for targets.
|
-- * @{#AI_PATROL_ZONE.SetDetectionOn}(): Set the detection on. The AI will detect for targets.
|
||||||
-- * @{#AI_PATROLZONE.SetDetectionOff}(): Set the detection off, the AI will not detect for targets. The existing target list will NOT be erased.
|
-- * @{#AI_PATROL_ZONE.SetDetectionOff}(): Set the detection off, the AI will not detect for targets. The existing target list will NOT be erased.
|
||||||
--
|
--
|
||||||
-- The detection frequency can be set with @{#AI_PATROLZONE.SetDetectionInterval}( seconds ), where the amount of seconds specify how much seconds will be waited before the next detection.
|
-- The detection frequency can be set with @{#AI_PATROL_ZONE.SetDetectionInterval}( seconds ), where the amount of seconds specify how much seconds will be waited before the next detection.
|
||||||
-- Use the method @{#AI_PATROLZONE.GetDetectedUnits}() to obtain a list of the @{Unit}s detected by the AI.
|
-- Use the method @{#AI_PATROL_ZONE.GetDetectedUnits}() to obtain a list of the @{Unit}s detected by the AI.
|
||||||
--
|
--
|
||||||
-- The detection can be filtered to potential targets in a specific zone.
|
-- The detection can be filtered to potential targets in a specific zone.
|
||||||
-- Use the method @{#AI_PATROLZONE.SetDetectionZone}() to set the zone where targets need to be detected.
|
-- Use the method @{#AI_PATROL_ZONE.SetDetectionZone}() to set the zone where targets need to be detected.
|
||||||
-- Note that when the zone is too far away, or the AI is not heading towards the zone, or the AI is too high, no targets may be detected
|
-- Note that when the zone is too far away, or the AI is not heading towards the zone, or the AI is too high, no targets may be detected
|
||||||
-- according the weather conditions.
|
-- according the weather conditions.
|
||||||
--
|
--
|
||||||
-- ## 1.6) Manage the "out of fuel" in the AI_PATROLZONE
|
-- ## 1.6) Manage the "out of fuel" in the AI_PATROL_ZONE
|
||||||
--
|
--
|
||||||
-- When the AI is out of fuel, it is required that a new AI is started, before the old AI can return to the home base.
|
-- When the AI is out of fuel, it is required that a new AI is started, before the old AI can return to the home base.
|
||||||
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
|
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
|
||||||
-- When the fuel treshold is reached, the AI will continue for a given time its patrol task in orbit,
|
-- When the fuel treshold is reached, the AI will continue for a given time its patrol task in orbit,
|
||||||
-- while a new AI is targetted to the AI_PATROLZONE.
|
-- while a new AI is targetted to the AI_PATROL_ZONE.
|
||||||
-- Once the time is finished, the old AI will return to the base.
|
-- Once the time is finished, the old AI will return to the base.
|
||||||
-- Use the method @{#AI_PATROLZONE.ManageFuel}() to have this proces in place.
|
-- Use the method @{#AI_PATROL_ZONE.ManageFuel}() to have this proces in place.
|
||||||
--
|
--
|
||||||
-- ## 1.7) Manage "damage" behaviour of the AI in the AI_PATROLZONE
|
-- ## 1.7) Manage "damage" behaviour of the AI in the AI_PATROL_ZONE
|
||||||
--
|
--
|
||||||
-- When the AI is damaged, it is required that a new AIControllable is started. However, damage cannon be foreseen early on.
|
-- When the AI is damaged, it is required that a new AIControllable is started. However, damage cannon be foreseen early on.
|
||||||
-- Therefore, when the damage treshold is reached, the AI will return immediately to the home base (RTB).
|
-- Therefore, when the damage treshold is reached, the AI will return immediately to the home base (RTB).
|
||||||
-- Use the method @{#AI_PATROLZONE.ManageDamage}() to have this proces in place.
|
-- Use the method @{#AI_PATROL_ZONE.ManageDamage}() to have this proces in place.
|
||||||
--
|
--
|
||||||
-- ====
|
-- ====
|
||||||
--
|
--
|
||||||
@ -24666,7 +24666,7 @@ end
|
|||||||
--
|
--
|
||||||
-- Hereby the change log:
|
-- Hereby the change log:
|
||||||
--
|
--
|
||||||
-- 2016-01-15: Complete revision. AI_PATROLZONE is the base class for other AI_PATROL like classes.
|
-- 2016-01-15: Complete revision. AI_PATROL_ZONE is the base class for other AI_PATROL like classes.
|
||||||
--
|
--
|
||||||
-- 2016-09-01: Initial class and API.
|
-- 2016-09-01: Initial class and API.
|
||||||
--
|
--
|
||||||
@ -24685,8 +24685,8 @@ end
|
|||||||
--
|
--
|
||||||
-- @module AI_Patrol
|
-- @module AI_Patrol
|
||||||
|
|
||||||
--- AI_PATROLZONE class
|
--- AI_PATROL_ZONE class
|
||||||
-- @type AI_PATROLZONE
|
-- @type AI_PATROL_ZONE
|
||||||
-- @field Wrapper.Controllable#CONTROLLABLE AIControllable The @{Controllable} patrolling.
|
-- @field Wrapper.Controllable#CONTROLLABLE AIControllable The @{Controllable} patrolling.
|
||||||
-- @field Core.Zone#ZONE_BASE PatrolZone The @{Zone} where the patrol needs to be executed.
|
-- @field Core.Zone#ZONE_BASE PatrolZone The @{Zone} where the patrol needs to be executed.
|
||||||
-- @field Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
-- @field Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
||||||
@ -24695,27 +24695,27 @@ end
|
|||||||
-- @field Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
-- @field Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
||||||
-- @field Functional.Spawn#SPAWN CoordTest
|
-- @field Functional.Spawn#SPAWN CoordTest
|
||||||
-- @extends Core.Fsm#FSM_CONTROLLABLE
|
-- @extends Core.Fsm#FSM_CONTROLLABLE
|
||||||
AI_PATROLZONE = {
|
AI_PATROL_ZONE = {
|
||||||
ClassName = "AI_PATROLZONE",
|
ClassName = "AI_PATROL_ZONE",
|
||||||
}
|
}
|
||||||
|
|
||||||
--- Creates a new AI_PATROLZONE object
|
--- Creates a new AI_PATROL_ZONE object
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Core.Zone#ZONE_BASE PatrolZone The @{Zone} where the patrol needs to be executed.
|
-- @param Core.Zone#ZONE_BASE PatrolZone The @{Zone} where the patrol needs to be executed.
|
||||||
-- @param Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
-- @param Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
||||||
-- @param Dcs.DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
-- @param Dcs.DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
||||||
-- @param Dcs.DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Controllable} in km/h.
|
-- @param Dcs.DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Controllable} in km/h.
|
||||||
-- @param Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
-- @param Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
-- @usage
|
-- @usage
|
||||||
-- -- Define a new AI_PATROLZONE Object. This PatrolArea will patrol an AIControllable within PatrolZone between 3000 and 6000 meters, with a variying speed between 600 and 900 km/h.
|
-- -- Define a new AI_PATROL_ZONE Object. This PatrolArea will patrol an AIControllable within PatrolZone between 3000 and 6000 meters, with a variying speed between 600 and 900 km/h.
|
||||||
-- PatrolZone = ZONE:New( 'PatrolZone' )
|
-- PatrolZone = ZONE:New( 'PatrolZone' )
|
||||||
-- PatrolSpawn = SPAWN:New( 'Patrol Group' )
|
-- PatrolSpawn = SPAWN:New( 'Patrol Group' )
|
||||||
-- PatrolArea = AI_PATROLZONE:New( PatrolZone, 3000, 6000, 600, 900 )
|
-- PatrolArea = AI_PATROL_ZONE:New( PatrolZone, 3000, 6000, 600, 900 )
|
||||||
function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed )
|
function AI_PATROL_ZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed )
|
||||||
|
|
||||||
-- Inherits from BASE
|
-- Inherits from BASE
|
||||||
local self = BASE:Inherit( self, FSM_CONTROLLABLE:New() ) -- #AI_PATROLZONE
|
local self = BASE:Inherit( self, FSM_CONTROLLABLE:New() ) -- #AI_PATROL_ZONE
|
||||||
|
|
||||||
|
|
||||||
self.PatrolZone = PatrolZone
|
self.PatrolZone = PatrolZone
|
||||||
@ -24738,8 +24738,8 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
self:AddTransition( "None", "Start", "Patrolling" )
|
self:AddTransition( "None", "Start", "Patrolling" )
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event Start.
|
--- OnBefore Transition Handler for Event Start.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeStart
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeStart
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24747,25 +24747,25 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event Start.
|
--- OnAfter Transition Handler for Event Start.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterStart
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterStart
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event Start.
|
--- Synchronous Event Trigger for Event Start.
|
||||||
-- @function [parent=#AI_PATROLZONE] Start
|
-- @function [parent=#AI_PATROL_ZONE] Start
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event Start.
|
--- Asynchronous Event Trigger for Event Start.
|
||||||
-- @function [parent=#AI_PATROLZONE] __Start
|
-- @function [parent=#AI_PATROL_ZONE] __Start
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
--- OnLeave Transition Handler for State Patrolling.
|
--- OnLeave Transition Handler for State Patrolling.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnLeavePatrolling
|
-- @function [parent=#AI_PATROL_ZONE] OnLeavePatrolling
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24773,18 +24773,18 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnEnter Transition Handler for State Patrolling.
|
--- OnEnter Transition Handler for State Patrolling.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnEnterPatrolling
|
-- @function [parent=#AI_PATROL_ZONE] OnEnterPatrolling
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
self:AddTransition( "Patrolling", "Route", "Patrolling" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROLZONE.
|
self:AddTransition( "Patrolling", "Route", "Patrolling" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROL_ZONE.
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event Route.
|
--- OnBefore Transition Handler for Event Route.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeRoute
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeRoute
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24792,27 +24792,27 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event Route.
|
--- OnAfter Transition Handler for Event Route.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterRoute
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterRoute
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event Route.
|
--- Synchronous Event Trigger for Event Route.
|
||||||
-- @function [parent=#AI_PATROLZONE] Route
|
-- @function [parent=#AI_PATROL_ZONE] Route
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event Route.
|
--- Asynchronous Event Trigger for Event Route.
|
||||||
-- @function [parent=#AI_PATROLZONE] __Route
|
-- @function [parent=#AI_PATROL_ZONE] __Route
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
self:AddTransition( "*", "Status", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROLZONE.
|
self:AddTransition( "*", "Status", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROL_ZONE.
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event Status.
|
--- OnBefore Transition Handler for Event Status.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeStatus
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeStatus
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24820,27 +24820,27 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event Status.
|
--- OnAfter Transition Handler for Event Status.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterStatus
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterStatus
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event Status.
|
--- Synchronous Event Trigger for Event Status.
|
||||||
-- @function [parent=#AI_PATROLZONE] Status
|
-- @function [parent=#AI_PATROL_ZONE] Status
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event Status.
|
--- Asynchronous Event Trigger for Event Status.
|
||||||
-- @function [parent=#AI_PATROLZONE] __Status
|
-- @function [parent=#AI_PATROL_ZONE] __Status
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
self:AddTransition( "*", "Detect", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROLZONE.
|
self:AddTransition( "*", "Detect", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROL_ZONE.
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event Detect.
|
--- OnBefore Transition Handler for Event Detect.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeDetect
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeDetect
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24848,27 +24848,27 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event Detect.
|
--- OnAfter Transition Handler for Event Detect.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterDetect
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterDetect
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event Detect.
|
--- Synchronous Event Trigger for Event Detect.
|
||||||
-- @function [parent=#AI_PATROLZONE] Detect
|
-- @function [parent=#AI_PATROL_ZONE] Detect
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event Detect.
|
--- Asynchronous Event Trigger for Event Detect.
|
||||||
-- @function [parent=#AI_PATROLZONE] __Detect
|
-- @function [parent=#AI_PATROL_ZONE] __Detect
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
self:AddTransition( "*", "Detected", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROLZONE.
|
self:AddTransition( "*", "Detected", "*" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROL_ZONE.
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event Detected.
|
--- OnBefore Transition Handler for Event Detected.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeDetected
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeDetected
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24876,27 +24876,27 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event Detected.
|
--- OnAfter Transition Handler for Event Detected.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterDetected
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterDetected
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event Detected.
|
--- Synchronous Event Trigger for Event Detected.
|
||||||
-- @function [parent=#AI_PATROLZONE] Detected
|
-- @function [parent=#AI_PATROL_ZONE] Detected
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event Detected.
|
--- Asynchronous Event Trigger for Event Detected.
|
||||||
-- @function [parent=#AI_PATROLZONE] __Detected
|
-- @function [parent=#AI_PATROL_ZONE] __Detected
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
self:AddTransition( "*", "RTB", "RTB" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROLZONE.
|
self:AddTransition( "*", "RTB", "RTB" ) -- FSM_CONTROLLABLE Transition for type #AI_PATROL_ZONE.
|
||||||
|
|
||||||
--- OnBefore Transition Handler for Event RTB.
|
--- OnBefore Transition Handler for Event RTB.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnBeforeRTB
|
-- @function [parent=#AI_PATROL_ZONE] OnBeforeRTB
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24904,25 +24904,25 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnAfter Transition Handler for Event RTB.
|
--- OnAfter Transition Handler for Event RTB.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnAfterRTB
|
-- @function [parent=#AI_PATROL_ZONE] OnAfterRTB
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
|
|
||||||
--- Synchronous Event Trigger for Event RTB.
|
--- Synchronous Event Trigger for Event RTB.
|
||||||
-- @function [parent=#AI_PATROLZONE] RTB
|
-- @function [parent=#AI_PATROL_ZONE] RTB
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
|
|
||||||
--- Asynchronous Event Trigger for Event RTB.
|
--- Asynchronous Event Trigger for Event RTB.
|
||||||
-- @function [parent=#AI_PATROLZONE] __RTB
|
-- @function [parent=#AI_PATROL_ZONE] __RTB
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
--- OnLeave Transition Handler for State Returning.
|
--- OnLeave Transition Handler for State Returning.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnLeaveReturning
|
-- @function [parent=#AI_PATROL_ZONE] OnLeaveReturning
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24930,8 +24930,8 @@ function AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitu
|
|||||||
-- @return #boolean Return false to cancel Transition.
|
-- @return #boolean Return false to cancel Transition.
|
||||||
|
|
||||||
--- OnEnter Transition Handler for State Returning.
|
--- OnEnter Transition Handler for State Returning.
|
||||||
-- @function [parent=#AI_PATROLZONE] OnEnterReturning
|
-- @function [parent=#AI_PATROL_ZONE] OnEnterReturning
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
@ -24944,11 +24944,11 @@ end
|
|||||||
|
|
||||||
|
|
||||||
--- Sets (modifies) the minimum and maximum speed of the patrol.
|
--- Sets (modifies) the minimum and maximum speed of the patrol.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Dcs.DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Controllable} in km/h.
|
-- @param Dcs.DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Controllable} in km/h.
|
||||||
-- @param Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
-- @param Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetSpeed( PatrolMinSpeed, PatrolMaxSpeed )
|
function AI_PATROL_ZONE:SetSpeed( PatrolMinSpeed, PatrolMaxSpeed )
|
||||||
self:F2( { PatrolMinSpeed, PatrolMaxSpeed } )
|
self:F2( { PatrolMinSpeed, PatrolMaxSpeed } )
|
||||||
|
|
||||||
self.PatrolMinSpeed = PatrolMinSpeed
|
self.PatrolMinSpeed = PatrolMinSpeed
|
||||||
@ -24958,24 +24958,24 @@ end
|
|||||||
|
|
||||||
|
|
||||||
--- Sets the floor and ceiling altitude of the patrol.
|
--- Sets the floor and ceiling altitude of the patrol.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
-- @param Dcs.DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
||||||
-- @param Dcs.DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
-- @param Dcs.DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetAltitude( PatrolFloorAltitude, PatrolCeilingAltitude )
|
function AI_PATROL_ZONE:SetAltitude( PatrolFloorAltitude, PatrolCeilingAltitude )
|
||||||
self:F2( { PatrolFloorAltitude, PatrolCeilingAltitude } )
|
self:F2( { PatrolFloorAltitude, PatrolCeilingAltitude } )
|
||||||
|
|
||||||
self.PatrolFloorAltitude = PatrolFloorAltitude
|
self.PatrolFloorAltitude = PatrolFloorAltitude
|
||||||
self.PatrolCeilingAltitude = PatrolCeilingAltitude
|
self.PatrolCeilingAltitude = PatrolCeilingAltitude
|
||||||
end
|
end
|
||||||
|
|
||||||
-- * @{#AI_PATROLZONE.SetDetectionOn}(): Set the detection on. The AI will detect for targets.
|
-- * @{#AI_PATROL_ZONE.SetDetectionOn}(): Set the detection on. The AI will detect for targets.
|
||||||
-- * @{#AI_PATROLZONE.SetDetectionOff}(): Set the detection off, the AI will not detect for targets. The existing target list will NOT be erased.
|
-- * @{#AI_PATROL_ZONE.SetDetectionOff}(): Set the detection off, the AI will not detect for targets. The existing target list will NOT be erased.
|
||||||
|
|
||||||
--- Set the detection on. The AI will detect for targets.
|
--- Set the detection on. The AI will detect for targets.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetDetectionOn()
|
function AI_PATROL_ZONE:SetDetectionOn()
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
self.DetectUnits = true
|
self.DetectUnits = true
|
||||||
@ -24983,9 +24983,9 @@ end
|
|||||||
|
|
||||||
--- Set the detection off. The AI will NOT detect for targets.
|
--- Set the detection off. The AI will NOT detect for targets.
|
||||||
-- However, the list of already detected targets will be kept and can be enquired!
|
-- However, the list of already detected targets will be kept and can be enquired!
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetDetectionOff()
|
function AI_PATROL_ZONE:SetDetectionOff()
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
self.DetectUnits = false
|
self.DetectUnits = false
|
||||||
@ -24996,10 +24996,10 @@ end
|
|||||||
-- Newly detected targets will be added, but already detected targets that were
|
-- Newly detected targets will be added, but already detected targets that were
|
||||||
-- not detected in this cycle, will NOT be removed!
|
-- not detected in this cycle, will NOT be removed!
|
||||||
-- The default interval is 30 seconds.
|
-- The default interval is 30 seconds.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number Seconds The interval in seconds.
|
-- @param #number Seconds The interval in seconds.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetDetectionInterval( Seconds )
|
function AI_PATROL_ZONE:SetDetectionInterval( Seconds )
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
if Seconds then
|
if Seconds then
|
||||||
@ -25010,10 +25010,10 @@ function AI_PATROLZONE:SetDetectionInterval( Seconds )
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- Set the detection zone where the AI is detecting targets.
|
--- Set the detection zone where the AI is detecting targets.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Core.Zone#ZONE DetectionZone The zone where to detect targets.
|
-- @param Core.Zone#ZONE DetectionZone The zone where to detect targets.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:SetDetectionZone( DetectionZone )
|
function AI_PATROL_ZONE:SetDetectionZone( DetectionZone )
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
if DetectionZone then
|
if DetectionZone then
|
||||||
@ -25026,9 +25026,9 @@ end
|
|||||||
--- Gets a list of @{Wrapper.Unit#UNIT}s that were detected by the AI.
|
--- Gets a list of @{Wrapper.Unit#UNIT}s that were detected by the AI.
|
||||||
-- No filtering is applied, so, ANY detected UNIT can be in this list.
|
-- No filtering is applied, so, ANY detected UNIT can be in this list.
|
||||||
-- It is up to the mission designer to use the @{Unit} class and methods to filter the targets.
|
-- It is up to the mission designer to use the @{Unit} class and methods to filter the targets.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @return #table The list of @{Wrapper.Unit#UNIT}s
|
-- @return #table The list of @{Wrapper.Unit#UNIT}s
|
||||||
function AI_PATROLZONE:GetDetectedUnits()
|
function AI_PATROL_ZONE:GetDetectedUnits()
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
return self.DetectedUnits
|
return self.DetectedUnits
|
||||||
@ -25037,13 +25037,13 @@ end
|
|||||||
|
|
||||||
--- When the AI is out of fuel, it is required that a new AI is started, before the old AI can return to the home base.
|
--- When the AI is out of fuel, it is required that a new AI is started, before the old AI can return to the home base.
|
||||||
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
|
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
|
||||||
-- When the fuel treshold is reached, the AI will continue for a given time its patrol task in orbit, while a new AIControllable is targetted to the AI_PATROLZONE.
|
-- When the fuel treshold is reached, the AI will continue for a given time its patrol task in orbit, while a new AIControllable is targetted to the AI_PATROL_ZONE.
|
||||||
-- Once the time is finished, the old AI will return to the base.
|
-- Once the time is finished, the old AI will return to the base.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number PatrolFuelTresholdPercentage The treshold in percentage (between 0 and 1) when the AIControllable is considered to get out of fuel.
|
-- @param #number PatrolFuelTresholdPercentage The treshold in percentage (between 0 and 1) when the AIControllable is considered to get out of fuel.
|
||||||
-- @param #number PatrolOutOfFuelOrbitTime The amount of seconds the out of fuel AIControllable will orbit before returning to the base.
|
-- @param #number PatrolOutOfFuelOrbitTime The amount of seconds the out of fuel AIControllable will orbit before returning to the base.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:ManageFuel( PatrolFuelTresholdPercentage, PatrolOutOfFuelOrbitTime )
|
function AI_PATROL_ZONE:ManageFuel( PatrolFuelTresholdPercentage, PatrolOutOfFuelOrbitTime )
|
||||||
|
|
||||||
self.PatrolManageFuel = true
|
self.PatrolManageFuel = true
|
||||||
self.PatrolFuelTresholdPercentage = PatrolFuelTresholdPercentage
|
self.PatrolFuelTresholdPercentage = PatrolFuelTresholdPercentage
|
||||||
@ -25058,10 +25058,10 @@ end
|
|||||||
-- the AI will return immediately to the home base (RTB).
|
-- the AI will return immediately to the home base (RTB).
|
||||||
-- Note that for groups, the average damage of the complete group will be calculated.
|
-- Note that for groups, the average damage of the complete group will be calculated.
|
||||||
-- So, in a group of 4 airplanes, 2 lost and 2 with damage 0.2, the damage treshold will be 0.25.
|
-- So, in a group of 4 airplanes, 2 lost and 2 with damage 0.2, the damage treshold will be 0.25.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param #number PatrolDamageTreshold The treshold in percentage (between 0 and 1) when the AI is considered to be damaged.
|
-- @param #number PatrolDamageTreshold The treshold in percentage (between 0 and 1) when the AI is considered to be damaged.
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:ManageDamage( PatrolDamageTreshold )
|
function AI_PATROL_ZONE:ManageDamage( PatrolDamageTreshold )
|
||||||
|
|
||||||
self.PatrolManageDamage = true
|
self.PatrolManageDamage = true
|
||||||
self.PatrolDamageTreshold = PatrolDamageTreshold
|
self.PatrolDamageTreshold = PatrolDamageTreshold
|
||||||
@ -25070,13 +25070,13 @@ function AI_PATROLZONE:ManageDamage( PatrolDamageTreshold )
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- Defines a new patrol route using the @{Process_PatrolZone} parameters and settings.
|
--- Defines a new patrol route using the @{Process_PatrolZone} parameters and settings.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @return #AI_PATROLZONE self
|
-- @return #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
function AI_PATROLZONE:onafterStart( Controllable, From, Event, To )
|
function AI_PATROL_ZONE:onafterStart( Controllable, From, Event, To )
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
self:Route() -- Route to the patrol point.
|
self:Route() -- Route to the patrol point.
|
||||||
@ -25089,16 +25089,16 @@ function AI_PATROLZONE:onafterStart( Controllable, From, Event, To )
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--- @param #AI_PATROLZONE self
|
--- @param #AI_PATROL_ZONE self
|
||||||
--- @param Wrapper.Controllable#CONTROLLABLE Controllable
|
--- @param Wrapper.Controllable#CONTROLLABLE Controllable
|
||||||
function AI_PATROLZONE:onbeforeDetect( Controllable, From, Event, To )
|
function AI_PATROL_ZONE:onbeforeDetect( Controllable, From, Event, To )
|
||||||
|
|
||||||
return self.DetectUnits
|
return self.DetectUnits
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #AI_PATROLZONE self
|
--- @param #AI_PATROL_ZONE self
|
||||||
--- @param Wrapper.Controllable#CONTROLLABLE Controllable
|
--- @param Wrapper.Controllable#CONTROLLABLE Controllable
|
||||||
function AI_PATROLZONE:onafterDetect( Controllable, From, Event, To )
|
function AI_PATROL_ZONE:onafterDetect( Controllable, From, Event, To )
|
||||||
|
|
||||||
local DetectedTargets = Controllable:GetDetectedTargets()
|
local DetectedTargets = Controllable:GetDetectedTargets()
|
||||||
for TargetID, Target in pairs( DetectedTargets ) do
|
for TargetID, Target in pairs( DetectedTargets ) do
|
||||||
@ -25127,18 +25127,18 @@ end
|
|||||||
function _NewPatrolRoute( AIControllable )
|
function _NewPatrolRoute( AIControllable )
|
||||||
|
|
||||||
AIControllable:T( "NewPatrolRoute" )
|
AIControllable:T( "NewPatrolRoute" )
|
||||||
local PatrolZone = AIControllable:GetState( AIControllable, "PatrolZone" ) -- PatrolCore.Zone#AI_PATROLZONE
|
local PatrolZone = AIControllable:GetState( AIControllable, "PatrolZone" ) -- PatrolCore.Zone#AI_PATROL_ZONE
|
||||||
PatrolZone:Route()
|
PatrolZone:Route()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--- Defines a new patrol route using the @{Process_PatrolZone} parameters and settings.
|
--- Defines a new patrol route using the @{Process_PatrolZone} parameters and settings.
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
-- @param Wrapper.Controllable#CONTROLLABLE Controllable The Controllable Object managed by the FSM.
|
||||||
-- @param #string From The From State string.
|
-- @param #string From The From State string.
|
||||||
-- @param #string Event The Event string.
|
-- @param #string Event The Event string.
|
||||||
-- @param #string To The To State string.
|
-- @param #string To The To State string.
|
||||||
function AI_PATROLZONE:onafterRoute( Controllable, From, Event, To )
|
function AI_PATROL_ZONE:onafterRoute( Controllable, From, Event, To )
|
||||||
|
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
@ -25241,14 +25241,14 @@ function AI_PATROLZONE:onafterRoute( Controllable, From, Event, To )
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #AI_PATROLZONE self
|
--- @param #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:onbeforeStatus()
|
function AI_PATROL_ZONE:onbeforeStatus()
|
||||||
|
|
||||||
return self.CheckStatus
|
return self.CheckStatus
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #AI_PATROLZONE self
|
--- @param #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:onafterStatus()
|
function AI_PATROL_ZONE:onafterStatus()
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
if self.Controllable and self.Controllable:IsAlive() then
|
if self.Controllable and self.Controllable:IsAlive() then
|
||||||
@ -25282,8 +25282,8 @@ function AI_PATROLZONE:onafterStatus()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #AI_PATROLZONE self
|
--- @param #AI_PATROL_ZONE self
|
||||||
function AI_PATROLZONE:onafterRTB()
|
function AI_PATROL_ZONE:onafterRTB()
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|
||||||
if self.Controllable and self.Controllable:IsAlive() then
|
if self.Controllable and self.Controllable:IsAlive() then
|
||||||
@ -26351,9 +26351,9 @@ end -- AI_CARGO_GROUPED
|
|||||||
--
|
--
|
||||||
-- ===
|
-- ===
|
||||||
--
|
--
|
||||||
-- # 1) @{#AI_CAS_ZONE} class, extends @{AI.AI_Patrol#AI_PATROLZONE}
|
-- # 1) @{#AI_CAS_ZONE} class, extends @{AI.AI_Patrol#AI_PATROL_ZONE}
|
||||||
--
|
--
|
||||||
-- @{#AI_CAS_ZONE} derives from the @{AI.AI_Patrol#AI_PATROLZONE}, inheriting its methods and behaviour.
|
-- @{#AI_CAS_ZONE} derives from the @{AI.AI_Patrol#AI_PATROL_ZONE}, inheriting its methods and behaviour.
|
||||||
--
|
--
|
||||||
-- The @{#AI_CAS_ZONE} class implements the core functions to provide Close Air Support in an Engage @{Zone} by an AIR @{Controllable} or @{Group}.
|
-- The @{#AI_CAS_ZONE} class implements the core functions to provide Close Air Support in an Engage @{Zone} by an AIR @{Controllable} or @{Group}.
|
||||||
-- The AI_CASE_ZONE is assigned a @(Group) and this must be done before the AI_CAS_ZONE process can be started through the **Start** event.
|
-- The AI_CASE_ZONE is assigned a @(Group) and this must be done before the AI_CAS_ZONE process can be started through the **Start** event.
|
||||||
@ -26460,7 +26460,7 @@ AI_CAS_ZONE = {
|
|||||||
function AI_CAS_ZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, EngageZone )
|
function AI_CAS_ZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, EngageZone )
|
||||||
|
|
||||||
-- Inherits from BASE
|
-- Inherits from BASE
|
||||||
local self = BASE:Inherit( self, AI_PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed ) ) -- #AI_CAS_ZONE
|
local self = BASE:Inherit( self, AI_PATROL_ZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed ) ) -- #AI_CAS_ZONE
|
||||||
|
|
||||||
self.EngageZone = EngageZone
|
self.EngageZone = EngageZone
|
||||||
self.Accomplished = false
|
self.Accomplished = false
|
||||||
|
|||||||
@ -39,7 +39,7 @@ function RU_AI_Balancer:OnAfterSpawned( SetGroup, From, Event, To, AIGroup )
|
|||||||
local PatrolZone = ZONE_POLYGON:New( "PatrolZone", PatrolZoneGroup )
|
local PatrolZone = ZONE_POLYGON:New( "PatrolZone", PatrolZoneGroup )
|
||||||
|
|
||||||
|
|
||||||
PatrolZones[AIGroup] = AI_PATROLZONE:New( PatrolZone, 3000, 6000, 400, 600 )
|
PatrolZones[AIGroup] = AI_PATROL_ZONE:New( PatrolZone, 3000, 6000, 400, 600 )
|
||||||
PatrolZones[AIGroup]:ManageFuel( 0.2, 60 )
|
PatrolZones[AIGroup]:ManageFuel( 0.2, 60 )
|
||||||
PatrolZones[AIGroup]:SetControllable( AIGroup )
|
PatrolZones[AIGroup]:SetControllable( AIGroup )
|
||||||
PatrolZones[AIGroup]:__Start( 5 )
|
PatrolZones[AIGroup]:__Start( 5 )
|
||||||
|
|||||||
@ -15,10 +15,10 @@ US_AI_Balancer = AI_BALANCER:New( US_PlanesClientSet, US_PlanesSpawn )
|
|||||||
|
|
||||||
--local PatrolZoneGroup = GROUP:FindByName( "Patrol Zone Blue" )
|
--local PatrolZoneGroup = GROUP:FindByName( "Patrol Zone Blue" )
|
||||||
--local PatrolZoneBlue = ZONE_POLYGON:New( "PatrolZone", PatrolZoneGroup )
|
--local PatrolZoneBlue = ZONE_POLYGON:New( "PatrolZone", PatrolZoneGroup )
|
||||||
--local PatrolZoneB = AI_PATROLZONE:New( PatrolZoneBlue, 3000, 6000, 900, 1100 ):ManageFuel( 0.2, 180 )
|
--local PatrolZoneB = AI_PATROL_ZONE:New( PatrolZoneBlue, 3000, 6000, 900, 1100 ):ManageFuel( 0.2, 180 )
|
||||||
--US_AI_Balancer:SetPatrolZone( PatrolZoneB )
|
--US_AI_Balancer:SetPatrolZone( PatrolZoneB )
|
||||||
--
|
--
|
||||||
--local PatrolZoneGroup = GROUP:FindByName( "Patrol Zone Red" )
|
--local PatrolZoneGroup = GROUP:FindByName( "Patrol Zone Red" )
|
||||||
--local PatrolZoneRed = ZONE_POLYGON:New( "PatrolZone", PatrolZoneGroup )
|
--local PatrolZoneRed = ZONE_POLYGON:New( "PatrolZone", PatrolZoneGroup )
|
||||||
--local PatrolZoneR = AI_PATROLZONE:New( PatrolZoneRed, 3000, 6000, 900, 1100 ):ManageFuel( 0.2, 180 )
|
--local PatrolZoneR = AI_PATROL_ZONE:New( PatrolZoneRed, 3000, 6000, 900, 1100 ):ManageFuel( 0.2, 180 )
|
||||||
--RU_AI_Balancer:SetPatrolZone( PatrolZoneR )
|
--RU_AI_Balancer:SetPatrolZone( PatrolZoneR )
|
||||||
|
|||||||
@ -38,7 +38,7 @@ function RU_AI_Balancer:OnAfterSpawned( SetGroup, From, Event, To, AIGroup )
|
|||||||
local PatrolZone = ZONE_POLYGON:New( "PatrolZone", PatrolZoneGroup )
|
local PatrolZone = ZONE_POLYGON:New( "PatrolZone", PatrolZoneGroup )
|
||||||
|
|
||||||
|
|
||||||
local Patrol = AI_PATROLZONE:New( PatrolZone, 3000, 6000, 400, 600 )
|
local Patrol = AI_PATROL_ZONE:New( PatrolZone, 3000, 6000, 400, 600 )
|
||||||
Patrol:ManageFuel( 0.2, 60 )
|
Patrol:ManageFuel( 0.2, 60 )
|
||||||
Patrol:SetControllable( AIGroup )
|
Patrol:SetControllable( AIGroup )
|
||||||
Patrol:__Start( 5 )
|
Patrol:__Start( 5 )
|
||||||
|
|||||||
@ -43,7 +43,7 @@ local PatrolZoneArray = { PatrolZone1, PatrolZone2 }
|
|||||||
|
|
||||||
function RU_AI_Balancer:OnAfterSpawned( SetGroup, From, Event, To, AIGroup )
|
function RU_AI_Balancer:OnAfterSpawned( SetGroup, From, Event, To, AIGroup )
|
||||||
|
|
||||||
local Patrol = AI_PATROLZONE:New( PatrolZoneArray[math.random( 1, 2 )], 3000, 6000, 400, 600 )
|
local Patrol = AI_PATROL_ZONE:New( PatrolZoneArray[math.random( 1, 2 )], 3000, 6000, 400, 600 )
|
||||||
Patrol:ManageFuel( 0.2, 60 )
|
Patrol:ManageFuel( 0.2, 60 )
|
||||||
Patrol:SetControllable( AIGroup )
|
Patrol:SetControllable( AIGroup )
|
||||||
Patrol:__Start( 5 )
|
Patrol:__Start( 5 )
|
||||||
|
|||||||
@ -35,7 +35,7 @@ local PatrolZone1 = ZONE_POLYGON:New( "PatrolZone1", PatrolZoneGroup1 )
|
|||||||
|
|
||||||
function RU_AI_Balancer:OnAfterSpawned( SetGroup, From, Event, To, AIGroup )
|
function RU_AI_Balancer:OnAfterSpawned( SetGroup, From, Event, To, AIGroup )
|
||||||
|
|
||||||
local Patrol = AI_PATROLZONE:New( PatrolZone1, 3000, 6000, 400, 600 )
|
local Patrol = AI_PATROL_ZONE:New( PatrolZone1, 3000, 6000, 400, 600 )
|
||||||
Patrol:ManageFuel( 0.2, 60 )
|
Patrol:ManageFuel( 0.2, 60 )
|
||||||
Patrol:SetControllable( AIGroup )
|
Patrol:SetControllable( AIGroup )
|
||||||
Patrol:__Start( 5 )
|
Patrol:__Start( 5 )
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
-- This test mission models the behaviour of the AI_PATROLZONE class.
|
-- This test mission models the behaviour of the AI_PATROL_ZONE class.
|
||||||
--
|
--
|
||||||
-- It creates a 2 AI_PATROLZONE objects with the name Patrol1 and Patrol2.
|
-- It creates a 2 AI_PATROL_ZONE 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.
|
-- 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.
|
-- 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 PatrolSpawn = SPAWN:New( "Patrol Group" )
|
||||||
local PatrolGroup = PatrolSpawn:Spawn()
|
local PatrolGroup = PatrolSpawn:Spawn()
|
||||||
|
|
||||||
local Patrol1 = AI_PATROLZONE:New( PatrolZone1, 3000, 6000, 400, 600 )
|
local Patrol1 = AI_PATROL_ZONE:New( PatrolZone1, 3000, 6000, 400, 600 )
|
||||||
Patrol1:ManageFuel( 0.2, 60 )
|
Patrol1:ManageFuel( 0.2, 60 )
|
||||||
Patrol1:SetControllable( PatrolGroup )
|
Patrol1:SetControllable( PatrolGroup )
|
||||||
Patrol1:__Start( 5 )
|
Patrol1:__Start( 5 )
|
||||||
|
|
||||||
local Patrol2 = AI_PATROLZONE:New( PatrolZone2, 600, 1000, 300, 400 )
|
local Patrol2 = AI_PATROL_ZONE:New( PatrolZone2, 600, 1000, 300, 400 )
|
||||||
Patrol2:ManageFuel( 0.2, 0 )
|
Patrol2:ManageFuel( 0.2, 0 )
|
||||||
|
|
||||||
--- State transition function for the PROCESS\_PATROLZONE **Patrol1** object
|
--- State transition function for the PROCESS\_PATROLZONE **Patrol1** object
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Group#GROUP AIGroup
|
-- @param Wrapper.Group#GROUP AIGroup
|
||||||
-- @return #boolean If false is returned, then the OnAfter state transition function will not be called.
|
-- @return #boolean If false is returned, then the OnAfter state transition function will not be called.
|
||||||
function Patrol1:OnLeaveRTB( AIGroup )
|
function Patrol1:OnLeaveRTB( AIGroup )
|
||||||
@ -40,7 +40,7 @@ function Patrol1:OnLeaveRTB( AIGroup )
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- State transition function for the PROCESS\_PATROLZONE **Patrol1** object
|
--- State transition function for the PROCESS\_PATROLZONE **Patrol1** object
|
||||||
-- @param Process_PatrolCore.Zone#AI_PATROLZONE self
|
-- @param Process_PatrolCore.Zone#AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Group#GROUP AIGroup
|
-- @param Wrapper.Group#GROUP AIGroup
|
||||||
function Patrol1:OnAfterRTB( AIGroup )
|
function Patrol1:OnAfterRTB( AIGroup )
|
||||||
local NewGroup = PatrolSpawn:Spawn()
|
local NewGroup = PatrolSpawn:Spawn()
|
||||||
@ -49,14 +49,14 @@ function Patrol1:OnAfterRTB( AIGroup )
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- State transition function for the PROCESS\_PATROLZONE **Patrol1** object
|
--- State transition function for the PROCESS\_PATROLZONE **Patrol1** object
|
||||||
-- @param Process_PatrolCore.Zone#AI_PATROLZONE self
|
-- @param Process_PatrolCore.Zone#AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Group#GROUP AIGroup
|
-- @param Wrapper.Group#GROUP AIGroup
|
||||||
function Patrol1:OnEnterPatrol( AIGroup )
|
function Patrol1:OnEnterPatrol( AIGroup )
|
||||||
AIGroup:MessageToRed( "Patrolling in zone " .. PatrolZone1:GetName() , 20 )
|
AIGroup:MessageToRed( "Patrolling in zone " .. PatrolZone1:GetName() , 20 )
|
||||||
end
|
end
|
||||||
|
|
||||||
--- State transition function for the PROCESS\_PATROLZONE **Patrol2** object
|
--- State transition function for the PROCESS\_PATROLZONE **Patrol2** object
|
||||||
-- @param #AI_PATROLZONE self
|
-- @param #AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Group#GROUP AIGroup
|
-- @param Wrapper.Group#GROUP AIGroup
|
||||||
-- @return #boolean If false is returned, then the OnEnter state transition function will not be called.
|
-- @return #boolean If false is returned, then the OnEnter state transition function will not be called.
|
||||||
function Patrol2:OnBeforeRTB( AIGroup )
|
function Patrol2:OnBeforeRTB( AIGroup )
|
||||||
@ -64,7 +64,7 @@ function Patrol2:OnBeforeRTB( AIGroup )
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- State transition function for the PROCESS\_PATROLZONE **Patrol2** object
|
--- State transition function for the PROCESS\_PATROLZONE **Patrol2** object
|
||||||
-- @param Process_PatrolCore.Zone#AI_PATROLZONE self
|
-- @param Process_PatrolCore.Zone#AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Group#GROUP AIGroup
|
-- @param Wrapper.Group#GROUP AIGroup
|
||||||
function Patrol2:OnEnterRTB( AIGroup )
|
function Patrol2:OnEnterRTB( AIGroup )
|
||||||
local NewGroup = PatrolSpawn:Spawn()
|
local NewGroup = PatrolSpawn:Spawn()
|
||||||
@ -73,7 +73,7 @@ function Patrol2:OnEnterRTB( AIGroup )
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- State transition function for the PROCESS\_PATROLZONE **Patrol2** object
|
--- State transition function for the PROCESS\_PATROLZONE **Patrol2** object
|
||||||
-- @param Process_PatrolCore.Zone#AI_PATROLZONE self
|
-- @param Process_PatrolCore.Zone#AI_PATROL_ZONE self
|
||||||
-- @param Wrapper.Group#GROUP AIGroup
|
-- @param Wrapper.Group#GROUP AIGroup
|
||||||
function Patrol2:OnEnterPatrol( AIGroup )
|
function Patrol2:OnEnterPatrol( AIGroup )
|
||||||
AIGroup:MessageToRed( "Patrolling in zone " .. PatrolZone2:GetName() , 20 )
|
AIGroup:MessageToRed( "Patrolling in zone " .. PatrolZone2:GetName() , 20 )
|
||||||
|
|||||||
@ -79,23 +79,44 @@
|
|||||||
|
|
||||||
<hr/>
|
<hr/>
|
||||||
|
|
||||||
<h1>1) <a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> class, extends <a href="AI.AI_Patrol.html##(AI_PATROLZONE)">AI.AI<em>Patrol#AI</em>PATROLZONE</a></h1>
|
<h1>1) <a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> class, extends <a href="AI.AI_Patrol.html##(AI_PATROL_ZONE)">AI.AI<em>Patrol#AI</em>PATROL_ZONE</a></h1>
|
||||||
|
|
||||||
<p><a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> derives from the <a href="AI.AI_Patrol.html##(AI_PATROLZONE)">AI.AI<em>Patrol#AI</em>PATROLZONE</a>, inheriting its methods and behaviour.</p>
|
<p><a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> derives from the <a href="AI.AI_Patrol.html##(AI_PATROL_ZONE)">AI.AI<em>Patrol#AI</em>PATROL_ZONE</a>, inheriting its methods and behaviour.</p>
|
||||||
|
|
||||||
<p>The <a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> class implements the core functions to provide Close Air Support in an Engage <a href="Zone.html">Zone</a> by an AIR <a href="Controllable.html">Controllable</a> or <a href="Group.html">Group</a>.
|
<p>The <a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> class implements the core functions to provide Close Air Support in an Engage <a href="Zone.html">Zone</a> by an AIR <a href="Controllable.html">Controllable</a> or <a href="Group.html">Group</a>.
|
||||||
The AI<em>CASE</em>ZONE is assigned a @(Group) and this must be done before the AI<em>CAS</em>ZONE process can be started through the <strong>Start</strong> event. </p>
|
The AI<em>CAS</em>ZONE runs a process. It holds an AI in a Patrol Zone and when the AI is commanded to engage, it will fly to an Engage Zone.</p>
|
||||||
|
|
||||||
|
<p><img src="..\Presentations\AI_Cas\Dia3.JPG" alt="HoldAndEngage"/></p>
|
||||||
|
|
||||||
|
<p>The AI<em>CAS</em>ZONE is assigned a @(Group) and this must be done before the AI<em>CAS</em>ZONE process can be started through the <strong>Start</strong> event.</p>
|
||||||
|
|
||||||
|
<p><img src="..\Presentations\AI_Cas\Dia4.JPG" alt="Start Event"/></p>
|
||||||
|
|
||||||
<p>Upon started, The AI will <strong>Route</strong> itself towards the random 3D point within a patrol zone,
|
<p>Upon started, The AI will <strong>Route</strong> itself towards the random 3D point within a patrol zone,
|
||||||
using a random speed within the given altitude and speed limits.
|
using a random speed within the given altitude and speed limits.
|
||||||
Upon arrival at the 3D point, a new random 3D point will be selected within the patrol zone using the given limits.
|
Upon arrival at the 3D point, a new random 3D point will be selected within the patrol zone using the given limits.
|
||||||
This cycle will continue until a fuel or damage treshold has been reached by the AI, or when the AI is commanded to RTB.</p>
|
This cycle will continue until a fuel or damage treshold has been reached by the AI, or when the AI is commanded to RTB.</p>
|
||||||
|
|
||||||
|
<p><img src="..\Presentations\AI_Cas\Dia5.JPG" alt="Route Event"/></p>
|
||||||
|
|
||||||
<p>When the AI is commanded to provide Close Air Support (through the event <strong>Engage</strong>), the AI will fly towards the Engage Zone.
|
<p>When the AI is commanded to provide Close Air Support (through the event <strong>Engage</strong>), the AI will fly towards the Engage Zone.
|
||||||
Any target that is detected in the Engage Zone will be reported and will be destroyed by the AI.</p>
|
Any target that is detected in the Engage Zone will be reported and will be destroyed by the AI.</p>
|
||||||
|
|
||||||
<p>Note that the AI does not know when the Engage Zone is cleared, and therefore will keep circling in the zone
|
<p><img src="..\Presentations\AI_Cas\Dia6.JPG" alt="Engage Event"/></p>
|
||||||
until it is notified through the event <strong>Accomplish</strong>, which is to be triggered by an observing party:</p>
|
|
||||||
|
<p>The AI will detect the targets and will only destroy the targets within the Engage Zone.</p>
|
||||||
|
|
||||||
|
<p><img src="..\Presentations\AI_Cas\Dia7.JPG" alt="Engage Event"/></p>
|
||||||
|
|
||||||
|
<p>Every target that is destroyed, is reported< by the AI.</p>
|
||||||
|
|
||||||
|
<p><img src="..\Presentations\AI_Cas\Dia8.JPG" alt="Engage Event"/></p>
|
||||||
|
|
||||||
|
<p>Note that the AI does not know when the Engage Zone is cleared, and therefore will keep circling in the zone. </p>
|
||||||
|
|
||||||
|
<p><img src="..\Presentations\AI_Cas\Dia9.JPG" alt="Engage Event"/></p>
|
||||||
|
|
||||||
|
<p>Until it is notified through the event <strong>Accomplish</strong>, which is to be triggered by an observing party:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>a FAC</li>
|
<li>a FAC</li>
|
||||||
@ -105,12 +126,18 @@ until it is notified through the event <strong>Accomplish</strong>, which is to
|
|||||||
<li>others ...</li>
|
<li>others ...</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>When the AI has accomplished the CAS, it will fly back to the Patrol Zone.
|
<p><img src="..\Presentations\AI_Cas\Dia10.JPG" alt="Engage Event"/></p>
|
||||||
It will keep patrolling there, until it is notified to RTB or move to another CAS Zone.
|
|
||||||
|
<p>When the AI has accomplished the CAS, it will fly back to the Patrol Zone.</p>
|
||||||
|
|
||||||
|
<p><img src="..\Presentations\AI_Cas\Dia11.JPG" alt="Engage Event"/></p>
|
||||||
|
|
||||||
|
<p>It will keep patrolling there, until it is notified to RTB or move to another CAS Zone.
|
||||||
It can be notified to go RTB through the <strong>RTB</strong> event.</p>
|
It can be notified to go RTB through the <strong>RTB</strong> event.</p>
|
||||||
|
|
||||||
<p>When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.</p>
|
<p>When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.</p>
|
||||||
|
|
||||||
|
<p><img src="..\Presentations\AI_Cas\Dia12.JPG" alt="Engage Event"/></p>
|
||||||
|
|
||||||
<h1>1.1) AI<em>CAS</em>ZONE constructor</h1>
|
<h1>1.1) AI<em>CAS</em>ZONE constructor</h1>
|
||||||
|
|
||||||
@ -336,6 +363,12 @@ It can be notified to go RTB through the <strong>RTB</strong> event.</p>
|
|||||||
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).OnLeaveEngaging">AI_CAS_ZONE:OnLeaveEngaging(Controllable, From, Event, To)</a></td>
|
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).OnLeaveEngaging">AI_CAS_ZONE:OnLeaveEngaging(Controllable, From, Event, To)</a></td>
|
||||||
<td class="summary">
|
<td class="summary">
|
||||||
<p>OnLeave Transition Handler for State Engaging.</p>
|
<p>OnLeave Transition Handler for State Engaging.</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).SetEngageZone">AI_CAS_ZONE:SetEngageZone(EngageZone)</a></td>
|
||||||
|
<td class="summary">
|
||||||
|
<p>Set the Engage Zone where the AI is performing CAS.</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@ -402,6 +435,16 @@ It can be notified to go RTB through the <strong>RTB</strong> event.</p>
|
|||||||
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).onbeforeEngage">AI_CAS_ZONE:onbeforeEngage(Controllable, From, Event, To)</a></td>
|
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).onbeforeEngage">AI_CAS_ZONE:onbeforeEngage(Controllable, From, Event, To)</a></td>
|
||||||
<td class="summary">
|
<td class="summary">
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h2><a id="#(AI_PATROL_ZONE)">Type <code>AI_PATROL_ZONE</code></a></h2>
|
||||||
|
<table class="function_list">
|
||||||
|
<tr>
|
||||||
|
<td class="name" nowrap="nowrap"><a href="##(AI_PATROL_ZONE).EngageZone">AI_PATROL_ZONE.EngageZone</a></td>
|
||||||
|
<td class="summary">
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@ -1169,6 +1212,36 @@ The To State string.</p>
|
|||||||
<p><em>#boolean:</em>
|
<p><em>#boolean:</em>
|
||||||
Return false to cancel Transition.</p>
|
Return false to cancel Transition.</p>
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="function">
|
||||||
|
<dt>
|
||||||
|
|
||||||
|
<a id="#(AI_CAS_ZONE).SetEngageZone" >
|
||||||
|
<strong>AI_CAS_ZONE:SetEngageZone(EngageZone)</strong>
|
||||||
|
</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
|
||||||
|
<p>Set the Engage Zone where the AI is performing CAS.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p>Note that if the EngageZone is changed, the AI needs to re-detect targets.</p>
|
||||||
|
|
||||||
|
<h3>Parameter</h3>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
|
||||||
|
<p><code><em><a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> EngageZone </em></code>:
|
||||||
|
The zone where the AI is performing CAS.</p>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Return value</h3>
|
||||||
|
|
||||||
|
<p><em><a href="##(AI_PATROL_ZONE)">#AI<em>PATROL</em>ZONE</a>:</em>
|
||||||
|
self</p>
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl class="function">
|
<dl class="function">
|
||||||
@ -1498,6 +1571,23 @@ The To State string.</p>
|
|||||||
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<h2><a id="#(AI_PATROL_ZONE)" >Type <code>AI_PATROL_ZONE</code></a></h2>
|
||||||
|
<h3>Field(s)</h3>
|
||||||
|
<dl class="function">
|
||||||
|
<dt>
|
||||||
|
|
||||||
|
<em></em>
|
||||||
|
<a id="#(AI_PATROL_ZONE).EngageZone" >
|
||||||
|
<strong>AI_PATROL_ZONE.EngageZone</strong>
|
||||||
|
</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -2412,7 +2412,6 @@ The UNIT carrying the package.</p>
|
|||||||
<dl class="function">
|
<dl class="function">
|
||||||
<dt>
|
<dt>
|
||||||
|
|
||||||
<em></em>
|
|
||||||
<a id="#(AI_CARGO_UNIT).CargoCarrier" >
|
<a id="#(AI_CARGO_UNIT).CargoCarrier" >
|
||||||
<strong>AI_CARGO_UNIT.CargoCarrier</strong>
|
<strong>AI_CARGO_UNIT.CargoCarrier</strong>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@ -1487,7 +1487,7 @@ A string defining the start state.</p>
|
|||||||
<dl class="function">
|
<dl class="function">
|
||||||
<dt>
|
<dt>
|
||||||
|
|
||||||
<em></em>
|
<em>#string</em>
|
||||||
<a id="#(FSM)._StartState" >
|
<a id="#(FSM)._StartState" >
|
||||||
<strong>FSM._StartState</strong>
|
<strong>FSM._StartState</strong>
|
||||||
</a>
|
</a>
|
||||||
@ -1781,7 +1781,6 @@ A string defining the start state.</p>
|
|||||||
<dl class="function">
|
<dl class="function">
|
||||||
<dt>
|
<dt>
|
||||||
|
|
||||||
<em></em>
|
|
||||||
<a id="#(FSM).current" >
|
<a id="#(FSM).current" >
|
||||||
<strong>FSM.current</strong>
|
<strong>FSM.current</strong>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@ -2170,7 +2170,7 @@ when nothing was spawned.</p>
|
|||||||
<dl class="function">
|
<dl class="function">
|
||||||
<dt>
|
<dt>
|
||||||
|
|
||||||
<em>#number</em>
|
<em></em>
|
||||||
<a id="#(SPAWN).SpawnMaxGroups" >
|
<a id="#(SPAWN).SpawnMaxGroups" >
|
||||||
<strong>SPAWN.SpawnMaxGroups</strong>
|
<strong>SPAWN.SpawnMaxGroups</strong>
|
||||||
</a>
|
</a>
|
||||||
@ -2187,7 +2187,7 @@ when nothing was spawned.</p>
|
|||||||
<dl class="function">
|
<dl class="function">
|
||||||
<dt>
|
<dt>
|
||||||
|
|
||||||
<em>#number</em>
|
<em></em>
|
||||||
<a id="#(SPAWN).SpawnMaxUnitsAlive" >
|
<a id="#(SPAWN).SpawnMaxUnitsAlive" >
|
||||||
<strong>SPAWN.SpawnMaxUnitsAlive</strong>
|
<strong>SPAWN.SpawnMaxUnitsAlive</strong>
|
||||||
</a>
|
</a>
|
||||||
@ -2490,7 +2490,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p> Flag that indicates if all the Groups of the SpawnGroup need to be visible when Spawned.</p>
|
<p> When the first Spawn executes, all the Groups need to be made visible before start.</p>
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user