Finalized AI_DESIGNATE

This commit is contained in:
FlightControl
2017-04-20 14:14:39 +02:00
parent e946c6a863
commit ca3ee12c41
12 changed files with 558 additions and 74 deletions

View File

@@ -99,7 +99,7 @@
<p>--<img src="..\Presentations\AI_DESIGNATE\CARGO.JPG" alt="Banner Image"/></p>
<p>--<img src="..\Presentations\DESIGNATE\Dia1.JPG" alt="Banner Image"/></p>
<hr/>
@@ -111,8 +111,10 @@
<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, and communicate 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>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>
@@ -131,19 +133,25 @@ of players, so that following a dynamically generated menu system, each detected
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).MenuLaseOff">AI_DESIGNATE:MenuLaseOff(Index, Duration)</a></td>
<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).MenuLaseOn">AI_DESIGNATE:MenuLaseOn(Index, Duration)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).MenuLaseOff">AI_DESIGNATE:MenuLaseOff(AttackGroup, Index, Duration)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).MenuSmoke">AI_DESIGNATE:MenuSmoke(Index)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).MenuLaseOn">AI_DESIGNATE:MenuLaseOn(AttackGroup, Index, Duration)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).MenuSmoke">AI_DESIGNATE:MenuSmoke(AttackGroup, Index)</a></td>
<td class="summary">
</td>
@@ -158,6 +166,24 @@ of players, so that following a dynamically generated menu system, each detected
<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).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).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>
@@ -173,19 +199,19 @@ of players, so that following a dynamically generated menu system, each detected
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).onafterLaseOff">AI_DESIGNATE:onafterLaseOff(From, Event, To, Index)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).onafterLaseOff">AI_DESIGNATE:onafterLaseOff(From, Event, To, AttackGroup, 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="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).onafterSmoke">AI_DESIGNATE:onafterSmoke(From, Event, To, Index)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_DESIGNATE).onafterSmoke">AI_DESIGNATE:onafterSmoke(From, Event, To, AttackGroup, Index)</a></td>
<td class="summary">
</td>
@@ -205,11 +231,34 @@ of players, so that following a dynamically generated menu system, each detected
<h1>AI_DESIGNATE class, extends <a href="Fsm.html##(FSM)">Fsm#FSM</a></h1>
<p>AI_DESIGNATE is orchestrating the designation of potential targets, and communicate 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>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>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>
<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>
</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>
<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>
</ul>
<p>In this way, the AI can assist players to designate ground targets for a coordinated attack!</p>
<p>Have FUN!</p>
<h2>1. AI_DESIGNATE constructor</h2>
<ul>
@@ -233,9 +282,31 @@ of players, so that following a dynamically generated menu system, each detected
<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.)">#AI_DESIGNATE.</a>Status**: Report designation status.</li>
<li>**<a href="##(AI_DESIGNATE).Status">AI_DESIGNATE.Status</a>**: Report designation status.</li>
</ul>
<h2>3. Set laser codes</h2>
<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>
</dd>
</dl>
@@ -269,13 +340,26 @@ of players, so that following a dynamically generated menu system, each detected
</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>
<a id="#(AI_DESIGNATE).MenuLaseOff" >
<strong>AI_DESIGNATE:MenuLaseOff(Index, Duration)</strong>
<strong>AI_DESIGNATE:MenuLaseOff(AttackGroup, Index, Duration)</strong>
</a>
</dt>
<dd>
@@ -286,6 +370,11 @@ of players, so that following a dynamically generated menu system, each detected
<ul>
<li>
<p><code><em> AttackGroup </em></code>: </p>
</li>
<li>
<p><code><em> Index </em></code>: </p>
</li>
@@ -301,7 +390,7 @@ of players, so that following a dynamically generated menu system, each detected
<dt>
<a id="#(AI_DESIGNATE).MenuLaseOn" >
<strong>AI_DESIGNATE:MenuLaseOn(Index, Duration)</strong>
<strong>AI_DESIGNATE:MenuLaseOn(AttackGroup, Index, Duration)</strong>
</a>
</dt>
<dd>
@@ -312,6 +401,11 @@ of players, so that following a dynamically generated menu system, each detected
<ul>
<li>
<p><code><em> AttackGroup </em></code>: </p>
</li>
<li>
<p><code><em> Index </em></code>: </p>
</li>
@@ -327,17 +421,22 @@ of players, so that following a dynamically generated menu system, each detected
<dt>
<a id="#(AI_DESIGNATE).MenuSmoke" >
<strong>AI_DESIGNATE:MenuSmoke(Index)</strong>
<strong>AI_DESIGNATE:MenuSmoke(AttackGroup, Index)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> AttackGroup </em></code>: </p>
</li>
<li>
<p><code><em> Index </em></code>: </p>
</li>
@@ -391,6 +490,77 @@ The set of groups to designate for.</p>
</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).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">
@@ -429,7 +599,7 @@ The set of groups to designate for.</p>
<dt>
<a id="#(AI_DESIGNATE).onafterLaseOff" >
<strong>AI_DESIGNATE:onafterLaseOff(From, Event, To, Index)</strong>
<strong>AI_DESIGNATE:onafterLaseOff(From, Event, To, AttackGroup, Index)</strong>
</a>
</dt>
<dd>
@@ -455,6 +625,11 @@ The set of groups to designate for.</p>
</li>
<li>
<p><code><em> AttackGroup </em></code>: </p>
</li>
<li>
<p><code><em> Index </em></code>: </p>
</li>
@@ -470,7 +645,7 @@ The set of groups to designate for.</p>
<dt>
<a id="#(AI_DESIGNATE).onafterLaseOn" >
<strong>AI_DESIGNATE:onafterLaseOn(From, Event, To, Index, Duration)</strong>
<strong>AI_DESIGNATE:onafterLaseOn(From, Event, To, AttackGroup, Index, Duration)</strong>
</a>
</dt>
<dd>
@@ -496,6 +671,11 @@ The set of groups to designate for.</p>
</li>
<li>
<p><code><em> AttackGroup </em></code>: </p>
</li>
<li>
<p><code><em> Index </em></code>: </p>
</li>
@@ -516,7 +696,7 @@ The set of groups to designate for.</p>
<dt>
<a id="#(AI_DESIGNATE).onafterSmoke" >
<strong>AI_DESIGNATE:onafterSmoke(From, Event, To, Index)</strong>
<strong>AI_DESIGNATE:onafterSmoke(From, Event, To, AttackGroup, Index)</strong>
</a>
</dt>
<dd>
@@ -542,6 +722,11 @@ The set of groups to designate for.</p>
</li>
<li>
<p><code><em> AttackGroup </em></code>: </p>
</li>
<li>
<p><code><em> Index </em></code>: </p>
</li>
@@ -554,6 +739,8 @@ The set of groups to designate for.</p>
</dd>
</dl>
<h2><a id="#(list)" >Type <code>list</code></a></h2>
</div>
</div>

