A lot of fixes

See #386
This commit is contained in:
FlightControl
2017-04-24 12:38:24 +02:00
parent a8da12c09d
commit f410d2ae0b
15 changed files with 593 additions and 121 deletions

View File

@@ -186,6 +186,12 @@ each detected set of potential targets can be lased or smoked...</p>
<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).FlashStatusMenu">AI_DESIGNATE.FlashStatusMenu</a></td>
<td class="summary">
</td>
</tr>
<tr>
@@ -234,6 +240,12 @@ each detected set of potential targets can be lased or smoked...</p>
<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).MenuFlashStatus">AI_DESIGNATE:MenuFlashStatus(AttackGroup, Flash)</a></td>
<td class="summary">
</td>
</tr>
<tr>
@@ -372,12 +384,24 @@ each detected set of potential targets can be lased or smoked...</p>
<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).SetFlashStatusMenu">AI_DESIGNATE:SetFlashStatusMenu(FlashMenu)</a></td>
<td class="summary">
<p>Set the flashing of the status 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).SetThreatLevelPrioritization">AI_DESIGNATE:SetThreatLevelPrioritization(Prioritize)</a></td>
<td class="summary">
<p>Set priorization of Targets based on the <strong>Threat Level of the Target</strong> in an Air to Ground context.</p>
</td>
</tr>
<tr>
@@ -390,6 +414,12 @@ each detected set of potential targets can be lased or smoked...</p>
<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).ThreatLevelPrioritization">AI_DESIGNATE.ThreatLevelPrioritization</a></td>
<td class="summary">
</td>
</tr>
<tr>
@@ -518,38 +548,38 @@ each detected set of potential targets can be lased or smoked...</p>
<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>The RecceSet is continuously detecting for potential Targets, executing its task as part of the DetectionObject.
Once Targets have been detected, the DesignateObject 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>
<p>As part of the Detect Event, the DetectionItems list is used by the DesignateObject to provide the Players 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>
<li>The RecceGroups are reporting to each AttackGroup, sending <strong>Messages</strong> containing the Threat Level and the TargetSet composition.</li>
<li><strong>Menu options</strong> are created and updated for each AttackGroup, containing the Threat Level and the TargetSet composition.</li>
</ul>
<p>A <em>Player</em> can then select an action from the <em>Designate Menu</em>. </p>
<p>A Player can then select an action from the Designate Menu. </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><strong>Note that each selected action will be executed for a TargetSet, thus the Target grouping done by the DetectionObject.</strong></p>
<p>Each <strong>Menu Option</strong> in the <em>Designate Menu</em> has two modes: </p>
<p>Each <strong>Menu Option</strong> in the Designate Menu 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 TargetSet <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>While designating, the RecceGroups will report any change in TargetSet composition or Target 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>
<p>The following logic is executed when a TargetSet is selected to be <em>lased</em> from the Designation Menu:</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>
<li>The RecceSet is searched for any Recce that is within <em>designation distance</em> from a Target in the TargetSet that is currently not being designated.</li>
<li>If there is a Recce found that is currently no designating a target, and is within designation distance from the Target, then that Target will be designated.</li>
<li>During designation, any Recce that does not have Line of Sight (LOS) and is not within disignation distance from the Target, will stop designating the Target, and a report is given.</li>
<li>When a Recce is designating a Target, and that Target is destroyed, then the Recce will stop designating the Target, and will report the event.</li>
<li>When a Recce is designating a Target, and that Recce is destroyed, then the Recce will be removed from the RecceSet and designation will stop without reporting.</li>
<li>When all RecceGroups are destroyed from the RecceSet, 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>
@@ -610,16 +640,37 @@ One laser code can be given or an sequence of laser codes through an table...</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>.
<p>DetectionItems can be auto lased once detected by Recces. As such, there is almost no action required from the Players using the Designate Menu.
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>
Note that autolase will automatically activate lasing for ALL DetectedItems. Individual items can be switched-off if required using the Designation Menu.</p>
<pre><code>AIDesignate:SetAutoLase( true )
</code></pre>
<p>Activate the auto lasing.</p>
<h2>5. Target prioritization on threat level</h2>
<p>Targets can be detected of different types in one DetectionItem. Depending on the type of the Target, a different threat level applies in an Air to Ground combat context.
SAMs are of a higher threat than normal tanks. So, if the Target type was recognized, the Recces will select those targets that form the biggest threat first,
and will continue this until the remaining vehicles with the lowest threat have been reached.</p>
<p>This threat level prioritization can be activated using the method <a href="##(AI_DESIGNATE).SetThreatLevelPrioritization">AI_DESIGNATE.SetThreatLevelPrioritization</a>().
If not activated, Targets will be selected in a random order, but most like those first which are the closest to the Recce marking the Target.</p>
<h2>6. Status Report</h2>
<p>A status report is available that displays the current Targets detected, grouped per DetectionItem, and a list of which Targets are currently being marked.</p>
<ul>
<li>The status report can be shown by selecting "Status" -> "Report Status" from the Designation menu .</li>
<li>The status report can be automatically flashed by selecting "Status" -> "Flash Status On".</li>
<li>The automatic flashing of the status report can be deactivated by selecting "Status" -> "Flash Status Off".</li>
<li>The flashing of the status menu is disabled by default.</li>
<li>The method <a href="##(AI_DESIGNATE).FlashStatusMenu">AI_DESIGNATE.FlashStatusMenu</a>() can be used to enable or disable to flashing of the status menu.</li>
</ul>
</dd>
</dl>
@@ -712,6 +763,20 @@ Note that autolase will automatically activate lasing for ALL <em>DetectedItems<
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(AI_DESIGNATE).FlashStatusMenu" >
<strong>AI_DESIGNATE.FlashStatusMenu</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@@ -796,6 +861,7 @@ function below will use the range 1-7 just in case</p>
<dl class="function">
<dt>
<em></em>
<a id="#(AI_DESIGNATE).LaserCodes" >
<strong>AI_DESIGNATE.LaserCodes</strong>
</a>
@@ -844,6 +910,32 @@ function below will use the range 1-7 just in case</p>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).MenuFlashStatus" >
<strong>AI_DESIGNATE:MenuFlashStatus(AttackGroup, Flash)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> AttackGroup </em></code>: </p>
</li>
<li>
<p><code><em> Flash </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).MenuIlluminate" >
<strong>AI_DESIGNATE:MenuIlluminate(Index)</strong>
</a>
@@ -1489,6 +1581,33 @@ The Attack collection of GROUP objects to designate and report for.</p>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).SetFlashStatusMenu" >
<strong>AI_DESIGNATE:SetFlashStatusMenu(FlashMenu)</strong>
</a>
</dt>
<dd>
<p>Set the flashing of the status menu.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#boolean FlashMenu </em></code>:
true: the status menu will be flashed every detection run; false: no flashing of the menu.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
@@ -1524,6 +1643,32 @@ number> LaserCodes</p>
<p><em><a href="##(AI_DESIGNATE)">#AI_DESIGNATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_DESIGNATE).SetThreatLevelPrioritization" >
<strong>AI_DESIGNATE:SetThreatLevelPrioritization(Prioritize)</strong>
</a>
</dt>
<dd>
<p>Set priorization of Targets based on the <strong>Threat Level of the Target</strong> in an Air to Ground context.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#boolean Prioritize </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">
@@ -1550,6 +1695,20 @@ number> LaserCodes</p>
<p>Status Trigger for AI_DESIGNATE </p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(AI_DESIGNATE).ThreatLevelPrioritization" >
<strong>AI_DESIGNATE.ThreatLevelPrioritization</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">