MOOSE/docs/Documentation/AI_Designate.html
2017-04-23 21:33:15 +02:00

1963 lines
44 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_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_Designate</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="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="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_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_Designate</code></h1>
<p><strong>AI R2.1</strong> -- Management of target <strong>Designation</strong>.</p>
<p>--<img src="..\Presentations\DESIGNATE\Dia1.JPG" alt="Banner Image"/></p>
<hr/>
<p>AI_DESIGNATE is orchestrating the designation of potential targets executed by a Recce group,
and communicates these to a dedicated attacking group of players,
so that following a dynamically generated menu system,
each detected set of potential targets can be lased or smoked...</p>
<p>Targets can be:</p>
<ul>
<li><strong>Lased</strong> for a period of time.</li>
<li><strong>Smoked</strong>. Artillery or airplanes with Illuminatino ordonance need to be present. (WIP, but early demo ready.)</li>
<li><strong>Illuminated</strong> through an illumination bomb. Artillery or airplanes with Illuminatino ordonance need to be present. (WIP, but early demo ready.</li>
</ul>
<hr/>
<h1><strong>AUTHORS and CONTRIBUTIONS</strong></h1>
<h3>Contributions:</h3>
<ul>
<li><a href="https://forums.eagle.ru/member.php?u=112175"><strong>Ciribob</strong></a>: Showing the way how to lase targets + how laser codes work!!! Explained the autolase script.</li>
<li><a href="https://forums.eagle.ru/member.php?u=112055"><strong>EasyEB</strong></a>: Ideas and Beta Testing</li>
<li><a href="https://forums.eagle.ru/member.php?u=123698"><strong>Wingthor</strong></a>: Beta Testing</li>
</ul>
<h3>Authors:</h3>
<ul>
<li><strong>FlightControl</strong>: Design &amp; Programming</li>
</ul>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#AI_DESIGNATE">AI_DESIGNATE</a></td>
<td class="summary">
<h1>AI_DESIGNATE class, extends <a href="Fsm.html##(FSM)">Fsm#FSM</a></h1>
<p>AI_DESIGNATE is orchestrating the designation of potential targets executed by a Recce group,
and communicates these to a dedicated attacking group of players,
so that following a dynamically generated menu system,
each detected set of potential targets can be lased or smoked...</p>
</td>
</tr>
</table>
<h2><a id="#(AI_DESIGNATE)">Type <code>AI_DESIGNATE</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).ActivateAutoLase">AI_DESIGNATE:ActivateAutoLase()</a></td>
<td class="summary">
<p>Coordinates the Auto Lase.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).AttackSet">AI_DESIGNATE.AttackSet</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).AutoLase">AI_DESIGNATE.AutoLase</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).Designating">AI_DESIGNATE.Designating</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).Detect">AI_DESIGNATE:Detect()</a></td>
<td class="summary">
<p>Detect Trigger for AI_DESIGNATE</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).Detection">AI_DESIGNATE.Detection</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).GenerateLaserCodes">AI_DESIGNATE:GenerateLaserCodes()</a></td>
<td class="summary">
<p>Generate an array of possible laser codes.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).Illuminate">AI_DESIGNATE:Illuminate()</a></td>
<td class="summary">
<p>Illuminate Trigger for AI_DESIGNATE</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).LaseDuration">AI_DESIGNATE.LaseDuration</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).LaseOff">AI_DESIGNATE:LaseOff()</a></td>
<td class="summary">
<p>LaseOff Trigger for AI_DESIGNATE </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).LaseOn">AI_DESIGNATE:LaseOn()</a></td>
<td class="summary">
<p>LaseOn Trigger for AI_DESIGNATE </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).LaserCodes">AI_DESIGNATE.LaserCodes</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).LaserCodesUsed">AI_DESIGNATE.LaserCodesUsed</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).MenuAutoLase">AI_DESIGNATE:MenuAutoLase(AutoLase)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).MenuIlluminate">AI_DESIGNATE:MenuIlluminate(Index)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).MenuLaseOff">AI_DESIGNATE:MenuLaseOff(Index, Duration)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).MenuLaseOn">AI_DESIGNATE:MenuLaseOn(Index, Duration)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).MenuSmoke">AI_DESIGNATE:MenuSmoke(Index, Color)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).MenuStatus">AI_DESIGNATE:MenuStatus(AttackGroup)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).New">AI_DESIGNATE:New(Detection, AttackSet)</a></td>
<td class="summary">
<p>AI_DESIGNATE Constructor.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).OnAfterDetect">AI_DESIGNATE:OnAfterDetect(From, Event, To)</a></td>
<td class="summary">
<p>Detect Handler OnAfter for AI_DESIGNATE</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).OnAfterIlluminate">AI_DESIGNATE:OnAfterIlluminate(From, Event, To)</a></td>
<td class="summary">
<p>Illuminate Handler OnAfter for AI_DESIGNATE</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).OnAfterLaseOff">AI_DESIGNATE:OnAfterLaseOff(From, Event, To)</a></td>
<td class="summary">
<p>LaseOff Handler OnAfter for AI_DESIGNATE </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).OnAfterLaseOn">AI_DESIGNATE:OnAfterLaseOn(From, Event, To)</a></td>
<td class="summary">
<p>LaseOn Handler OnAfter for AI_DESIGNATE </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).OnAfterSmoke">AI_DESIGNATE:OnAfterSmoke(From, Event, To)</a></td>
<td class="summary">
<p>Smoke Handler OnAfter for AI_DESIGNATE </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).OnAfterStatus">AI_DESIGNATE:OnAfterStatus(From, Event, To)</a></td>
<td class="summary">
<p>Status Handler OnAfter for AI_DESIGNATE </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).OnBeforeDetect">AI_DESIGNATE:OnBeforeDetect(From, Event, To)</a></td>
<td class="summary">
<p>Detect Handler OnBefore for AI_DESIGNATE</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).OnBeforeIlluminate">AI_DESIGNATE:OnBeforeIlluminate(From, Event, To)</a></td>
<td class="summary">
<p>Illuminate Handler OnBefore for AI_DESIGNATE</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).OnBeforeLaseOff">AI_DESIGNATE:OnBeforeLaseOff(From, Event, To)</a></td>
<td class="summary">
<p>LaseOff Handler OnBefore for AI_DESIGNATE </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).OnBeforeLaseOn">AI_DESIGNATE:OnBeforeLaseOn(From, Event, To)</a></td>
<td class="summary">
<p>LaseOn Handler OnBefore for AI_DESIGNATE </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).OnBeforeSmoke">AI_DESIGNATE:OnBeforeSmoke(From, Event, To)</a></td>
<td class="summary">
<p>Smoke Handler OnBefore for AI_DESIGNATE </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).OnBeforeStatus">AI_DESIGNATE:OnBeforeStatus(From, Event, To)</a></td>
<td class="summary">
<p>Status Handler OnBefore for AI_DESIGNATE </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).RecceSet">AI_DESIGNATE.RecceSet</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).Recces">AI_DESIGNATE.Recces</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).SendStatus">AI_DESIGNATE:SendStatus()</a></td>
<td class="summary">
<p>Sends the status to the Attack Groups.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).SetAutoLase">AI_DESIGNATE:SetAutoLase(AutoLase)</a></td>
<td class="summary">
<p>Set auto lase.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).SetDesignateMenu">AI_DESIGNATE:SetDesignateMenu()</a></td>
<td class="summary">
<p>Sets the Designate Menu.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).SetLaserCodes">AI_DESIGNATE:SetLaserCodes(<, LaserCodes)</a></td>
<td class="summary">
<p>Set an array of possible laser codes.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).Smoke">AI_DESIGNATE:Smoke()</a></td>
<td class="summary">
<p>Smoke Trigger for AI_DESIGNATE </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).Status">AI_DESIGNATE:Status()</a></td>
<td class="summary">
<p>Status Trigger for AI_DESIGNATE </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).__Detect">AI_DESIGNATE:__Detect(Delay)</a></td>
<td class="summary">
<p>Detect Asynchronous Trigger for AI_DESIGNATE</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).__Illuminate">AI_DESIGNATE:__Illuminate(Delay)</a></td>
<td class="summary">
<p>Illuminate Asynchronous Trigger for AI_DESIGNATE</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).__LaseOff">AI_DESIGNATE:__LaseOff(Delay)</a></td>
<td class="summary">
<p>LaseOff Asynchronous Trigger for AI_DESIGNATE </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).__LaseOn">AI_DESIGNATE:__LaseOn(Delay)</a></td>
<td class="summary">
<p>LaseOn Asynchronous Trigger for AI_DESIGNATE </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).__Smoke">AI_DESIGNATE:__Smoke(Delay)</a></td>
<td class="summary">
<p>Smoke Asynchronous Trigger for AI_DESIGNATE </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).__Status">AI_DESIGNATE:__Status(Delay)</a></td>
<td class="summary">
<p>Status Asynchronous Trigger for AI_DESIGNATE </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).onafterDetect">AI_DESIGNATE:onafterDetect()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).onafterDone">AI_DESIGNATE:onafterDone(From, Event, To, Index)</a></td>
<td class="summary">
<p>Done</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).onafterIlluminate">AI_DESIGNATE:onafterIlluminate(From, Event, To, Index)</a></td>
<td class="summary">
<p>Illuminating</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).onafterLaseOff">AI_DESIGNATE:onafterLaseOff(From, Event, To, Index)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).onafterLaseOn">AI_DESIGNATE:onafterLaseOn(From, Event, To, Index, Duration)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).onafterLasing">AI_DESIGNATE:onafterLasing(From, Event, To, Index, Duration)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).onafterSmoke">AI_DESIGNATE:onafterSmoke(From, Event, To, Index, Color)</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2>Global(s)</h2>
<dl class="function">
<dt>
<em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a></em>
<a id="AI_DESIGNATE" >
<strong>AI_DESIGNATE</strong>
</a>
</dt>
<dd>
<h1>AI_DESIGNATE class, extends <a href="Fsm.html##(FSM)">Fsm#FSM</a></h1>
<p>AI_DESIGNATE is orchestrating the designation of potential targets executed by a Recce group,
and communicates these to a dedicated attacking group of players,
so that following a dynamically generated menu system,
each detected set of potential targets can be lased or smoked...</p>
<p>Targets can be:</p>
<ul>
<li><strong>Lased</strong> for a period of time.</li>
<li><strong>Smoked</strong>. Artillery or airplanes with Illuminatino ordonance need to be present. (WIP, but early demo ready.)</li>
<li><strong>Illuminated</strong> through an illumination bomb. Artillery or airplanes with Illuminatino ordonance need to be present. (WIP, but early demo ready.</li>
</ul>
<p>The following terminology is being used throughout this document:</p>
<ul>
<li>The <strong>DesignateObject</strong> is the object of the AI_DESIGNATE class, which is this class explained in the document.</li>
<li>The <strong>DetectionObject</strong> is the object of a DETECTION_ class (DETECTION<em>TYPES, DETECTION</em>AREAS, DETECTION_UNITS), which is executing the detection and grouping of Targets into <em>DetectionItems</em>.</li>
<li><strong>DetectionItems</strong> is the list of detected target groupings by the <em>DetectionObject</em>. Each <em>DetectionItem</em> contains a <em>TargetSet</em>.</li>
<li><strong>DetectionItem</strong> is one element of the <em>DetectionItems</em> list, and contains a <em>TargetSet</em>.</li>
<li>The <strong>TargetSet</strong> is a SET_UNITS collection of <em>Targets</em>, that have been detected by the <em>DetectionObject</em>.</li>
<li>A <strong>Target</strong> is a detected UNIT object by the <em>DetectionObject</em>.</li>
<li>A <strong>Threat Level</strong> is a number from 0 to 10 that is calculated based on the threat of the Target in an Air to Ground battle scenario.</li>
<li>The <strong>RecceSet</strong> is a SET_GROUP collection that contains the <strong>RecceGroups</strong>.</li>
<li>A <strong>RecceGroup</strong> is a GROUP object containing the <strong>Recces</strong>.</li>
<li>A <strong>Recce</strong> is a UNIT object executing the reconnaissance as part the <em>DetectionObject</em>. A Recce can be of any UNIT type.</li>
<li>An <strong>AttackGroup</strong> is a GROUP object that contain <em>Players</em>.</li>
<li>A <strong>Player</strong> is an active CLIENT object containing a human player.</li>
<li>A <strong>Designate Menu</strong> is the menu that is dynamically created during the designation process for each <em>AttackGroup</em>.</li>
</ul>
<p>The <em>RecceSet</em> is continuously detecting for potential <em>Targets</em>, executing its task as part of the <em>DetectionObject</em>.
Once <em>Targets</em> have been detected, the <em>DesignateObject</em> will trigger the <strong>Detect Event</strong>.</p>
<p>As part of the Detect Event, the <em>DetectionItems</em> list is used by the <em>DesignateObject</em> to provide the <em>Players</em> with:</p>
<ul>
<li>The <em>RecceGroups</em> are reporting to each <em>AttackGroup</em>, sending <strong>Messages</strong> containing the <em>Threat Level</em> and the <em>TargetSet</em> composition.</li>
<li><strong>Menu options</strong> are created and updated for each <em>AttackGroup</em>, containing the <em>Threat Level</em> and the <em>TargetSet</em> composition.</li>
</ul>
<p>A <em>Player</em> can then select an action from the <em>Designate Menu</em>. </p>
<p><strong>Note that each selected action will be executed for a <em>TargetSet</em>, thus the <em>Target</em> grouping done by the <em>DetectionObject</em>.</strong></p>
<p>Each <strong>Menu Option</strong> in the <em>Designate Menu</em> has two modes: </p>
<ol>
<li>If the <em>TargetSet</em> <strong>is not being designated</strong>, then the <strong>Designate Menu</strong> option for the target Set will provide options to <strong>Lase</strong> or <strong>Smoke</strong> the targets.</li>
<li>If the Target Set <strong>is being designated</strong>, then the <strong>Designate Menu</strong> option will provide an option to stop or cancel the designation.</li>
</ol>
<p>While designating, the <em>RecceGroups</em> will report any change in <em>TargetSet</em> composition or <em>Target</em> presence.</p>
<p>The following logic is executed when a <em>TargetSet</em> is selected to be <em>lased</em> from the <em>Designation Menu</em>:</p>
<ul>
<li>The <em>RecceSet</em> is searched for any <em>Recce</em> that is within <em>designation distance</em> from a <em>Target</em> in the <em>TargetSet</em> that is currently not being designated.</li>
<li>If there is a <em>Recce</em> found that is currently no designating a target, and is within designation distance from the <em>Target</em>, then that <em>Target</em> will be designated.</li>
<li>During designation, any <em>Recce</em> that does not have Line of Sight (LOS) and is not within disignation distance from the <em>Target</em>, will stop designating the <em>Target</em>, and a report is given.</li>
<li>When a <em>Recce</em> is designating a <em>Target</em>, and that <em>Target</em> is destroyed, then the <em>Recce</em> will stop designating the <em>Target</em>, and will report the event.</li>
<li>When a <em>Recce</em> is designating a <em>Target</em>, and that <em>Recce</em> is destroyed, then the <em>Recce</em> will be removed from the <em>RecceSet</em> and designation will stop without reporting.</li>
<li>When all <em>RecceGroups</em> are destroyed from the <em>RecceSet</em>, then the DesignationObject will stop functioning, and nothing will be reported.</li>
</ul>
<p>In this way, the DesignationObject assists players to designate ground targets for a coordinated attack!</p>
<p>Have FUN!</p>
<h2>1. AI_DESIGNATE constructor</h2>
<ul>
<li><a href="##(AI_DESIGNATE).New">AI_DESIGNATE.New</a>(): Creates a new AI_DESIGNATE object.</li>
</ul>
<h2>2. AI_DESIGNATE is a FSM</h2>
<p><img src="..\Presentations\DESIGNATE\Dia2.JPG" alt="Process"/></p>
<h3>2.1 AI_DESIGNATE States</h3>
<ul>
<li><strong>Designating</strong> ( Group ): The process is not started yet.</li>
</ul>
<h3>2.2 AI_DESIGNATE Events</h3>
<ul>
<li>**<a href="##(AI_DESIGNATE).Detect">AI_DESIGNATE.Detect</a>**: Detect targets.</li>
<li>**<a href="##(AI_DESIGNATE).LaseOn">AI_DESIGNATE.LaseOn</a>**: Lase the targets with the specified Index.</li>
<li>**<a href="##(AI_DESIGNATE).LaseOff">AI_DESIGNATE.LaseOff</a>**: Stop lasing the targets with the specified Index.</li>
<li>**<a href="##(AI_DESIGNATE).Smoke">AI_DESIGNATE.Smoke</a>**: Smoke the targets with the specified Index.</li>
<li>**<a href="##(AI_DESIGNATE).Status">AI_DESIGNATE.Status</a>**: Report designation status.</li>
</ul>
<h2>3. Laser codes</h2>
<h3>3.1 Set possible laser codes</h3>
<p>An array of laser codes can be provided, that will be used by the AI_DESIGNATE when lasing.
The laser code is communicated by the Recce when it is lasing a larget.
Note that the default laser code is 1113.
Working known laser codes are: 1113,1462,1483,1537,1362,1214,1131,1182,1644,1614,1515,1411,1621,1138,1542,1678,1573,1314,1643,1257,1467,1375,1341,1275,1237</p>
<p>Use the method <a href="##(AI_DESIGNATE).SetLaserCodes">AI_DESIGNATE.SetLaserCodes</a>() to set the possible laser codes to be selected from.
One laser code can be given or an sequence of laser codes through an table...</p>
<pre><code>AIDesignate:SetLaserCodes( 1214 )
</code></pre>
<p>The above sets one laser code with the value 1214.</p>
<pre><code>AIDesignate:SetLaserCodes( { 1214, 1131, 1614, 1138 } )
</code></pre>
<p>The above sets a collection of possible laser codes that can be assigned. <strong>Note the { } notation!</strong></p>
<h3>3.2 Auto generate laser codes</h3>
<p>Use the method <a href="##(AI_DESIGNATE).GenerateLaserCodes">AI_DESIGNATE.GenerateLaserCodes</a>() to generate all possible laser codes. Logic implemented and advised by Ciribob!</p>
<h2>4. Autolase to automatically lase detected targets.</h2>
<p><em>DetectionItems</em> can be auto lased once detected by <em>Recces</em>. As such, there is almost no action required from the <em>Players</em> using the <em>Designate Menu</em>.
The <strong>auto lase</strong> function can be activated through the Designation Menu.
Use the method <a href="##(AI_DESIGNATE).SetAutoLase">AI_DESIGNATE.SetAutoLase</a>() to activate or deactivate the auto lase function programmatically.
Note that autolase will automatically activate lasing for ALL <em>DetectedItems</em>. Individual items can be switched-off if required using the <em>Designation Menu</em>.</p>
<pre><code>AIDesignate:SetAutoLase( true )
</code></pre>
<p>Activate the auto lasing.</p>
</dd>
</dl>
<h2><a id="#(AI_Designate)" >Type <code>AI_Designate</code></a></h2>
<h2><a id="#(AI_DESIGNATE)" >Type <code>AI_DESIGNATE</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).ActivateAutoLase" >
<strong>AI_DESIGNATE:ActivateAutoLase()</strong>
</a>
</dt>
<dd>
<p>Coordinates the Auto Lase.</p>
<h3>Return value</h3>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(AI_DESIGNATE).AttackSet" >
<strong>AI_DESIGNATE.AttackSet</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(AI_DESIGNATE).AutoLase" >
<strong>AI_DESIGNATE.AutoLase</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(AI_DESIGNATE).Designating" >
<strong>AI_DESIGNATE.Designating</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).Detect" >
<strong>AI_DESIGNATE:Detect()</strong>
</a>
</dt>
<dd>
<p>Detect Trigger for AI_DESIGNATE</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(AI_DESIGNATE).Detection" >
<strong>AI_DESIGNATE.Detection</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).GenerateLaserCodes" >
<strong>AI_DESIGNATE:GenerateLaserCodes()</strong>
</a>
</dt>
<dd>
<p>Generate an array of possible laser codes.</p>
<p>Each new lase will select a code from this table.
The entered value can range from 1111 - 1788,
-- but the first digit of the series must be a 1 or 2
-- and the last three digits must be between 1 and 8.
The range used to be bugged so its not 1 - 8 but 0 - 7.
function below will use the range 1-7 just in case</p>
<h3>Return value</h3>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).Illuminate" >
<strong>AI_DESIGNATE:Illuminate()</strong>
</a>
</dt>
<dd>
<p>Illuminate Trigger for AI_DESIGNATE</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(AI_DESIGNATE).LaseDuration" >
<strong>AI_DESIGNATE.LaseDuration</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).LaseOff" >
<strong>AI_DESIGNATE:LaseOff()</strong>
</a>
</dt>
<dd>
<p>LaseOff Trigger for AI_DESIGNATE </p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).LaseOn" >
<strong>AI_DESIGNATE:LaseOn()</strong>
</a>
</dt>
<dd>
<p>LaseOn Trigger for AI_DESIGNATE </p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).LaserCodes" >
<strong>AI_DESIGNATE.LaserCodes</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(AI_DESIGNATE).LaserCodesUsed" >
<strong>AI_DESIGNATE.LaserCodesUsed</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).MenuAutoLase" >
<strong>AI_DESIGNATE:MenuAutoLase(AutoLase)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> AutoLase </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).MenuIlluminate" >
<strong>AI_DESIGNATE:MenuIlluminate(Index)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Index </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).MenuLaseOff" >
<strong>AI_DESIGNATE:MenuLaseOff(Index, Duration)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> Index </em></code>: </p>
</li>
<li>
<p><code><em> Duration </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).MenuLaseOn" >
<strong>AI_DESIGNATE:MenuLaseOn(Index, Duration)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> Index </em></code>: </p>
</li>
<li>
<p><code><em> Duration </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).MenuSmoke" >
<strong>AI_DESIGNATE:MenuSmoke(Index, Color)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> Index </em></code>: </p>
</li>
<li>
<p><code><em> Color </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).MenuStatus" >
<strong>AI_DESIGNATE:MenuStatus(AttackGroup)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> AttackGroup </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).New" >
<strong>AI_DESIGNATE:New(Detection, AttackSet)</strong>
</a>
</dt>
<dd>
<p>AI_DESIGNATE Constructor.</p>
<p>This class is an abstract class and should not be instantiated.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Functional.Detection.html##(DETECTION_BASE)">Functional.Detection#DETECTION_BASE</a> Detection </em></code>: </p>
</li>
<li>
<p><code><em><a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> AttackSet </em></code>:
The Attack collection of GROUP objects to designate and report for.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).OnAfterDetect" >
<strong>AI_DESIGNATE:OnAfterDetect(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Detect Handler OnAfter for AI_DESIGNATE</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>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).OnAfterIlluminate" >
<strong>AI_DESIGNATE:OnAfterIlluminate(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Illuminate Handler OnAfter for AI_DESIGNATE</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>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).OnAfterLaseOff" >
<strong>AI_DESIGNATE:OnAfterLaseOff(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>LaseOff Handler OnAfter for AI_DESIGNATE </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>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).OnAfterLaseOn" >
<strong>AI_DESIGNATE:OnAfterLaseOn(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>LaseOn Handler OnAfter for AI_DESIGNATE </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>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).OnAfterSmoke" >
<strong>AI_DESIGNATE:OnAfterSmoke(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Smoke Handler OnAfter for AI_DESIGNATE </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>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).OnAfterStatus" >
<strong>AI_DESIGNATE:OnAfterStatus(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Status Handler OnAfter for AI_DESIGNATE </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>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).OnBeforeDetect" >
<strong>AI_DESIGNATE:OnBeforeDetect(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Detect Handler OnBefore for AI_DESIGNATE</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>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).OnBeforeIlluminate" >
<strong>AI_DESIGNATE:OnBeforeIlluminate(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Illuminate Handler OnBefore for AI_DESIGNATE</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>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).OnBeforeLaseOff" >
<strong>AI_DESIGNATE:OnBeforeLaseOff(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>LaseOff Handler OnBefore for AI_DESIGNATE </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>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).OnBeforeLaseOn" >
<strong>AI_DESIGNATE:OnBeforeLaseOn(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>LaseOn Handler OnBefore for AI_DESIGNATE </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>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).OnBeforeSmoke" >
<strong>AI_DESIGNATE:OnBeforeSmoke(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Smoke Handler OnBefore for AI_DESIGNATE </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>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).OnBeforeStatus" >
<strong>AI_DESIGNATE:OnBeforeStatus(From, Event, To)</strong>
</a>
</dt>
<dd>
<p>Status Handler OnBefore for AI_DESIGNATE </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>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(AI_DESIGNATE).RecceSet" >
<strong>AI_DESIGNATE.RecceSet</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(AI_DESIGNATE).Recces" >
<strong>AI_DESIGNATE.Recces</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).SendStatus" >
<strong>AI_DESIGNATE:SendStatus()</strong>
</a>
</dt>
<dd>
<p>Sends the status to the Attack Groups.</p>
<h3>Return value</h3>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).SetAutoLase" >
<strong>AI_DESIGNATE:SetAutoLase(AutoLase)</strong>
</a>
</dt>
<dd>
<p>Set auto lase.</p>
<p>Auto lase will start lasing targets immediately when these are in range.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#boolean AutoLase </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).SetDesignateMenu" >
<strong>AI_DESIGNATE:SetDesignateMenu()</strong>
</a>
</dt>
<dd>
<p>Sets the Designate Menu.</p>
<h3>Return value</h3>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).SetLaserCodes" >
<strong>AI_DESIGNATE:SetLaserCodes(<, LaserCodes)</strong>
</a>
</dt>
<dd>
<p>Set an array of possible laser codes.</p>
<p>Each new lase will select a code from this table.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="##(list)">#list</a> &lt; </em></code>:
number> LaserCodes</p>
</li>
<li>
<p><code><em> LaserCodes </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).Smoke" >
<strong>AI_DESIGNATE:Smoke()</strong>
</a>
</dt>
<dd>
<p>Smoke Trigger for AI_DESIGNATE </p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).Status" >
<strong>AI_DESIGNATE:Status()</strong>
</a>
</dt>
<dd>
<p>Status Trigger for AI_DESIGNATE </p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).__Detect" >
<strong>AI_DESIGNATE:__Detect(Delay)</strong>
</a>
</dt>
<dd>
<p>Detect Asynchronous Trigger for AI_DESIGNATE</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).__Illuminate" >
<strong>AI_DESIGNATE:__Illuminate(Delay)</strong>
</a>
</dt>
<dd>
<p>Illuminate Asynchronous Trigger for AI_DESIGNATE</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).__LaseOff" >
<strong>AI_DESIGNATE:__LaseOff(Delay)</strong>
</a>
</dt>
<dd>
<p>LaseOff Asynchronous Trigger for AI_DESIGNATE </p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).__LaseOn" >
<strong>AI_DESIGNATE:__LaseOn(Delay)</strong>
</a>
</dt>
<dd>
<p>LaseOn Asynchronous Trigger for AI_DESIGNATE </p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).__Smoke" >
<strong>AI_DESIGNATE:__Smoke(Delay)</strong>
</a>
</dt>
<dd>
<p>Smoke Asynchronous Trigger for AI_DESIGNATE </p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).__Status" >
<strong>AI_DESIGNATE:__Status(Delay)</strong>
</a>
</dt>
<dd>
<p>Status Asynchronous Trigger for AI_DESIGNATE </p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).onafterDetect" >
<strong>AI_DESIGNATE:onafterDetect()</strong>
</a>
</dt>
<dd>
<h3>Return value</h3>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).onafterDone" >
<strong>AI_DESIGNATE:onafterDone(From, Event, To, Index)</strong>
</a>
</dt>
<dd>
<p>Done</p>
<h3>Parameters</h3>
<ul>
<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> Index </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).onafterIlluminate" >
<strong>AI_DESIGNATE:onafterIlluminate(From, Event, To, Index)</strong>
</a>
</dt>
<dd>
<p>Illuminating</p>
<h3>Parameters</h3>
<ul>
<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> Index </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).onafterLaseOff" >
<strong>AI_DESIGNATE:onafterLaseOff(From, Event, To, Index)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<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> Index </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).onafterLaseOn" >
<strong>AI_DESIGNATE:onafterLaseOn(From, Event, To, Index, Duration)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<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> Index </em></code>: </p>
</li>
<li>
<p><code><em> Duration </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).onafterLasing" >
<strong>AI_DESIGNATE:onafterLasing(From, Event, To, Index, Duration)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<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> Index </em></code>: </p>
</li>
<li>
<p><code><em> Duration </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).onafterSmoke" >
<strong>AI_DESIGNATE:onafterSmoke(From, Event, To, Index, Color)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<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> Index </em></code>: </p>
</li>
<li>
<p><code><em> Color </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<h2><a id="#(list)" >Type <code>list</code></a></h2>
</div>
</div>
</body>
</html>