Documentation improvements.

This commit is contained in:
FlightControl_Master 2017-07-26 10:06:42 +02:00
parent 227752399b
commit 940f872b40
16 changed files with 505 additions and 65 deletions

View File

@ -567,13 +567,26 @@ do -- AI_A2A_DISPATCHER
}
--- AI_A2A_DISPATCHER constructor.
-- This is defining the A2A DISPATCHER for one coaliton.
-- The Dispatcher works with a @{Functional#Detection} object that is taking of the detection of targets using the EWR units.
-- The Detection object is polymorphic, depending on the type of detection object choosen, the detection will work differently.
-- @param #AI_A2A_DISPATCHER self
-- @param Functional.Detection#DETECTION_BASE Detection The DETECTION object that will detects targets using the the Early Warning Radar network.
-- @return #AI_A2A_DISPATCHER self
-- @usage
--
-- -- Set a new AI A2A Dispatcher object, based on an EWR network with a 6 km grouping radius.
-- -- Setup the Detection, using DETECTION_AREAS.
-- -- First define the SET of GROUPs that are defining the EWR network.
-- -- Here with prefixes DF CCCP AWACS, DF CCCP EWR.
-- DetectionSetGroup = SET_GROUP:New()
-- DetectionSetGroup:FilterPrefixes( { "DF CCCP AWACS", "DF CCCP EWR" } )
-- DetectionSetGroup:FilterStart()
--
-- -- Define the DETECTION_AREAS, using the DetectionSetGroup, with a 30km grouping radius.
-- Detection = DETECTION_AREAS:New( DetectionSetGroup, 30000 )
--
-- -- Now Setup the A2A dispatcher, and initialize it using the Detection object.
-- A2ADispatcher = AI_A2A_DISPATCHER:New( Detection ) --
--
function AI_A2A_DISPATCHER:New( Detection )
@ -795,11 +808,14 @@ do -- AI_A2A_DISPATCHER
-- @return #AI_A2A_DISPATCHER
-- @usage
--
-- -- Now Setup the A2A dispatcher, and initialize it using the Detection object.
-- A2ADispatcher = AI_A2A_DISPATCHER:New( Detection ) --
--
-- -- Set 100km as the radius to ground control intercept detected targets from the nearest airbase.
-- Dispatcher:SetGciRadius( 100000 )
-- A2ADispatcher:SetGciRadius( 100000 )
--
-- -- Set 200km as the radius to ground control intercept.
-- Dispatcher:SetGciRadius() -- 200000 is the default value.
-- A2ADispatcher:SetGciRadius() -- 200000 is the default value.
--
function AI_A2A_DISPATCHER:SetGciRadius( GciRadius )
@ -820,16 +836,19 @@ do -- AI_A2A_DISPATCHER
-- @return #AI_A2A_DISPATCHER
-- @usage
--
-- -- Now Setup the A2A dispatcher, and initialize it using the Detection object.
-- A2ADispatcher = AI_A2A_DISPATCHER:New( Detection )
--
-- -- Set one ZONE_POLYGON object as the border for the A2A dispatcher.
-- local BorderZone = ZONE_POLYGON( "CCCP Border", GROUP:FindByName( "CCCP Border" ) ) -- The GROUP object is a late activate helicopter unit.
-- Dispatcher:SetBorderZone( BorderZone )
-- A2ADispatcher:SetBorderZone( BorderZone )
--
-- or
-- or
--
-- -- Set two ZONE_POLYGON objects as the border for the A2A dispatcher.
-- local BorderZone1 = ZONE_POLYGON( "CCCP Border1", GROUP:FindByName( "CCCP Border1" ) ) -- The GROUP object is a late activate helicopter unit.
-- local BorderZone2 = ZONE_POLYGON( "CCCP Border2", GROUP:FindByName( "CCCP Border2" ) ) -- The GROUP object is a late activate helicopter unit.
-- Dispatcher:SetBorderZone( { BorderZone1, BorderZone2 } )
-- A2ADispatcher:SetBorderZone( { BorderZone1, BorderZone2 } )
--
--
function AI_A2A_DISPATCHER:SetBorderZone( BorderZone )
@ -849,6 +868,14 @@ do -- AI_A2A_DISPATCHER
-- @param #AI_A2A_DISPATCHER self
-- @param #boolean TacticalDisplay Provide a value of **true** to display every 30 seconds a tactical overview.
-- @return #AI_A2A_DISPATCHER
-- @usage
--
-- -- Now Setup the A2A dispatcher, and initialize it using the Detection object.
-- A2ADispatcher = AI_A2A_DISPATCHER:New( Detection )
--
-- -- Now Setup the Tactical Display for debug mode.
-- A2ADispatcher:SetTacticalDisplay( true )
--
function AI_A2A_DISPATCHER:SetTacticalDisplay( TacticalDisplay )
self.TacticalDisplay = TacticalDisplay
@ -967,8 +994,72 @@ do -- AI_A2A_DISPATCHER
end
---
--- This is the main method to define Squadrons programmatically.
-- Squadrons:
--
-- * Have a **name or key** that is the identifier or key of the squadron.
-- * Have **specific plane types** defined by **templates**.
-- * Are **located at one specific airbase**. Multiple squadrons can be located at one airbase through.
-- * Have a limited set of **resources**.
--
-- The name of the squadron given acts as the **squadron key** in the AI\_A2A\_DISPATCHER:Squadron...() methods.
--
-- Additionally, squadrons have specific configuration options to:
--
-- * Control how new aircraft are **taking off** from the airfield (in the air, cold, hot, at the runway).
-- * Control how returning aircraft are **landing** at the airfield (in the air near the airbase, after landing, after engine shutdown).
-- * Control the **grouping** of new aircraft spawned at the airfield. If there is more than one aircraft to be spawned, these may be grouped.
-- * Control the **overhead** or defensive strength of the squadron. Depending on the types of planes and amount of resources, the mission designer can choose to increase or reduce the amount of planes spawned.
--
-- For performance and bug workaround reasons within DCS, squadrons have different methods to spawn new aircraft or land returning or damaged aircraft.
--
-- @param #AI_A2A_DISPATCHER self
--
-- @param #string SquadronName A string (text) that defines the squadron identifier or the key of the Squadron.
-- It can be any name, for example `"104th Squadron"` or `"SQ SQUADRON1"`, whatever.
-- As long as you remember that this name becomes the identifier of your squadron you have defined.
-- You need to use this name in other methods too!
--
-- @param #string AirbaseName The airbase name where you want to have the squadron located.
-- You need to specify here EXACTLY the name of the airbase as you see it in the mission editor.
-- Examples are `"Batumi"` or `"Tbilisi-Lochini"`.
-- EXACTLY the airbase name, between quotes `""`.
-- To ease the airbase naming when using the LDT editor and IntelliSense, the @{Airbase#AIRBASE} class contains enumerations of the airbases of each map.
-- * Caucasus: @{Airbase#AIRBASE.Caucaus}
-- * Nevada or NTTR: @{Airbase#AIRBASE.Nevada}
-- * Normandy: @{Airbase#AIRBASE.Normandy}
--
-- @param #string SpawnTemplates A string or an array of strings specifying the **prefix names of the templates** (not going to explain what is templates here again).
-- Examples are `{ "104th", "105th" }` or `"104th"` or `"Template 1"` or `"BLUE PLANES"`.
-- Just remember that your template (groups late activated) need to start with the prefix you have specified in your code.
-- If you have only one prefix name for a squadron, you don't need to use the `{ }`, otherwise you need to use the brackets.
--
-- @param #number Resources A number that specifies how many resources are in stock of the squadron. It is still a bit buggy, this part. Just make this a large number for the moment. This will be fine tuned later.
--
-- @usage
--
-- -- Now Setup the A2A dispatcher, and initialize it using the Detection object.
-- A2ADispatcher = AI_A2A_DISPATCHER:New( Detection )
--
-- @usage
--
-- -- This will create squadron "Squadron1" at "Batumi" airbase, and will use plane types "SQ1" and has 40 planes in stock...
-- A2ADispatcher:SetSquadron( "Squadron1", "Batumi", "SQ1", 40 )
--
-- @usage
--
-- -- This will create squadron "Sq 1" at "Batumi" airbase, and will use plane types "Mig-29" and "Su-27" and has 20 planes in stock...
-- -- Note that in this implementation, the A2A dispatcher will select a random plane when a new plane (group) needs to be spawned for defenses.
-- -- Note the usage of the {} for the airplane templates list.
-- A2ADispatcher:SetSquadron( "Sq 1", "Batumi", { "Mig-29", "Su-27" }, 40 )
--
-- @usage
--
-- -- This will create 2 squadrons "104th" and "23th" at "Batumi" airbase, and will use plane types "Mig-29" and "Su-27" respectively and each squadron has 10 planes in stock...
-- -- Note that in this implementation, the A2A dispatcher will select a random plane when a new plane (group) needs to be spawned for defenses.
-- A2ADispatcher:SetSquadron( "104th", "Batumi", "Mig-29", 40 )
-- A2ADispatcher:SetSquadron( "23th", "Batumi", "Su-27", 40 )
--
-- @return #AI_A2A_DISPATCHER
function AI_A2A_DISPATCHER:SetSquadron( SquadronName, AirbaseName, SpawnTemplates, Resources )

View File

@ -461,7 +461,7 @@
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_DISPATCHER).SetSquadron">AI_A2A_DISPATCHER:SetSquadron(SquadronName, AirbaseName, SpawnTemplates, Resources)</a></td>
<td class="summary">
<p>This is the main method to define Squadrons programmatically.</p>
</td>
</tr>
<tr>
@ -2241,6 +2241,11 @@ Takeoff From the airbase hot, from the airbase cold, in the air, from the runway
<p>AI<em>A2A</em>DISPATCHER constructor.</p>
<p>This is defining the A2A DISPATCHER for one coaliton.
The Dispatcher works with a <a href="Functional.html##(Detection)">Functional#Detection</a> object that is taking of the detection of targets using the EWR units.
The Detection object is polymorphic, depending on the type of detection object choosen, the detection will work differently.</p>
<h3>Parameter</h3>
<ul>
<li>
@ -2257,8 +2262,18 @@ self</p>
<h3>Usage:</h3>
<pre class="example"><code>
-- Set a new AI A2A Dispatcher object, based on an EWR network with a 6 km grouping radius.
-- Setup the Detection, using DETECTION_AREAS.
-- First define the SET of GROUPs that are defining the EWR network.
-- Here with prefixes DF CCCP AWACS, DF CCCP EWR.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "DF CCCP AWACS", "DF CCCP EWR" } )
DetectionSetGroup:FilterStart()
-- Define the DETECTION_AREAS, using the DetectionSetGroup, with a 30km grouping radius.
Detection = DETECTION_AREAS:New( DetectionSetGroup, 30000 )
-- Now Setup the A2A dispatcher, and initialize it using the Detection object.
A2ADispatcher = AI_A2A_DISPATCHER:New( Detection ) --
</code></pre>
</dd>
@ -2694,16 +2709,19 @@ An object derived from ZONE<em>BASE, or a list of objects derived from ZONE</em>
<h3>Usage:</h3>
<pre class="example"><code>
-- Now Setup the A2A dispatcher, and initialize it using the Detection object.
A2ADispatcher = AI_A2A_DISPATCHER:New( Detection )
-- Set one ZONE_POLYGON object as the border for the A2A dispatcher.
local BorderZone = ZONE_POLYGON( "CCCP Border", GROUP:FindByName( "CCCP Border" ) ) -- The GROUP object is a late activate helicopter unit.
Dispatcher:SetBorderZone( BorderZone )
A2ADispatcher:SetBorderZone( BorderZone )
or
or
-- Set two ZONE_POLYGON objects as the border for the A2A dispatcher.
local BorderZone1 = ZONE_POLYGON( "CCCP Border1", GROUP:FindByName( "CCCP Border1" ) ) -- The GROUP object is a late activate helicopter unit.
local BorderZone2 = ZONE_POLYGON( "CCCP Border2", GROUP:FindByName( "CCCP Border2" ) ) -- The GROUP object is a late activate helicopter unit.
Dispatcher:SetBorderZone( { BorderZone1, BorderZone2 } )
A2ADispatcher:SetBorderZone( { BorderZone1, BorderZone2 } )
</code></pre>
@ -2859,11 +2877,14 @@ If too large, intercept missions may be triggered when the detected target is to
<h3>Usage:</h3>
<pre class="example"><code>
-- Now Setup the A2A dispatcher, and initialize it using the Detection object.
A2ADispatcher = AI_A2A_DISPATCHER:New( Detection ) --
-- Set 100km as the radius to ground control intercept detected targets from the nearest airbase.
Dispatcher:SetGciRadius( 100000 )
A2ADispatcher:SetGciRadius( 100000 )
-- Set 200km as the radius to ground control intercept.
Dispatcher:SetGciRadius() -- 200000 is the default value.
A2ADispatcher:SetGciRadius() -- 200000 is the default value.
</code></pre>
</dd>
@ -2877,28 +2898,73 @@ If too large, intercept missions may be triggered when the detected target is to
</dt>
<dd>
<p>This is the main method to define Squadrons programmatically.</p>
<p>Squadrons:</p>
<ul>
<li>Have a <strong>name or key</strong> that is the identifier or key of the squadron.</li>
<li>Have <strong>specific plane types</strong> defined by <strong>templates</strong>.</li>
<li>Are <strong>located at one specific airbase</strong>. Multiple squadrons can be located at one airbase through.</li>
<li>Have a limited set of <strong>resources</strong>.</li>
</ul>
<p>The name of the squadron given acts as the <strong>squadron key</strong> in the AI_A2A_DISPATCHER:Squadron...() methods.</p>
<p>Additionally, squadrons have specific configuration options to:</p>
<ul>
<li>Control how new aircraft are <strong>taking off</strong> from the airfield (in the air, cold, hot, at the runway).</li>
<li>Control how returning aircraft are <strong>landing</strong> at the airfield (in the air near the airbase, after landing, after engine shutdown).</li>
<li>Control the <strong>grouping</strong> of new aircraft spawned at the airfield. If there is more than one aircraft to be spawned, these may be grouped.</li>
<li>Control the <strong>overhead</strong> or defensive strength of the squadron. Depending on the types of planes and amount of resources, the mission designer can choose to increase or reduce the amount of planes spawned.</li>
</ul>
<p>For performance and bug workaround reasons within DCS, squadrons have different methods to spawn new aircraft or land returning or damaged aircraft.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> SquadronName </em></code>: </p>
<p><code><em>#string SquadronName </em></code>:
A string (text) that defines the squadron identifier or the key of the Squadron.
It can be any name, for example <code>"104th Squadron"</code> or <code>"SQ SQUADRON1"</code>, whatever.
As long as you remember that this name becomes the identifier of your squadron you have defined.
You need to use this name in other methods too!</p>
</li>
<li>
<p><code><em> AirbaseName </em></code>: </p>
<p><code><em>#string AirbaseName </em></code>:
The airbase name where you want to have the squadron located.
You need to specify here EXACTLY the name of the airbase as you see it in the mission editor.
Examples are <code>"Batumi"</code> or <code>"Tbilisi-Lochini"</code>.
EXACTLY the airbase name, between quotes <code>""</code>.
To ease the airbase naming when using the LDT editor and IntelliSense, the <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a> class contains enumerations of the airbases of each map.
* Caucasus: <a href="Airbase.html##(AIRBASE).Caucaus">Airbase#AIRBASE.Caucaus</a>
* Nevada or NTTR: <a href="Airbase.html##(AIRBASE).Nevada">Airbase#AIRBASE.Nevada</a>
* Normandy: <a href="Airbase.html##(AIRBASE).Normandy">Airbase#AIRBASE.Normandy</a></p>
</li>
<li>
<p><code><em> SpawnTemplates </em></code>: </p>
<p><code><em>#string SpawnTemplates </em></code>:
A string or an array of strings specifying the <strong>prefix names of the templates</strong> (not going to explain what is templates here again).
Examples are <code>{ "104th", "105th" }</code> or <code>"104th"</code> or <code>"Template 1"</code> or <code>"BLUE PLANES"</code>.
Just remember that your template (groups late activated) need to start with the prefix you have specified in your code.
If you have only one prefix name for a squadron, you don't need to use the <code>{ }</code>, otherwise you need to use the brackets.</p>
</li>
<li>
<p><code><em> Resources </em></code>: </p>
<p><code><em>#number Resources </em></code>:
A number that specifies how many resources are in stock of the squadron. It is still a bit buggy, this part. Just make this a large number for the moment. This will be fine tuned later.</p>
</li>
</ul>
@ -2907,6 +2973,30 @@ If too large, intercept missions may be triggered when the detected target is to
<p><em><a href="##(AI_A2A_DISPATCHER)">#AI<em>A2A</em>DISPATCHER</a>:</em></p>
<h3>Usages:</h3>
<ul>
<li><pre class="example"><code>
-- Now Setup the A2A dispatcher, and initialize it using the Detection object.
A2ADispatcher = AI_A2A_DISPATCHER:New( Detection )
</code></pre></li>
<li><pre class="example"><code>
-- This will create squadron "Squadron1" at "Batumi" airbase, and will use plane types "SQ1" and has 40 planes in stock...
A2ADispatcher:SetSquadron( "Squadron1", "Batumi", "SQ1", 40 )
</code></pre></li>
<li><pre class="example"><code>
-- This will create squadron "Sq 1" at "Batumi" airbase, and will use plane types "Mig-29" and "Su-27" and has 20 planes in stock...
-- Note that in this implementation, the A2A dispatcher will select a random plane when a new plane (group) needs to be spawned for defenses.
-- Note the usage of the {} for the airplane templates list.
A2ADispatcher:SetSquadron( "Sq 1", "Batumi", { "Mig-29", "Su-27" }, 40 )
</code></pre></li>
<li><pre class="example"><code>
-- This will create 2 squadrons "104th" and "23th" at "Batumi" airbase, and will use plane types "Mig-29" and "Su-27" respectively and each squadron has 10 planes in stock...
-- Note that in this implementation, the A2A dispatcher will select a random plane when a new plane (group) needs to be spawned for defenses.
A2ADispatcher:SetSquadron( "104th", "Batumi", "Mig-29", 40 )
A2ADispatcher:SetSquadron( "23th", "Batumi", "Su-27", 40 )
</code></pre></li>
</ul>
</dd>
</dl>
<dl class="function">
@ -3599,6 +3689,15 @@ Provide a value of <strong>true</strong> to display every 30 seconds a tactical
<p><em><a href="##(AI_A2A_DISPATCHER)">#AI<em>A2A</em>DISPATCHER</a>:</em></p>
<h3>Usage:</h3>
<pre class="example"><code>
-- Now Setup the A2A dispatcher, and initialize it using the Detection object.
A2ADispatcher = AI_A2A_DISPATCHER:New( Detection )
-- Now Setup the Tactical Display for debug mode.
A2ADispatcher:SetTacticalDisplay( true )
</code></pre>
</dd>
</dl>
<dl class="function">

View File

@ -926,6 +926,9 @@ 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

@ -241,12 +241,6 @@
<td class="name" nowrap="nowrap"><a href="##(ACT_ACCOUNT_DEADS).TargetSetUnit">ACT_ACCOUNT_DEADS.TargetSetUnit</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ACT_ACCOUNT_DEADS).TaskName">ACT_ACCOUNT_DEADS.TaskName</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -746,20 +740,6 @@ Each successful dead will trigger an Account state transition that can be scored
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(ACT_ACCOUNT_DEADS).TaskName" >
<strong>ACT_ACCOUNT_DEADS.TaskName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">

View File

@ -3417,6 +3417,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

@ -256,6 +256,12 @@ each detected set of potential targets can be lased or smoked...</p>
<td class="name" nowrap="nowrap"><a href="##(DESIGNATE).MenuAutoLase">DESIGNATE:MenuAutoLase(AutoLase)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DESIGNATE).MenuDesignate">DESIGNATE.MenuDesignate</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -301,7 +307,7 @@ each detected set of potential targets can be lased or smoked...</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DESIGNATE).New">DESIGNATE:New(CC, Detection, AttackSet)</a></td>
<td class="name" nowrap="nowrap"><a href="##(DESIGNATE).New">DESIGNATE:New(CC, Detection, AttackSet, Mission)</a></td>
<td class="summary">
<p>DESIGNATE Constructor.</p>
</td>
@ -960,6 +966,19 @@ function below will use the range 1-7 just in case</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DESIGNATE).MenuDesignate" >
<strong>DESIGNATE.MenuDesignate</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -1131,7 +1150,7 @@ function below will use the range 1-7 just in case</p>
<dt>
<a id="#(DESIGNATE).New" >
<strong>DESIGNATE:New(CC, Detection, AttackSet)</strong>
<strong>DESIGNATE:New(CC, Detection, AttackSet, Mission)</strong>
</a>
</dt>
<dd>
@ -1158,6 +1177,12 @@ function below will use the range 1-7 just in case</p>
<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>
<li>
<p><code><em><a href="Tasking.Mission.html##(MISSION)">Tasking.Mission#MISSION</a> Mission </em></code>:
(Optional) The Mission where the menu needs to be attached.</p>
</li>
</ul>
<h3>Return value</h3>