View File

@@ -951,9 +951,6 @@ Use the method <a href="##(AI_PATROL_ZONE).ManageDamage">AI<em>PATROL</em>ZONE.M
<p> This table contains the targets detected during patrol.</p>
</dd>
</dl>
<dl class="function">

View File

@@ -2847,6 +2847,7 @@ The range till cargo will board.</p>
<dl class="function">
<dt>
<em></em>
<a id="#(CARGO_UNIT).CargoCarrier" >
<strong>CARGO_UNIT.CargoCarrier</strong>
</a>

View File

@@ -213,7 +213,6 @@ on defined intervals (currently every minute).</p>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(MOVEMENT).AliveUnits" >
<strong>MOVEMENT.AliveUnits</strong>
</a>
@@ -222,9 +221,6 @@ on defined intervals (currently every minute).</p>
<p> Contains the counter how many units are currently alive</p>
</dd>
</dl>
<dl class="function">

View File

@@ -1445,6 +1445,7 @@ The new calculated POINT_VEC2.</p>
<dl class="function">
<dt>
<em></em>
<a id="#(POINT_VEC2).z" >
<strong>POINT_VEC2.z</strong>
</a>

View File

@@ -2113,6 +2113,9 @@ The group that was spawned. You can use this group for further actions.</p>
<p> Don't repeat the group from Take-Off till Landing and back Take-Off by ReSpawning.</p>
</dd>
</dl>
<dl class="function">
@@ -2566,6 +2569,9 @@ when nothing was spawned.</p>
<p> Overwrite unit names by default with group name.</p>
</dd>
</dl>
<dl class="function">
@@ -2580,6 +2586,9 @@ when nothing was spawned.</p>
<p> By default, no InitLimit</p>
</dd>
</dl>
<dl class="function">
@@ -2615,7 +2624,7 @@ when nothing was spawned.</p>
<dl class="function">
<dt>
<em></em>
<em>#number</em>
<a id="#(SPAWN).SpawnMaxGroups" >
<strong>SPAWN.SpawnMaxGroups</strong>
</a>
@@ -2632,7 +2641,7 @@ when nothing was spawned.</p>
<dl class="function">
<dt>
<em></em>
<em>#number</em>
<a id="#(SPAWN).SpawnMaxUnitsAlive" >
<strong>SPAWN.SpawnMaxUnitsAlive</strong>
</a>
@@ -2960,7 +2969,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
<dl class="function">
<dt>
<em>#boolean</em>
<em></em>
<a id="#(SPAWN).SpawnUnControlled" >
<strong>SPAWN.SpawnUnControlled</strong>
</a>
@@ -2984,7 +2993,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
<p> When the first Spawn executes, all the Groups need to be made visible before start.</p>
<p> Flag that indicates if all the Groups of the SpawnGroup need to be visible when Spawned.</p>
</dd>
</dl>

