From 114517bb05740d39eb7425b827469f373e119c55 Mon Sep 17 00:00:00 2001
From: FlightControl #AICASZONE derives from the AI.AIPatrol#AIPATROLZONE, inheriting its methods and behaviour. #AICASZONE derives from the AI.AIPatrol#AIPATROL_ZONE, inheriting its methods and behaviour. The #AICASZONE class implements the core functions to provide Close Air Support in an Engage Zone by an AIR Controllable or Group.
-The AICASEZONE is assigned a @(Group) and this must be done before the AICASZONE process can be started through the Start event.
-1) #AICASZONE class, extends AI.AIPatrol#AIPATROLZONE
+1) #AICASZONE class, extends AI.AIPatrol#AIPATROL_ZONE
-
The AICASZONE is assigned a @(Group) and this must be done before the AICASZONE process can be started through the Start event.
+ +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. 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.
+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.
-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:
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. +
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 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.
+OnLeave Transition Handler for State Engaging.
+Set the Engage Zone where the AI is performing CAS.
AI_PATROL_ZONE| AI_PATROL_ZONE.EngageZone | ++ |
#boolean: Return false to cancel Transition.
+ + +Set the Engage Zone where the AI is performing CAS.
+ + +Note that if the EngageZone is changed, the AI needs to re-detect targets.
+ +Core.Zone#ZONE EngageZone :
+The zone where the AI is performing CAS.
#AIPATROLZONE: +self
+AI_PATROL_ZONEThe #AI_PATROLZONE class implements the core functions to patrol a Zone by an AI Controllable or Group. -The AIPATROLZONE is assigned a @(Group) and this must be done before the AIPATROLZONE process can be started. +
The #AIPATROLZONE class implements the core functions to patrol a Zone by an AI Controllable or Group. +The AIPATROLZONE is assigned a @(Group) and this must be done before the AIPATROLZONE 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. 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. When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.
-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. -Use the method AI_PATROLZONE.GetDetectedTargets() to obtain a list of the Units detected by the AI.
+The detection frequency can be set with AIPATROLZONE.SetDetectionInterval( seconds ), where the amount of seconds specify how much seconds will be waited before the next detection. +Use the method AIPATROLZONE.GetDetectedUnits() to obtain a list of the Units detected by the AI.
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 AIPATROLZONE.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 according the weather conditions.
-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. 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 AIPATROLZONE. 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 AIPATROLZONE.ManageFuel() to have this proces in place. -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). -Use the method AI_PATROLZONE.ManageDamage() to have this proces in place.
+Use the method AIPATROLZONE.ManageDamage() to have this proces in place.Hereby the change log:
-2016-01-15: Complete revision. AIPATROLZONE is the base class for other AIPATROL like classes.
+2016-01-15: Complete revision. AIPATROLZONE is the base class for other AI_PATROL like classes.
2016-09-01: Initial class and API.
@@ -203,7 +203,7 @@ Use the method AI_PATROLZONE.ManageDama| AI_PATROLZONE | +AI_PATROL_ZONE | @@ -215,382 +215,382 @@ Use the method AI_PATROLZONE.ManageDama |
AI_PATROLZONEAI_PATROL_ZONE