View File

@ -956,7 +956,7 @@ The different values of Unit.Category can be:</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DETECTION_BASE.DetectedItem).ItemID">DETECTION_BASE.DetectedItem.ItemID</a></td>
<td class="name" nowrap="nowrap"><a href="##(DETECTION_BASE.DetectedItem).ID">DETECTION_BASE.DetectedItem.ID</a></td>
<td class="summary">
<p>-- The identifier of the detected area.</p>
</td>
@ -4518,8 +4518,8 @@ The To State string.</p>
<dt>
<em>#number</em>
<a id="#(DETECTION_BASE.DetectedItem).ItemID" >
<strong>DETECTION_BASE.DetectedItem.ItemID</strong>
<a id="#(DETECTION_BASE.DetectedItem).ID" >
<strong>DETECTION_BASE.DetectedItem.ID</strong>
</a>
</dt>
<dd>

View File

@ -1598,7 +1598,7 @@ A string defining the start state.</p>
<dl class="function">
<dt>
<em></em>
<em>#string</em>
<a id="#(FSM)._StartState" >
<strong>FSM._StartState</strong>
</a>
@ -1897,7 +1897,6 @@ A string defining the start state.</p>
<dl class="function">
<dt>
<em></em>
<a id="#(FSM).current" >
<strong>FSM.current</strong>
</a>