View File

@@ -177,6 +177,12 @@
<td class="name" nowrap="nowrap"><a href="##(SPOT).Spot">SPOT.Spot</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPOT).Target">SPOT.Target</a></td>
<td class="summary">
</td>
</tr>
<tr>
@@ -186,7 +192,13 @@
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPOT).onafterLaseOn">SPOT:onafterLaseOn(From, Event, To, PointVec3, LaserCode, Duration)</a></td>
<td class="name" nowrap="nowrap"><a href="##(SPOT).onafterLaseOn">SPOT:onafterLaseOn(From, Event, To, Target, LaserCode, Duration)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPOT).onafterLasing">SPOT:onafterLasing(From, Event, To)</a></td>
<td class="summary">
</td>
@@ -332,6 +344,20 @@ true if it is lasing</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SPOT).Target" >
<strong>SPOT.Target</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@@ -374,7 +400,7 @@ true if it is lasing</p>
<dt>
<a id="#(SPOT).onafterLaseOn" >
<strong>SPOT:onafterLaseOn(From, Event, To, PointVec3, LaserCode, Duration)</strong>
<strong>SPOT:onafterLaseOn(From, Event, To, Target, LaserCode, Duration)</strong>
</a>
</dt>
<dd>
@@ -400,7 +426,7 @@ true if it is lasing</p>
</li>
<li>
<p><code><em><a href="Core.Point.html##(POINT_VEC3)">Core.Point#POINT_VEC3</a> PointVec3 </em></code>: </p>
<p><code><em><a href="Wrapper.Positionable.html##(POSITIONABLE)">Wrapper.Positionable#POSITIONABLE</a> Target </em></code>: </p>
</li>
<li>
@@ -414,11 +440,37 @@ true if it is lasing</p>
</li>
</ul>
<h3>Return value</h3>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SPOT).onafterLasing" >
<strong>SPOT:onafterLasing(From, Event, To)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><em><a href="##(SPOT)">#SPOT</a>:</em></p>
<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>
</ul>
</dd>
</dl>

View File

@@ -453,7 +453,7 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<dl class="function">
<dt>
<em></em>
<em><a href="Core.Cargo.html##(CARGO_GROUP)">Core.Cargo#CARGO_GROUP</a></em>
<a id="#(FSM_PROCESS).Cargo" >
<strong>FSM_PROCESS.Cargo</strong>
</a>

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB