FlightControl 8af0b052c6 doc
2016-12-18 14:21:07 +01:00

4043 lines
98 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" href="stylesheet.css" type="text/css"/>
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div>
<div id="main">
<div id="navigation">
<h2>Modules</h2>
<ul><li>
<a href="index.html">index</a>
</li></ul>
<ul>
<li><a href="AI_Balancer.html">AI_Balancer</a></li>
<li><a href="Account.html">Account</a></li>
<li><a href="Airbase.html">Airbase</a></li>
<li><a href="AirbasePolice.html">AirbasePolice</a></li>
<li><a href="Assign.html">Assign</a></li>
<li><a href="Base.html">Base</a></li>
<li><a href="Cargo.html">Cargo</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="CommandCenter.html">CommandCenter</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
<li><a href="DCSTask.html">DCSTask</a></li>
<li><a href="DCSTypes.html">DCSTypes</a></li>
<li><a href="DCSUnit.html">DCSUnit</a></li>
<li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Patrol.html">Patrol</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li>
<li><a href="Sead.html">Sead</a></li>
<li>Set</li>
<li><a href="Smoke.html">Smoke</a></li>
<li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="Task.html">Task</a></li>
<li><a href="Task_A2G.html">Task_A2G</a></li>
<li><a href="Task_PICKUP.html">Task_PICKUP</a></li>
<li><a href="Task_SEAD.html">Task_SEAD</a></li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="Utils.html">Utils</a></li>
<li><a href="Zone.html">Zone</a></li>
<li><a href="env.html">env</a></li>
<li><a href="land.html">land</a></li>
<li><a href="routines.html">routines</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>Set</code></h1>
<p>This module contains the SET classes.</p>
<hr/>
<h1>1) <a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a> class, extends <a href="Core.Base.html##(BASE)">Core.Base#BASE</a></h1>
<p>The <a href="Core.Set.html##(SET_BASE)">Core.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="Core.Set.html##(SET_BASE).Add">Core.Set#SET_BASE.Add</a> and <a href="Core.Set.html##(SET_BASE).Remove">Core.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="Core.Set.html##(SET_BASE).SetInteratorIntervals">Core.Set#SET_BASE.SetInteratorIntervals</a> method.
You can set the <strong>"yield interval"</strong>, and the <strong>"time interval"</strong>. (See above).</p>
<hr/>
<h1>2) <a href="Core.Set.html##(SET_GROUP)">Core.Set#SET_GROUP</a> class, extends <a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Core.Set.html##(SET_GROUP)">Core.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>
<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>
<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="Core.Set.html##(SET_GROUP).AddGroupsByName">Core.Set#SET_GROUP.AddGroupsByName</a> and <a href="Core.Set.html##(SET_GROUP).RemoveGroupsByName">Core.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="Core.Zone.html##(ZONE)">Core.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="Core.Set.html##(SET_UNIT)">Core.Set#SET_UNIT</a> class, extends <a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Core.Set.html##(SET_UNIT)">Core.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="Core.Set.html##(SET_UNIT).AddUnitsByName">Core.Set#SET_UNIT.AddUnitsByName</a> and <a href="Core.Set.html##(SET_UNIT).RemoveUnitsByName">Core.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="Core.Zone.html##(ZONE)">Core.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="Core.Set.html##(SET_CLIENT)">Core.Set#SET_CLIENT</a> class, extends <a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Core.Set.html##(SET_CLIENT)">Core.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="Core.Set.html##(SET_CLIENT).AddClientsByName">Core.Set#SET_CLIENT.AddClientsByName</a> and <a href="Core.Set.html##(SET_CLIENT).RemoveClientsByName">Core.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="Core.Zone.html##(ZONE)">Core.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="Core.Set.html##(SET_AIRBASE)">Core.Set#SET_AIRBASE</a> class, extends <a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Core.Set.html##(SET_AIRBASE)">Core.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="Core.Set.html##(SET_AIRBASE).AddAirbasesByName">Core.Set#SET_AIRBASE.AddAirbasesByName</a> and <a href="Core.Set.html##(SET_AIRBASE).RemoveAirbasesByName">Core.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>
<li>FlightControl : Design &amp; Programming</li>
</ul>
<h3>Contributions:</h3>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#SET_AIRBASE">SET_AIRBASE</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#SET_BASE">SET_BASE</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#SET_CLIENT">SET_CLIENT</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#SET_GROUP">SET_GROUP</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#SET_UNIT">SET_UNIT</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(SET_AIRBASE)">Type <code>SET_AIRBASE</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).AddAirbasesByName">SET_AIRBASE:AddAirbasesByName(AddAirbaseNames)</a></td>
<td class="summary">
<p>Add AIRBASEs to SET_AIRBASE.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).AddInDatabase">SET_AIRBASE:AddInDatabase(Event)</a></td>
<td class="summary">
<p>Handles the Database to check on an event (birth) that the Object was added in the Database.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).Airbases">SET_AIRBASE.Airbases</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).ClassName">SET_AIRBASE.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).Filter">SET_AIRBASE.Filter</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).FilterCategories">SET_AIRBASE:FilterCategories(Categories)</a></td>
<td class="summary">
<p>Builds a set of airbases out of categories.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).FilterCoalitions">SET_AIRBASE:FilterCoalitions(Coalitions)</a></td>
<td class="summary">
<p>Builds a set of airbases of coalitions.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).FilterMeta">SET_AIRBASE.FilterMeta</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).FilterStart">SET_AIRBASE:FilterStart()</a></td>
<td class="summary">
<p>Starts the filtering.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).FindAirbase">SET_AIRBASE:FindAirbase(AirbaseName)</a></td>
<td class="summary">
<p>Finds a Airbase based on the Airbase Name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).FindInDatabase">SET_AIRBASE:FindInDatabase(Event)</a></td>
<td class="summary">
<p>Handles the Database to check on any event that Object exists in the Database.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).FindNearestAirbaseFromPointVec2">SET_AIRBASE:FindNearestAirbaseFromPointVec2(PointVec2)</a></td>
<td class="summary">
<p>Iterate the SET_AIRBASE while identifying the nearest <a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a> from a <a href="Core.Point.html##(POINT_VEC2)">Core.Point#POINT_VEC2</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).ForEachAirbase">SET_AIRBASE:ForEachAirbase(IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the SET_AIRBASE and call an interator function for each AIRBASE, providing the AIRBASE and optional parameters.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).IsIncludeObject">SET_AIRBASE:IsIncludeObject(MAirbase)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).New">SET_AIRBASE:New()</a></td>
<td class="summary">
<p>Creates a new SET_AIRBASE object, building a set of airbases belonging to a coalitions and categories.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).RemoveAirbasesByName">SET_AIRBASE:RemoveAirbasesByName(RemoveAirbaseNames)</a></td>
<td class="summary">
<p>Remove AIRBASEs from SET_AIRBASE.</p>
</td>
</tr>
</table>
<h2><a id="#(SET_BASE)">Type <code>SET_BASE</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).Add">SET_BASE:Add(ObjectName, Object)</a></td>
<td class="summary">
<p>Adds a <a href="Core.Base.html##(BASE)">Core.Base#BASE</a> object in the <a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a>, using a given ObjectName as the index.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).AddObject">SET_BASE:AddObject(Object)</a></td>
<td class="summary">
<p>Adds a <a href="Core.Base.html##(BASE)">Core.Base#BASE</a> object in the <a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a>, using the Object Name as the index.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).ClassName">SET_BASE.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).Count">SET_BASE:Count()</a></td>
<td class="summary">
<p>Retrieves the amount of objects in the <a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a> and derived classes.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).Database">SET_BASE.Database</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).Filter">SET_BASE.Filter</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).FilterOnce">SET_BASE:FilterOnce()</a></td>
<td class="summary">
<p>Filters for the defined collection.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).FilterStop">SET_BASE:FilterStop()</a></td>
<td class="summary">
<p>Stops the filtering for the defined collection.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).FindNearestObjectFromPointVec2">SET_BASE:FindNearestObjectFromPointVec2(PointVec2)</a></td>
<td class="summary">
<p>Iterate the SET_BASE while identifying the nearest object from a <a href="Core.Point.html##(POINT_VEC2)">Core.Point#POINT_VEC2</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).Flush">SET_BASE:Flush()</a></td>
<td class="summary">
<p>Flushes the current SET_BASE contents in the log ...</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).ForEach">SET_BASE:ForEach(IteratorFunction, arg, Set, Function, FunctionArguments)</a></td>
<td class="summary">
<p>Iterate the SET<em>BASE and derived classes and call an iterator function for the given SET</em>BASE, providing the Object for each element within the set and optional parameters.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).Get">SET_BASE:Get(ObjectName)</a></td>
<td class="summary">
<p>Gets a <a href="Core.Base.html##(BASE)">Core.Base#BASE</a> object from the <a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a> and derived classes, based on the Object Name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).GetSet">SET_BASE:GetSet()</a></td>
<td class="summary">
<p>Gets the Set.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).IsIncludeObject">SET_BASE:IsIncludeObject(Object)</a></td>
<td class="summary">
<p>Decides whether to include the Object</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).List">SET_BASE.List</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).New">SET_BASE:New(Database)</a></td>
<td class="summary">
<p>Creates a new SET_BASE object, building a set of units belonging to a coalitions, categories, countries, types or with defined prefix names.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).Remove">SET_BASE:Remove(ObjectName)</a></td>
<td class="summary">
<p>Removes a <a href="Core.Base.html##(BASE)">Core.Base#BASE</a> object from the <a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a> and derived classes, based on the Object Name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).Set">SET_BASE.Set</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).SetDatabase">SET_BASE:SetDatabase(BaseSet)</a></td>
<td class="summary">
<p>Copies the Filter criteria from a given Set (for rebuilding a new Set based on an existing Set).</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).SetIteratorIntervals">SET_BASE:SetIteratorIntervals(YieldInterval, TimeInterval)</a></td>
<td class="summary">
<p>Define the SET iterator <strong>"yield interval"</strong> and the <strong>"time interval"</strong>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).TimeInterval">SET_BASE.TimeInterval</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).YieldInterval">SET_BASE.YieldInterval</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE)._EventOnBirth">SET_BASE:_EventOnBirth(Event)</a></td>
<td class="summary">
<p>Handles the OnBirth event for the Set.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE)._EventOnDeadOrCrash">SET_BASE:_EventOnDeadOrCrash(Event)</a></td>
<td class="summary">
<p>Handles the OnDead or OnCrash event for alive units set.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE)._EventOnPlayerEnterUnit">SET_BASE:_EventOnPlayerEnterUnit(Event)</a></td>
<td class="summary">
<p>Handles the OnPlayerEnterUnit event to fill the active players table (with the unit filter applied).</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE)._EventOnPlayerLeaveUnit">SET_BASE:_EventOnPlayerLeaveUnit(Event)</a></td>
<td class="summary">
<p>Handles the OnPlayerLeaveUnit event to clean the active players table.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE)._FilterStart">SET_BASE:_FilterStart()</a></td>
<td class="summary">
<p>Starts the filtering for the defined collection.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE)._Find">SET_BASE:_Find(ObjectName)</a></td>
<td class="summary">
<p>Finds an <a href="Core.Base.html##(BASE)">Core.Base#BASE</a> object based on the object Name.</p>
</td>
</tr>
</table>
<h2><a id="#(SET_CLIENT)">Type <code>SET_CLIENT</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).AddClientsByName">SET_CLIENT:AddClientsByName(AddClientNames)</a></td>
<td class="summary">
<p>Add CLIENT(s) to SET_CLIENT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).AddInDatabase">SET_CLIENT:AddInDatabase(Event)</a></td>
<td class="summary">
<p>Handles the Database to check on an event (birth) that the Object was added in the Database.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).ClassName">SET_CLIENT.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).Clients">SET_CLIENT.Clients</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).Filter">SET_CLIENT.Filter</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).FilterCategories">SET_CLIENT:FilterCategories(Categories)</a></td>
<td class="summary">
<p>Builds a set of clients out of categories.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).FilterCoalitions">SET_CLIENT:FilterCoalitions(Coalitions)</a></td>
<td class="summary">
<p>Builds a set of clients of coalitions.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).FilterCountries">SET_CLIENT:FilterCountries(Countries)</a></td>
<td class="summary">
<p>Builds a set of clients of defined countries.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).FilterMeta">SET_CLIENT.FilterMeta</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).FilterPrefixes">SET_CLIENT:FilterPrefixes(Prefixes)</a></td>
<td class="summary">
<p>Builds a set of clients of defined client prefixes.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).FilterStart">SET_CLIENT:FilterStart()</a></td>
<td class="summary">
<p>Starts the filtering.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).FilterTypes">SET_CLIENT:FilterTypes(Types)</a></td>
<td class="summary">
<p>Builds a set of clients of defined client types.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).FindClient">SET_CLIENT:FindClient(ClientName)</a></td>
<td class="summary">
<p>Finds a Client based on the Client Name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).FindInDatabase">SET_CLIENT:FindInDatabase(Event)</a></td>
<td class="summary">
<p>Handles the Database to check on any event that Object exists in the Database.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).ForEachClient">SET_CLIENT:ForEachClient(IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the SET_CLIENT and call an interator function for each <strong>alive</strong> CLIENT, providing the CLIENT and optional parameters.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).ForEachClientInZone">SET_CLIENT:ForEachClientInZone(ZoneObject, IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the SET_CLIENT and call an iterator function for each <strong>alive</strong> CLIENT presence completely in a <a href="Zone.html">Zone</a>, providing the CLIENT and optional parameters to the called function.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).ForEachClientNotInZone">SET_CLIENT:ForEachClientNotInZone(ZoneObject, IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the SET_CLIENT and call an iterator function for each <strong>alive</strong> CLIENT presence not in a <a href="Zone.html">Zone</a>, providing the CLIENT and optional parameters to the called function.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).IsIncludeObject">SET_CLIENT:IsIncludeObject(MClient)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).New">SET_CLIENT:New()</a></td>
<td class="summary">
<p>Creates a new SET_CLIENT object, building a set of clients belonging to a coalitions, categories, countries, types or with defined prefix names.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).RemoveClientsByName">SET_CLIENT:RemoveClientsByName(RemoveClientNames)</a></td>
<td class="summary">
<p>Remove CLIENT(s) from SET_CLIENT.</p>
</td>
</tr>
</table>
<h2><a id="#(SET_GROUP)">Type <code>SET_GROUP</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).AddGroupsByName">SET_GROUP:AddGroupsByName(AddGroupNames)</a></td>
<td class="summary">
<p>Add GROUP(s) to SET_GROUP.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).AddInDatabase">SET_GROUP:AddInDatabase(Event)</a></td>
<td class="summary">
<p>Handles the Database to check on an event (birth) that the Object was added in the Database.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).ClassName">SET_GROUP.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).Filter">SET_GROUP.Filter</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).FilterCategories">SET_GROUP:FilterCategories(Categories)</a></td>
<td class="summary">
<p>Builds a set of groups out of categories.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).FilterCoalitions">SET_GROUP:FilterCoalitions(Coalitions)</a></td>
<td class="summary">
<p>Builds a set of groups of coalitions.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).FilterCountries">SET_GROUP:FilterCountries(Countries)</a></td>
<td class="summary">
<p>Builds a set of groups of defined countries.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).FilterMeta">SET_GROUP.FilterMeta</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).FilterPrefixes">SET_GROUP:FilterPrefixes(Prefixes)</a></td>
<td class="summary">
<p>Builds a set of groups of defined GROUP prefixes.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).FilterStart">SET_GROUP:FilterStart()</a></td>
<td class="summary">
<p>Starts the filtering.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).FindGroup">SET_GROUP:FindGroup(GroupName)</a></td>
<td class="summary">
<p>Finds a Group based on the Group Name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).FindInDatabase">SET_GROUP:FindInDatabase(Event)</a></td>
<td class="summary">
<p>Handles the Database to check on any event that Object exists in the Database.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).ForEachGroup">SET_GROUP:ForEachGroup(IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the SET_GROUP and call an iterator function for each <strong>alive</strong> GROUP, providing the GROUP and optional parameters.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).ForEachGroupCompletelyInZone">SET_GROUP:ForEachGroupCompletelyInZone(ZoneObject, IteratorFunction, ...)</a></td>
<td class="summary">
<p>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.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).ForEachGroupNotInZone">SET_GROUP:ForEachGroupNotInZone(ZoneObject, IteratorFunction, ...)</a></td>
<td class="summary">
<p>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.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).ForEachGroupPartlyInZone">SET_GROUP:ForEachGroupPartlyInZone(ZoneObject, IteratorFunction, ...)</a></td>
<td class="summary">
<p>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.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).IsIncludeObject">SET_GROUP:IsIncludeObject(MooseGroup)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).New">SET_GROUP:New()</a></td>
<td class="summary">
<p>Creates a new SET_GROUP object, building a set of groups belonging to a coalitions, categories, countries, types or with defined prefix names.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).RemoveGroupsByName">SET_GROUP:RemoveGroupsByName(RemoveGroupNames)</a></td>
<td class="summary">
<p>Remove GROUP(s) from SET_GROUP.</p>
</td>
</tr>
</table>
<h2><a id="#(SET_UNIT)">Type <code>SET_UNIT</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).AddInDatabase">SET_UNIT:AddInDatabase(Event)</a></td>
<td class="summary">
<p>Handles the Database to check on an event (birth) that the Object was added in the Database.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).AddUnit">SET_UNIT:AddUnit(AddUnit)</a></td>
<td class="summary">
<p>Add UNIT(s) to SET_UNIT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).AddUnitsByName">SET_UNIT:AddUnitsByName(AddUnitNames)</a></td>
<td class="summary">
<p>Add UNIT(s) to SET_UNIT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).CalculateThreatLevelA2G">SET_UNIT:CalculateThreatLevelA2G()</a></td>
<td class="summary">
<p>Calculate the maxium A2G threat level of the SET_UNIT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).ClassName">SET_UNIT.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).Filter">SET_UNIT.Filter</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).FilterCategories">SET_UNIT:FilterCategories(Categories)</a></td>
<td class="summary">
<p>Builds a set of units out of categories.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).FilterCoalitions">SET_UNIT:FilterCoalitions(Coalitions)</a></td>
<td class="summary">
<p>Builds a set of units of coalitions.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).FilterCountries">SET_UNIT:FilterCountries(Countries)</a></td>
<td class="summary">
<p>Builds a set of units of defined countries.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).FilterHasRadar">SET_UNIT:FilterHasRadar(RadarTypes)</a></td>
<td class="summary">
<p>Builds a set of units having a radar of give types.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).FilterHasSEAD">SET_UNIT:FilterHasSEAD()</a></td>
<td class="summary">
<p>Builds a set of SEADable units.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).FilterMeta">SET_UNIT.FilterMeta</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).FilterPrefixes">SET_UNIT:FilterPrefixes(Prefixes)</a></td>
<td class="summary">
<p>Builds a set of units of defined unit prefixes.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).FilterStart">SET_UNIT:FilterStart()</a></td>
<td class="summary">
<p>Starts the filtering.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).FilterTypes">SET_UNIT:FilterTypes(Types)</a></td>
<td class="summary">
<p>Builds a set of units of defined unit types.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).FindInDatabase">SET_UNIT:FindInDatabase(Event)</a></td>
<td class="summary">
<p>Handles the Database to check on any event that Object exists in the Database.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).FindUnit">SET_UNIT:FindUnit(UnitName)</a></td>
<td class="summary">
<p>Finds a Unit based on the Unit Name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).ForEachUnit">SET_UNIT:ForEachUnit(IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the SET_UNIT and call an interator function for each <strong>alive</strong> UNIT, providing the UNIT and optional parameters.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).ForEachUnitCompletelyInZone">SET_UNIT:ForEachUnitCompletelyInZone(ZoneObject, IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the SET_UNIT 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.</p>
</td>
</tr>
<tr>
<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).GetUnitThreatLevels">SET_UNIT:GetUnitThreatLevels()</a></td>
<td class="summary">
<p>Returns map of unit threat levels.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).GetUnitTypes">SET_UNIT:GetUnitTypes()</a></td>
<td class="summary">
<p>Returns map of unit types.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).GetUnitTypesText">SET_UNIT:GetUnitTypesText()</a></td>
<td class="summary">
<p>Returns a comma separated string of the unit types with a count in the <a href="Set.html">Set</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).HasFriendlyUnits">SET_UNIT:HasFriendlyUnits(FriendlyCoalition)</a></td>
<td class="summary">
<p>Returns if the <a href="Set.html">Set</a> has friendly ground units.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).HasGroundUnits">SET_UNIT:HasGroundUnits()</a></td>
<td class="summary">
<p>Returns if the <a href="Set.html">Set</a> has ground targets.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).HasRadar">SET_UNIT:HasRadar(RadarType)</a></td>
<td class="summary">
<p>Returns if the <a href="Set.html">Set</a> has targets having a radar (of a given type).</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).HasSEAD">SET_UNIT:HasSEAD()</a></td>
<td class="summary">
<p>Returns if the <a href="Set.html">Set</a> has targets that can be SEADed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).IsIncludeObject">SET_UNIT:IsIncludeObject(MUnit)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).New">SET_UNIT:New()</a></td>
<td class="summary">
<p>Creates a new SET_UNIT object, building a set of units belonging to a coalitions, categories, countries, types or with defined prefix names.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).RemoveUnitsByName">SET_UNIT:RemoveUnitsByName(RemoveUnitNames)</a></td>
<td class="summary">
<p>Remove UNIT(s) from SET_UNIT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).Units">SET_UNIT.Units</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2>Global(s)</h2>
<dl class="function">
<dt>
<em><a href="##(SET_AIRBASE)">#SET_AIRBASE</a></em>
<a id="SET_AIRBASE" >
<strong>SET_AIRBASE</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(SET_BASE)">#SET_BASE</a></em>
<a id="SET_BASE" >
<strong>SET_BASE</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(SET_CLIENT)">#SET_CLIENT</a></em>
<a id="SET_CLIENT" >
<strong>SET_CLIENT</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(SET_GROUP)">#SET_GROUP</a></em>
<a id="SET_GROUP" >
<strong>SET_GROUP</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(SET_UNIT)">#SET_UNIT</a></em>
<a id="SET_UNIT" >
<strong>SET_UNIT</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(Set)" >Type <code>Set</code></a></h2>
<h2><a id="#(SET_AIRBASE)" >Type <code>SET_AIRBASE</code></a></h2>
<p>SET_AIRBASE class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).AddAirbasesByName" >
<strong>SET_AIRBASE:AddAirbasesByName(AddAirbaseNames)</strong>
</a>
</dt>
<dd>
<p>Add AIRBASEs to SET_AIRBASE.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string AddAirbaseNames </em></code>:
A single name or an array of AIRBASE names.</p>
</li>
</ul>
<h3>Return value</h3>
<p>self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).AddInDatabase" >
<strong>SET_AIRBASE:AddInDatabase(Event)</strong>
</a>
</dt>
<dd>
<p>Handles the Database to check on an event (birth) that the Object was added in the Database.</p>
<p>This is required, because sometimes the <em>DATABASE birth event gets called later than the SET</em>BASE birth event!</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> Event </em></code>: </p>
</li>
</ul>
<h3>Return values</h3>
<ol>
<li>
<p><em>#string:</em>
The name of the AIRBASE</p>
</li>
<li>
<p><em>#table:</em>
The AIRBASE</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_AIRBASE).Airbases" >
<strong>SET_AIRBASE.Airbases</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(SET_AIRBASE).ClassName" >
<strong>SET_AIRBASE.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_AIRBASE).Filter" >
<strong>SET_AIRBASE.Filter</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).FilterCategories" >
<strong>SET_AIRBASE:FilterCategories(Categories)</strong>
</a>
</dt>
<dd>
<p>Builds a set of airbases out of categories.</p>
<p>Possible current categories are plane, helicopter, ground, ship.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Categories </em></code>:
Can take the following values: "airdrome", "helipad", "ship".</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_AIRBASE)">#SET_AIRBASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).FilterCoalitions" >
<strong>SET_AIRBASE:FilterCoalitions(Coalitions)</strong>
</a>
</dt>
<dd>
<p>Builds a set of airbases of coalitions.</p>
<p>Possible current coalitions are red, blue and neutral.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Coalitions </em></code>:
Can take the following values: "red", "blue", "neutral".</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_AIRBASE)">#SET_AIRBASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_AIRBASE).FilterMeta" >
<strong>SET_AIRBASE.FilterMeta</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).FilterStart" >
<strong>SET_AIRBASE:FilterStart()</strong>
</a>
</dt>
<dd>
<p>Starts the filtering.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_AIRBASE)">#SET_AIRBASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).FindAirbase" >
<strong>SET_AIRBASE:FindAirbase(AirbaseName)</strong>
</a>
</dt>
<dd>
<p>Finds a Airbase based on the Airbase Name.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string AirbaseName </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a>:</em>
The found Airbase.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).FindInDatabase" >
<strong>SET_AIRBASE:FindInDatabase(Event)</strong>
</a>
</dt>
<dd>
<p>Handles the Database to check on any event that Object exists in the Database.</p>
<p>This is required, because sometimes the <em>DATABASE event gets called later than the SET</em>BASE event or vise versa!</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> Event </em></code>: </p>
</li>
</ul>
<h3>Return values</h3>
<ol>
<li>
<p><em>#string:</em>
The name of the AIRBASE</p>
</li>
<li>
<p><em>#table:</em>
The AIRBASE</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).FindNearestAirbaseFromPointVec2" >
<strong>SET_AIRBASE:FindNearestAirbaseFromPointVec2(PointVec2)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_AIRBASE while identifying the nearest <a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a> from a <a href="Core.Point.html##(POINT_VEC2)">Core.Point#POINT_VEC2</a>.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Point.html##(POINT_VEC2)">Core.Point#POINT_VEC2</a> PointVec2 </em></code>:
A <a href="Core.Point.html##(POINT_VEC2)">Core.Point#POINT_VEC2</a> object from where to evaluate the closest <a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a>.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a>:</em>
The closest <a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a>.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).ForEachAirbase" >
<strong>SET_AIRBASE:ForEachAirbase(IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_AIRBASE and call an interator function for each AIRBASE, providing the AIRBASE and optional parameters.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an alive AIRBASE in the SET_AIRBASE. The function needs to accept a AIRBASE parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_AIRBASE)">#SET_AIRBASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).IsIncludeObject" >
<strong>SET_AIRBASE:IsIncludeObject(MAirbase)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a> MAirbase </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_AIRBASE)">#SET_AIRBASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).New" >
<strong>SET_AIRBASE:New()</strong>
</a>
</dt>
<dd>
<p>Creates a new SET_AIRBASE object, building a set of airbases belonging to a coalitions and categories.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_AIRBASE)">#SET_AIRBASE</a>:</em>
self</p>
<h3>Usage:</h3>
<pre class="example"><code>-- Define a new SET_AIRBASE Object. The DatabaseSet will contain a reference to all Airbases.
DatabaseSet = SET_AIRBASE:New()</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).RemoveAirbasesByName" >
<strong>SET_AIRBASE:RemoveAirbasesByName(RemoveAirbaseNames)</strong>
</a>
</dt>
<dd>
<p>Remove AIRBASEs from SET_AIRBASE.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a> RemoveAirbaseNames </em></code>:
A single name or an array of AIRBASE names.</p>
</li>
</ul>
<h3>Return value</h3>
<p>self</p>
</dd>
</dl>
<h2><a id="#(SET_BASE)" >Type <code>SET_BASE</code></a></h2>
<p>SET_BASE class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(SET_BASE).Add" >
<strong>SET_BASE:Add(ObjectName, Object)</strong>
</a>
</dt>
<dd>
<p>Adds a <a href="Core.Base.html##(BASE)">Core.Base#BASE</a> object in the <a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a>, using a given ObjectName as the index.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string ObjectName </em></code>: </p>
</li>
<li>
<p><code><em><a href="Core.Base.html##(BASE)">Core.Base#BASE</a> Object </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Core.Base.html##(BASE)">Core.Base#BASE</a>:</em>
The added BASE Object.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE).AddObject" >
<strong>SET_BASE:AddObject(Object)</strong>
</a>
</dt>
<dd>
<p>Adds a <a href="Core.Base.html##(BASE)">Core.Base#BASE</a> object in the <a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a>, using the Object Name as the index.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Object.html##(OBJECT)">Wrapper.Object#OBJECT</a> Object </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Core.Base.html##(BASE)">Core.Base#BASE</a>:</em>
The added BASE Object.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(SET_BASE).ClassName" >
<strong>SET_BASE.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE).Count" >
<strong>SET_BASE:Count()</strong>
</a>
</dt>
<dd>
<p>Retrieves the amount of objects in the <a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a> and derived classes.</p>
<h3>Return value</h3>
<p><em>#number:</em>
Count</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_BASE).Database" >
<strong>SET_BASE.Database</strong>
</a>
</dt>
<dd>
<p> Now base the new Set on the BaseSet</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#table</em>
<a id="#(SET_BASE).Filter" >
<strong>SET_BASE.Filter</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE).FilterOnce" >
<strong>SET_BASE:FilterOnce()</strong>
</a>
</dt>
<dd>
<p>Filters for the defined collection.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_BASE)">#SET_BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE).FilterStop" >
<strong>SET_BASE:FilterStop()</strong>
</a>
</dt>
<dd>
<p>Stops the filtering for the defined collection.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_BASE)">#SET_BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE).FindNearestObjectFromPointVec2" >
<strong>SET_BASE:FindNearestObjectFromPointVec2(PointVec2)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_BASE while identifying the nearest object from a <a href="Core.Point.html##(POINT_VEC2)">Core.Point#POINT_VEC2</a>.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Point.html##(POINT_VEC2)">Core.Point#POINT_VEC2</a> PointVec2 </em></code>:
A <a href="Core.Point.html##(POINT_VEC2)">Core.Point#POINT_VEC2</a> object from where to evaluate the closest object in the set.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Core.Base.html##(BASE)">Core.Base#BASE</a>:</em>
The closest object.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE).Flush" >
<strong>SET_BASE:Flush()</strong>
</a>
</dt>
<dd>
<p>Flushes the current SET_BASE contents in the log ...</p>
<p>(for debugging reasons).</p>
<h3>Return value</h3>
<p><em>#string:</em>
A string with the names of the objects.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE).ForEach" >
<strong>SET_BASE:ForEach(IteratorFunction, arg, Set, Function, FunctionArguments)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET<em>BASE and derived classes and call an iterator function for the given SET</em>BASE, providing the Object for each element within the set and optional parameters.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called.</p>
</li>
<li>
<p><code><em> arg </em></code>: </p>
</li>
<li>
<p><code><em> Set </em></code>: </p>
</li>
<li>
<p><code><em> Function </em></code>: </p>
</li>
<li>
<p><code><em> FunctionArguments </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_BASE)">#SET_BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE).Get" >
<strong>SET_BASE:Get(ObjectName)</strong>
</a>
</dt>
<dd>
<p>Gets a <a href="Core.Base.html##(BASE)">Core.Base#BASE</a> object from the <a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a> and derived classes, based on the Object Name.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string ObjectName </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Core.Base.html##(BASE)">Core.Base#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE).GetSet" >
<strong>SET_BASE:GetSet()</strong>
</a>
</dt>
<dd>
<p>Gets the Set.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_BASE)">#SET_BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE).IsIncludeObject" >
<strong>SET_BASE:IsIncludeObject(Object)</strong>
</a>
</dt>
<dd>
<p>Decides whether to include the Object</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#table Object </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_BASE)">#SET_BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#table</em>
<a id="#(SET_BASE).List" >
<strong>SET_BASE.List</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE).New" >
<strong>SET_BASE:New(Database)</strong>
</a>
</dt>
<dd>
<p>Creates a new SET_BASE object, building a set of units belonging to a coalitions, categories, countries, types or with defined prefix names.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Database </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_BASE)">#SET_BASE</a>:</em></p>
<h3>Usage:</h3>
<pre class="example"><code>-- Define a new SET_BASE Object. This DBObject will contain a reference to all Group and Unit Templates defined within the ME and the DCSRTE.
DBObject = SET_BASE:New()</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE).Remove" >
<strong>SET_BASE:Remove(ObjectName)</strong>
</a>
</dt>
<dd>
<p>Removes a <a href="Core.Base.html##(BASE)">Core.Base#BASE</a> object from the <a href="Core.Set.html##(SET_BASE)">Core.Set#SET_BASE</a> and derived classes, based on the Object Name.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string ObjectName </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em>#table</em>
<a id="#(SET_BASE).Set" >
<strong>SET_BASE.Set</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE).SetDatabase" >
<strong>SET_BASE:SetDatabase(BaseSet)</strong>
</a>
</dt>
<dd>
<p>Copies the Filter criteria from a given Set (for rebuilding a new Set based on an existing Set).</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="##(SET_BASE)">#SET_BASE</a> BaseSet </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_BASE)">#SET_BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE).SetIteratorIntervals" >
<strong>SET_BASE:SetIteratorIntervals(YieldInterval, TimeInterval)</strong>
</a>
</dt>
<dd>
<p>Define the SET iterator <strong>"yield interval"</strong> and the <strong>"time interval"</strong>.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number YieldInterval </em></code>:
Sets the frequency when the iterator loop will yield after the number of objects processed. The default frequency is 10 objects processed.</p>
</li>
<li>
<p><code><em>#number TimeInterval </em></code>:
Sets the time in seconds when the main logic will resume the iterator loop. The default time is 0.001 seconds.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_BASE)">#SET_BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_BASE).TimeInterval" >
<strong>SET_BASE.TimeInterval</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_BASE).YieldInterval" >
<strong>SET_BASE.YieldInterval</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE)._EventOnBirth" >
<strong>SET_BASE:_EventOnBirth(Event)</strong>
</a>
</dt>
<dd>
<p>Handles the OnBirth event for the Set.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> Event </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE)._EventOnDeadOrCrash" >
<strong>SET_BASE:_EventOnDeadOrCrash(Event)</strong>
</a>
</dt>
<dd>
<p>Handles the OnDead or OnCrash event for alive units set.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> Event </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE)._EventOnPlayerEnterUnit" >
<strong>SET_BASE:_EventOnPlayerEnterUnit(Event)</strong>
</a>
</dt>
<dd>
<p>Handles the OnPlayerEnterUnit event to fill the active players table (with the unit filter applied).</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> Event </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE)._EventOnPlayerLeaveUnit" >
<strong>SET_BASE:_EventOnPlayerLeaveUnit(Event)</strong>
</a>
</dt>
<dd>
<p>Handles the OnPlayerLeaveUnit event to clean the active players table.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> Event </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE)._FilterStart" >
<strong>SET_BASE:_FilterStart()</strong>
</a>
</dt>
<dd>
<p>Starts the filtering for the defined collection.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_BASE)">#SET_BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE)._Find" >
<strong>SET_BASE:_Find(ObjectName)</strong>
</a>
</dt>
<dd>
<p>Finds an <a href="Core.Base.html##(BASE)">Core.Base#BASE</a> object based on the object Name.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string ObjectName </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Core.Base.html##(BASE)">Core.Base#BASE</a>:</em>
The Object found.</p>
</dd>
</dl>
<h2><a id="#(SET_CLIENT)" >Type <code>SET_CLIENT</code></a></h2>
<p>SET_CLIENT class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(SET_CLIENT).AddClientsByName" >
<strong>SET_CLIENT:AddClientsByName(AddClientNames)</strong>
</a>
</dt>
<dd>
<p>Add CLIENT(s) to SET_CLIENT.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string AddClientNames </em></code>:
A single name or an array of CLIENT names.</p>
</li>
</ul>
<h3>Return value</h3>
<p>self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CLIENT).AddInDatabase" >
<strong>SET_CLIENT:AddInDatabase(Event)</strong>
</a>
</dt>
<dd>
<p>Handles the Database to check on an event (birth) that the Object was added in the Database.</p>
<p>This is required, because sometimes the <em>DATABASE birth event gets called later than the SET</em>BASE birth event!</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> Event </em></code>: </p>
</li>
</ul>
<h3>Return values</h3>
<ol>
<li>
<p><em>#string:</em>
The name of the CLIENT</p>
</li>
<li>
<p><em>#table:</em>
The CLIENT</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(SET_CLIENT).ClassName" >
<strong>SET_CLIENT.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_CLIENT).Clients" >
<strong>SET_CLIENT.Clients</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_CLIENT).Filter" >
<strong>SET_CLIENT.Filter</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CLIENT).FilterCategories" >
<strong>SET_CLIENT:FilterCategories(Categories)</strong>
</a>
</dt>
<dd>
<p>Builds a set of clients out of categories.</p>
<p>Possible current categories are plane, helicopter, ground, ship.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Categories </em></code>:
Can take the following values: "plane", "helicopter", "ground", "ship".</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_CLIENT)">#SET_CLIENT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CLIENT).FilterCoalitions" >
<strong>SET_CLIENT:FilterCoalitions(Coalitions)</strong>
</a>
</dt>
<dd>
<p>Builds a set of clients of coalitions.</p>
<p>Possible current coalitions are red, blue and neutral.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Coalitions </em></code>:
Can take the following values: "red", "blue", "neutral".</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_CLIENT)">#SET_CLIENT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CLIENT).FilterCountries" >
<strong>SET_CLIENT:FilterCountries(Countries)</strong>
</a>
</dt>
<dd>
<p>Builds a set of clients of defined countries.</p>
<p>Possible current countries are those known within DCS world.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Countries </em></code>:
Can take those country strings known within DCS world.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_CLIENT)">#SET_CLIENT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_CLIENT).FilterMeta" >
<strong>SET_CLIENT.FilterMeta</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CLIENT).FilterPrefixes" >
<strong>SET_CLIENT:FilterPrefixes(Prefixes)</strong>
</a>
</dt>
<dd>
<p>Builds a set of clients of defined client prefixes.</p>
<p>All the clients starting with the given prefixes will be included within the set.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Prefixes </em></code>:
The prefix of which the client name starts with.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_CLIENT)">#SET_CLIENT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CLIENT).FilterStart" >
<strong>SET_CLIENT:FilterStart()</strong>
</a>
</dt>
<dd>
<p>Starts the filtering.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_CLIENT)">#SET_CLIENT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CLIENT).FilterTypes" >
<strong>SET_CLIENT:FilterTypes(Types)</strong>
</a>
</dt>
<dd>
<p>Builds a set of clients of defined client types.</p>
<p>Possible current types are those types known within DCS world.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Types </em></code>:
Can take those type strings known within DCS world.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_CLIENT)">#SET_CLIENT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CLIENT).FindClient" >
<strong>SET_CLIENT:FindClient(ClientName)</strong>
</a>
</dt>
<dd>
<p>Finds a Client based on the Client Name.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string ClientName </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Wrapper.Client.html##(CLIENT)">Wrapper.Client#CLIENT</a>:</em>
The found Client.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CLIENT).FindInDatabase" >
<strong>SET_CLIENT:FindInDatabase(Event)</strong>
</a>
</dt>
<dd>
<p>Handles the Database to check on any event that Object exists in the Database.</p>
<p>This is required, because sometimes the <em>DATABASE event gets called later than the SET</em>BASE event or vise versa!</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> Event </em></code>: </p>
</li>
</ul>
<h3>Return values</h3>
<ol>
<li>
<p><em>#string:</em>
The name of the CLIENT</p>
</li>
<li>
<p><em>#table:</em>
The CLIENT</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CLIENT).ForEachClient" >
<strong>SET_CLIENT:ForEachClient(IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_CLIENT and call an interator function for each <strong>alive</strong> CLIENT, providing the CLIENT and optional parameters.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an alive CLIENT in the SET_CLIENT. The function needs to accept a CLIENT parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_CLIENT)">#SET_CLIENT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CLIENT).ForEachClientInZone" >
<strong>SET_CLIENT:ForEachClientInZone(ZoneObject, IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_CLIENT and call an iterator function for each <strong>alive</strong> CLIENT presence completely in a <a href="Zone.html">Zone</a>, providing the CLIENT and optional parameters to the called function.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> ZoneObject </em></code>:
The Zone to be tested for.</p>
</li>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an alive CLIENT in the SET_CLIENT. The function needs to accept a CLIENT parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_CLIENT)">#SET_CLIENT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CLIENT).ForEachClientNotInZone" >
<strong>SET_CLIENT:ForEachClientNotInZone(ZoneObject, IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_CLIENT and call an iterator function for each <strong>alive</strong> CLIENT presence not in a <a href="Zone.html">Zone</a>, providing the CLIENT and optional parameters to the called function.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> ZoneObject </em></code>:
The Zone to be tested for.</p>
</li>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an alive CLIENT in the SET_CLIENT. The function needs to accept a CLIENT parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_CLIENT)">#SET_CLIENT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CLIENT).IsIncludeObject" >
<strong>SET_CLIENT:IsIncludeObject(MClient)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Client.html##(CLIENT)">Wrapper.Client#CLIENT</a> MClient </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_CLIENT)">#SET_CLIENT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CLIENT).New" >
<strong>SET_CLIENT:New()</strong>
</a>
</dt>
<dd>
<p>Creates a new SET_CLIENT object, building a set of clients belonging to a coalitions, categories, countries, types or with defined prefix names.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_CLIENT)">#SET_CLIENT</a>:</em></p>
<h3>Usage:</h3>
<pre class="example"><code>-- Define a new SET_CLIENT Object. This DBObject will contain a reference to all Clients.
DBObject = SET_CLIENT:New()</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CLIENT).RemoveClientsByName" >
<strong>SET_CLIENT:RemoveClientsByName(RemoveClientNames)</strong>
</a>
</dt>
<dd>
<p>Remove CLIENT(s) from SET_CLIENT.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Client.html##(CLIENT)">Wrapper.Client#CLIENT</a> RemoveClientNames </em></code>:
A single name or an array of CLIENT names.</p>
</li>
</ul>
<h3>Return value</h3>
<p>self</p>
</dd>
</dl>
<h2><a id="#(SET_GROUP)" >Type <code>SET_GROUP</code></a></h2>
<p>SET_GROUP class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(SET_GROUP).AddGroupsByName" >
<strong>SET_GROUP:AddGroupsByName(AddGroupNames)</strong>
</a>
</dt>
<dd>
<p>Add GROUP(s) to SET_GROUP.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string AddGroupNames </em></code>:
A single name or an array of GROUP names.</p>
</li>
</ul>
<h3>Return value</h3>
<p>self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).AddInDatabase" >
<strong>SET_GROUP:AddInDatabase(Event)</strong>
</a>
</dt>
<dd>
<p>Handles the Database to check on an event (birth) that the Object was added in the Database.</p>
<p>This is required, because sometimes the <em>DATABASE birth event gets called later than the SET</em>BASE birth event!</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> Event </em></code>: </p>
</li>
</ul>
<h3>Return values</h3>
<ol>
<li>
<p><em>#string:</em>
The name of the GROUP</p>
</li>
<li>
<p><em>#table:</em>
The GROUP</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(SET_GROUP).ClassName" >
<strong>SET_GROUP.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_GROUP).Filter" >
<strong>SET_GROUP.Filter</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).FilterCategories" >
<strong>SET_GROUP:FilterCategories(Categories)</strong>
</a>
</dt>
<dd>
<p>Builds a set of groups out of categories.</p>
<p>Possible current categories are plane, helicopter, ground, ship.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Categories </em></code>:
Can take the following values: "plane", "helicopter", "ground", "ship".</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_GROUP)">#SET_GROUP</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).FilterCoalitions" >
<strong>SET_GROUP:FilterCoalitions(Coalitions)</strong>
</a>
</dt>
<dd>
<p>Builds a set of groups of coalitions.</p>
<p>Possible current coalitions are red, blue and neutral.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Coalitions </em></code>:
Can take the following values: "red", "blue", "neutral".</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_GROUP)">#SET_GROUP</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).FilterCountries" >
<strong>SET_GROUP:FilterCountries(Countries)</strong>
</a>
</dt>
<dd>
<p>Builds a set of groups of defined countries.</p>
<p>Possible current countries are those known within DCS world.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Countries </em></code>:
Can take those country strings known within DCS world.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_GROUP)">#SET_GROUP</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_GROUP).FilterMeta" >
<strong>SET_GROUP.FilterMeta</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).FilterPrefixes" >
<strong>SET_GROUP:FilterPrefixes(Prefixes)</strong>
</a>
</dt>
<dd>
<p>Builds a set of groups of defined GROUP prefixes.</p>
<p>All the groups starting with the given prefixes will be included within the set.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Prefixes </em></code>:
The prefix of which the group name starts with.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_GROUP)">#SET_GROUP</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).FilterStart" >
<strong>SET_GROUP:FilterStart()</strong>
</a>
</dt>
<dd>
<p>Starts the filtering.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_GROUP)">#SET_GROUP</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).FindGroup" >
<strong>SET_GROUP:FindGroup(GroupName)</strong>
</a>
</dt>
<dd>
<p>Finds a Group based on the Group Name.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string GroupName </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a>:</em>
The found Group.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).FindInDatabase" >
<strong>SET_GROUP:FindInDatabase(Event)</strong>
</a>
</dt>
<dd>
<p>Handles the Database to check on any event that Object exists in the Database.</p>
<p>This is required, because sometimes the <em>DATABASE event gets called later than the SET</em>BASE event or vise versa!</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> Event </em></code>: </p>
</li>
</ul>
<h3>Return values</h3>
<ol>
<li>
<p><em>#string:</em>
The name of the GROUP</p>
</li>
<li>
<p><em>#table:</em>
The GROUP</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).ForEachGroup" >
<strong>SET_GROUP:ForEachGroup(IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_GROUP and call an iterator function for each <strong>alive</strong> GROUP, providing the GROUP and optional parameters.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an alive GROUP in the SET_GROUP. The function needs to accept a GROUP parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_GROUP)">#SET_GROUP</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).ForEachGroupCompletelyInZone" >
<strong>SET_GROUP:ForEachGroupCompletelyInZone(ZoneObject, IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>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.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> ZoneObject </em></code>:
The Zone to be tested for.</p>
</li>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an alive GROUP in the SET_GROUP. The function needs to accept a GROUP parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_GROUP)">#SET_GROUP</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).ForEachGroupNotInZone" >
<strong>SET_GROUP:ForEachGroupNotInZone(ZoneObject, IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>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.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> ZoneObject </em></code>:
The Zone to be tested for.</p>
</li>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an alive GROUP in the SET_GROUP. The function needs to accept a GROUP parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_GROUP)">#SET_GROUP</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).ForEachGroupPartlyInZone" >
<strong>SET_GROUP:ForEachGroupPartlyInZone(ZoneObject, IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>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.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> ZoneObject </em></code>:
The Zone to be tested for.</p>
</li>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an alive GROUP in the SET_GROUP. The function needs to accept a GROUP parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_GROUP)">#SET_GROUP</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).IsIncludeObject" >
<strong>SET_GROUP:IsIncludeObject(MooseGroup)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> MooseGroup </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_GROUP)">#SET_GROUP</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).New" >
<strong>SET_GROUP:New()</strong>
</a>
</dt>
<dd>
<p>Creates a new SET_GROUP object, building a set of groups belonging to a coalitions, categories, countries, types or with defined prefix names.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_GROUP)">#SET_GROUP</a>:</em></p>
<h3>Usage:</h3>
<pre class="example"><code>-- Define a new SET_GROUP Object. This DBObject will contain a reference to all alive GROUPS.
DBObject = SET_GROUP:New()</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).RemoveGroupsByName" >
<strong>SET_GROUP:RemoveGroupsByName(RemoveGroupNames)</strong>
</a>
</dt>
<dd>
<p>Remove GROUP(s) from SET_GROUP.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> RemoveGroupNames </em></code>:
A single name or an array of GROUP names.</p>
</li>
</ul>
<h3>Return value</h3>
<p>self</p>
</dd>
</dl>
<h2><a id="#(SET_UNIT)" >Type <code>SET_UNIT</code></a></h2>
<p>SET_UNIT class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(SET_UNIT).AddInDatabase" >
<strong>SET_UNIT:AddInDatabase(Event)</strong>
</a>
</dt>
<dd>
<p>Handles the Database to check on an event (birth) that the Object was added in the Database.</p>
<p>This is required, because sometimes the <em>DATABASE birth event gets called later than the SET</em>BASE birth event!</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> Event </em></code>: </p>
</li>
</ul>
<h3>Return values</h3>
<ol>
<li>
<p><em>#string:</em>
The name of the UNIT</p>
</li>
<li>
<p><em>#table:</em>
The UNIT</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).AddUnit" >
<strong>SET_UNIT:AddUnit(AddUnit)</strong>
</a>
</dt>
<dd>
<p>Add UNIT(s) to SET_UNIT.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string AddUnit </em></code>:
A single UNIT.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_UNIT)">#SET_UNIT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).AddUnitsByName" >
<strong>SET_UNIT:AddUnitsByName(AddUnitNames)</strong>
</a>
</dt>
<dd>
<p>Add UNIT(s) to SET_UNIT.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string AddUnitNames </em></code>:
A single name or an array of UNIT names.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_UNIT)">#SET_UNIT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).CalculateThreatLevelA2G" >
<strong>SET_UNIT:CalculateThreatLevelA2G()</strong>
</a>
</dt>
<dd>
<p>Calculate the maxium A2G threat level of the SET_UNIT.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(SET_UNIT).ClassName" >
<strong>SET_UNIT.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_UNIT).Filter" >
<strong>SET_UNIT.Filter</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).FilterCategories" >
<strong>SET_UNIT:FilterCategories(Categories)</strong>
</a>
</dt>
<dd>
<p>Builds a set of units out of categories.</p>
<p>Possible current categories are plane, helicopter, ground, ship.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Categories </em></code>:
Can take the following values: "plane", "helicopter", "ground", "ship".</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_UNIT)">#SET_UNIT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).FilterCoalitions" >
<strong>SET_UNIT:FilterCoalitions(Coalitions)</strong>
</a>
</dt>
<dd>
<p>Builds a set of units of coalitions.</p>
<p>Possible current coalitions are red, blue and neutral.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Coalitions </em></code>:
Can take the following values: "red", "blue", "neutral".</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_UNIT)">#SET_UNIT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).FilterCountries" >
<strong>SET_UNIT:FilterCountries(Countries)</strong>
</a>
</dt>
<dd>
<p>Builds a set of units of defined countries.</p>
<p>Possible current countries are those known within DCS world.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Countries </em></code>:
Can take those country strings known within DCS world.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_UNIT)">#SET_UNIT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).FilterHasRadar" >
<strong>SET_UNIT:FilterHasRadar(RadarTypes)</strong>
</a>
</dt>
<dd>
<p>Builds a set of units having a radar of give types.</p>
<p>All the units having a radar of a given type will be included within the set.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#table RadarTypes </em></code>:
The radar types.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_UNIT)">#SET_UNIT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).FilterHasSEAD" >
<strong>SET_UNIT:FilterHasSEAD()</strong>
</a>
</dt>
<dd>
<p>Builds a set of SEADable units.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_UNIT)">#SET_UNIT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_UNIT).FilterMeta" >
<strong>SET_UNIT.FilterMeta</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).FilterPrefixes" >
<strong>SET_UNIT:FilterPrefixes(Prefixes)</strong>
</a>
</dt>
<dd>
<p>Builds a set of units of defined unit prefixes.</p>
<p>All the units starting with the given prefixes will be included within the set.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Prefixes </em></code>:
The prefix of which the unit name starts with.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_UNIT)">#SET_UNIT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).FilterStart" >
<strong>SET_UNIT:FilterStart()</strong>
</a>
</dt>
<dd>
<p>Starts the filtering.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_UNIT)">#SET_UNIT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).FilterTypes" >
<strong>SET_UNIT:FilterTypes(Types)</strong>
</a>
</dt>
<dd>
<p>Builds a set of units of defined unit types.</p>
<p>Possible current types are those types known within DCS world.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Types </em></code>:
Can take those type strings known within DCS world.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_UNIT)">#SET_UNIT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).FindInDatabase" >
<strong>SET_UNIT:FindInDatabase(Event)</strong>
</a>
</dt>
<dd>
<p>Handles the Database to check on any event that Object exists in the Database.</p>
<p>This is required, because sometimes the <em>DATABASE event gets called later than the SET</em>BASE event or vise versa!</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> Event </em></code>: </p>
</li>
</ul>
<h3>Return values</h3>
<ol>
<li>
<p><em>#string:</em>
The name of the UNIT</p>
</li>
<li>
<p><em>#table:</em>
The UNIT</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).FindUnit" >
<strong>SET_UNIT:FindUnit(UnitName)</strong>
</a>
</dt>
<dd>
<p>Finds a Unit based on the Unit Name.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string UnitName </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a>:</em>
The found Unit.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).ForEachUnit" >
<strong>SET_UNIT:ForEachUnit(IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_UNIT and call an interator function for each <strong>alive</strong> UNIT, providing the UNIT and optional parameters.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an alive UNIT in the SET_UNIT. The function needs to accept a UNIT parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_UNIT)">#SET_UNIT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).ForEachUnitCompletelyInZone" >
<strong>SET_UNIT:ForEachUnitCompletelyInZone(ZoneObject, IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_UNIT 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.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> ZoneObject </em></code>:
The Zone to be tested for.</p>
</li>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an alive UNIT in the SET_UNIT. The function needs to accept a UNIT parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_UNIT)">#SET_UNIT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).ForEachUnitNotInZone" >
<strong>SET_UNIT:ForEachUnitNotInZone(ZoneObject, IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<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>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> ZoneObject </em></code>:
The Zone to be tested for.</p>
</li>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an alive UNIT in the SET_UNIT. The function needs to accept a UNIT parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_UNIT)">#SET_UNIT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).GetUnitThreatLevels" >
<strong>SET_UNIT:GetUnitThreatLevels()</strong>
</a>
</dt>
<dd>
<p>Returns map of unit threat levels.</p>
<h3>Return value</h3>
<p><em>#table:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).GetUnitTypes" >
<strong>SET_UNIT:GetUnitTypes()</strong>
</a>
</dt>
<dd>
<p>Returns map of unit types.</p>
<h3>Return value</h3>
<p><em><a href="##(map)">#map</a>:</em></p>
<h1>string,#number> A map of the unit types found. The key is the UnitTypeName and the value is the amount of unit types found.</h1>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).GetUnitTypesText" >
<strong>SET_UNIT:GetUnitTypesText()</strong>
</a>
</dt>
<dd>
<p>Returns a comma separated string of the unit types with a count in the <a href="Set.html">Set</a>.</p>
<h3>Return value</h3>
<p><em>#string:</em>
The unit types string</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).HasFriendlyUnits" >
<strong>SET_UNIT:HasFriendlyUnits(FriendlyCoalition)</strong>
</a>
</dt>
<dd>
<p>Returns if the <a href="Set.html">Set</a> has friendly ground units.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> FriendlyCoalition </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#number:</em>
The amount of ground targets in the Set.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).HasGroundUnits" >
<strong>SET_UNIT:HasGroundUnits()</strong>
</a>
</dt>
<dd>
<p>Returns if the <a href="Set.html">Set</a> has ground targets.</p>
<h3>Return value</h3>
<p><em>#number:</em>
The amount of ground targets in the Set.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).HasRadar" >
<strong>SET_UNIT:HasRadar(RadarType)</strong>
</a>
</dt>
<dd>
<p>Returns if the <a href="Set.html">Set</a> has targets having a radar (of a given type).</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSWrapper.Unit.html##(Unit.RadarType)">Dcs.DCSWrapper.Unit#Unit.RadarType</a> RadarType </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#number:</em>
The amount of radars in the Set with the given type</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).HasSEAD" >
<strong>SET_UNIT:HasSEAD()</strong>
</a>
</dt>
<dd>
<p>Returns if the <a href="Set.html">Set</a> has targets that can be SEADed.</p>
<h3>Return value</h3>
<p><em>#number:</em>
The amount of SEADable units in the Set</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).IsIncludeObject" >
<strong>SET_UNIT:IsIncludeObject(MUnit)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> MUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_UNIT)">#SET_UNIT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).New" >
<strong>SET_UNIT:New()</strong>
</a>
</dt>
<dd>
<p>Creates a new SET_UNIT object, building a set of units belonging to a coalitions, categories, countries, types or with defined prefix names.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_UNIT)">#SET_UNIT</a>:</em></p>
<h3>Usage:</h3>
<pre class="example"><code>-- Define a new SET_UNIT Object. This DBObject will contain a reference to all alive Units.
DBObject = SET_UNIT:New()</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).RemoveUnitsByName" >
<strong>SET_UNIT:RemoveUnitsByName(RemoveUnitNames)</strong>
</a>
</dt>
<dd>
<p>Remove UNIT(s) from SET_UNIT.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> RemoveUnitNames </em></code>:
A single name or an array of UNIT names.</p>
</li>
</ul>
<h3>Return value</h3>
<p>self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_UNIT).Units" >
<strong>SET_UNIT.Units</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(map)" >Type <code>map</code></a></h2>
</div>
</div>
</body>
</html>