View File

@ -241,6 +241,12 @@ classes are derived from, in order to set commands.</p>
<td class="name" nowrap="nowrap"><a href="##(MENU_BASE).MenuRemoveParent">MENU_BASE.MenuRemoveParent</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENU_BASE).MenuTag">MENU_BASE.MenuTag</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -259,6 +265,12 @@ classes are derived from, in order to set commands.</p>
<td class="name" nowrap="nowrap"><a href="##(MENU_BASE).SetRemoveParent">MENU_BASE:SetRemoveParent(RemoveParent)</a></td>
<td class="summary">
<p>Sets a <a href="Menu.html">Menu</a> to remove automatically the parent menu when the menu removed is the last child menu of that parent <a href="Menu.html">Menu</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENU_BASE).SetTag">MENU_BASE:SetTag(MenuTag)</a></td>
<td class="summary">
<p>Sets a tag for later selection of menu refresh.</p>
</td>
</tr>
<tr>
@ -406,13 +418,13 @@ classes are derived from, in order to set commands.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENU_GROUP).Remove">MENU_GROUP:Remove(MenuTime)</a></td>
<td class="name" nowrap="nowrap"><a href="##(MENU_GROUP).Remove">MENU_GROUP:Remove(MenuTime, MenuTag)</a></td>
<td class="summary">
<p>Removes the main menu and sub menus recursively of this MENU_GROUP.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENU_GROUP).RemoveSubMenus">MENU_GROUP:RemoveSubMenus(MenuTime)</a></td>
<td class="name" nowrap="nowrap"><a href="##(MENU_GROUP).RemoveSubMenus">MENU_GROUP:RemoveSubMenus(MenuTime, MenuTag, Menutag)</a></td>
<td class="summary">
<p>Removes the sub menus recursively of this MENU_GROUP.</p>
</td>
@ -464,7 +476,7 @@ classes are derived from, in order to set commands.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENU_GROUP_COMMAND).Remove">MENU_GROUP_COMMAND:Remove(MenuTime)</a></td>
<td class="name" nowrap="nowrap"><a href="##(MENU_GROUP_COMMAND).Remove">MENU_GROUP_COMMAND:Remove(MenuTime, MenuTag)</a></td>
<td class="summary">
<p>Removes a menu structure for a group.</p>
</td>
@ -896,6 +908,20 @@ The text of the child menu.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(MENU_BASE).MenuTag" >
<strong>MENU_BASE.MenuTag</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -979,6 +1005,33 @@ If true, the parent menu is automatically removed when this menu is the last chi
<p><em><a href="##(MENU_BASE)">#MENU_BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MENU_BASE).SetTag" >
<strong>MENU_BASE:SetTag(MenuTag)</strong>
</a>
</dt>
<dd>
<p>Sets a tag for later selection of menu refresh.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string MenuTag </em></code>:
A Tag or Key that will filter only menu items set with this key.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(MENU_BASE)">#MENU_BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
@ -1534,19 +1587,25 @@ self</p>
<dt>
<a id="#(MENU_GROUP).Remove" >
<strong>MENU_GROUP:Remove(MenuTime)</strong>
<strong>MENU_GROUP:Remove(MenuTime, MenuTag)</strong>
</a>
</dt>
<dd>
<p>Removes the main menu and sub menus recursively of this MENU_GROUP.</p>
<h3>Parameter</h3>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> MenuTime </em></code>: </p>
</li>
<li>
<p><code><em> MenuTag </em></code>:
A Tag or Key to filter the menus to be refreshed with the Tag set.</p>
</li>
</ul>
<h3>Return value</h3>
@ -1560,19 +1619,30 @@ self</p>
<dt>
<a id="#(MENU_GROUP).RemoveSubMenus" >
<strong>MENU_GROUP:RemoveSubMenus(MenuTime)</strong>
<strong>MENU_GROUP:RemoveSubMenus(MenuTime, MenuTag, Menutag)</strong>
</a>
</dt>
<dd>
<p>Removes the sub menus recursively of this MENU_GROUP.</p>
<h3>Parameter</h3>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> MenuTime </em></code>: </p>
</li>
<li>
<p><code><em> MenuTag </em></code>:
A Tag or Key to filter the menus to be refreshed with the Tag set.</p>
</li>
<li>
<p><code><em> Menutag </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
@ -1729,19 +1799,25 @@ An argument for the function.</p>
<dt>
<a id="#(MENU_GROUP_COMMAND).Remove" >
<strong>MENU_GROUP_COMMAND:Remove(MenuTime)</strong>
<strong>MENU_GROUP_COMMAND:Remove(MenuTime, MenuTag)</strong>
</a>
</dt>
<dd>
<p>Removes a menu structure for a group.</p>
<h3>Parameter</h3>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> MenuTime </em></code>: </p>
</li>
<li>
<p><code><em> MenuTag </em></code>:
A Tag or Key to filter the menus to be refreshed with the Tag set.</p>
</li>
</ul>
<h3>Return value</h3>

View File

@ -349,6 +349,12 @@
<td class="name" nowrap="nowrap"><a href="##(MISSION).MissionGoals">MISSION:MissionGoals()</a></td>
<td class="summary">
<p>MissionGoals Trigger for MISSION</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MISSION).MissionGroupMenu">MISSION.MissionGroupMenu</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -1460,6 +1466,19 @@ The status</p>
<p>MissionGoals Trigger for MISSION</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MISSION).MissionGroupMenu" >
<strong>MISSION.MissionGroupMenu</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">

View File

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

View File

@ -2746,6 +2746,9 @@ when nothing was spawned.</p>
<p> By default, no InitLimit</p>
</dd>
</dl>
<dl class="function">
@ -2781,7 +2784,7 @@ when nothing was spawned.</p>
<dl class="function">
<dt>
<em></em>
<em>#number</em>
<a id="#(SPAWN).SpawnMaxGroups" >
<strong>SPAWN.SpawnMaxGroups</strong>
</a>
@ -2798,7 +2801,7 @@ when nothing was spawned.</p>
<dl class="function">
<dt>
<em></em>
<em>#number</em>
<a id="#(SPAWN).SpawnMaxUnitsAlive" >
<strong>SPAWN.SpawnMaxUnitsAlive</strong>
</a>

