mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Updated documentation
This commit is contained in:
@@ -79,93 +79,16 @@
|
||||
|
||||
<hr/>
|
||||
|
||||
<h1>1) <a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a> class, extends <a href="AI_CAP.html##(AI_PATROL_ZONE)">AI<em>CAP#AI</em>PATROL_ZONE</a></h1>
|
||||
|
||||
<p>The <a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a> class implements the core functions to patrol a <a href="Zone.html">Zone</a> by an AI <a href="Controllable.html">Controllable</a> or <a href="Group.html">Group</a>
|
||||
and automatically engage any airborne enemies that are within a certain range or within a certain zone.</p>
|
||||
<p>AI CAP classes makes AI Controllables execute a Combat Air Patrol.</p>
|
||||
|
||||
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia3.JPG" alt="Process"/></p>
|
||||
|
||||
<p>The AI<em>CAP</em>ZONE is assigned a <a href="Group.html">Group</a> and this must be done before the AI<em>CAP</em>ZONE process can be started using the <strong>Start</strong> event.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia4.JPG" alt="Process"/></p>
|
||||
|
||||
<p>The AI will fly towards the random 3D point within the patrol zone, using a random speed within the given altitude and speed limits.
|
||||
Upon arrival at the 3D point, a new random 3D point will be selected within the patrol zone using the given limits.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia5.JPG" alt="Process"/></p>
|
||||
|
||||
<p>This cycle will continue.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia6.JPG" alt="Process"/></p>
|
||||
|
||||
<p>During the patrol, the AI will detect enemy targets, which are reported through the <strong>Detected</strong> event.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia9.JPG" alt="Process"/></p>
|
||||
|
||||
<p>When enemies are detected, the AI will automatically engage the enemy.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia10.JPG" alt="Process"/></p>
|
||||
|
||||
<p>Until a fuel or damage treshold has been reached by the AI, or when the AI is commanded to RTB.
|
||||
When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia13.JPG" alt="Process"/></p>
|
||||
|
||||
<h2>1.1) AI<em>CAP</em>ZONE constructor</h2>
|
||||
<p>There are the following types of CAP classes defined:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(AI_CAP_ZONE).New">AI<em>CAP</em>ZONE.New</a>(): Creates a new AI<em>CAP</em>ZONE object.</li>
|
||||
<li><a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a>: Perform a CAP in a zone.</li>
|
||||
</ul>
|
||||
|
||||
<h2>1.2) AI<em>CAP</em>ZONE is a FSM</h2>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia2.JPG" alt="Process"/></p>
|
||||
|
||||
<h3>1.2.1) AI<em>CAP</em>ZONE States</h3>
|
||||
|
||||
<ul>
|
||||
<li><strong>None</strong> ( Group ): The process is not started yet.</li>
|
||||
<li><strong>Patrolling</strong> ( Group ): The AI is patrolling the Patrol Zone.</li>
|
||||
<li><strong>Engaging</strong> ( Group ): The AI is engaging the bogeys.</li>
|
||||
<li><strong>Returning</strong> ( Group ): The AI is returning to Base..</li>
|
||||
</ul>
|
||||
|
||||
<h3>1.2.2) AI<em>CAP</em>ZONE Events</h3>
|
||||
|
||||
<ul>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Start">AI<em>Patrol#AI</em>PATROL_ZONE.Start</a>**: Start the process.</li>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Route">AI<em>Patrol#AI</em>PATROL_ZONE.Route</a>**: Route the AI to a new random 3D point within the Patrol Zone.</li>
|
||||
<li>**<a href="##(AI_CAP_ZONE).Engage">AI<em>CAP</em>ZONE.Engage</a>**: Let the AI engage the bogeys.</li>
|
||||
<li>**<a href="##(AI_CAP_ZONE).Abort">AI<em>CAP</em>ZONE.Abort</a>**: Aborts the engagement and return patrolling in the patrol zone.</li>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).RTB">AI<em>Patrol#AI</em>PATROL_ZONE.RTB</a>**: Route the AI to the home base.</li>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Detect">AI<em>Patrol#AI</em>PATROL_ZONE.Detect</a>**: The AI is detecting targets.</li>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Detected">AI<em>Patrol#AI</em>PATROL_ZONE.Detected</a>**: The AI has detected new targets.</li>
|
||||
<li>**<a href="##(AI_CAP_ZONE).Destroy">AI<em>CAP</em>ZONE.Destroy</a>**: The AI has destroyed a bogey <a href="Unit.html">Unit</a>.</li>
|
||||
<li>**<a href="##(AI_CAP_ZONE).Destroyed">AI<em>CAP</em>ZONE.Destroyed</a>**: The AI has destroyed all bogeys <a href="Unit.html">Unit</a>s assigned in the CAS task.</li>
|
||||
<li><strong>Status</strong> ( Group ): The AI is checking status (fuel and damage). When the tresholds have been reached, the AI will RTB.</li>
|
||||
</ul>
|
||||
|
||||
<h2>1.3) Set the Range of Engagement</h2>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia11.JPG" alt="Range"/></p>
|
||||
|
||||
<p>An optional range can be set in meters,
|
||||
that will define when the AI will engage with the detected airborne enemy targets.
|
||||
The range can be beyond or smaller than the range of the Patrol Zone.
|
||||
The range is applied at the position of the AI.
|
||||
Use the method <a href="AI_CAP.html##(AI_CAP_ZONE).SetEngageRange">AI<em>CAP#AI</em>CAP_ZONE.SetEngageRange</a>() to define that range.</p>
|
||||
|
||||
<h2>1.4) Set the Zone of Engagement</h2>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia12.JPG" alt="Zone"/></p>
|
||||
|
||||
<p>An optional <a href="Zone.html">Zone</a> can be set,
|
||||
that will define when the AI will engage with the detected airborne enemy targets.
|
||||
Use the method <a href="AI_Cap.html##(AI_CAP_ZONE).SetEngageZone">AI<em>Cap#AI</em>CAP_ZONE.SetEngageZone</a>() to define that Zone.</p>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h1><strong>API CHANGE HISTORY</strong></h1>
|
||||
@@ -207,7 +130,10 @@ Use the method <a href="AI_Cap.html##(AI_CAP_ZONE).SetEngageZone">AI<em>Cap#AI</
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="#AI_CAP_ZONE">AI_CAP_ZONE</a></td>
|
||||
<td class="summary">
|
||||
<h1>1) <a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a> class, extends <a href="AI_CAP.html##(AI_PATROL_ZONE)">AI<em>CAP#AI</em>PATROL_ZONE</a></h1>
|
||||
|
||||
<p>The <a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a> class implements the core functions to patrol a <a href="Zone.html">Zone</a> by an AI <a href="Controllable.html">Controllable</a> or <a href="Group.html">Group</a>
|
||||
and automatically engage any airborne enemies that are within a certain range or within a certain zone.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -241,12 +167,6 @@ Use the method <a href="AI_Cap.html##(AI_CAP_ZONE).SetEngageZone">AI<em>Cap#AI</
|
||||
<td class="name" nowrap="nowrap"><a href="##(AI_CAP_ZONE).Accomplished">AI_CAP_ZONE.Accomplished</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(AI_CAP_ZONE).ClassName">AI_CAP_ZONE.ClassName</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -472,6 +392,94 @@ Use the method <a href="AI_Cap.html##(AI_CAP_ZONE).SetEngageZone">AI<em>Cap#AI</
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<h1>1) <a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a> class, extends <a href="AI_CAP.html##(AI_PATROL_ZONE)">AI<em>CAP#AI</em>PATROL_ZONE</a></h1>
|
||||
|
||||
<p>The <a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a> class implements the core functions to patrol a <a href="Zone.html">Zone</a> by an AI <a href="Controllable.html">Controllable</a> or <a href="Group.html">Group</a>
|
||||
and automatically engage any airborne enemies that are within a certain range or within a certain zone.</p>
|
||||
|
||||
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia3.JPG" alt="Process"/></p>
|
||||
|
||||
<p>The AI<em>CAP</em>ZONE is assigned a <a href="Group.html">Group</a> and this must be done before the AI<em>CAP</em>ZONE process can be started using the <strong>Start</strong> event.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia4.JPG" alt="Process"/></p>
|
||||
|
||||
<p>The AI will fly towards the random 3D point within the patrol zone, using a random speed within the given altitude and speed limits.
|
||||
Upon arrival at the 3D point, a new random 3D point will be selected within the patrol zone using the given limits.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia5.JPG" alt="Process"/></p>
|
||||
|
||||
<p>This cycle will continue.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia6.JPG" alt="Process"/></p>
|
||||
|
||||
<p>During the patrol, the AI will detect enemy targets, which are reported through the <strong>Detected</strong> event.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia9.JPG" alt="Process"/></p>
|
||||
|
||||
<p>When enemies are detected, the AI will automatically engage the enemy.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia10.JPG" alt="Process"/></p>
|
||||
|
||||
<p>Until a fuel or damage treshold has been reached by the AI, or when the AI is commanded to RTB.
|
||||
When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia13.JPG" alt="Process"/></p>
|
||||
|
||||
<h2>1.1) AI<em>CAP</em>ZONE constructor</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(AI_CAP_ZONE).New">AI<em>CAP</em>ZONE.New</a>(): Creates a new AI<em>CAP</em>ZONE object.</li>
|
||||
</ul>
|
||||
|
||||
<h2>1.2) AI<em>CAP</em>ZONE is a FSM</h2>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia2.JPG" alt="Process"/></p>
|
||||
|
||||
<h3>1.2.1) AI<em>CAP</em>ZONE States</h3>
|
||||
|
||||
<ul>
|
||||
<li><strong>None</strong> ( Group ): The process is not started yet.</li>
|
||||
<li><strong>Patrolling</strong> ( Group ): The AI is patrolling the Patrol Zone.</li>
|
||||
<li><strong>Engaging</strong> ( Group ): The AI is engaging the bogeys.</li>
|
||||
<li><strong>Returning</strong> ( Group ): The AI is returning to Base..</li>
|
||||
</ul>
|
||||
|
||||
<h3>1.2.2) AI<em>CAP</em>ZONE Events</h3>
|
||||
|
||||
<ul>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Start">AI<em>Patrol#AI</em>PATROL_ZONE.Start</a>**: Start the process.</li>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Route">AI<em>Patrol#AI</em>PATROL_ZONE.Route</a>**: Route the AI to a new random 3D point within the Patrol Zone.</li>
|
||||
<li>**<a href="##(AI_CAP_ZONE).Engage">AI<em>CAP</em>ZONE.Engage</a>**: Let the AI engage the bogeys.</li>
|
||||
<li>**<a href="##(AI_CAP_ZONE).Abort">AI<em>CAP</em>ZONE.Abort</a>**: Aborts the engagement and return patrolling in the patrol zone.</li>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).RTB">AI<em>Patrol#AI</em>PATROL_ZONE.RTB</a>**: Route the AI to the home base.</li>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Detect">AI<em>Patrol#AI</em>PATROL_ZONE.Detect</a>**: The AI is detecting targets.</li>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Detected">AI<em>Patrol#AI</em>PATROL_ZONE.Detected</a>**: The AI has detected new targets.</li>
|
||||
<li>**<a href="##(AI_CAP_ZONE).Destroy">AI<em>CAP</em>ZONE.Destroy</a>**: The AI has destroyed a bogey <a href="Unit.html">Unit</a>.</li>
|
||||
<li>**<a href="##(AI_CAP_ZONE).Destroyed">AI<em>CAP</em>ZONE.Destroyed</a>**: The AI has destroyed all bogeys <a href="Unit.html">Unit</a>s assigned in the CAS task.</li>
|
||||
<li><strong>Status</strong> ( Group ): The AI is checking status (fuel and damage). When the tresholds have been reached, the AI will RTB.</li>
|
||||
</ul>
|
||||
|
||||
<h2>1.3) Set the Range of Engagement</h2>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia11.JPG" alt="Range"/></p>
|
||||
|
||||
<p>An optional range can be set in meters,
|
||||
that will define when the AI will engage with the detected airborne enemy targets.
|
||||
The range can be beyond or smaller than the range of the Patrol Zone.
|
||||
The range is applied at the position of the AI.
|
||||
Use the method <a href="AI_CAP.html##(AI_CAP_ZONE).SetEngageRange">AI<em>CAP#AI</em>CAP_ZONE.SetEngageRange</a>() to define that range.</p>
|
||||
|
||||
<h2>1.4) Set the Zone of Engagement</h2>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAP\Dia12.JPG" alt="Zone"/></p>
|
||||
|
||||
<p>An optional <a href="Zone.html">Zone</a> can be set,
|
||||
that will define when the AI will engage with the detected airborne enemy targets.
|
||||
Use the method <a href="AI_Cap.html##(AI_CAP_ZONE).SetEngageZone">AI<em>Cap#AI</em>CAP_ZONE.SetEngageZone</a>() to define that Zone.</p>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
</dd>
|
||||
@@ -500,10 +508,7 @@ Use the method <a href="AI_Cap.html##(AI_CAP_ZONE).SetEngageZone">AI<em>Cap#AI</
|
||||
<h2><a id="#(AI_Cap)" >Type <code>AI_Cap</code></a></h2>
|
||||
|
||||
<h2><a id="#(AI_CAP_ZONE)" >Type <code>AI_CAP_ZONE</code></a></h2>
|
||||
|
||||
<p>AI<em>CAP</em>ZONE class</p>
|
||||
|
||||
<h3>Field(s)</h3>
|
||||
<h3>Field(s)</h3>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
@@ -556,20 +561,6 @@ Use the method <a href="AI_Cap.html##(AI_CAP_ZONE).SetEngageZone">AI<em>Cap#AI</
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em>#string</em>
|
||||
<a id="#(AI_CAP_ZONE).ClassName" >
|
||||
<strong>AI_CAP_ZONE.ClassName</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
|
||||
Reference in New Issue
Block a user