Updated stuff in tasking

-- SET improved
-- Resolved bug with destroy scoring not granted.
-- Implemented LL for all detection reports
-- Testing
-- Added test mission TAD-220 for DETECTION_TYPES testing.
This commit is contained in:
FlightControl
2017-03-20 12:53:36 +01:00
parent 1dd8f523a1
commit 32c5227d71
32 changed files with 1344 additions and 971 deletions

View File

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

@@ -2425,6 +2425,7 @@ The UNIT carrying the package.</p>
<dl class="function">
<dt>
<em></em>
<a id="#(AI_CARGO_UNIT).CargoCarrier" >
<strong>AI_CARGO_UNIT.CargoCarrier</strong>
</a>

View File

@@ -243,9 +243,9 @@
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(REPORT).Text">REPORT:Text()</a></td>
<td class="name" nowrap="nowrap"><a href="##(REPORT).Text">REPORT:Text(Delimiter)</a></td>
<td class="summary">
<p>Produces the text of the report, taking into account an optional delimeter, which is \n by default.</p>
</td>
</tr>
</table>
@@ -788,12 +788,26 @@ Group#GROUP</p>
<dt>
<a id="#(REPORT).Text" >
<strong>REPORT:Text()</strong>
<strong>REPORT:Text(Delimiter)</strong>
</a>
</dt>
<dd>
<p>Produces the text of the report, taking into account an optional delimeter, which is \n by default.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Delimiter </em></code>:
(optional) A delimiter text.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#string:</em>
The report text.</p>
</dd>
</dl>

View File

@@ -2105,6 +2105,7 @@ self</p>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(DETECTION_BASE).DetectedItemCount" >
<strong>DETECTION_BASE.DetectedItemCount</strong>
</a>
@@ -2118,6 +2119,7 @@ self</p>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(DETECTION_BASE).DetectedItemMax" >
<strong>DETECTION_BASE.DetectedItemMax</strong>
</a>
@@ -2333,8 +2335,8 @@ self</p>
</ul>
<h3>Return value</h3>
<p><em><a href="##(DETECTION_BASE.DetectedItem)">#DETECTION_BASE.DetectedItem</a>:</em></p>
<p>DETECTION_BASE.DetectedItem</p>
</dd>
</dl>

View File

@@ -877,7 +877,7 @@ YYYY-MM-DD: CLASS:<strong>NewFunction( Params )</strong> added</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FSM_PROCESS).onstatechange">FSM_PROCESS:onstatechange(ProcessUnit, Event, From, To, Dummy)</a></td>
<td class="name" nowrap="nowrap"><a href="##(FSM_PROCESS).onstatechange">FSM_PROCESS:onstatechange(ProcessUnit, Event, From, To, Task, Dummy)</a></td>
<td class="summary">
<p>StateMachine callback function for a FSM_PROCESS</p>
</td>
@@ -1554,7 +1554,7 @@ A string defining the start state.</p>
<dl class="function">
<dt>
<em>#string</em>
<em></em>
<a id="#(FSM)._StartState" >
<strong>FSM._StartState</strong>
</a>
@@ -1853,6 +1853,7 @@ A string defining the start state.</p>
<dl class="function">
<dt>
<em></em>
<a id="#(FSM).current" >
<strong>FSM.current</strong>
</a>
@@ -2637,7 +2638,7 @@ self</p>
<dt>
<a id="#(FSM_PROCESS).onstatechange" >
<strong>FSM_PROCESS:onstatechange(ProcessUnit, Event, From, To, Dummy)</strong>
<strong>FSM_PROCESS:onstatechange(ProcessUnit, Event, From, To, Task, Dummy)</strong>
</a>
</dt>
<dd>
@@ -2668,6 +2669,11 @@ self</p>
</li>
<li>
<p><code><em> Task </em></code>: </p>
</li>
<li>
<p><code><em> Dummy </em></code>: </p>
</li>

View File

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