View File

@ -396,7 +396,19 @@
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).MenuAssignToGroup">TASK.MenuAssignToGroup(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(TASK).MenuAssignToGroup">TASK:MenuAssignToGroup(TaskGroup)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).MenuAssigned">TASK.MenuAssigned</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).MenuPlanned">TASK.MenuPlanned</a></td>
<td class="summary">
</td>
@ -1795,7 +1807,7 @@ true if Unit is part of the Task.</p>
<dt>
<a id="#(TASK).MenuAssignToGroup" >
<strong>TASK.MenuAssignToGroup(MenuParam)</strong>
<strong>TASK:MenuAssignToGroup(TaskGroup)</strong>
</a>
</dt>
<dd>
@ -1806,10 +1818,36 @@ true if Unit is part of the Task.</p>
<ul>
<li>
<p><code><em> MenuParam </em></code>: </p>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> TaskGroup </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK).MenuAssigned" >
<strong>TASK.MenuAssigned</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK).MenuPlanned" >
<strong>TASK.MenuPlanned</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">

View File

@ -222,6 +222,12 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G).SetTargetCoordinate">TASK_A2G:SetTargetCoordinate(TargetCoordinate, TaskUnit)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G).SetTargetSetUnit">TASK_A2G:SetTargetSetUnit(TargetSetUnit)</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -274,6 +280,12 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_BAI).TargetSetUnit">TASK_A2G_BAI.TargetSetUnit</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_BAI).UpdateTaskInfo">TASK_A2G_BAI:UpdateTaskInfo()</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -320,6 +332,12 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_CAS).TargetSetUnit">TASK_A2G_CAS.TargetSetUnit</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_CAS).UpdateTaskInfo">TASK_A2G_CAS:UpdateTaskInfo()</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -366,6 +384,12 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_SEAD).TargetSetUnit">TASK_A2G_SEAD.TargetSetUnit</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_A2G_SEAD).UpdateTaskInfo">TASK_A2G_SEAD:UpdateTaskInfo()</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -809,6 +833,28 @@ The Coordinate object where the Target is located on the map.</p>
<dl class="function">
<dt>
<a id="#(TASK_A2G).SetTargetSetUnit" >
<strong>TASK_A2G:SetTargetSetUnit(TargetSetUnit)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Set.html##(SET_UNIT)">Core.Set#SET_UNIT</a> TargetSetUnit </em></code>:
The set of targets.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G).SetTargetZone" >
<strong>TASK_A2G:SetTargetZone(TargetZone, TaskUnit)</strong>
</a>
@ -1049,6 +1095,19 @@ The score in points.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G_BAI).UpdateTaskInfo" >
<strong>TASK_A2G_BAI:UpdateTaskInfo()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -1289,6 +1348,19 @@ The score in points.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G_CAS).UpdateTaskInfo" >
<strong>TASK_A2G_CAS:UpdateTaskInfo()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -1529,6 +1601,19 @@ The score in points.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_A2G_SEAD).UpdateTaskInfo" >
<strong>TASK_A2G_SEAD:UpdateTaskInfo()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">

View File

@ -272,11 +272,21 @@ Find a summary below describing for which situation a task type is created:</p>
</li>
</ul>
<h3>Return value</h3>
<h3>Return values</h3>
<ol>
<li>
<p><em><a href="Tasking.Task.html##(TASK)">Tasking.Task#TASK</a>:</em></p>
<p><em><a href="Core.Set.html##(SET_UNIT)">Core.Set#SET_UNIT</a>:</em>
TargetSetUnit: The target set of units.</p>
</li>
<li>
<p><em>#nil:</em>
If there are no targets to be set.</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
@ -298,11 +308,21 @@ Find a summary below describing for which situation a task type is created:</p>
</li>
</ul>
<h3>Return value</h3>
<h3>Return values</h3>
<ol>
<li>
<p><em><a href="Tasking.Task.html##(TASK)">Tasking.Task#TASK</a>:</em></p>
<p><em><a href="Core.Set.html##(SET_UNIT)">Core.Set#SET_UNIT</a>:</em>
TargetSetUnit: The target set of units.</p>
</li>
<li>
<p><em>#nil:</em>
If there are no targets to be set.</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
@ -382,7 +402,7 @@ Find a summary below describing for which situation a task type is created:</p>
<ol>
<li>
<p><em><a href="Set.html##(SET_UNIT)">Set#SET_UNIT</a>:</em>
<p><em><a href="Core.Set.html##(SET_UNIT)">Core.Set#SET_UNIT</a>:</em>
TargetSetUnit: The target set of units.</p>
</li>

View File

@ -631,7 +631,7 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<dl class="function">
<dt>
<em></em>
<em>#number</em>
<a id="#(TASK_CARGO).CargoLimit" >
<strong>TASK_CARGO.CargoLimit</strong>
</a>