MOOSE/docs/Documentation/AI_Formation.html
FlightControl 5a7551d312 Progress
2017-06-13 13:17:17 +02:00

4104 lines
99 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" href="stylesheet.css" type="text/css"/>
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div>
<div id="main">
<div id="navigation">
<h2>Modules</h2>
<ul><li>
<a href="index.html">index</a>
</li></ul>
<ul>
<li><a href="AI_A2A.html">AI_A2A</a></li>
<li><a href="AI_A2A_Cap.html">AI_A2A_Cap</a></li>
<li><a href="AI_A2A_Dispatcher.html">AI_A2A_Dispatcher</a></li>
<li><a href="AI_A2A_GCI.html">AI_A2A_GCI</a></li>
<li><a href="AI_A2A_Patrol.html">AI_A2A_Patrol</a></li>
<li><a href="AI_Bai.html">AI_Bai</a></li>
<li><a href="AI_Balancer.html">AI_Balancer</a></li>
<li><a href="AI_Cap.html">AI_Cap</a></li>
<li><a href="AI_Cas.html">AI_Cas</a></li>
<li>AI_Formation</li>
<li><a href="AI_Patrol.html">AI_Patrol</a></li>
<li><a href="Account.html">Account</a></li>
<li><a href="Airbase.html">Airbase</a></li>
<li><a href="AirbasePolice.html">AirbasePolice</a></li>
<li><a href="Assign.html">Assign</a></li>
<li><a href="Base.html">Base</a></li>
<li><a href="Cargo.html">Cargo</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="CommandCenter.html">CommandCenter</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
<li><a href="DCSTask.html">DCSTask</a></li>
<li><a href="DCSTypes.html">DCSTypes</a></li>
<li><a href="DCSUnit.html">DCSUnit</a></li>
<li><a href="DCSVec3.html">DCSVec3</a></li>
<li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCSZone.html">DCSZone</a></li>
<li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Designate.html">Designate</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="DetectionManager.html">DetectionManager</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Radio.html">Radio</a></li>
<li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li>
<li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li>
<li><a href="Settings.html">Settings</a></li>
<li><a href="Smoke.html">Smoke</a></li>
<li><a href="Spawn.html">Spawn</a></li>
<li><a href="SpawnStatic.html">SpawnStatic</a></li>
<li><a href="Spot.html">Spot</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="Task.html">Task</a></li>
<li><a href="Task_A2A.html">Task_A2A</a></li>
<li><a href="Task_A2A_Dispatcher.html">Task_A2A_Dispatcher</a></li>
<li><a href="Task_A2G.html">Task_A2G</a></li>
<li><a href="Task_A2G_Dispatcher.html">Task_A2G_Dispatcher</a></li>
<li><a href="Task_Cargo.html">Task_Cargo</a></li>
<li><a href="Task_PICKUP.html">Task_PICKUP</a></li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="Utils.html">Utils</a></li>
<li><a href="Zone.html">Zone</a></li>
<li><a href="env.html">env</a></li>
<li><a href="land.html">land</a></li>
<li><a href="routines.html">routines</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>AI_Formation</code></h1>
<p><strong>AI</strong> -- Build large <strong>formations</strong> of AI <a href="Group.html">Group</a>s flying together.</p>
<p><img src="..\Presentations\AI_FORMATION\Dia1.JPG" alt="Banner Image"/></p>
<hr/>
<p>AI_FORMATION makes AI <a href="GROUP.html">GROUP</a>s fly in formation of various compositions.
The AI_FORMATION class models formations in a different manner than the internal DCS formation logic!!!
The purpose of the class is to:</p>
<ul>
<li>Make formation building a process that can be managed while in flight, rather than a task.</li>
<li>Human players can guide formations, consisting of larget planes.</li>
<li>Build large formations (like a large bomber field).</li>
<li>Form formations that DCS does not support off the shelve.</li>
</ul>
<p>A few remarks:</p>
<ul>
<li>Depending on the type of plane, the change in direction by the leader may result in the formation getting disentangled while in flight and needs to be rebuild.</li>
<li>Formations are vulnerable to collissions, but is depending on the type of plane, the distance between the planes and the speed and angle executed by the leader.</li>
<li>Formations may take a while to build up.</li>
</ul>
<p>As a result, the AI_FORMATION is not perfect, but is very useful to:</p>
<ul>
<li>Model large formations when flying straight line.</li>
<li>Make humans guide a large formation, when the planes are wide from each other.</li>
</ul>
<p>There are the following types of classes defined:</p>
<ul>
<li><a href="##(AI_FORMATION)">#AI_FORMATION</a>: Create a formation from several <a href="GROUP.html">GROUP</a>s.</li>
</ul>
<hr/>
<h1>Demo Missions</h1>
<h3><a href="">AI_FORMATION Demo Missions source code</a></h3>
<h3><a href="">AI_FORMATION Demo Missions, only for beta testers</a></h3>
<h3><a href="">ALL Demo Missions pack of the last release</a></h3>
<hr/>
<h1>YouTube Channel</h1>
<ul>
<li><h3><a href="">AI_FORMATION YouTube Channel</a></h3></li>
</ul>
<hr/>
<h3>Author: <strong>Sven Van de Velde (FlightControl)</strong></h3>
<h3>Contributions:</h3>
<hr/>
<p> </p>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#AI_FORMATION">AI_FORMATION</a></td>
<td class="summary">
<h1>AI_FORMATION class, extends <a href="Fsm.html##(FSM_SET)">Fsm#FSM_SET</a></h1>
<p>The #AI_FORMATION class allows you to build large formations, make AI follow a <a href="Client.html##(CLIENT)">Client#CLIENT</a> (player) leader or a <a href="Unit.html##(UNIT)">Unit#UNIT</a> (AI) leader.</p>
</td>
</tr>
</table>
<h2><a id="#(AI_FORMATION)">Type <code>AI_FORMATION</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FlightRandomization">AI_FORMATION.FlightRandomization</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FollowDistance">AI_FORMATION.FollowDistance</a></td>
<td class="summary">
<p>The current follow distance.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FollowGroupSet">AI_FORMATION.FollowGroupSet</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FollowMenuResumeMission">AI_FORMATION.FollowMenuResumeMission</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FollowMode">AI_FORMATION.FollowMode</a></td>
<td class="summary">
<p>The mode the escort is in.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FollowName">AI_FORMATION.FollowName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FollowScheduler">AI_FORMATION.FollowScheduler</a></td>
<td class="summary">
<p>The instance of the SCHEDULER class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FollowUnit">AI_FORMATION.FollowUnit</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FormationBox">AI_FORMATION:FormationBox(XStart, XSpace, YStart, YSpace, ZStart, ZSpace, ZLevels)</a></td>
<td class="summary">
<p>FormationBox Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FormationCenterWing">AI_FORMATION:FormationCenterWing(XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationCenterWing Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FormationLeftLine">AI_FORMATION:FormationLeftLine(XStart, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationLeftLine Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FormationLeftWing">AI_FORMATION:FormationLeftWing(XStart, XSpace, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationLeftWing Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FormationLine">AI_FORMATION:FormationLine(XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationLine Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FormationRightLine">AI_FORMATION:FormationRightLine(XStart, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationRightLine Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FormationRightWing">AI_FORMATION:FormationRightWing(XStart, XSpace, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationRightWing Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FormationStack">AI_FORMATION:FormationStack(XStart, XSpace, YStart, YSpace)</a></td>
<td class="summary">
<p>FormationStack Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FormationTrail">AI_FORMATION:FormationTrail(XStart, XSpace, YStart)</a></td>
<td class="summary">
<p>FormationTrail Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).FormationVic">AI_FORMATION:FormationVic(XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationVic Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).New">AI_FORMATION:New(FollowUnit, FollowGroupSet, FollowName, FollowBriefing)</a></td>
<td class="summary">
<p>AI_FORMATION class constructor for an AI group</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnAfterFormationBox">AI_FORMATION:OnAfterFormationBox(From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace, ZLevels)</a></td>
<td class="summary">
<p>FormationBox Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnAfterFormationCenterWing">AI_FORMATION:OnAfterFormationCenterWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationCenterWing Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnAfterFormationLeftLine">AI_FORMATION:OnAfterFormationLeftLine(FollowGroupSet, From, Event, To, XStart, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationLeftLine Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnAfterFormationLeftWing">AI_FORMATION:OnAfterFormationLeftWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationLeftWing Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnAfterFormationLine">AI_FORMATION:OnAfterFormationLine(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationLine Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnAfterFormationRightLine">AI_FORMATION:OnAfterFormationRightLine(FollowGroupSet, From, Event, To, XStart, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationRightLine Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnAfterFormationRightWing">AI_FORMATION:OnAfterFormationRightWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationRightWing Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnAfterFormationStack">AI_FORMATION:OnAfterFormationStack(From, Event, To, XStart, XSpace, YStart, YSpace)</a></td>
<td class="summary">
<p>FormationStack Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnAfterFormationTrail">AI_FORMATION:OnAfterFormationTrail(From, Event, To, XStart, XSpace, YStart)</a></td>
<td class="summary">
<p>FormationTrail Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnAfterFormationVic">AI_FORMATION:OnAfterFormationVic(From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationVic Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnBeforeFormationBox">AI_FORMATION:OnBeforeFormationBox(From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace, ZLevels)</a></td>
<td class="summary">
<p>FormationBox Handler OnBefore for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnBeforeFormationCenterWing">AI_FORMATION:OnBeforeFormationCenterWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationCenterWing Handler OnBefore for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnBeforeFormationLeftLine">AI_FORMATION:OnBeforeFormationLeftLine(FollowGroupSet, From, Event, To, XStart, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationLeftLine Handler OnBefore for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnBeforeFormationLeftWing">AI_FORMATION:OnBeforeFormationLeftWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationLeftWing Handler OnBefore for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnBeforeFormationLine">AI_FORMATION:OnBeforeFormationLine(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationLine Handler OnBefore for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnBeforeFormationRightLine">AI_FORMATION:OnBeforeFormationRightLine(FollowGroupSet, From, Event, To, XStart, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationRightLine Handler OnBefore for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnBeforeFormationRightWing">AI_FORMATION:OnBeforeFormationRightWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationRightWing Handler OnBefore for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnBeforeFormationStack">AI_FORMATION:OnBeforeFormationStack(From, Event, To, XStart, XSpace, YStart, YSpace)</a></td>
<td class="summary">
<p>FormationStack Handler OnBefore for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnBeforeFormationTrail">AI_FORMATION:OnBeforeFormationTrail(From, Event, To, XStart, XSpace, YStart)</a></td>
<td class="summary">
<p>FormationTrail Handler OnBefore for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OnBeforeFormationVic">AI_FORMATION:OnBeforeFormationVic(From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationVic Handler OnBefore for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).OptionReactionOnThreat">AI_FORMATION.OptionReactionOnThreat</a></td>
<td class="summary">
<p>Which REACTION<em>ON</em>THREAT is set to the FollowGroup.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).ReportTargets">AI_FORMATION.ReportTargets</a></td>
<td class="summary">
<p>If true, nearby targets are reported.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).SetFlightRandomization">AI_FORMATION:SetFlightRandomization(FlightRandomization)</a></td>
<td class="summary">
<p>Use the method <a href="AI_Formation.html##(AI_FORMATION).SetFlightRandomization">AI<em>Formation#AI</em>FORMATION.SetFlightRandomization</a>() to make the air units in your formation randomize their flight a bit while in formation.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).SmokeDirectionVector">AI_FORMATION.SmokeDirectionVector</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).TestSmokeDirectionVector">AI_FORMATION:TestSmokeDirectionVector(SmokeDirection)</a></td>
<td class="summary">
<p>This function is for test, it will put on the frequency of the FollowScheduler a red smoke at the direction vector calculated for the escort to fly to.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).__FormationBox">AI_FORMATION:__FormationBox(Delay, XStart, XSpace, YStart, YSpace, ZStart, ZSpace, ZLevels)</a></td>
<td class="summary">
<p>FormationBox Asynchronous Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).__FormationCenterWing">AI_FORMATION:__FormationCenterWing(Delay, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationCenterWing Asynchronous Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).__FormationLeftLine">AI_FORMATION:__FormationLeftLine(Delay, XStart, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationLeftLine Asynchronous Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).__FormationLeftWing">AI_FORMATION:__FormationLeftWing(Delay, XStart, XSpace, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationLeftWing Asynchronous Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).__FormationLine">AI_FORMATION:__FormationLine(Delay, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationLine Asynchronous Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).__FormationRightLine">AI_FORMATION:__FormationRightLine(Delay, XStart, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationRightLine Asynchronous Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).__FormationRightWing">AI_FORMATION:__FormationRightWing(Delay, XStart, XSpace, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationRightWing Asynchronous Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).__FormationStack">AI_FORMATION:__FormationStack(Delay, XStart, XSpace, YStart, YSpace)</a></td>
<td class="summary">
<p>FormationStack Asynchronous Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).__FormationTrail">AI_FORMATION:__FormationTrail(Delay, XStart, XSpace, YStart)</a></td>
<td class="summary">
<p>FormationTrail Asynchronous Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).__FormationVic">AI_FORMATION:__FormationVic(Delay, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationVic Asynchronous Trigger for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).onafterFormationBox">AI_FORMATION:onafterFormationBox(From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace, ZLevels, FollowGroupSet)</a></td>
<td class="summary">
<p>FormationBox Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).onafterFormationCenterWing">AI_FORMATION:onafterFormationCenterWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationCenterWing Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).onafterFormationLeftLine">AI_FORMATION:onafterFormationLeftLine(FollowGroupSet, From, Event, To, XStart, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationLeftLine Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).onafterFormationLeftWing">AI_FORMATION:onafterFormationLeftWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationLeftWing Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).onafterFormationLine">AI_FORMATION:onafterFormationLine(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationLine Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).onafterFormationRightLine">AI_FORMATION:onafterFormationRightLine(FollowGroupSet, From, Event, To, XStart, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
<p>FormationRightLine Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).onafterFormationRightWing">AI_FORMATION:onafterFormationRightWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, ZStart, ZSpace)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).onafterFormationStack">AI_FORMATION:onafterFormationStack(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, YSpace)</a></td>
<td class="summary">
<p>FormationStack Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).onafterFormationTrail">AI_FORMATION:onafterFormationTrail(FollowGroupSet, From, Event, To, XStart, XSpace, YStart)</a></td>
<td class="summary">
<p>FormationTrail Handler OnAfter for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).onafterFormationVic">AI_FORMATION:onafterFormationVic(From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace, FollowGroupSet)</a></td>
<td class="summary">
<p>FormationVic Handle for AI_FORMATION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION).onenterFollowing">AI_FORMATION:onenterFollowing(FollowGroupSet)</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(AI_FORMATION.MODE)">Type <code>AI_FORMATION.MODE</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION.MODE).FOLLOW">AI_FORMATION.MODE.FOLLOW</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_FORMATION.MODE).MISSION">AI_FORMATION.MODE.MISSION</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(MENUPARAM)">Type <code>MENUPARAM</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENUPARAM).ParamDistance">MENUPARAM.ParamDistance</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENUPARAM).ParamFunction">MENUPARAM.ParamFunction</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENUPARAM).ParamMessage">MENUPARAM.ParamMessage</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENUPARAM).ParamSelf">MENUPARAM.ParamSelf</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2>Global(s)</h2>
<dl class="function">
<dt>
<em><a href="##(AI_FORMATION)">#AI_FORMATION</a></em>
<a id="AI_FORMATION" >
<strong>AI_FORMATION</strong>
</a>
</dt>
<dd>
<h1>AI_FORMATION class, extends <a href="Fsm.html##(FSM_SET)">Fsm#FSM_SET</a></h1>
<p>The #AI_FORMATION class allows you to build large formations, make AI follow a <a href="Client.html##(CLIENT)">Client#CLIENT</a> (player) leader or a <a href="Unit.html##(UNIT)">Unit#UNIT</a> (AI) leader.</p>
<p>AI_FORMATION makes AI <a href="GROUP.html">GROUP</a>s fly in formation of various compositions.
The AI_FORMATION class models formations in a different manner than the internal DCS formation logic!!!
The purpose of the class is to:</p>
<ul>
<li>Make formation building a process that can be managed while in flight, rather than a task.</li>
<li>Human players can guide formations, consisting of larget planes.</li>
<li>Build large formations (like a large bomber field).</li>
<li>Form formations that DCS does not support off the shelve.</li>
</ul>
<p>A few remarks:</p>
<ul>
<li>Depending on the type of plane, the change in direction by the leader may result in the formation getting disentangled while in flight and needs to be rebuild.</li>
<li>Formations are vulnerable to collissions, but is depending on the type of plane, the distance between the planes and the speed and angle executed by the leader.</li>
<li>Formations may take a while to build up.</li>
</ul>
<p>As a result, the AI_FORMATION is not perfect, but is very useful to:</p>
<ul>
<li>Model large formations when flying straight line. You can build close formations when doing this.</li>
<li>Make humans guide a large formation, when the planes are wide from each other.</li>
</ul>
<h2>AI_FORMATION construction</h2>
<p>Create a new SPAWN object with the <a href="##(AI_FORMATION).New">AI_FORMATION.New</a> method:</p>
<ul>
<li><a href="Follow.html##(AI_FORMATION).New">Follow#AI_FORMATION.New</a>(): Creates a new AI_FORMATION object from a <a href="Group.html##(GROUP)">Group#GROUP</a> for a <a href="Client.html##(CLIENT)">Client#CLIENT</a> or a <a href="Unit.html##(UNIT)">Unit#UNIT</a>, with an optional briefing text.</li>
</ul>
<h2>Formation methods</h2>
<p>The following methods can be used to set or change the formation:</p>
<ul>
<li><a href="AI_Formation.html##(AI_FORMATION).FormationLine">AI<em>Formation#AI</em>FORMATION.FormationLine</a>(): Form a line formation (core formation function).</li>
<li><a href="AI_Formation.html##(AI_FORMATION).FormationTrail">AI<em>Formation#AI</em>FORMATION.FormationTrail</a>(): Form a trail formation.</li>
<li><a href="AI_Formation.html##(AI_FORMATION).FormationLeftLine">AI<em>Formation#AI</em>FORMATION.FormationLeftLine</a>(): Form a left line formation.</li>
<li><a href="AI_Formation.html##(AI_FORMATION).FormationRightLine">AI<em>Formation#AI</em>FORMATION.FormationRightLine</a>(): Form a right line formation.</li>
<li><a href="AI_Formation.html##(AI_FORMATION).FormationRightWing">AI<em>Formation#AI</em>FORMATION.FormationRightWing</a>(): Form a right wing formation.</li>
<li><a href="AI_Formation.html##(AI_FORMATION).FormationLeftWing">AI<em>Formation#AI</em>FORMATION.FormationLeftWing</a>(): Form a left wing formation.</li>
<li><a href="AI_Formation.html##(AI_FORMATION).FormationCenterWing">AI<em>Formation#AI</em>FORMATION.FormationCenterWing</a>(): Form a center wing formation.</li>
<li><a href="AI_Formation.html##(AI_FORMATION).FormationCenterVic">AI<em>Formation#AI</em>FORMATION.FormationCenterVic</a>(): Form a Vic formation (same as CenterWing.</li>
<li><a href="AI_Formation.html##(AI_FORMATION).FormationCenterBoxed">AI<em>Formation#AI</em>FORMATION.FormationCenterBoxed</a>(): Form a center boxed formation.</li>
</ul>
<h2>Randomization</h2>
<p>Use the method <a href="AI_Formation.html##(AI_FORMATION).SetFlightRandomization">AI<em>Formation#AI</em>FORMATION.SetFlightRandomization</a>() to simulate the formation flying errors that pilots make while in formation. Is a range set in meters.</p>
<h3>Usage:</h3>
<pre class="example"><code>local FollowGroupSet = SET_GROUP:New():FilterCategories("plane"):FilterCoalitions("blue"):FilterPrefixes("Follow"):FilterStart()
FollowGroupSet:Flush()
local LeaderUnit = UNIT:FindByName( "Leader" )
local LargeFormation = AI_FORMATION:New( LeaderUnit, FollowGroupSet, "Center Wing Formation", "Briefing" )
LargeFormation:FormationCenterWing( 500, 50, 0, 250, 250 )
LargeFormation:__Start( 1 )
</code></pre>
</dd>
</dl>
<h2><a id="#(AI_Formation)" >Type <code>AI_Formation</code></a></h2>
<h2><a id="#(AI_FORMATION)" >Type <code>AI_FORMATION</code></a></h2>
<p>AI_FORMATION class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em></em>
<a id="#(AI_FORMATION).FlightRandomization" >
<strong>AI_FORMATION.FlightRandomization</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(AI_FORMATION).FollowDistance" >
<strong>AI_FORMATION.FollowDistance</strong>
</a>
</dt>
<dd>
<p>The current follow distance.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a></em>
<a id="#(AI_FORMATION).FollowGroupSet" >
<strong>AI_FORMATION.FollowGroupSet</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Menu.html##(MENU_CLIENT)">Menu#MENU_CLIENT</a></em>
<a id="#(AI_FORMATION).FollowMenuResumeMission" >
<strong>AI_FORMATION.FollowMenuResumeMission</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(AI_FORMATION.MODE)">#AI_FORMATION.MODE</a></em>
<a id="#(AI_FORMATION).FollowMode" >
<strong>AI_FORMATION.FollowMode</strong>
</a>
</dt>
<dd>
<p>The mode the escort is in.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(AI_FORMATION).FollowName" >
<strong>AI_FORMATION.FollowName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Scheduler.html##(SCHEDULER)">Scheduler#SCHEDULER</a></em>
<a id="#(AI_FORMATION).FollowScheduler" >
<strong>AI_FORMATION.FollowScheduler</strong>
</a>
</dt>
<dd>
<p>The instance of the SCHEDULER class.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Unit.html##(UNIT)">Unit#UNIT</a></em>
<a id="#(AI_FORMATION).FollowUnit" >
<strong>AI_FORMATION.FollowUnit</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).FormationBox" >
<strong>AI_FORMATION:FormationBox(XStart, XSpace, YStart, YSpace, ZStart, ZSpace, ZLevels)</strong>
</a>
</dt>
<dd>
<p>FormationBox Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em>#number ZLevels </em></code>:
The amount of levels on the Z-axis.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).FormationCenterWing" >
<strong>AI_FORMATION:FormationCenterWing(XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationCenterWing Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).FormationLeftLine" >
<strong>AI_FORMATION:FormationLeftLine(XStart, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationLeftLine Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).FormationLeftWing" >
<strong>AI_FORMATION:FormationLeftWing(XStart, XSpace, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationLeftWing Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).FormationLine" >
<strong>AI_FORMATION:FormationLine(XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationLine Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).FormationRightLine" >
<strong>AI_FORMATION:FormationRightLine(XStart, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationRightLine Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).FormationRightWing" >
<strong>AI_FORMATION:FormationRightWing(XStart, XSpace, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationRightWing Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).FormationStack" >
<strong>AI_FORMATION:FormationStack(XStart, XSpace, YStart, YSpace)</strong>
</a>
</dt>
<dd>
<p>FormationStack Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).FormationTrail" >
<strong>AI_FORMATION:FormationTrail(XStart, XSpace, YStart)</strong>
</a>
</dt>
<dd>
<p>FormationTrail Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).FormationVic" >
<strong>AI_FORMATION:FormationVic(XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationVic Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).New" >
<strong>AI_FORMATION:New(FollowUnit, FollowGroupSet, FollowName, FollowBriefing)</strong>
</a>
</dt>
<dd>
<p>AI_FORMATION class constructor for an AI group</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Unit.html##(UNIT)">Unit#UNIT</a> FollowUnit </em></code>:
The UNIT leading the FolllowGroupSet.</p>
</li>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string FollowName </em></code>:
Name of the escort.</p>
</li>
<li>
<p><code><em> FollowBriefing </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_FORMATION)">#AI_FORMATION</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnAfterFormationBox" >
<strong>AI_FORMATION:OnAfterFormationBox(From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace, ZLevels)</strong>
</a>
</dt>
<dd>
<p>FormationBox Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em>#number ZLevels </em></code>:
The amount of levels on the Z-axis.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnAfterFormationCenterWing" >
<strong>AI_FORMATION:OnAfterFormationCenterWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationCenterWing Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnAfterFormationLeftLine" >
<strong>AI_FORMATION:OnAfterFormationLeftLine(FollowGroupSet, From, Event, To, XStart, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationLeftLine Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnAfterFormationLeftWing" >
<strong>AI_FORMATION:OnAfterFormationLeftWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationLeftWing Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnAfterFormationLine" >
<strong>AI_FORMATION:OnAfterFormationLine(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationLine Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnAfterFormationRightLine" >
<strong>AI_FORMATION:OnAfterFormationRightLine(FollowGroupSet, From, Event, To, XStart, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationRightLine Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnAfterFormationRightWing" >
<strong>AI_FORMATION:OnAfterFormationRightWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationRightWing Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnAfterFormationStack" >
<strong>AI_FORMATION:OnAfterFormationStack(From, Event, To, XStart, XSpace, YStart, YSpace)</strong>
</a>
</dt>
<dd>
<p>FormationStack Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnAfterFormationTrail" >
<strong>AI_FORMATION:OnAfterFormationTrail(From, Event, To, XStart, XSpace, YStart)</strong>
</a>
</dt>
<dd>
<p>FormationTrail Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnAfterFormationVic" >
<strong>AI_FORMATION:OnAfterFormationVic(From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationVic Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnBeforeFormationBox" >
<strong>AI_FORMATION:OnBeforeFormationBox(From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace, ZLevels)</strong>
</a>
</dt>
<dd>
<p>FormationBox Handler OnBefore for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em>#number ZLevels </em></code>:
The amount of levels on the Z-axis.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnBeforeFormationCenterWing" >
<strong>AI_FORMATION:OnBeforeFormationCenterWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationCenterWing Handler OnBefore for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnBeforeFormationLeftLine" >
<strong>AI_FORMATION:OnBeforeFormationLeftLine(FollowGroupSet, From, Event, To, XStart, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationLeftLine Handler OnBefore for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnBeforeFormationLeftWing" >
<strong>AI_FORMATION:OnBeforeFormationLeftWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationLeftWing Handler OnBefore for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnBeforeFormationLine" >
<strong>AI_FORMATION:OnBeforeFormationLine(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationLine Handler OnBefore for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnBeforeFormationRightLine" >
<strong>AI_FORMATION:OnBeforeFormationRightLine(FollowGroupSet, From, Event, To, XStart, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationRightLine Handler OnBefore for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnBeforeFormationRightWing" >
<strong>AI_FORMATION:OnBeforeFormationRightWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationRightWing Handler OnBefore for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnBeforeFormationStack" >
<strong>AI_FORMATION:OnBeforeFormationStack(From, Event, To, XStart, XSpace, YStart, YSpace)</strong>
</a>
</dt>
<dd>
<p>FormationStack Handler OnBefore for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnBeforeFormationTrail" >
<strong>AI_FORMATION:OnBeforeFormationTrail(From, Event, To, XStart, XSpace, YStart)</strong>
</a>
</dt>
<dd>
<p>FormationTrail Handler OnBefore for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).OnBeforeFormationVic" >
<strong>AI_FORMATION:OnBeforeFormationVic(From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationVic Handler OnBefore for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="DCSTypes.html##(AI.Option.Air.val.REACTION_ON_THREAT)">DCSTypes#AI.Option.Air.val.REACTION_ON_THREAT</a></em>
<a id="#(AI_FORMATION).OptionReactionOnThreat" >
<strong>AI_FORMATION.OptionReactionOnThreat</strong>
</a>
</dt>
<dd>
<p>Which REACTION<em>ON</em>THREAT is set to the FollowGroup.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#boolean</em>
<a id="#(AI_FORMATION).ReportTargets" >
<strong>AI_FORMATION.ReportTargets</strong>
</a>
</dt>
<dd>
<p>If true, nearby targets are reported.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).SetFlightRandomization" >
<strong>AI_FORMATION:SetFlightRandomization(FlightRandomization)</strong>
</a>
</dt>
<dd>
<p>Use the method <a href="AI_Formation.html##(AI_FORMATION).SetFlightRandomization">AI<em>Formation#AI</em>FORMATION.SetFlightRandomization</a>() to make the air units in your formation randomize their flight a bit while in formation.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number FlightRandomization </em></code>:
The formation flying errors that pilots can make while in formation. Is a range set in meters.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_FORMATION)">#AI_FORMATION</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).SmokeDirectionVector" >
<strong>AI_FORMATION.SmokeDirectionVector</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).TestSmokeDirectionVector" >
<strong>AI_FORMATION:TestSmokeDirectionVector(SmokeDirection)</strong>
</a>
</dt>
<dd>
<p>This function is for test, it will put on the frequency of the FollowScheduler a red smoke at the direction vector calculated for the escort to fly to.</p>
<p>This allows to visualize where the escort is flying to.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#boolean SmokeDirection </em></code>:
If true, then the direction vector will be smoked.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_FORMATION)">#AI_FORMATION</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).__FormationBox" >
<strong>AI_FORMATION:__FormationBox(Delay, XStart, XSpace, YStart, YSpace, ZStart, ZSpace, ZLevels)</strong>
</a>
</dt>
<dd>
<p>FormationBox Asynchronous Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em>#number ZLevels </em></code>:
The amount of levels on the Z-axis.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).__FormationCenterWing" >
<strong>AI_FORMATION:__FormationCenterWing(Delay, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationCenterWing Asynchronous Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).__FormationLeftLine" >
<strong>AI_FORMATION:__FormationLeftLine(Delay, XStart, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationLeftLine Asynchronous Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).__FormationLeftWing" >
<strong>AI_FORMATION:__FormationLeftWing(Delay, XStart, XSpace, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationLeftWing Asynchronous Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).__FormationLine" >
<strong>AI_FORMATION:__FormationLine(Delay, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationLine Asynchronous Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).__FormationRightLine" >
<strong>AI_FORMATION:__FormationRightLine(Delay, XStart, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationRightLine Asynchronous Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).__FormationRightWing" >
<strong>AI_FORMATION:__FormationRightWing(Delay, XStart, XSpace, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationRightWing Asynchronous Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).__FormationStack" >
<strong>AI_FORMATION:__FormationStack(Delay, XStart, XSpace, YStart, YSpace)</strong>
</a>
</dt>
<dd>
<p>FormationStack Asynchronous Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).__FormationTrail" >
<strong>AI_FORMATION:__FormationTrail(Delay, XStart, XSpace, YStart)</strong>
</a>
</dt>
<dd>
<p>FormationTrail Asynchronous Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).__FormationVic" >
<strong>AI_FORMATION:__FormationVic(Delay, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationVic Asynchronous Trigger for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).onafterFormationBox" >
<strong>AI_FORMATION:onafterFormationBox(From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace, ZLevels, FollowGroupSet)</strong>
</a>
</dt>
<dd>
<p>FormationBox Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em>#number ZLevels </em></code>:
The amount of levels on the Z-axis.</p>
</li>
<li>
<p><code><em> FollowGroupSet </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_FORMATION)">#AI_FORMATION</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).onafterFormationCenterWing" >
<strong>AI_FORMATION:onafterFormationCenterWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationCenterWing Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).onafterFormationLeftLine" >
<strong>AI_FORMATION:onafterFormationLeftLine(FollowGroupSet, From, Event, To, XStart, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationLeftLine Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_FORMATION)">#AI_FORMATION</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).onafterFormationLeftWing" >
<strong>AI_FORMATION:onafterFormationLeftWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationLeftWing Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).onafterFormationLine" >
<strong>AI_FORMATION:onafterFormationLine(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationLine Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_FORMATION)">#AI_FORMATION</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).onafterFormationRightLine" >
<strong>AI_FORMATION:onafterFormationRightLine(FollowGroupSet, From, Event, To, XStart, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<p>FormationRightLine Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_FORMATION)">#AI_FORMATION</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).onafterFormationRightWing" >
<strong>AI_FORMATION:onafterFormationRightWing(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, ZStart, ZSpace)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> FollowGroupSet </em></code>: </p>
</li>
<li>
<p><code><em> From </em></code>: </p>
</li>
<li>
<p><code><em> Event </em></code>: </p>
</li>
<li>
<p><code><em> To </em></code>: </p>
</li>
<li>
<p><code><em> XStart </em></code>: </p>
</li>
<li>
<p><code><em> XSpace </em></code>: </p>
</li>
<li>
<p><code><em> YStart </em></code>: </p>
</li>
<li>
<p><code><em> ZStart </em></code>: </p>
</li>
<li>
<p><code><em> ZSpace </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).onafterFormationStack" >
<strong>AI_FORMATION:onafterFormationStack(FollowGroupSet, From, Event, To, XStart, XSpace, YStart, YSpace)</strong>
</a>
</dt>
<dd>
<p>FormationStack Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_FORMATION)">#AI_FORMATION</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).onafterFormationTrail" >
<strong>AI_FORMATION:onafterFormationTrail(FollowGroupSet, From, Event, To, XStart, XSpace, YStart)</strong>
</a>
</dt>
<dd>
<p>FormationTrail Handler OnAfter for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> FollowGroupSet </em></code>:
The group AI escorting the FollowUnit.</p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_FORMATION)">#AI_FORMATION</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).onafterFormationVic" >
<strong>AI_FORMATION:onafterFormationVic(From, Event, To, XStart, XSpace, YStart, YSpace, ZStart, ZSpace, FollowGroupSet)</strong>
</a>
</dt>
<dd>
<p>FormationVic Handle for AI_FORMATION</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
<li>
<p><code><em>#number XStart </em></code>:
The start position on the X-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number XSpace </em></code>:
The space between groups on the X-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> YStart </em></code>:
The start position on the Y-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number YSpace </em></code>:
The space between groups on the Y-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em><a href="##(nubmer)">#nubmer</a> ZStart </em></code>:
The start position on the Z-axis in meters for the first group.</p>
</li>
<li>
<p><code><em>#number ZSpace </em></code>:
The space between groups on the Z-axis in meters for each sequent group.</p>
</li>
<li>
<p><code><em> FollowGroupSet </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_FORMATION)">#AI_FORMATION</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_FORMATION).onenterFollowing" >
<strong>AI_FORMATION:onenterFollowing(FollowGroupSet)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> FollowGroupSet </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<h2><a id="#(AI_FORMATION.MODE)" >Type <code>AI_FORMATION.MODE</code></a></h2>
<p>AI_FORMATION.Mode class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(AI_FORMATION.MODE).FOLLOW" >
<strong>AI_FORMATION.MODE.FOLLOW</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(AI_FORMATION.MODE).MISSION" >
<strong>AI_FORMATION.MODE.MISSION</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(Distance)" >Type <code>Distance</code></a></h2>
<h2><a id="#(MENUPARAM)" >Type <code>MENUPARAM</code></a></h2>
<p>MENUPARAM type</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em><a href="##(Distance)">#Distance</a></em>
<a id="#(MENUPARAM).ParamDistance" >
<strong>MENUPARAM.ParamDistance</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#function</em>
<a id="#(MENUPARAM).ParamFunction" >
<strong>MENUPARAM.ParamFunction</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(MENUPARAM).ParamMessage" >
<strong>MENUPARAM.ParamMessage</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(AI_FORMATION)">#AI_FORMATION</a></em>
<a id="#(MENUPARAM).ParamSelf" >
<strong>MENUPARAM.ParamSelf</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(nubmer)" >Type <code>nubmer</code></a></h2>
</div>
</div>
</body>
</html>