Progress!

This commit is contained in:
FlightControl
2017-04-22 13:53:54 +02:00
parent 4138a54e6b
commit 036768d400
23 changed files with 1129 additions and 239 deletions

View File

@@ -121,6 +121,12 @@ each detected set of potential targets can be lased or smoked...</p>
<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).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>
@@ -154,6 +160,12 @@ each detected set of potential targets can be lased or smoked...</p>
<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>
@@ -328,6 +340,12 @@ each detected set of potential targets can be lased or smoked...</p>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).onafterLaseOn">AI_DESIGNATE:onafterLaseOn(From, Event, To, AttackGroup, 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, AttackGroup, Index, Duration)</a></td>
<td class="summary">
</td>
</tr>
<tr>
@@ -358,24 +376,59 @@ each detected set of potential targets can be lased or smoked...</p>
<p>The Recce group is detecting as part of the DETECTION_ class continuously targets.
Once targets have been detected, they will be reported. The AI_DESIGNATE object will fire the <strong>Detect</strong> event in this case!
As part of the reporting, the following happens:</p>
<p>The following terminology is being used throughout this document:</p>
<ul>
<li>A message is sent to each GROUP of the Attack SET_GROUP, containing the threat level and the target composition.</li>
<li>A menu is created and updated for each GROUP of the Attack SET_GROUP, containing the the treat level and the target composition.</li>
<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>One of the players in one of the Attack GROUPs, can then select a Target Set by selecting one of the menu options.
Each menu option has two modes: </p>
<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>If the Target Set is not being designated, then the Designate menu for the target Set will provide options to Lase or Smoke the targets.</li>
<li>If the Target Set is being designated, then the Designate menu will provide an option to cancel the designation.</li>
<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>In this way, the AI can assist players to designate ground targets for a coordinated attack!</p>
<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>
@@ -437,6 +490,20 @@ One laser code can be given or an sequence of laser codes through an table...</p
<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>
@@ -512,6 +579,20 @@ One laser code can be given or an sequence of laser codes through an table...</p
</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">
@@ -1315,6 +1396,57 @@ number> LaserCodes</p>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).onafterLasing" >
<strong>AI_DESIGNATE:onafterLasing(From, Event, To, AttackGroup, 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> AttackGroup </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">