@@ -72,253 +72,39 @@
<div id="content">
<h1>Module <code>Set</code></h1>
<p><strong>Core</strong> - SET classes define <strong>collections</strong> of objects to perform <strong>bulk actions</strong> and logically <strong>group</strong> objects.</p>
<p><strong>Core</strong> - SET_ classes define <strong>collections</strong> of objects to perform <strong>bulk actions</strong> and logically <strong>group</strong> objects.</p>
<hr/>
<h1>1) <a href="Set.html##(SET_BASE)">Set#SET_BASE</a> class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>The <a href="Set.html##(SET_BASE)">Set#SET_BASE</a> class defines the core functions that define a collection of objects.
A SET provides iterators to iterate the SET, but will <strong>temporarily</strong> yield the ForEach interator loop at defined <strong>"intervals"</strong> to the mail simulator loop.
In this way, large loops can be done while not blocking the simulator main processing loop.
The default <strong>"yield interval"</strong> is after 10 objects processed.
The default <strong>"time interval"</strong> is after 0.001 seconds.</p>
<h2>1.1) Add or remove objects from the SET</h2>
<p>Some key core functions are <a href="Set.html##(SET_BASE).Add">Set#SET_BASE.Add</a> and <a href="Set.html##(SET_BASE).Remove">Set#SET_BASE.Remove</a> to add or remove objects from the SET in your logic.</p>
<h2>1.2) Define the SET iterator <strong>"yield interval"</strong> and the <strong>"time interval"</strong></h2>
<p>Modify the iterator intervals with the <a href="Set.html##(SET_BASE).SetInteratorIntervals">Set#SET_BASE.SetInteratorIntervals</a> method.
You can set the <strong>"yield interval"</strong>, and the <strong>"time interval"</strong>. (See above).</p>
<p><img src="..\Presentations\SET\Dia1.JPG" alt="Banner Image"/></p>
<hr/>
<h1>2) <a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a> class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a> class to build sets of groups belonging to certain:</p>
<p>SET_ classes group objects of the same type into a collection, which is either:</p>
<ul>
<li>Coalitions</li>
<li>Categories</li>
<li>Countries</li>
<li>Starting with certain prefix strings.</li>
<li>Manually managed using the <strong>:Add...()</strong> or <strong>:Remove...()</strong> methods. The initial SET can be filtered with the **<a href="##(SET_BASE).FilterOnce">SET_BASE.FilterOnce</a>()** method</li>
<li>Dynamically updated when new objects are created or objects are destroyed using the **<a href="##(SET_BASE).FilterStart">SET_BASE.FilterStart</a>()** method.</li>
</ul>
<h2>2.1) SET_GROUP construction method:</h2>
<p>Create a new SET_GROUP object with the <a href="##(SET_GROUP).New">SET_GROUP.New</a> method:</p>
<p>Various types of SET_ classes are available:</p>
<ul>
<li><a href="##(SET_GROUP).New">SET_GROUP.New</a>: Creates a new SET_GROUP object.</li>
<li><a href="##(SET_UNIT)">#SET_UNIT</a>: Defines a colleciton of <a href="Unit.html">Unit</a>s filtered by filter criteria.</li>
<li><a href="##(SET_GROUP)">#SET_GROUP</a>: Defines a collection of <a href="Group.html">Group</a>s filtered by filter criteria.</li>
<li><a href="##(SET_CLIENT)">#SET_CLIENT</a>: Defines a collection of <a href="Client.html">Client</a>s filterd by filter criteria.</li>
<li><a href="##(SET_AIRBASE)">#SET_AIRBASE</a>: Defines a collection of <a href="Airbase.html">Airbase</a>s filtered by filter criteria.</li>
</ul>
<h2>2.2) Add or Remove GROUP(s) from SET_GROUP: </h2>
<p>GROUPS can be added and removed using the <a href="Set.html##(SET_GROUP).AddGroupsByName">Set#SET_GROUP.AddGroupsByName</a> and <a href="Set.html##(SET_GROUP).RemoveGroupsByName">Set#SET_GROUP.RemoveGroupsByName</a> respectively.
These methods take a single GROUP name or an array of GROUP names to be added or removed from SET_GROUP.</p>
<p>These classes are derived from <a href="##(SET_BASE)">#SET_BASE</a>, which contains the main methods to manage SETs.</p>
<h2>2.3) SET_GROUP filter criteria: </h2>
<p>You can set filter criteria to define the set of groups within the SET_GROUP.
Filter criteria are defined by:</p>
<p>A multitude of other methods are available in SET_ classes that allow to:</p>
<ul>
<li><a href="##(SET_GROUP).FilterCoalitions">SET_GROUP.FilterCoalitions</a>: Builds the SET_GROUP with the groups belonging to the coalition(s).</li>
<li><a href="##(SET_GROUP).FilterCategories">SET_GROUP.FilterCategories</a>: Builds the SET_GROUP with the groups belonging to the category(ies).</li>
<li><a href="##(SET_GROUP).FilterCountries">SET_GROUP.FilterCountries</a>: Builds the SET_GROUP with the gruops belonging to the country(ies).</li>
<li><a href="##(SET_GROUP).FilterPrefixes">SET_GROUP.FilterPrefixes</a>: Builds the SET_GROUP with the groups starting with the same prefix string(s).</li>
<li>Validate the presence of objects in the SET.</li>
<li>Trigger events when objects in the SET change a zone presence.</li>
</ul>
<p>Once the filter criteria have been set for the SET_GROUP, you can start filtering using:</p>
<ul>
<li><a href="##(SET_GROUP).FilterStart">SET_GROUP.FilterStart</a>: Starts the filtering of the groups within the SET_GROUP and add or remove GROUP objects <strong>dynamically</strong>.</li>
</ul>
<p>Planned filter criteria within development are (so these are not yet available):</p>
<ul>
<li><a href="##(SET_GROUP).FilterZones">SET_GROUP.FilterZones</a>: Builds the SET_GROUP with the groups within a <a href="Zone.html##(ZONE)">Zone#ZONE</a>.</li>
</ul>
<h2>2.4) SET_GROUP iterators:</h2>
<p>Once the filters have been defined and the SET<em>GROUP has been built, you can iterate the SET</em>GROUP with the available iterator methods.
The iterator methods will walk the SET<em>GROUP set, and call for each element within the set a function that you provide.
The following iterator methods are currently available within the SET</em>GROUP:</p>
<ul>
<li><a href="##(SET_GROUP).ForEachGroup">SET_GROUP.ForEachGroup</a>: Calls a function for each alive group it finds within the SET_GROUP.</li>
<li><a href="##(SET_GROUP).ForEachGroupCompletelyInZone">SET_GROUP.ForEachGroupCompletelyInZone</a>: Iterate the SET_GROUP and call an iterator function for each <strong>alive</strong> GROUP presence completely in a <a href="Zone.html">Zone</a>, providing the GROUP and optional parameters to the called function.</li>
<li><a href="##(SET_GROUP).ForEachGroupPartlyInZone">SET_GROUP.ForEachGroupPartlyInZone</a>: Iterate the SET_GROUP and call an iterator function for each <strong>alive</strong> GROUP presence partly in a <a href="Zone.html">Zone</a>, providing the GROUP and optional parameters to the called function.</li>
<li><a href="##(SET_GROUP).ForEachGroupNotInZone">SET_GROUP.ForEachGroupNotInZone</a>: Iterate the SET_GROUP and call an iterator function for each <strong>alive</strong> GROUP presence not in a <a href="Zone.html">Zone</a>, providing the GROUP and optional parameters to the called function.</li>
</ul>
<hr/>
<h1>3) <a href="Set.html##(SET_UNIT)">Set#SET_UNIT</a> class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_UNIT)">Set#SET_UNIT</a> class to build sets of units belonging to certain:</p>
<ul>
<li>Coalitions</li>
<li>Categories</li>
<li>Countries</li>
<li>Unit types</li>
<li>Starting with certain prefix strings.</li>
</ul>
<h2>3.1) SET_UNIT construction method:</h2>
<p>Create a new SET_UNIT object with the <a href="##(SET_UNIT).New">SET_UNIT.New</a> method:</p>
<ul>
<li><a href="##(SET_UNIT).New">SET_UNIT.New</a>: Creates a new SET_UNIT object.</li>
</ul>
<h2>3.2) Add or Remove UNIT(s) from SET_UNIT: </h2>
<p>UNITs can be added and removed using the <a href="Set.html##(SET_UNIT).AddUnitsByName">Set#SET_UNIT.AddUnitsByName</a> and <a href="Set.html##(SET_UNIT).RemoveUnitsByName">Set#SET_UNIT.RemoveUnitsByName</a> respectively.
These methods take a single UNIT name or an array of UNIT names to be added or removed from SET_UNIT.</p>
<h2>3.3) SET_UNIT filter criteria: </h2>
<p>You can set filter criteria to define the set of units within the SET_UNIT.
Filter criteria are defined by:</p>
<ul>
<li><a href="##(SET_UNIT).FilterCoalitions">SET_UNIT.FilterCoalitions</a>: Builds the SET_UNIT with the units belonging to the coalition(s).</li>
<li><a href="##(SET_UNIT).FilterCategories">SET_UNIT.FilterCategories</a>: Builds the SET_UNIT with the units belonging to the category(ies).</li>
<li><a href="##(SET_UNIT).FilterTypes">SET_UNIT.FilterTypes</a>: Builds the SET_UNIT with the units belonging to the unit type(s).</li>
<li><a href="##(SET_UNIT).FilterCountries">SET_UNIT.FilterCountries</a>: Builds the SET_UNIT with the units belonging to the country(ies).</li>
<li><a href="##(SET_UNIT).FilterPrefixes">SET_UNIT.FilterPrefixes</a>: Builds the SET_UNIT with the units starting with the same prefix string(s).</li>
</ul>
<p>Once the filter criteria have been set for the SET_UNIT, you can start filtering using:</p>
<ul>
<li><a href="##(SET_UNIT).FilterStart">SET_UNIT.FilterStart</a>: Starts the filtering of the units within the SET_UNIT.</li>
</ul>
<p>Planned filter criteria within development are (so these are not yet available):</p>
<ul>
<li><a href="##(SET_UNIT).FilterZones">SET_UNIT.FilterZones</a>: Builds the SET_UNIT with the units within a <a href="Zone.html##(ZONE)">Zone#ZONE</a>.</li>
</ul>
<h2>3.4) SET_UNIT iterators:</h2>
<p>Once the filters have been defined and the SET<em>UNIT has been built, you can iterate the SET</em>UNIT with the available iterator methods.
The iterator methods will walk the SET<em>UNIT set, and call for each element within the set a function that you provide.
The following iterator methods are currently available within the SET</em>UNIT:</p>
<ul>
<li><a href="##(SET_UNIT).ForEachUnit">SET_UNIT.ForEachUnit</a>: Calls a function for each alive unit it finds within the SET_UNIT.</li>
<li><a href="##(SET_GROUP).ForEachGroupCompletelyInZone">SET_GROUP.ForEachGroupCompletelyInZone</a>: Iterate the SET_GROUP and call an iterator function for each <strong>alive</strong> GROUP presence completely in a <a href="Zone.html">Zone</a>, providing the GROUP and optional parameters to the called function.</li>
<li><a href="##(SET_GROUP).ForEachGroupNotInZone">SET_GROUP.ForEachGroupNotInZone</a>: Iterate the SET_GROUP and call an iterator function for each <strong>alive</strong> GROUP presence not in a <a href="Zone.html">Zone</a>, providing the GROUP and optional parameters to the called function.</li>
</ul>
<p>Planned iterators methods in development are (so these are not yet available):</p>
<ul>
<li><a href="##(SET_UNIT).ForEachUnitInUnit">SET_UNIT.ForEachUnitInUnit</a>: Calls a function for each unit contained within the SET_UNIT.</li>
<li><a href="##(SET_UNIT).ForEachUnitCompletelyInZone">SET_UNIT.ForEachUnitCompletelyInZone</a>: Iterate and call an iterator function for each <strong>alive</strong> UNIT presence completely in a <a href="Zone.html">Zone</a>, providing the UNIT and optional parameters to the called function.</li>
<li><a href="##(SET_UNIT).ForEachUnitNotInZone">SET_UNIT.ForEachUnitNotInZone</a>: Iterate and call an iterator function for each <strong>alive</strong> UNIT presence not in a <a href="Zone.html">Zone</a>, providing the UNIT and optional parameters to the called function.</li>
</ul>
<hr/>
<h1>4) <a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a> class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a> class to build sets of units belonging to certain:</p>
<ul>
<li>Coalitions</li>
<li>Categories</li>
<li>Countries</li>
<li>Client types</li>
<li>Starting with certain prefix strings.</li>
</ul>
<h2>4.1) SET_CLIENT construction method:</h2>
<p>Create a new SET_CLIENT object with the <a href="##(SET_CLIENT).New">SET_CLIENT.New</a> method:</p>
<ul>
<li><a href="##(SET_CLIENT).New">SET_CLIENT.New</a>: Creates a new SET_CLIENT object.</li>
</ul>
<h2>4.2) Add or Remove CLIENT(s) from SET_CLIENT: </h2>
<p>CLIENTs can be added and removed using the <a href="Set.html##(SET_CLIENT).AddClientsByName">Set#SET_CLIENT.AddClientsByName</a> and <a href="Set.html##(SET_CLIENT).RemoveClientsByName">Set#SET_CLIENT.RemoveClientsByName</a> respectively.
These methods take a single CLIENT name or an array of CLIENT names to be added or removed from SET_CLIENT.</p>
<h2>4.3) SET_CLIENT filter criteria: </h2>
<p>You can set filter criteria to define the set of clients within the SET_CLIENT.
Filter criteria are defined by:</p>
<ul>
<li><a href="##(SET_CLIENT).FilterCoalitions">SET_CLIENT.FilterCoalitions</a>: Builds the SET_CLIENT with the clients belonging to the coalition(s).</li>
<li><a href="##(SET_CLIENT).FilterCategories">SET_CLIENT.FilterCategories</a>: Builds the SET_CLIENT with the clients belonging to the category(ies).</li>
<li><a href="##(SET_CLIENT).FilterTypes">SET_CLIENT.FilterTypes</a>: Builds the SET_CLIENT with the clients belonging to the client type(s).</li>
<li><a href="##(SET_CLIENT).FilterCountries">SET_CLIENT.FilterCountries</a>: Builds the SET_CLIENT with the clients belonging to the country(ies).</li>
<li><a href="##(SET_CLIENT).FilterPrefixes">SET_CLIENT.FilterPrefixes</a>: Builds the SET_CLIENT with the clients starting with the same prefix string(s).</li>
</ul>
<p>Once the filter criteria have been set for the SET_CLIENT, you can start filtering using:</p>
<ul>
<li><a href="##(SET_CLIENT).FilterStart">SET_CLIENT.FilterStart</a>: Starts the filtering of the clients within the SET_CLIENT.</li>
</ul>
<p>Planned filter criteria within development are (so these are not yet available):</p>
<ul>
<li><a href="##(SET_CLIENT).FilterZones">SET_CLIENT.FilterZones</a>: Builds the SET_CLIENT with the clients within a <a href="Zone.html##(ZONE)">Zone#ZONE</a>.</li>
</ul>
<h2>4.4) SET_CLIENT iterators:</h2>
<p>Once the filters have been defined and the SET<em>CLIENT has been built, you can iterate the SET</em>CLIENT with the available iterator methods.
The iterator methods will walk the SET<em>CLIENT set, and call for each element within the set a function that you provide.
The following iterator methods are currently available within the SET</em>CLIENT:</p>
<ul>
<li><a href="##(SET_CLIENT).ForEachClient">SET_CLIENT.ForEachClient</a>: Calls a function for each alive client it finds within the SET_CLIENT.</li>
</ul>
<hr/>
<h1>5) <a href="Set.html##(SET_AIRBASE)">Set#SET_AIRBASE</a> class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_AIRBASE)">Set#SET_AIRBASE</a> class to build sets of airbases optionally belonging to certain:</p>
<ul>
<li>Coalitions</li>
</ul>
<h2>5.1) SET_AIRBASE construction</h2>
<p>Create a new SET_AIRBASE object with the <a href="##(SET_AIRBASE).New">SET_AIRBASE.New</a> method:</p>
<ul>
<li><a href="##(SET_AIRBASE).New">SET_AIRBASE.New</a>: Creates a new SET_AIRBASE object.</li>
</ul>
<h2>5.2) Add or Remove AIRBASEs from SET_AIRBASE </h2>
<p>AIRBASEs can be added and removed using the <a href="Set.html##(SET_AIRBASE).AddAirbasesByName">Set#SET_AIRBASE.AddAirbasesByName</a> and <a href="Set.html##(SET_AIRBASE).RemoveAirbasesByName">Set#SET_AIRBASE.RemoveAirbasesByName</a> respectively.
These methods take a single AIRBASE name or an array of AIRBASE names to be added or removed from SET_AIRBASE.</p>
<h2>5.3) SET_AIRBASE filter criteria </h2>
<p>You can set filter criteria to define the set of clients within the SET_AIRBASE.
Filter criteria are defined by:</p>
<ul>
<li><a href="##(SET_AIRBASE).FilterCoalitions">SET_AIRBASE.FilterCoalitions</a>: Builds the SET_AIRBASE with the airbases belonging to the coalition(s).</li>
</ul>
<p>Once the filter criteria have been set for the SET_AIRBASE, you can start filtering using:</p>
<ul>
<li><a href="##(SET_AIRBASE).FilterStart">SET_AIRBASE.FilterStart</a>: Starts the filtering of the airbases within the SET_AIRBASE.</li>
</ul>
<h2>5.4) SET_AIRBASE iterators:</h2>
<p>Once the filters have been defined and the SET<em>AIRBASE has been built, you can iterate the SET</em>AIRBASE with the available iterator methods.
The iterator methods will walk the SET<em>AIRBASE set, and call for each airbase within the set a function that you provide.
The following iterator methods are currently available within the SET</em>AIRBASE:</p>
<ul>
<li><a href="##(SET_AIRBASE).ForEachAirbase">SET_AIRBASE.ForEachAirbase</a>: Calls a function for each airbase it finds within the SET_AIRBASE.</li>
</ul>
<hr/>
<h3>Authors:</h3>
<ul>
@@ -1026,6 +812,12 @@ The following iterator methods are currently available within the SET</em>AIRBAS
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).ForEachUnitNotInZone">SET_UNIT:ForEachUnitNotInZone(ZoneObject, IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the SET_UNIT and call an iterator function for each <strong>alive</strong> UNIT presence not in a <a href="Zone.html">Zone</a>, providing the UNIT and optional parameters to the called function.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).GetTypeNames">SET_UNIT:GetTypeNames(Delimiter)</a></td>
<td class="summary">
<p>Retrieve the type names of the <a href="Unit.html">Unit</a>s in the SET, delimited by an optional delimiter.</p>
</td>
</tr>
<tr>
@@ -1171,7 +963,54 @@ The following iterator methods are currently available within the SET</em>AIRBAS
<h2><a id="#(SET_AIRBASE)" >Type <code>SET_AIRBASE</code></a></h2>
<p>SET_AIRBASE class</p>
<h1>5) SET_AIRBASE class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_AIRBASE)">Set#SET_AIRBASE</a> class to build sets of airbases optionally belonging to certain:</p>
<ul>
<li>Coalitions</li>
</ul>
<h2>5.1) SET_AIRBASE constructor</h2>
<p>Create a new SET_AIRBASE object with the <a href="##(SET_AIRBASE).New">SET_AIRBASE.New</a> method:</p>
<ul>
<li><a href="##(SET_AIRBASE).New">SET_AIRBASE.New</a>: Creates a new SET_AIRBASE object.</li>
</ul>
<p> </p>
<h2>5.2) Add or Remove AIRBASEs from SET_AIRBASE</h2>
<p>AIRBASEs can be added and removed using the <a href="Set.html##(SET_AIRBASE).AddAirbasesByName">Set#SET_AIRBASE.AddAirbasesByName</a> and <a href="Set.html##(SET_AIRBASE).RemoveAirbasesByName">Set#SET_AIRBASE.RemoveAirbasesByName</a> respectively.
These methods take a single AIRBASE name or an array of AIRBASE names to be added or removed from SET_AIRBASE.</p>
<h2>5.3) SET_AIRBASE filter criteria</h2>
<p>You can set filter criteria to define the set of clients within the SET_AIRBASE.
Filter criteria are defined by:</p>
<ul>
<li><a href="##(SET_AIRBASE).FilterCoalitions">SET_AIRBASE.FilterCoalitions</a>: Builds the SET_AIRBASE with the airbases belonging to the coalition(s).</li>
</ul>
<p>Once the filter criteria have been set for the SET_AIRBASE, you can start filtering using:</p>
<ul>
<li><a href="##(SET_AIRBASE).FilterStart">SET_AIRBASE.FilterStart</a>: Starts the filtering of the airbases within the SET_AIRBASE.</li>
</ul>
<h2>5.4) SET_AIRBASE iterators</h2>
<p>Once the filters have been defined and the SET<em>AIRBASE has been built, you can iterate the SET</em>AIRBASE with the available iterator methods.
The iterator methods will walk the SET<em>AIRBASE set, and call for each airbase within the set a function that you provide.
The following iterator methods are currently available within the SET</em>AIRBASE:</p>
<ul>
<li><a href="##(SET_AIRBASE).ForEachAirbase">SET_AIRBASE.ForEachAirbase</a>: Calls a function for each airbase it finds within the SET_AIRBASE.</li>
</ul>
<h3>Field(s)</h3>
<dl class="function">
@@ -1576,7 +1415,24 @@ A single name or an array of AIRBASE names.</p>
<h2><a id="#(SET_BASE)" >Type <code>SET_BASE</code></a></h2>
<p>SET_BASE class</p>
<h1>1) SET_BASE class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>The <a href="Set.html##(SET_BASE)">Set#SET_BASE</a> class defines the core functions that define a collection of objects.</p>
<p>A SET provides iterators to iterate the SET, but will <strong>temporarily</strong> yield the ForEach interator loop at defined <strong>"intervals"</strong> to the mail simulator loop.
In this way, large loops can be done while not blocking the simulator main processing loop.
The default <strong>"yield interval"</strong> is after 10 objects processed.
The default <strong>"time interval"</strong> is after 0.001 seconds.</p>
<h2>1.1) Add or remove objects from the SET</h2>
<p>Some key core functions are <a href="Set.html##(SET_BASE).Add">Set#SET_BASE.Add</a> and <a href="Set.html##(SET_BASE).Remove">Set#SET_BASE.Remove</a> to add or remove objects from the SET in your logic.</p>
<h2>1.2) Define the SET iterator <strong>"yield interval"</strong> and the <strong>"time interval"</strong></h2>
<p>Modify the iterator intervals with the <a href="Set.html##(SET_BASE).SetInteratorIntervals">Set#SET_BASE.SetInteratorIntervals</a> method.
You can set the <strong>"yield interval"</strong>, and the <strong>"time interval"</strong>. (See above).</p>
<h3>Field(s)</h3>
<dl class="function">
@@ -2279,7 +2135,68 @@ The Object found.</p>
<h2><a id="#(SET_CLIENT)" >Type <code>SET_CLIENT</code></a></h2>
<p>SET_CLIENT class</p>
<h1>4) SET_CLIENT class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a> class to build sets of units belonging to certain:</p>
<ul>
<li>Coalitions</li>
<li>Categories</li>
<li>Countries</li>
<li>Client types</li>
<li>Starting with certain prefix strings.</li>
</ul>
<p> </p>
<h2>4.1) SET_CLIENT constructor</h2>
<p>Create a new SET_CLIENT object with the <a href="##(SET_CLIENT).New">SET_CLIENT.New</a> method:</p>
<ul>
<li><a href="##(SET_CLIENT).New">SET_CLIENT.New</a>: Creates a new SET_CLIENT object.</li>
</ul>
<h2>4.2) Add or Remove CLIENT(s) from SET_CLIENT</h2>
<p>CLIENTs can be added and removed using the <a href="Set.html##(SET_CLIENT).AddClientsByName">Set#SET_CLIENT.AddClientsByName</a> and <a href="Set.html##(SET_CLIENT).RemoveClientsByName">Set#SET_CLIENT.RemoveClientsByName</a> respectively.
These methods take a single CLIENT name or an array of CLIENT names to be added or removed from SET_CLIENT.</p>
<h2>4.3) SET_CLIENT filter criteria</h2>
<p>You can set filter criteria to define the set of clients within the SET_CLIENT.
Filter criteria are defined by:</p>
<ul>
<li><a href="##(SET_CLIENT).FilterCoalitions">SET_CLIENT.FilterCoalitions</a>: Builds the SET_CLIENT with the clients belonging to the coalition(s).</li>
<li><a href="##(SET_CLIENT).FilterCategories">SET_CLIENT.FilterCategories</a>: Builds the SET_CLIENT with the clients belonging to the category(ies).</li>
<li><a href="##(SET_CLIENT).FilterTypes">SET_CLIENT.FilterTypes</a>: Builds the SET_CLIENT with the clients belonging to the client type(s).</li>
<li><a href="##(SET_CLIENT).FilterCountries">SET_CLIENT.FilterCountries</a>: Builds the SET_CLIENT with the clients belonging to the country(ies).</li>
<li><a href="##(SET_CLIENT).FilterPrefixes">SET_CLIENT.FilterPrefixes</a>: Builds the SET_CLIENT with the clients starting with the same prefix string(s).</li>
</ul>
<p>Once the filter criteria have been set for the SET_CLIENT, you can start filtering using:</p>
<ul>
<li><a href="##(SET_CLIENT).FilterStart">SET_CLIENT.FilterStart</a>: Starts the filtering of the clients within the SET_CLIENT.</li>
</ul>
<p>Planned filter criteria within development are (so these are not yet available):</p>
<ul>
<li><a href="##(SET_CLIENT).FilterZones">SET_CLIENT.FilterZones</a>: Builds the SET_CLIENT with the clients within a <a href="Zone.html##(ZONE)">Zone#ZONE</a>.</li>
</ul>
<h2>4.4) SET_CLIENT iterators</h2>
<p>Once the filters have been defined and the SET<em>CLIENT has been built, you can iterate the SET</em>CLIENT with the available iterator methods.
The iterator methods will walk the SET<em>CLIENT set, and call for each element within the set a function that you provide.
The following iterator methods are currently available within the SET</em>CLIENT:</p>
<ul>
<li><a href="##(SET_CLIENT).ForEachClient">SET_CLIENT.ForEachClient</a>: Calls a function for each alive client it finds within the SET_CLIENT.</li>
</ul>
<h3>Field(s)</h3>
<dl class="function">
@@ -2823,7 +2740,69 @@ A single name or an array of CLIENT names.</p>
<h2><a id="#(SET_GROUP)" >Type <code>SET_GROUP</code></a></h2>
<p>SET_GROUP class</p>
<h1>2) SET_GROUP class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a> class to build sets of groups belonging to certain:</p>
<ul>
<li>Coalitions</li>
<li>Categories</li>
<li>Countries</li>
<li>Starting with certain prefix strings.</li>
</ul>
<p> </p>
<h2>2.1) SET_GROUP constructor</h2>
<p>Create a new SET_GROUP object with the <a href="##(SET_GROUP).New">SET_GROUP.New</a> method:</p>
<ul>
<li><a href="##(SET_GROUP).New">SET_GROUP.New</a>: Creates a new SET_GROUP object.</li>
</ul>
<h2>2.2) Add or Remove GROUP(s) from SET_GROUP</h2>
<p>GROUPS can be added and removed using the <a href="Set.html##(SET_GROUP).AddGroupsByName">Set#SET_GROUP.AddGroupsByName</a> and <a href="Set.html##(SET_GROUP).RemoveGroupsByName">Set#SET_GROUP.RemoveGroupsByName</a> respectively.
These methods take a single GROUP name or an array of GROUP names to be added or removed from SET_GROUP.</p>
<h2>2.3) SET_GROUP filter criteria</h2>
<p>You can set filter criteria to define the set of groups within the SET_GROUP.
Filter criteria are defined by:</p>
<ul>
<li><a href="##(SET_GROUP).FilterCoalitions">SET_GROUP.FilterCoalitions</a>: Builds the SET_GROUP with the groups belonging to the coalition(s).</li>
<li><a href="##(SET_GROUP).FilterCategories">SET_GROUP.FilterCategories</a>: Builds the SET_GROUP with the groups belonging to the category(ies).</li>
<li><a href="##(SET_GROUP).FilterCountries">SET_GROUP.FilterCountries</a>: Builds the SET_GROUP with the gruops belonging to the country(ies).</li>
<li><a href="##(SET_GROUP).FilterPrefixes">SET_GROUP.FilterPrefixes</a>: Builds the SET_GROUP with the groups starting with the same prefix string(s).</li>
</ul>
<p>Once the filter criteria have been set for the SET_GROUP, you can start filtering using:</p>
<ul>
<li><a href="##(SET_GROUP).FilterStart">SET_GROUP.FilterStart</a>: Starts the filtering of the groups within the SET_GROUP and add or remove GROUP objects <strong>dynamically</strong>.</li>
</ul>
<p>Planned filter criteria within development are (so these are not yet available):</p>
<ul>
<li><a href="##(SET_GROUP).FilterZones">SET_GROUP.FilterZones</a>: Builds the SET_GROUP with the groups within a <a href="Zone.html##(ZONE)">Zone#ZONE</a>.</li>
</ul>
<h2>2.4) SET_GROUP iterators</h2>
<p>Once the filters have been defined and the SET<em>GROUP has been built, you can iterate the SET</em>GROUP with the available iterator methods.
The iterator methods will walk the SET<em>GROUP set, and call for each element within the set a function that you provide.
The following iterator methods are currently available within the SET</em>GROUP:</p>
<ul>
<li><a href="##(SET_GROUP).ForEachGroup">SET_GROUP.ForEachGroup</a>: Calls a function for each alive group it finds within the SET_GROUP.</li>
<li><a href="##(SET_GROUP).ForEachGroupCompletelyInZone">SET_GROUP.ForEachGroupCompletelyInZone</a>: Iterate the SET_GROUP and call an iterator function for each <strong>alive</strong> GROUP presence completely in a <a href="Zone.html">Zone</a>, providing the GROUP and optional parameters to the called function.</li>
<li><a href="##(SET_GROUP).ForEachGroupPartlyInZone">SET_GROUP.ForEachGroupPartlyInZone</a>: Iterate the SET_GROUP and call an iterator function for each <strong>alive</strong> GROUP presence partly in a <a href="Zone.html">Zone</a>, providing the GROUP and optional parameters to the called function.</li>
<li><a href="##(SET_GROUP).ForEachGroupNotInZone">SET_GROUP.ForEachGroupNotInZone</a>: Iterate the SET_GROUP and call an iterator function for each <strong>alive</strong> GROUP presence not in a <a href="Zone.html">Zone</a>, providing the GROUP and optional parameters to the called function.</li>
</ul>
<h3>Field(s)</h3>
<dl class="function">
@@ -3361,7 +3340,87 @@ A single name or an array of GROUP names.</p>
<h2><a id="#(SET_UNIT)" >Type <code>SET_UNIT</code></a></h2>
<p>SET_UNIT class</p>
<h1>3) SET_UNIT class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the SET_UNIT class to build sets of units belonging to certain:</p>
<ul>
<li>Coalitions</li>
<li>Categories</li>
<li>Countries</li>
<li>Unit types</li>
<li>Starting with certain prefix strings.</li>
</ul>
<p> </p>
<h2>3.1) SET_UNIT constructor</h2>
<p>Create a new SET_UNIT object with the <a href="##(SET_UNIT).New">SET_UNIT.New</a> method:</p>
<ul>
<li><a href="##(SET_UNIT).New">SET_UNIT.New</a>: Creates a new SET_UNIT object.</li>
</ul>
<h2>3.2) Add or Remove UNIT(s) from SET_UNIT</h2>
<p>UNITs can be added and removed using the <a href="Set.html##(SET_UNIT).AddUnitsByName">Set#SET_UNIT.AddUnitsByName</a> and <a href="Set.html##(SET_UNIT).RemoveUnitsByName">Set#SET_UNIT.RemoveUnitsByName</a> respectively.
These methods take a single UNIT name or an array of UNIT names to be added or removed from SET_UNIT.</p>
<h2>3.3) SET_UNIT filter criteria</h2>
<p>You can set filter criteria to define the set of units within the SET_UNIT.
Filter criteria are defined by:</p>
<ul>
<li><a href="##(SET_UNIT).FilterCoalitions">SET_UNIT.FilterCoalitions</a>: Builds the SET_UNIT with the units belonging to the coalition(s).</li>
<li><a href="##(SET_UNIT).FilterCategories">SET_UNIT.FilterCategories</a>: Builds the SET_UNIT with the units belonging to the category(ies).</li>
<li><a href="##(SET_UNIT).FilterTypes">SET_UNIT.FilterTypes</a>: Builds the SET_UNIT with the units belonging to the unit type(s).</li>
<li><a href="##(SET_UNIT).FilterCountries">SET_UNIT.FilterCountries</a>: Builds the SET_UNIT with the units belonging to the country(ies).</li>
<li><a href="##(SET_UNIT).FilterPrefixes">SET_UNIT.FilterPrefixes</a>: Builds the SET_UNIT with the units starting with the same prefix string(s).</li>
</ul>
<p>Once the filter criteria have been set for the SET_UNIT, you can start filtering using:</p>
<ul>
<li><a href="##(SET_UNIT).FilterStart">SET_UNIT.FilterStart</a>: Starts the filtering of the units within the SET_UNIT.</li>
</ul>
<p>Planned filter criteria within development are (so these are not yet available):</p>
<ul>
<li><a href="##(SET_UNIT).FilterZones">SET_UNIT.FilterZones</a>: Builds the SET_UNIT with the units within a <a href="Zone.html##(ZONE)">Zone#ZONE</a>.</li>
</ul>
<h2>3.4) SET_UNIT iterators</h2>
<p>Once the filters have been defined and the SET<em>UNIT has been built, you can iterate the SET</em>UNIT with the available iterator methods.
The iterator methods will walk the SET<em>UNIT set, and call for each element within the set a function that you provide.
The following iterator methods are currently available within the SET</em>UNIT:</p>
<ul>
<li><a href="##(SET_UNIT).ForEachUnit">SET_UNIT.ForEachUnit</a>: Calls a function for each alive unit it finds within the SET_UNIT.</li>
<li><a href="##(SET_GROUP).ForEachGroupCompletelyInZone">SET_GROUP.ForEachGroupCompletelyInZone</a>: Iterate the SET_GROUP and call an iterator function for each <strong>alive</strong> GROUP presence completely in a <a href="Zone.html">Zone</a>, providing the GROUP and optional parameters to the called function.</li>
<li><a href="##(SET_GROUP).ForEachGroupNotInZone">SET_GROUP.ForEachGroupNotInZone</a>: Iterate the SET_GROUP and call an iterator function for each <strong>alive</strong> GROUP presence not in a <a href="Zone.html">Zone</a>, providing the GROUP and optional parameters to the called function.</li>
</ul>
<p>Planned iterators methods in development are (so these are not yet available):</p>
<ul>
<li><a href="##(SET_UNIT).ForEachUnitInUnit">SET_UNIT.ForEachUnitInUnit</a>: Calls a function for each unit contained within the SET_UNIT.</li>
<li><a href="##(SET_UNIT).ForEachUnitCompletelyInZone">SET_UNIT.ForEachUnitCompletelyInZone</a>: Iterate and call an iterator function for each <strong>alive</strong> UNIT presence completely in a <a href="Zone.html">Zone</a>, providing the UNIT and optional parameters to the called function.</li>
<li><a href="##(SET_UNIT).ForEachUnitNotInZone">SET_UNIT.ForEachUnitNotInZone</a>: Iterate and call an iterator function for each <strong>alive</strong> UNIT presence not in a <a href="Zone.html">Zone</a>, providing the UNIT and optional parameters to the called function.</li>
</ul>
<h2>3.5 ) SET_UNIT atomic methods</h2>
<p>Various methods exist for a SET<em>UNIT to perform actions or calculations and retrieve results from the SET</em>UNIT:</p>
<ul>
<li><a href="##(SET_UNIT).GetTypeNames">SET_UNIT.GetTypeNames</a>(): Retrieve the type names of the <a href="Unit.html">Unit</a>s in the SET, delimited by a comma.</li>
</ul>
<h3>Field(s)</h3>
<dl class="function">
@@ -3904,6 +3963,33 @@ self</p>
<dl class="function">
<dt>
<a id="#(SET_UNIT).GetTypeNames" >
<strong>SET_UNIT:GetTypeNames(Delimiter)</strong>
</a>
</dt>
<dd>
<p>Retrieve the type names of the <a href="Unit.html">Unit</a>s in the SET, delimited by an optional delimiter.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Delimiter </em></code>:
(optional) The delimiter, which is default a comma.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#string:</em>
The types of the <a href="Unit.html">Unit</a>s delimited.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).GetUnitThreatLevels" >
<strong>SET_UNIT:GetUnitThreatLevels()</strong>
</a>

View File

@@ -2326,6 +2326,9 @@ when nothing was spawned.</p>
<p> Overwrite unit names by default with group name.</p>
</dd>
</dl>
<dl class="function">
@@ -2340,6 +2343,9 @@ when nothing was spawned.</p>
<p> By default, no InitLimit</p>
</dd>
</dl>
<dl class="function">
@@ -2375,7 +2381,7 @@ when nothing was spawned.</p>
<dl class="function">
<dt>
<em></em>
<em>#number</em>
<a id="#(SPAWN).SpawnMaxGroups" >
<strong>SPAWN.SpawnMaxGroups</strong>
</a>
@@ -2392,7 +2398,7 @@ when nothing was spawned.</p>
<dl class="function">
<dt>
<em></em>
<em>#number</em>
<a id="#(SPAWN).SpawnMaxUnitsAlive" >
<strong>SPAWN.SpawnMaxUnitsAlive</strong>
</a>
@@ -2710,7 +2716,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
<dl class="function">
<dt>
<em></em>
<em>#boolean</em>
<a id="#(SPAWN).SpawnUnControlled" >
<strong>SPAWN.SpawnUnControlled</strong>
</a>

View File

@@ -361,7 +361,7 @@ and creates a CSV file logging the scoring events and results for use at team or
<tr>
<td class="name" nowrap="nowrap"><a href="Set.html">Set</a></td>
<td class="summary">
<p><strong>Core</strong> - SET classes define <strong>collections</strong> of objects to perform <strong>bulk actions</strong> and logically <strong>group</strong> objects.</p>
<p><strong>Core</strong> - SET_ classes define <strong>collections</strong> of objects to perform <strong>bulk actions</strong> and logically <strong>group</strong> objects.</p>
</td>
</tr>
<tr>

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB