FlightControl_Master b7183023c9 Documentation
2017-11-22 06:23:58 +01:00

7155 lines
181 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_A2A.html">AI_A2A</a></li>
<li><a href="AI_A2A_Cap.html">AI_A2A_Cap</a></li>
<li><a href="AI_A2A_Dispatcher.html">AI_A2A_Dispatcher</a></li>
<li><a href="AI_A2A_GCI.html">AI_A2A_GCI</a></li>
<li><a href="AI_A2A_Patrol.html">AI_A2A_Patrol</a></li>
<li><a href="AI_Bai.html">AI_Bai</a></li>
<li><a href="AI_Balancer.html">AI_Balancer</a></li>
<li><a href="AI_Cap.html">AI_Cap</a></li>
<li><a href="AI_Cas.html">AI_Cas</a></li>
<li><a href="AI_Formation.html">AI_Formation</a></li>
<li><a href="AI_Patrol.html">AI_Patrol</a></li>
<li><a href="ATC_Ground.html">ATC_Ground</a></li>
<li><a href="Account.html">Account</a></li>
<li><a href="Airbase.html">Airbase</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="DCSVec3.html">DCSVec3</a></li>
<li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCSZone.html">DCSZone</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="Designate.html">Designate</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="DetectionManager.html">DetectionManager</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="Goal.html">Goal</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</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="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</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="Protect.html">Protect</a></li>
<li><a href="Radio.html">Radio</a></li>
<li><a href="Rat.html">Rat</a></li>
<li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</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="Settings.html">Settings</a></li>
<li><a href="Smoke.html">Smoke</a></li>
<li><a href="Spawn.html">Spawn</a></li>
<li><a href="SpawnStatic.html">SpawnStatic</a></li>
<li><a href="Spot.html">Spot</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="TaskZoneCapture.html">TaskZoneCapture</a></li>
<li><a href="Task_A2A.html">Task_A2A</a></li>
<li><a href="Task_A2A_Dispatcher.html">Task_A2A_Dispatcher</a></li>
<li><a href="Task_A2G.html">Task_A2G</a></li>
<li><a href="Task_A2G_Dispatcher.html">Task_A2G_Dispatcher</a></li>
<li><a href="Task_Cargo.html">Task_Cargo</a></li>
<li><a href="Task_PICKUP.html">Task_PICKUP</a></li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="UserFlag.html">UserFlag</a></li>
<li><a href="UserSound.html">UserSound</a></li>
<li><a href="Utils.html">Utils</a></li>
<li><a href="Velocity.html">Velocity</a></li>
<li><a href="Zone.html">Zone</a></li>
<li><a href="ZoneCaptureCoalition.html">ZoneCaptureCoalition</a></li>
<li><a href="ZoneGoal.html">ZoneGoal</a></li>
<li><a href="ZoneGoalCargo.html">ZoneGoalCargo</a></li>
<li><a href="ZoneGoalCoalition.html">ZoneGoalCoalition</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><strong>Core</strong> -- SET_ classes define <strong>collections</strong> of objects to perform <strong>bulk actions</strong> and logically <strong>group</strong> objects.</p>
<p><img src="..\Presentations\SET\Dia1.JPG" alt="Banner Image"/></p>
<hr/>
<p>SET_ classes group objects of the same type into a collection, which is either:</p>
<ul>
<li>Manually managed using the <strong>:Add...()</strong> or <strong>:Remove...()</strong> methods. The initial SET can be filtered with the **<a href="##(SET_BASE).FilterOnce">SET_BASE.FilterOnce</a>()** method</li>
<li>Dynamically updated when new objects are created or objects are destroyed using the **<a href="##(SET_BASE).FilterStart">SET_BASE.FilterStart</a>()** method.</li>
</ul>
<p>Various types of SET_ classes are available:</p>
<ul>
<li><a href="##(SET_UNIT)">#SET_UNIT</a>: Defines a colleciton of <a href="Unit.html">Unit</a>s filtered by filter criteria.</li>
<li><a href="##(SET_GROUP)">#SET_GROUP</a>: Defines a collection of <a href="Group.html">Group</a>s filtered by filter criteria.</li>
<li><a href="##(SET_CLIENT)">#SET_CLIENT</a>: Defines a collection of <a href="Client.html">Client</a>s filterd by filter criteria.</li>
<li><a href="##(SET_AIRBASE)">#SET_AIRBASE</a>: Defines a collection of <a href="Airbase.html">Airbase</a>s filtered by filter criteria.</li>
</ul>
<p>These classes are derived from <a href="##(SET_BASE)">#SET_BASE</a>, which contains the main methods to manage SETs.</p>
<p>A multitude of other methods are available in SET_ classes that allow to:</p>
<ul>
<li>Validate the presence of objects in the SET.</li>
<li>Trigger events when objects in the SET change a zone presence.</li>
</ul>
<hr/>
<h3>Author: <strong>Sven Van de Velde (FlightControl)</strong></h3>
<h3>Contributions:</h3>
<hr/>
<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">
<h1>5) SET_AIRBASE class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_AIRBASE)">Set#SET_AIRBASE</a> class to build sets of airbases optionally belonging to certain:</p>
<ul>
<li>Coalitions</li>
</ul>
<h2>5.1) SET_AIRBASE constructor</h2>
<p>Create a new SET_AIRBASE object with the <a href="##(SET_AIRBASE).New">SET_AIRBASE.New</a> method:</p>
<ul>
<li><a href="##(SET_AIRBASE).New">SET_AIRBASE.New</a>: Creates a new SET_AIRBASE object.</li>
</ul>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#SET_BASE">SET_BASE</a></td>
<td class="summary">
<h1>1) SET_BASE class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>The <a href="Set.html##(SET_BASE)">Set#SET_BASE</a> class defines the core functions that define a collection of objects.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#SET_CARGO">SET_CARGO</a></td>
<td class="summary">
<h1>(R2.1) SET_CARGO class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_CARGO)">Set#SET_CARGO</a> class to build sets of cargos optionally belonging to certain:</p>
<ul>
<li>Coalitions</li>
<li>Types</li>
<li>Name or Prefix</li>
</ul>
<h2>SET_CARGO constructor</h2>
<p>Create a new SET_CARGO object with the <a href="##(SET_CARGO).New">SET_CARGO.New</a> method:</p>
<ul>
<li><a href="##(SET_CARGO).New">SET_CARGO.New</a>: Creates a new SET_CARGO object.</li>
</ul>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#SET_CLIENT">SET_CLIENT</a></td>
<td class="summary">
<h1>4) SET_CLIENT class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a> class to build sets of units belonging to certain:</p>
<ul>
<li>Coalitions</li>
<li>Categories</li>
<li>Countries</li>
<li>Client types</li>
<li>Starting with certain prefix strings.</li>
</ul>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#SET_GROUP">SET_GROUP</a></td>
<td class="summary">
<h1>SET_GROUP class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a> class to build sets of groups belonging to certain:</p>
<ul>
<li>Coalitions</li>
<li>Categories</li>
<li>Countries</li>
<li>Starting with certain prefix strings.</li>
</ul>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#SET_PLAYER">SET_PLAYER</a></td>
<td class="summary">
<h1>4) SET_PLAYER class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_PLAYER)">Set#SET_PLAYER</a> class to build sets of units belonging to alive players:</p>
<h2>4.1) SET_PLAYER constructor</h2>
<p>Create a new SET_PLAYER object with the <a href="##(SET_PLAYER).New">SET_PLAYER.New</a> method:</p>
<ul>
<li><a href="##(SET_PLAYER).New">SET_PLAYER.New</a>: Creates a new SET_PLAYER object.</li>
</ul>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#SET_STATIC">SET_STATIC</a></td>
<td class="summary">
<h1>3) SET_STATIC class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the SET_STATIC class to build sets of Statics belonging to certain:</p>
<ul>
<li>Coalitions</li>
<li>Categories</li>
<li>Countries</li>
<li>Static types</li>
<li>Starting with certain prefix strings.</li>
</ul>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#SET_UNIT">SET_UNIT</a></td>
<td class="summary">
<h1>3) SET_UNIT class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the SET_UNIT class to build sets of units belonging to certain:</p>
<ul>
<li>Coalitions</li>
<li>Categories</li>
<li>Countries</li>
<li>Unit types</li>
<li>Starting with certain prefix strings.</li>
</ul>
</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).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).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="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a> from a <a href="Point.html##(POINT_VEC2)">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="Base.html##(BASE)">Base#BASE</a> object in the <a href="Set.html##(SET_BASE)">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="Base.html##(BASE)">Base#BASE</a> object in the <a href="Set.html##(SET_BASE)">Set#SET_BASE</a>, using the Object Name as the index.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).CallScheduler">SET_BASE.CallScheduler</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="Set.html##(SET_BASE)">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).FilterCrashes">SET_BASE:FilterCrashes()</a></td>
<td class="summary">
<p>Starts the filtering of the Crash events for the collection.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).FilterDeads">SET_BASE:FilterDeads()</a></td>
<td class="summary">
<p>Starts the filtering of the Dead events for the collection.</p>
</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="Point.html##(POINT_VEC2)">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="Base.html##(BASE)">Base#BASE</a> object from the <a href="Set.html##(SET_BASE)">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).GetFirst">SET_BASE:GetFirst()</a></td>
<td class="summary">
<p>Gets the first object from the <a href="Set.html##(SET_BASE)">Set#SET_BASE</a> and derived classes.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).GetLast">SET_BASE:GetLast()</a></td>
<td class="summary">
<p>Gets the last object from the <a href="Set.html##(SET_BASE)">Set#SET_BASE</a> and derived classes.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).GetObjectNames">SET_BASE:GetObjectNames()</a></td>
<td class="summary">
<p>Gets a string with all the object names.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).GetRandom">SET_BASE:GetRandom()</a></td>
<td class="summary">
<p>Gets a random object from the <a href="Set.html##(SET_BASE)">Set#SET_BASE</a> and derived classes.</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).GetSetNames">SET_BASE:GetSetNames()</a></td>
<td class="summary">
<p>Gets a list of the Names of the Objects in the Set.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).GetSetObjects">SET_BASE:GetSetObjects()</a></td>
<td class="summary">
<p>Gets a list of the Objects in 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="Base.html##(BASE)">Base#BASE</a> object from the <a href="Set.html##(SET_BASE)">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)._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="Base.html##(BASE)">Base#BASE</a> object based on the object Name.</p>
</td>
</tr>
</table>
<h2><a id="#(SET_CARGO)">Type <code>SET_CARGO</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CARGO).AddCargosByName">SET_CARGO:AddCargosByName(AddCargoNames)</a></td>
<td class="summary">
<p>(R2.1) Add CARGOs to SET_CARGO.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CARGO).AddInDatabase">SET_CARGO:AddInDatabase(Event)</a></td>
<td class="summary">
<p>(R2.1) 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_CARGO).FilterCoalitions">SET_CARGO:FilterCoalitions(Coalitions)</a></td>
<td class="summary">
<p>(R2.1) Builds a set of cargos of coalitions.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CARGO).FilterCountries">SET_CARGO:FilterCountries(Countries)</a></td>
<td class="summary">
<p>(R2.1) Builds a set of cargos of defined countries.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CARGO).FilterPrefixes">SET_CARGO:FilterPrefixes(Prefixes)</a></td>
<td class="summary">
<p>(R2.1) Builds a set of cargos of defined cargo prefixes.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CARGO).FilterStart">SET_CARGO:FilterStart()</a></td>
<td class="summary">
<p>(R2.1) Starts the filtering.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CARGO).FilterTypes">SET_CARGO:FilterTypes(Types)</a></td>
<td class="summary">
<p>(R2.1) Builds a set of cargos of defined cargo types.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CARGO).FindCargo">SET_CARGO:FindCargo(CargoName)</a></td>
<td class="summary">
<p>(R2.1) Finds a Cargo based on the Cargo Name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CARGO).FindInDatabase">SET_CARGO:FindInDatabase(Event)</a></td>
<td class="summary">
<p>(R2.1) 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_CARGO).FindNearestCargoFromPointVec2">SET_CARGO:FindNearestCargoFromPointVec2(PointVec2)</a></td>
<td class="summary">
<p>(R2.1) Iterate the SET_CARGO while identifying the nearest <a href="Cargo.html##(CARGO)">Cargo#CARGO</a> from a <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CARGO).ForEachCargo">SET_CARGO:ForEachCargo(IteratorFunction, ...)</a></td>
<td class="summary">
<p>(R2.1) Iterate the SET_CARGO and call an interator function for each CARGO, providing the CARGO and optional parameters.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CARGO).IsIncludeObject">SET_CARGO:IsIncludeObject(MCargo)</a></td>
<td class="summary">
<p>(R2.1) </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CARGO).New">SET_CARGO:New()</a></td>
<td class="summary">
<p>(R2.1) Creates a new SET_CARGO object, building a set of cargos belonging to a coalitions and categories.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CARGO).OnEventDeleteCargo">SET_CARGO:OnEventDeleteCargo(EventData)</a></td>
<td class="summary">
<p>(R2.1) Handles the OnDead or OnCrash event for alive units set.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CARGO).OnEventNewCargo">SET_CARGO:OnEventNewCargo(EventData)</a></td>
<td class="summary">
<p>(R2.1) Handles the OnEventNewCargo event for the Set.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CARGO).RemoveCargosByName">SET_CARGO:RemoveCargosByName(RemoveCargoNames)</a></td>
<td class="summary">
<p>(R2.1) Remove CARGOs from SET_CARGO.</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).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).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).AllCompletelyInZone">SET_GROUP:AllCompletelyInZone(ZoneObject, Zone)</a></td>
<td class="summary">
<p>Iterate the SET_GROUP and return true if all the <a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> are completely in the <a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a></p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).AnyCompletelyInZone">SET_GROUP:AnyCompletelyInZone(ZoneObject, Zone)</a></td>
<td class="summary">
<p>Iterate the SET_GROUP and return true if at least one of the <a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> is completely inside the <a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a></p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).AnyInZone">SET_GROUP:AnyInZone(ZoneObject, Zone)</a></td>
<td class="summary">
<p>Iterate the SET_GROUP and return true if at least one <a href="##(UNIT)">#UNIT</a> of one <a href="GROUP.html">GROUP</a> of the <a href="SET_GROUP.html">SET_GROUP</a> is in <a href="ZONE.html">ZONE</a></p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).AnyPartlyInZone">SET_GROUP:AnyPartlyInZone(ZoneObject, Zone)</a></td>
<td class="summary">
<p>Iterate the SET_GROUP and return true if at least one <a href="GROUP.html">GROUP</a> of the <a href="SET_GROUP.html">SET_GROUP</a> is partly in <a href="ZONE.html">ZONE</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).CountInZone">SET_GROUP:CountInZone(ZoneObject, Zone)</a></td>
<td class="summary">
<p>Iterate the SET<em>GROUP and count how many GROUPs are completely in the Zone
That could easily be done with SET</em>GROUP:ForEachGroupCompletelyInZone(), but this function
provides an easy to use shortcut...</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).CountUnitInZone">SET_GROUP:CountUnitInZone(ZoneObject, Zone)</a></td>
<td class="summary">
<p>Iterate the SET_GROUP and count how many UNITs are completely in the Zone</p>
</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).FilterCategoryAirplane">SET_GROUP:FilterCategoryAirplane()</a></td>
<td class="summary">
<p>Builds a set of groups out of airplane category.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).FilterCategoryGround">SET_GROUP:FilterCategoryGround()</a></td>
<td class="summary">
<p>Builds a set of groups out of ground category.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).FilterCategoryHelicopter">SET_GROUP:FilterCategoryHelicopter()</a></td>
<td class="summary">
<p>Builds a set of groups out of helicopter category.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).FilterCategoryShip">SET_GROUP:FilterCategoryShip()</a></td>
<td class="summary">
<p>Builds a set of groups out of ship category.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP).FilterCategoryStructure">SET_GROUP:FilterCategoryStructure()</a></td>
<td class="summary">
<p>Builds a set of groups out of structure category.</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).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).FindNearestGroupFromPointVec2">SET_GROUP:FindNearestGroupFromPointVec2(PointVec2)</a></td>
<td class="summary">
<p>Iterate the SET_GROUP while identifying the nearest object from a <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a>.</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).NoneInZone">SET_GROUP:NoneInZone(ZoneObject, Zone)</a></td>
<td class="summary">
<p>Iterate the SET_GROUP and return true if no <a href="GROUP.html">GROUP</a> of the <a href="SET_GROUP.html">SET_GROUP</a> is in <a href="ZONE.html">ZONE</a>
This could also be achieved with <code>not SET_GROUP:AnyPartlyInZone(Zone)</code>, but it's easier for the
mission designer to add a dedicated method</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>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP)._EventOnDeadOrCrash">SET_GROUP:_EventOnDeadOrCrash(Event)</a></td>
<td class="summary">
<p>Handles the OnDead or OnCrash event for alive groups set.</p>
</td>
</tr>
</table>
<h2><a id="#(SET_PLAYER)">Type <code>SET_PLAYER</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).AddClientsByName">SET_PLAYER:AddClientsByName(AddClientNames)</a></td>
<td class="summary">
<p>Add CLIENT(s) to SET_PLAYER.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).AddInDatabase">SET_PLAYER: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_PLAYER).FilterCategories">SET_PLAYER:FilterCategories(Categories)</a></td>
<td class="summary">
<p>Builds a set of clients out of categories joined by players.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).FilterCoalitions">SET_PLAYER:FilterCoalitions(Coalitions)</a></td>
<td class="summary">
<p>Builds a set of clients of coalitions joined by specific players.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).FilterCountries">SET_PLAYER: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_PLAYER).FilterPrefixes">SET_PLAYER: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_PLAYER).FilterStart">SET_PLAYER:FilterStart()</a></td>
<td class="summary">
<p>Starts the filtering.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).FilterTypes">SET_PLAYER:FilterTypes(Types)</a></td>
<td class="summary">
<p>Builds a set of clients of defined client types joined by players.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).FindClient">SET_PLAYER:FindClient(PlayerName)</a></td>
<td class="summary">
<p>Finds a Client based on the Player Name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).FindInDatabase">SET_PLAYER: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_PLAYER).ForEachPlayer">SET_PLAYER:ForEachPlayer(IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the SET_PLAYER 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_PLAYER).ForEachPlayerInZone">SET_PLAYER:ForEachPlayerInZone(ZoneObject, IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the SET_PLAYER 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_PLAYER).ForEachPlayerNotInZone">SET_PLAYER:ForEachPlayerNotInZone(ZoneObject, IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the SET_PLAYER 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_PLAYER).IsIncludeObject">SET_PLAYER:IsIncludeObject(MClient)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).New">SET_PLAYER:New()</a></td>
<td class="summary">
<p>Creates a new SET_PLAYER 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_PLAYER).RemoveClientsByName">SET_PLAYER:RemoveClientsByName(RemoveClientNames)</a></td>
<td class="summary">
<p>Remove CLIENT(s) from SET_PLAYER.</p>
</td>
</tr>
</table>
<h2><a id="#(SET_STATIC)">Type <code>SET_STATIC</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).AddInDatabase">SET_STATIC: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_STATIC).AddStatic">SET_STATIC:AddStatic(AddStatic)</a></td>
<td class="summary">
<p>Add STATIC(s) to SET_STATIC.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).AddStaticsByName">SET_STATIC:AddStaticsByName(AddStaticNames)</a></td>
<td class="summary">
<p>Add STATIC(s) to SET_STATIC.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).FilterCategories">SET_STATIC: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_STATIC).FilterCoalitions">SET_STATIC: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_STATIC).FilterCountries">SET_STATIC: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_STATIC).FilterPrefixes">SET_STATIC: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_STATIC).FilterStart">SET_STATIC:FilterStart()</a></td>
<td class="summary">
<p>Starts the filtering.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).FilterTypes">SET_STATIC: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_STATIC).FindInDatabase">SET_STATIC: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_STATIC).FindStatic">SET_STATIC:FindStatic(StaticName)</a></td>
<td class="summary">
<p>Finds a Static based on the Static Name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).ForEachStatic">SET_STATIC:ForEachStatic(IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the SET_STATIC and call an interator function for each <strong>alive</strong> STATIC, providing the STATIC and optional parameters.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).ForEachStaticCompletelyInZone">SET_STATIC:ForEachStaticCompletelyInZone(ZoneObject, IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the SET_STATIC and call an iterator function for each <strong>alive</strong> STATIC presence completely in a <a href="Zone.html">Zone</a>, providing the STATIC and optional parameters to the called function.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).ForEachStaticInZone">SET_STATIC:ForEachStaticInZone(IteratorFunction, ...)</a></td>
<td class="summary">
<p>Check if minimal one element of the SET_STATIC is in the Zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).ForEachStaticNotInZone">SET_STATIC:ForEachStaticNotInZone(ZoneObject, IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the SET_STATIC and call an iterator function for each <strong>alive</strong> STATIC presence not in a <a href="Zone.html">Zone</a>, providing the STATIC and optional parameters to the called function.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).GetCoordinate">SET_STATIC:GetCoordinate()</a></td>
<td class="summary">
<p>Get the center coordinate of the SET_STATIC.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).GetFirst">SET_STATIC:GetFirst()</a></td>
<td class="summary">
<p>Get the first unit from the set.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).GetHeading">SET_STATIC:GetHeading()</a></td>
<td class="summary">
<p>Get the average heading of the SET_STATIC.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).GetStaticTypes">SET_STATIC:GetStaticTypes()</a></td>
<td class="summary">
<p>Returns map of unit types.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).GetStaticTypesText">SET_STATIC:GetStaticTypesText()</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_STATIC).GetTypeNames">SET_STATIC:GetTypeNames(Delimiter)</a></td>
<td class="summary">
<p>Retrieve the type names of the <a href="Static.html">Static</a>s in the SET, delimited by an optional delimiter.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).GetVelocity">SET_STATIC:GetVelocity()</a></td>
<td class="summary">
<p>Get the maximum velocity of the SET_STATIC.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).IsIncludeObject">SET_STATIC:IsIncludeObject(MStatic)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).IsNotInZone">SET_STATIC:IsNotInZone(ZoneObject, Zone)</a></td>
<td class="summary">
<p>Check if no element of the SET_STATIC is in the Zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).IsPatriallyInZone">SET_STATIC:IsPatriallyInZone(Zone)</a></td>
<td class="summary">
<p>Check if minimal one element of the SET_STATIC is in the Zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_STATIC).New">SET_STATIC:New()</a></td>
<td class="summary">
<p>Creates a new SET_STATIC 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_STATIC).RemoveStaticsByName">SET_STATIC:RemoveStaticsByName(RemoveStaticNames)</a></td>
<td class="summary">
<p>Remove STATIC(s) from SET_STATIC.</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).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).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).ForEachUnitInZone">SET_UNIT:ForEachUnitInZone(IteratorFunction, ...)</a></td>
<td class="summary">
<p>Check if minimal one element of the SET_UNIT is in the Zone.</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).ForEachUnitPerThreatLevel">SET_UNIT:ForEachUnitPerThreatLevel(FromThreatLevel, ToThreatLevel, IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the SET_UNIT <strong>sorted *per Threat Level</strong> 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).GetCoordinate">SET_UNIT:GetCoordinate()</a></td>
<td class="summary">
<p>Get the center coordinate of the SET_UNIT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).GetFirst">SET_UNIT:GetFirst()</a></td>
<td class="summary">
<p>Get the first unit from the set.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).GetHeading">SET_UNIT:GetHeading()</a></td>
<td class="summary">
<p>Get the average heading of the SET_UNIT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).GetTypeNames">SET_UNIT:GetTypeNames(Delimiter)</a></td>
<td class="summary">
<p>Retrieve the type names of the <a href="Unit.html">Unit</a>s in the SET, delimited by an optional delimiter.</p>
</td>
</tr>
<tr>
<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).GetVelocity">SET_UNIT:GetVelocity()</a></td>
<td class="summary">
<p>Get the maximum velocity of the SET_UNIT.</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).IsNotInZone">SET_UNIT:IsNotInZone(ZoneObject, Zone)</a></td>
<td class="summary">
<p>Check if no element of the SET_UNIT is in the Zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).IsPartiallyInZone">SET_UNIT:IsPartiallyInZone(ZoneTest)</a></td>
<td class="summary">
<p>Check if minimal one element of the SET_UNIT is in the Zone.</p>
</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>
</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>
<h1>5) SET_AIRBASE class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_AIRBASE)">Set#SET_AIRBASE</a> class to build sets of airbases optionally belonging to certain:</p>
<ul>
<li>Coalitions</li>
</ul>
<h2>5.1) SET_AIRBASE constructor</h2>
<p>Create a new SET_AIRBASE object with the <a href="##(SET_AIRBASE).New">SET_AIRBASE.New</a> method:</p>
<ul>
<li><a href="##(SET_AIRBASE).New">SET_AIRBASE.New</a>: Creates a new SET_AIRBASE object.</li>
</ul>
<p> </p>
<h2>5.2) Add or Remove AIRBASEs from SET_AIRBASE</h2>
<p>AIRBASEs can be added and removed using the <a href="Set.html##(SET_AIRBASE).AddAirbasesByName">Set#SET_AIRBASE.AddAirbasesByName</a> and <a href="Set.html##(SET_AIRBASE).RemoveAirbasesByName">Set#SET_AIRBASE.RemoveAirbasesByName</a> respectively.
These methods take a single AIRBASE name or an array of AIRBASE names to be added or removed from SET_AIRBASE.</p>
<h2>5.3) SET_AIRBASE filter criteria</h2>
<p>You can set filter criteria to define the set of clients within the SET_AIRBASE.
Filter criteria are defined by:</p>
<ul>
<li><a href="##(SET_AIRBASE).FilterCoalitions">SET_AIRBASE.FilterCoalitions</a>: Builds the SET_AIRBASE with the airbases belonging to the coalition(s).</li>
</ul>
<p>Once the filter criteria have been set for the SET_AIRBASE, you can start filtering using:</p>
<ul>
<li><a href="##(SET_AIRBASE).FilterStart">SET_AIRBASE.FilterStart</a>: Starts the filtering of the airbases within the SET_AIRBASE.</li>
</ul>
<h2>5.4) SET_AIRBASE iterators</h2>
<p>Once the filters have been defined and the SET<em>AIRBASE has been built, you can iterate the SET</em>AIRBASE with the available iterator methods.
The iterator methods will walk the SET<em>AIRBASE set, and call for each airbase within the set a function that you provide.
The following iterator methods are currently available within the SET</em>AIRBASE:</p>
<ul>
<li><a href="##(SET_AIRBASE).ForEachAirbase">SET_AIRBASE.ForEachAirbase</a>: Calls a function for each airbase it finds within the SET_AIRBASE.</li>
</ul>
<hr/>
</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>
<h1>1) SET_BASE class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>The <a href="Set.html##(SET_BASE)">Set#SET_BASE</a> class defines the core functions that define a collection of objects.</p>
<p>A SET provides iterators to iterate the SET, but will <strong>temporarily</strong> yield the ForEach interator loop at defined <strong>"intervals"</strong> to the mail simulator loop.
In this way, large loops can be done while not blocking the simulator main processing loop.
The default <strong>"yield interval"</strong> is after 10 objects processed.
The default <strong>"time interval"</strong> is after 0.001 seconds.</p>
<h2>1.1) Add or remove objects from the SET</h2>
<p>Some key core functions are <a href="Set.html##(SET_BASE).Add">Set#SET_BASE.Add</a> and <a href="Set.html##(SET_BASE).Remove">Set#SET_BASE.Remove</a> to add or remove objects from the SET in your logic.</p>
<h2>1.2) Define the SET iterator <strong>"yield interval"</strong> and the <strong>"time interval"</strong></h2>
<p>Modify the iterator intervals with the <a href="Set.html##(SET_BASE).SetInteratorIntervals">Set#SET_BASE.SetInteratorIntervals</a> method.
You can set the <strong>"yield interval"</strong>, and the <strong>"time interval"</strong>. (See above).</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(SET_CARGO)">#SET_CARGO</a></em>
<a id="SET_CARGO" >
<strong>SET_CARGO</strong>
</a>
</dt>
<dd>
<h1>(R2.1) SET_CARGO class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_CARGO)">Set#SET_CARGO</a> class to build sets of cargos optionally belonging to certain:</p>
<ul>
<li>Coalitions</li>
<li>Types</li>
<li>Name or Prefix</li>
</ul>
<h2>SET_CARGO constructor</h2>
<p>Create a new SET_CARGO object with the <a href="##(SET_CARGO).New">SET_CARGO.New</a> method:</p>
<ul>
<li><a href="##(SET_CARGO).New">SET_CARGO.New</a>: Creates a new SET_CARGO object.</li>
</ul>
<p> </p>
<h2>Add or Remove CARGOs from SET_CARGO</h2>
<p>CARGOs can be added and removed using the <a href="Set.html##(SET_CARGO).AddCargosByName">Set#SET_CARGO.AddCargosByName</a> and <a href="Set.html##(SET_CARGO).RemoveCargosByName">Set#SET_CARGO.RemoveCargosByName</a> respectively.
These methods take a single CARGO name or an array of CARGO names to be added or removed from SET_CARGO.</p>
<h2>SET_CARGO filter criteria</h2>
<p>You can set filter criteria to automatically maintain the SET_CARGO contents.
Filter criteria are defined by:</p>
<ul>
<li><a href="##(SET_CARGO).FilterCoalitions">SET_CARGO.FilterCoalitions</a>: Builds the SET_CARGO with the cargos belonging to the coalition(s).</li>
<li><a href="##(SET_CARGO).FilterPrefixes">SET_CARGO.FilterPrefixes</a>: Builds the SET_CARGO with the cargos containing the prefix string(s).</li>
<li><a href="##(SET_CARGO).FilterTypes">SET_CARGO.FilterTypes</a>: Builds the SET_CARGO with the cargos belonging to the cargo type(s).</li>
<li><a href="##(SET_CARGO).FilterCountries">SET_CARGO.FilterCountries</a>: Builds the SET_CARGO with the cargos belonging to the country(ies).</li>
</ul>
<p>Once the filter criteria have been set for the SET_CARGO, you can start filtering using:</p>
<ul>
<li><a href="##(SET_CARGO).FilterStart">SET_CARGO.FilterStart</a>: Starts the filtering of the cargos within the SET_CARGO.</li>
</ul>
<h2>SET_CARGO iterators</h2>
<p>Once the filters have been defined and the SET<em>CARGO has been built, you can iterate the SET</em>CARGO with the available iterator methods.
The iterator methods will walk the SET<em>CARGO set, and call for each cargo within the set a function that you provide.
The following iterator methods are currently available within the SET</em>CARGO:</p>
<ul>
<li><a href="##(SET_CARGO).ForEachCargo">SET_CARGO.ForEachCargo</a>: Calls a function for each cargo it finds within the SET_CARGO.</li>
</ul>
</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>
<h1>4) SET_CLIENT class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a> class to build sets of units belonging to certain:</p>
<ul>
<li>Coalitions</li>
<li>Categories</li>
<li>Countries</li>
<li>Client types</li>
<li>Starting with certain prefix strings.</li>
</ul>
<p> </p>
<h2>4.1) SET_CLIENT constructor</h2>
<p>Create a new SET_CLIENT object with the <a href="##(SET_CLIENT).New">SET_CLIENT.New</a> method:</p>
<ul>
<li><a href="##(SET_CLIENT).New">SET_CLIENT.New</a>: Creates a new SET_CLIENT object.</li>
</ul>
<h2>4.2) Add or Remove CLIENT(s) from SET_CLIENT</h2>
<p>CLIENTs can be added and removed using the <a href="Set.html##(SET_CLIENT).AddClientsByName">Set#SET_CLIENT.AddClientsByName</a> and <a href="Set.html##(SET_CLIENT).RemoveClientsByName">Set#SET_CLIENT.RemoveClientsByName</a> respectively.
These methods take a single CLIENT name or an array of CLIENT names to be added or removed from SET_CLIENT.</p>
<h2>4.3) SET_CLIENT filter criteria</h2>
<p>You can set filter criteria to define the set of clients within the SET_CLIENT.
Filter criteria are defined by:</p>
<ul>
<li><a href="##(SET_CLIENT).FilterCoalitions">SET_CLIENT.FilterCoalitions</a>: Builds the SET_CLIENT with the clients belonging to the coalition(s).</li>
<li><a href="##(SET_CLIENT).FilterCategories">SET_CLIENT.FilterCategories</a>: Builds the SET_CLIENT with the clients belonging to the category(ies).</li>
<li><a href="##(SET_CLIENT).FilterTypes">SET_CLIENT.FilterTypes</a>: Builds the SET_CLIENT with the clients belonging to the client type(s).</li>
<li><a href="##(SET_CLIENT).FilterCountries">SET_CLIENT.FilterCountries</a>: Builds the SET_CLIENT with the clients belonging to the country(ies).</li>
<li><a href="##(SET_CLIENT).FilterPrefixes">SET_CLIENT.FilterPrefixes</a>: Builds the SET_CLIENT with the clients starting with the same prefix string(s).</li>
</ul>
<p>Once the filter criteria have been set for the SET_CLIENT, you can start filtering using:</p>
<ul>
<li><a href="##(SET_CLIENT).FilterStart">SET_CLIENT.FilterStart</a>: Starts the filtering of the clients within the SET_CLIENT.</li>
</ul>
<p>Planned filter criteria within development are (so these are not yet available):</p>
<ul>
<li><a href="##(SET_CLIENT).FilterZones">SET_CLIENT.FilterZones</a>: Builds the SET_CLIENT with the clients within a <a href="Zone.html##(ZONE)">Zone#ZONE</a>.</li>
</ul>
<h2>4.4) SET_CLIENT iterators</h2>
<p>Once the filters have been defined and the SET<em>CLIENT has been built, you can iterate the SET</em>CLIENT with the available iterator methods.
The iterator methods will walk the SET<em>CLIENT set, and call for each element within the set a function that you provide.
The following iterator methods are currently available within the SET</em>CLIENT:</p>
<ul>
<li><a href="##(SET_CLIENT).ForEachClient">SET_CLIENT.ForEachClient</a>: Calls a function for each alive client it finds within the SET_CLIENT.</li>
</ul>
<hr/>
</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>
<h1>SET_GROUP class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a> class to build sets of groups belonging to certain:</p>
<ul>
<li>Coalitions</li>
<li>Categories</li>
<li>Countries</li>
<li>Starting with certain prefix strings.</li>
</ul>
<p> </p>
<h2>1. SET_GROUP constructor</h2>
<p>Create a new SET_GROUP object with the <a href="##(SET_GROUP).New">SET_GROUP.New</a> method:</p>
<ul>
<li><a href="##(SET_GROUP).New">SET_GROUP.New</a>: Creates a new SET_GROUP object.</li>
</ul>
<h2>2. Add or Remove GROUP(s) from SET_GROUP</h2>
<p>GROUPS can be added and removed using the <a href="Set.html##(SET_GROUP).AddGroupsByName">Set#SET_GROUP.AddGroupsByName</a> and <a href="Set.html##(SET_GROUP).RemoveGroupsByName">Set#SET_GROUP.RemoveGroupsByName</a> respectively.
These methods take a single GROUP name or an array of GROUP names to be added or removed from SET_GROUP.</p>
<h2>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>For the Category Filter, extra methods have been added:</p>
<ul>
<li><a href="##(SET_GROUP).FilterCategoryAirplane">SET_GROUP.FilterCategoryAirplane</a>: Builds the SET_GROUP from airplanes.</li>
<li><a href="##(SET_GROUP).FilterCategoryHelicopter">SET_GROUP.FilterCategoryHelicopter</a>: Builds the SET_GROUP from helicopters.</li>
<li><a href="##(SET_GROUP).FilterCategoryGround">SET_GROUP.FilterCategoryGround</a>: Builds the SET_GROUP from ground vehicles or infantry.</li>
<li><a href="##(SET_GROUP).FilterCategoryShip">SET_GROUP.FilterCategoryShip</a>: Builds the SET_GROUP from ships.</li>
<li><a href="##(SET_GROUP).FilterCategoryStructure">SET_GROUP.FilterCategoryStructure</a>: Builds the SET_GROUP from structures.</li>
</ul>
<p>Once the filter criteria have been set for the SET_GROUP, you can start filtering using:</p>
<ul>
<li><a href="##(SET_GROUP).FilterStart">SET_GROUP.FilterStart</a>: Starts the filtering of the groups within the SET_GROUP and add or remove GROUP objects <strong>dynamically</strong>.</li>
</ul>
<p>Planned filter criteria within development are (so these are not yet available):</p>
<ul>
<li><a href="##(SET_GROUP).FilterZones">SET_GROUP.FilterZones</a>: Builds the SET_GROUP with the groups within a <a href="Zone.html##(ZONE)">Zone#ZONE</a>.</li>
</ul>
<h2>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/>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(SET_PLAYER)">#SET_PLAYER</a></em>
<a id="SET_PLAYER" >
<strong>SET_PLAYER</strong>
</a>
</dt>
<dd>
<h1>4) SET_PLAYER class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_PLAYER)">Set#SET_PLAYER</a> class to build sets of units belonging to alive players:</p>
<h2>4.1) SET_PLAYER constructor</h2>
<p>Create a new SET_PLAYER object with the <a href="##(SET_PLAYER).New">SET_PLAYER.New</a> method:</p>
<ul>
<li><a href="##(SET_PLAYER).New">SET_PLAYER.New</a>: Creates a new SET_PLAYER object.</li>
</ul>
<p> </p>
<h2>4.3) SET_PLAYER filter criteria</h2>
<p>You can set filter criteria to define the set of clients within the SET_PLAYER.
Filter criteria are defined by:</p>
<ul>
<li><a href="##(SET_PLAYER).FilterCoalitions">SET_PLAYER.FilterCoalitions</a>: Builds the SET_PLAYER with the clients belonging to the coalition(s).</li>
<li><a href="##(SET_PLAYER).FilterCategories">SET_PLAYER.FilterCategories</a>: Builds the SET_PLAYER with the clients belonging to the category(ies).</li>
<li><a href="##(SET_PLAYER).FilterTypes">SET_PLAYER.FilterTypes</a>: Builds the SET_PLAYER with the clients belonging to the client type(s).</li>
<li><a href="##(SET_PLAYER).FilterCountries">SET_PLAYER.FilterCountries</a>: Builds the SET_PLAYER with the clients belonging to the country(ies).</li>
<li><a href="##(SET_PLAYER).FilterPrefixes">SET_PLAYER.FilterPrefixes</a>: Builds the SET_PLAYER with the clients starting with the same prefix string(s).</li>
</ul>
<p>Once the filter criteria have been set for the SET_PLAYER, you can start filtering using:</p>
<ul>
<li><a href="##(SET_PLAYER).FilterStart">SET_PLAYER.FilterStart</a>: Starts the filtering of the clients within the SET_PLAYER.</li>
</ul>
<p>Planned filter criteria within development are (so these are not yet available):</p>
<ul>
<li><a href="##(SET_PLAYER).FilterZones">SET_PLAYER.FilterZones</a>: Builds the SET_PLAYER with the clients within a <a href="Zone.html##(ZONE)">Zone#ZONE</a>.</li>
</ul>
<h2>4.4) SET_PLAYER iterators</h2>
<p>Once the filters have been defined and the SET<em>PLAYER has been built, you can iterate the SET</em>PLAYER with the available iterator methods.
The iterator methods will walk the SET<em>PLAYER 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>PLAYER:</p>
<ul>
<li><a href="##(SET_PLAYER).ForEachClient">SET_PLAYER.ForEachClient</a>: Calls a function for each alive client it finds within the SET_PLAYER.</li>
</ul>
<hr/>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(SET_STATIC)">#SET_STATIC</a></em>
<a id="SET_STATIC" >
<strong>SET_STATIC</strong>
</a>
</dt>
<dd>
<h1>3) SET_STATIC class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the SET_STATIC class to build sets of Statics belonging to certain:</p>
<ul>
<li>Coalitions</li>
<li>Categories</li>
<li>Countries</li>
<li>Static types</li>
<li>Starting with certain prefix strings.</li>
</ul>
<p> </p>
<h2>3.1) SET_STATIC constructor</h2>
<p>Create a new SET_STATIC object with the <a href="##(SET_STATIC).New">SET_STATIC.New</a> method:</p>
<ul>
<li><a href="##(SET_STATIC).New">SET_STATIC.New</a>: Creates a new SET_STATIC object.</li>
</ul>
<h2>3.2) Add or Remove STATIC(s) from SET_STATIC</h2>
<p>STATICs can be added and removed using the <a href="Set.html##(SET_STATIC).AddStaticsByName">Set#SET_STATIC.AddStaticsByName</a> and <a href="Set.html##(SET_STATIC).RemoveStaticsByName">Set#SET_STATIC.RemoveStaticsByName</a> respectively.
These methods take a single STATIC name or an array of STATIC names to be added or removed from SET_STATIC.</p>
<h2>3.3) SET_STATIC filter criteria</h2>
<p>You can set filter criteria to define the set of units within the SET_STATIC.
Filter criteria are defined by:</p>
<ul>
<li><a href="##(SET_STATIC).FilterCoalitions">SET_STATIC.FilterCoalitions</a>: Builds the SET_STATIC with the units belonging to the coalition(s).</li>
<li><a href="##(SET_STATIC).FilterCategories">SET_STATIC.FilterCategories</a>: Builds the SET_STATIC with the units belonging to the category(ies).</li>
<li><a href="##(SET_STATIC).FilterTypes">SET_STATIC.FilterTypes</a>: Builds the SET_STATIC with the units belonging to the unit type(s).</li>
<li><a href="##(SET_STATIC).FilterCountries">SET_STATIC.FilterCountries</a>: Builds the SET_STATIC with the units belonging to the country(ies).</li>
<li><a href="##(SET_STATIC).FilterPrefixes">SET_STATIC.FilterPrefixes</a>: Builds the SET_STATIC with the units starting with the same prefix string(s).</li>
</ul>
<p>Once the filter criteria have been set for the SET_STATIC, you can start filtering using:</p>
<ul>
<li><a href="##(SET_STATIC).FilterStart">SET_STATIC.FilterStart</a>: Starts the filtering of the units within the SET_STATIC.</li>
</ul>
<p>Planned filter criteria within development are (so these are not yet available):</p>
<ul>
<li><a href="##(SET_STATIC).FilterZones">SET_STATIC.FilterZones</a>: Builds the SET_STATIC with the units within a <a href="Zone.html##(ZONE)">Zone#ZONE</a>.</li>
</ul>
<h2>3.4) SET_STATIC iterators</h2>
<p>Once the filters have been defined and the SET<em>STATIC has been built, you can iterate the SET</em>STATIC with the available iterator methods.
The iterator methods will walk the SET<em>STATIC 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>STATIC:</p>
<ul>
<li><a href="##(SET_STATIC).ForEachStatic">SET_STATIC.ForEachStatic</a>: Calls a function for each alive unit it finds within the SET_STATIC.</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_STATIC).ForEachStaticInZone">SET_STATIC.ForEachStaticInZone</a>: Calls a function for each unit contained within the SET_STATIC.</li>
<li><a href="##(SET_STATIC).ForEachStaticCompletelyInZone">SET_STATIC.ForEachStaticCompletelyInZone</a>: Iterate and call an iterator function for each <strong>alive</strong> STATIC presence completely in a <a href="Zone.html">Zone</a>, providing the STATIC and optional parameters to the called function.</li>
<li><a href="##(SET_STATIC).ForEachStaticNotInZone">SET_STATIC.ForEachStaticNotInZone</a>: Iterate and call an iterator function for each <strong>alive</strong> STATIC presence not in a <a href="Zone.html">Zone</a>, providing the STATIC and optional parameters to the called function.</li>
</ul>
<h2>3.5 ) SET_STATIC atomic methods</h2>
<p>Various methods exist for a SET<em>STATIC to perform actions or calculations and retrieve results from the SET</em>STATIC:</p>
<ul>
<li><a href="##(SET_STATIC).GetTypeNames">SET_STATIC.GetTypeNames</a>(): Retrieve the type names of the <a href="Static.html">Static</a>s in the SET, delimited by a comma.</li>
</ul>
<hr/>
</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>
<h1>3) SET_UNIT class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the SET_UNIT class to build sets of units belonging to certain:</p>
<ul>
<li>Coalitions</li>
<li>Categories</li>
<li>Countries</li>
<li>Unit types</li>
<li>Starting with certain prefix strings.</li>
</ul>
<p> </p>
<h2>3.1) SET_UNIT constructor</h2>
<p>Create a new SET_UNIT object with the <a href="##(SET_UNIT).New">SET_UNIT.New</a> method:</p>
<ul>
<li><a href="##(SET_UNIT).New">SET_UNIT.New</a>: Creates a new SET_UNIT object.</li>
</ul>
<h2>3.2) Add or Remove UNIT(s) from SET_UNIT</h2>
<p>UNITs can be added and removed using the <a href="Set.html##(SET_UNIT).AddUnitsByName">Set#SET_UNIT.AddUnitsByName</a> and <a href="Set.html##(SET_UNIT).RemoveUnitsByName">Set#SET_UNIT.RemoveUnitsByName</a> respectively.
These methods take a single UNIT name or an array of UNIT names to be added or removed from SET_UNIT.</p>
<h2>3.3) SET_UNIT filter criteria</h2>
<p>You can set filter criteria to define the set of units within the SET_UNIT.
Filter criteria are defined by:</p>
<ul>
<li><a href="##(SET_UNIT).FilterCoalitions">SET_UNIT.FilterCoalitions</a>: Builds the SET_UNIT with the units belonging to the coalition(s).</li>
<li><a href="##(SET_UNIT).FilterCategories">SET_UNIT.FilterCategories</a>: Builds the SET_UNIT with the units belonging to the category(ies).</li>
<li><a href="##(SET_UNIT).FilterTypes">SET_UNIT.FilterTypes</a>: Builds the SET_UNIT with the units belonging to the unit type(s).</li>
<li><a href="##(SET_UNIT).FilterCountries">SET_UNIT.FilterCountries</a>: Builds the SET_UNIT with the units belonging to the country(ies).</li>
<li><a href="##(SET_UNIT).FilterPrefixes">SET_UNIT.FilterPrefixes</a>: Builds the SET_UNIT with the units starting with the same prefix string(s).</li>
</ul>
<p>Once the filter criteria have been set for the SET_UNIT, you can start filtering using:</p>
<ul>
<li><a href="##(SET_UNIT).FilterStart">SET_UNIT.FilterStart</a>: Starts the filtering of the units within the SET_UNIT.</li>
</ul>
<p>Planned filter criteria within development are (so these are not yet available):</p>
<ul>
<li><a href="##(SET_UNIT).FilterZones">SET_UNIT.FilterZones</a>: Builds the SET_UNIT with the units within a <a href="Zone.html##(ZONE)">Zone#ZONE</a>.</li>
</ul>
<h2>3.4) SET_UNIT iterators</h2>
<p>Once the filters have been defined and the SET<em>UNIT has been built, you can iterate the SET</em>UNIT with the available iterator methods.
The iterator methods will walk the SET<em>UNIT set, and call for each element within the set a function that you provide.
The following iterator methods are currently available within the SET</em>UNIT:</p>
<ul>
<li><a href="##(SET_UNIT).ForEachUnit">SET_UNIT.ForEachUnit</a>: Calls a function for each alive unit it finds within the SET_UNIT.</li>
<li><a href="##(SET_GROUP).ForEachGroupCompletelyInZone">SET_GROUP.ForEachGroupCompletelyInZone</a>: Iterate the SET_GROUP and call an iterator function for each <strong>alive</strong> GROUP presence completely in a <a href="Zone.html">Zone</a>, providing the GROUP and optional parameters to the called function.</li>
<li><a href="##(SET_GROUP).ForEachGroupNotInZone">SET_GROUP.ForEachGroupNotInZone</a>: Iterate the SET_GROUP and call an iterator function for each <strong>alive</strong> GROUP presence not in a <a href="Zone.html">Zone</a>, providing the GROUP and optional parameters to the called function.</li>
</ul>
<p>Planned iterators methods in development are (so these are not yet available):</p>
<ul>
<li><a href="##(SET_UNIT).ForEachUnitInUnit">SET_UNIT.ForEachUnitInUnit</a>: Calls a function for each unit contained within the SET_UNIT.</li>
<li><a href="##(SET_UNIT).ForEachUnitCompletelyInZone">SET_UNIT.ForEachUnitCompletelyInZone</a>: Iterate and call an iterator function for each <strong>alive</strong> UNIT presence completely in a <a href="Zone.html">Zone</a>, providing the UNIT and optional parameters to the called function.</li>
<li><a href="##(SET_UNIT).ForEachUnitNotInZone">SET_UNIT.ForEachUnitNotInZone</a>: Iterate and call an iterator function for each <strong>alive</strong> UNIT presence not in a <a href="Zone.html">Zone</a>, providing the UNIT and optional parameters to the called function.</li>
</ul>
<h2>3.5 ) SET_UNIT atomic methods</h2>
<p>Various methods exist for a SET<em>UNIT to perform actions or calculations and retrieve results from the SET</em>UNIT:</p>
<ul>
<li><a href="##(SET_UNIT).GetTypeNames">SET_UNIT.GetTypeNames</a>(): Retrieve the type names of the <a href="Unit.html">Unit</a>s in the SET, delimited by a comma.</li>
</ul>
<hr/>
</dd>
</dl>
<h2><a id="#(Set)" >Type <code>Set</code></a></h2>
<h2><a id="#(SET_AIRBASE)" >Type <code>SET_AIRBASE</code></a></h2>
<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>
<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>
<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="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a> from a <a href="Point.html##(POINT_VEC2)">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="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> object from where to evaluate the closest <a href="Airbase.html##(AIRBASE)">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="Airbase.html##(AIRBASE)">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>
<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="Base.html##(BASE)">Base#BASE</a> object in the <a href="Set.html##(SET_BASE)">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="Base.html##(BASE)">Base#BASE</a> object in the <a href="Set.html##(SET_BASE)">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><a href="Core.Scheduler.html##(SCHEDULER)">Core.Scheduler#SCHEDULER</a></em>
<a id="#(SET_BASE).CallScheduler" >
<strong>SET_BASE.CallScheduler</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="Set.html##(SET_BASE)">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).FilterCrashes" >
<strong>SET_BASE:FilterCrashes()</strong>
</a>
</dt>
<dd>
<p>Starts the filtering of the Crash events for the 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).FilterDeads" >
<strong>SET_BASE:FilterDeads()</strong>
</a>
</dt>
<dd>
<p>Starts the filtering of the Dead events for the 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).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="Point.html##(POINT_VEC2)">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="Point.html##(POINT_VEC2)">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="Base.html##(BASE)">Base#BASE</a> object from the <a href="Set.html##(SET_BASE)">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).GetFirst" >
<strong>SET_BASE:GetFirst()</strong>
</a>
</dt>
<dd>
<p>Gets the first object from the <a href="Set.html##(SET_BASE)">Set#SET_BASE</a> and derived classes.</p>
<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).GetLast" >
<strong>SET_BASE:GetLast()</strong>
</a>
</dt>
<dd>
<p>Gets the last object from the <a href="Set.html##(SET_BASE)">Set#SET_BASE</a> and derived classes.</p>
<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).GetObjectNames" >
<strong>SET_BASE:GetObjectNames()</strong>
</a>
</dt>
<dd>
<p>Gets a string with all the object names.</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).GetRandom" >
<strong>SET_BASE:GetRandom()</strong>
</a>
</dt>
<dd>
<p>Gets a random object from the <a href="Set.html##(SET_BASE)">Set#SET_BASE</a> and derived classes.</p>
<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).GetSetNames" >
<strong>SET_BASE:GetSetNames()</strong>
</a>
</dt>
<dd>
<p>Gets a list of the Names of the Objects in 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).GetSetObjects" >
<strong>SET_BASE:GetSetObjects()</strong>
</a>
</dt>
<dd>
<p>Gets a list of the Objects in 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="Base.html##(BASE)">Base#BASE</a> object from the <a href="Set.html##(SET_BASE)">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)._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="Base.html##(BASE)">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_CARGO)" >Type <code>SET_CARGO</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(SET_CARGO).AddCargosByName" >
<strong>SET_CARGO:AddCargosByName(AddCargoNames)</strong>
</a>
</dt>
<dd>
<p>(R2.1) Add CARGOs to SET_CARGO.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string AddCargoNames </em></code>:
A single name or an array of CARGO names.</p>
</li>
</ul>
<h3>Return value</h3>
<p>self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CARGO).AddInDatabase" >
<strong>SET_CARGO:AddInDatabase(Event)</strong>
</a>
</dt>
<dd>
<p>(R2.1) 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 CARGO</p>
</li>
<li>
<p><em>#table:</em>
The CARGO</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CARGO).FilterCoalitions" >
<strong>SET_CARGO:FilterCoalitions(Coalitions)</strong>
</a>
</dt>
<dd>
<p>(R2.1) Builds a set of cargos 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_CARGO)">#SET_CARGO</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CARGO).FilterCountries" >
<strong>SET_CARGO:FilterCountries(Countries)</strong>
</a>
</dt>
<dd>
<p>(R2.1) Builds a set of cargos 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_CARGO)">#SET_CARGO</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CARGO).FilterPrefixes" >
<strong>SET_CARGO:FilterPrefixes(Prefixes)</strong>
</a>
</dt>
<dd>
<p>(R2.1) Builds a set of cargos of defined cargo prefixes.</p>
<p>All the cargos 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 cargo name starts with.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_CARGO)">#SET_CARGO</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CARGO).FilterStart" >
<strong>SET_CARGO:FilterStart()</strong>
</a>
</dt>
<dd>
<p>(R2.1) Starts the filtering.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_CARGO)">#SET_CARGO</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CARGO).FilterTypes" >
<strong>SET_CARGO:FilterTypes(Types)</strong>
</a>
</dt>
<dd>
<p>(R2.1) Builds a set of cargos of defined cargo 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_CARGO)">#SET_CARGO</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CARGO).FindCargo" >
<strong>SET_CARGO:FindCargo(CargoName)</strong>
</a>
</dt>
<dd>
<p>(R2.1) Finds a Cargo based on the Cargo Name.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string CargoName </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Wrapper.Cargo.html##(CARGO)">Wrapper.Cargo#CARGO</a>:</em>
The found Cargo.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CARGO).FindInDatabase" >
<strong>SET_CARGO:FindInDatabase(Event)</strong>
</a>
</dt>
<dd>
<p>(R2.1) 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 CARGO</p>
</li>
<li>
<p><em>#table:</em>
The CARGO</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CARGO).FindNearestCargoFromPointVec2" >
<strong>SET_CARGO:FindNearestCargoFromPointVec2(PointVec2)</strong>
</a>
</dt>
<dd>
<p>(R2.1) Iterate the SET_CARGO while identifying the nearest <a href="Cargo.html##(CARGO)">Cargo#CARGO</a> from a <a href="Point.html##(POINT_VEC2)">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="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> object from where to evaluate the closest <a href="Cargo.html##(CARGO)">Cargo#CARGO</a>.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Wrapper.Cargo.html##(CARGO)">Wrapper.Cargo#CARGO</a>:</em>
The closest <a href="Cargo.html##(CARGO)">Cargo#CARGO</a>.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CARGO).ForEachCargo" >
<strong>SET_CARGO:ForEachCargo(IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>(R2.1) Iterate the SET_CARGO and call an interator function for each CARGO, providing the CARGO 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 CARGO in the SET_CARGO. The function needs to accept a CARGO parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_CARGO)">#SET_CARGO</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CARGO).IsIncludeObject" >
<strong>SET_CARGO:IsIncludeObject(MCargo)</strong>
</a>
</dt>
<dd>
<p>(R2.1) </p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="AI.AI_Cargo.html##(AI_CARGO)">AI.AI<em>Cargo#AI</em>CARGO</a> MCargo </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_CARGO)">#SET_CARGO</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CARGO).New" >
<strong>SET_CARGO:New()</strong>
</a>
</dt>
<dd>
<p>(R2.1) Creates a new SET_CARGO object, building a set of cargos belonging to a coalitions and categories.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_CARGO)">#SET_CARGO</a>:</em></p>
<h3>Usage:</h3>
<pre class="example"><code>-- Define a new SET_CARGO Object. The DatabaseSet will contain a reference to all Cargos.
DatabaseSet = SET_CARGO:New()</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CARGO).OnEventDeleteCargo" >
<strong>SET_CARGO:OnEventDeleteCargo(EventData)</strong>
</a>
</dt>
<dd>
<p>(R2.1) 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> EventData </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CARGO).OnEventNewCargo" >
<strong>SET_CARGO:OnEventNewCargo(EventData)</strong>
</a>
</dt>
<dd>
<p>(R2.1) Handles the OnEventNewCargo event for the Set.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> EventData </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_CARGO).RemoveCargosByName" >
<strong>SET_CARGO:RemoveCargosByName(RemoveCargoNames)</strong>
</a>
</dt>
<dd>
<p>(R2.1) Remove CARGOs from SET_CARGO.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Cargo.html##(CARGO)">Wrapper.Cargo#CARGO</a> RemoveCargoNames </em></code>:
A single name or an array of CARGO names.</p>
</li>
</ul>
<h3>Return value</h3>
<p>self</p>
</dd>
</dl>
<h2><a id="#(SET_CLIENT)" >Type <code>SET_CLIENT</code></a></h2>
<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>
<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>
<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>
<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>
<a id="#(SET_GROUP).AllCompletelyInZone" >
<strong>SET_GROUP:AllCompletelyInZone(ZoneObject, Zone)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_GROUP and return true if all the <a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> are completely in the <a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a></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> Zone </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if all the <a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> are completly in the <a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a>, false otherwise</p>
<h3>Usage:</h3>
<pre class="example"><code>local MyZone = ZONE:New("Zone1")
local MySetGroup = SET_GROUP:New()
MySetGroup:AddGroupsByName({"Group1", "Group2"})
if MySetGroup:AllCompletelyInZone(MyZone) then
MESSAGE:New("All the SET's GROUP are in zone !", 10):ToAll()
else
MESSAGE:New("Some or all SET's GROUP are outside zone !", 10):ToAll()
end</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).AnyCompletelyInZone" >
<strong>SET_GROUP:AnyCompletelyInZone(ZoneObject, Zone)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_GROUP and return true if at least one of the <a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> is completely inside the <a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a></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> Zone </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if at least one of the <a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> is completly inside the <a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a>, false otherwise.</p>
<h3>Usage:</h3>
<pre class="example"><code>local MyZone = ZONE:New("Zone1")
local MySetGroup = SET_GROUP:New()
MySetGroup:AddGroupsByName({"Group1", "Group2"})
if MySetGroup:AnyCompletelyInZone(MyZone) then
MESSAGE:New("At least one GROUP is completely in zone !", 10):ToAll()
else
MESSAGE:New("No GROUP is completely in zone !", 10):ToAll()
end</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).AnyInZone" >
<strong>SET_GROUP:AnyInZone(ZoneObject, Zone)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_GROUP and return true if at least one <a href="##(UNIT)">#UNIT</a> of one <a href="GROUP.html">GROUP</a> of the <a href="SET_GROUP.html">SET_GROUP</a> is in <a href="ZONE.html">ZONE</a></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> Zone </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if at least one of the <a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> is partly or completly inside the <a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a>, false otherwise.</p>
<h3>Usage:</h3>
<pre class="example"><code>local MyZone = ZONE:New("Zone1")
local MySetGroup = SET_GROUP:New()
MySetGroup:AddGroupsByName({"Group1", "Group2"})
if MySetGroup:AnyPartlyInZone(MyZone) then
MESSAGE:New("At least one GROUP has at least one UNIT in zone !", 10):ToAll()
else
MESSAGE:New("No UNIT of any GROUP is in zone !", 10):ToAll()
end</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).AnyPartlyInZone" >
<strong>SET_GROUP:AnyPartlyInZone(ZoneObject, Zone)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_GROUP and return true if at least one <a href="GROUP.html">GROUP</a> of the <a href="SET_GROUP.html">SET_GROUP</a> is partly in <a href="ZONE.html">ZONE</a>.</p>
<p>Will return false if a <a href="GROUP.html">GROUP</a> is fully in the <a href="ZONE.html">ZONE</a></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> Zone </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if at least one of the <a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> is partly or completly inside the <a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a>, false otherwise.</p>
<h3>Usage:</h3>
<pre class="example"><code>local MyZone = ZONE:New("Zone1")
local MySetGroup = SET_GROUP:New()
MySetGroup:AddGroupsByName({"Group1", "Group2"})
if MySetGroup:AnyPartlyInZone(MyZone) then
MESSAGE:New("At least one GROUP is partially in the zone, but none are fully in it !", 10):ToAll()
else
MESSAGE:New("No GROUP are in zone, or one (or more) GROUP is completely in it !", 10):ToAll()
end</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).CountInZone" >
<strong>SET_GROUP:CountInZone(ZoneObject, Zone)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET<em>GROUP and count how many GROUPs are completely in the Zone
That could easily be done with SET</em>GROUP:ForEachGroupCompletelyInZone(), but this function
provides an easy to use shortcut...</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> Zone </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#number:</em>
the number of GROUPs completely in the Zone</p>
<h3>Usage:</h3>
<pre class="example"><code>local MyZone = ZONE:New("Zone1")
local MySetGroup = SET_GROUP:New()
MySetGroup:AddGroupsByName({"Group1", "Group2"})
MESSAGE:New("There are " .. MySetGroup:CountInZone(MyZone) .. " GROUPs in the Zone !", 10):ToAll()</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_GROUP).CountUnitInZone" >
<strong>SET_GROUP:CountUnitInZone(ZoneObject, Zone)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_GROUP and count how many UNITs are completely in the Zone</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> Zone </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#number:</em>
the number of GROUPs completely in the Zone</p>
<h3>Usage:</h3>
<pre class="example"><code>local MyZone = ZONE:New("Zone1")
local MySetGroup = SET_GROUP:New()
MySetGroup:AddGroupsByName({"Group1", "Group2"})
MESSAGE:New("There are " .. MySetGroup:CountUnitInZone(MyZone) .. " UNITs in the Zone !", 10):ToAll()</code></pre>
</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).FilterCategoryAirplane" >
<strong>SET_GROUP:FilterCategoryAirplane()</strong>
</a>
</dt>
<dd>
<p>Builds a set of groups out of airplane category.</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).FilterCategoryGround" >
<strong>SET_GROUP:FilterCategoryGround()</strong>
</a>
</dt>
<dd>
<p>Builds a set of groups out of ground category.</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).FilterCategoryHelicopter" >
<strong>SET_GROUP:FilterCategoryHelicopter()</strong>
</a>
</dt>
<dd>
<p>Builds a set of groups out of helicopter category.</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).FilterCategoryShip" >
<strong>SET_GROUP:FilterCategoryShip()</strong>
</a>
</dt>
<dd>
<p>Builds a set of groups out of ship category.</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).FilterCategoryStructure" >
<strong>SET_GROUP:FilterCategoryStructure()</strong>
</a>
</dt>
<dd>
<p>Builds a set of groups out of structure category.</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).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>
<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).FindNearestGroupFromPointVec2" >
<strong>SET_GROUP:FindNearestGroupFromPointVec2(PointVec2)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_GROUP while identifying the nearest object from a <a href="Point.html##(POINT_VEC2)">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="Point.html##(POINT_VEC2)">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="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a>:</em>
The closest group.</p>
</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).NoneInZone" >
<strong>SET_GROUP:NoneInZone(ZoneObject, Zone)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_GROUP and return true if no <a href="GROUP.html">GROUP</a> of the <a href="SET_GROUP.html">SET_GROUP</a> is in <a href="ZONE.html">ZONE</a>
This could also be achieved with <code>not SET_GROUP:AnyPartlyInZone(Zone)</code>, but it's easier for the
mission designer to add a dedicated method</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> Zone </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if no <a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> is inside the <a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> in any way, false otherwise.</p>
<h3>Usage:</h3>
<pre class="example"><code>local MyZone = ZONE:New("Zone1")
local MySetGroup = SET_GROUP:New()
MySetGroup:AddGroupsByName({"Group1", "Group2"})
if MySetGroup:NoneInZone(MyZone) then
MESSAGE:New("No GROUP is completely in zone !", 10):ToAll()
else
MESSAGE:New("No UNIT of any GROUP is in zone !", 10):ToAll()
end</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>
<dl class="function">
<dt>
<a id="#(SET_GROUP)._EventOnDeadOrCrash" >
<strong>SET_GROUP:_EventOnDeadOrCrash(Event)</strong>
</a>
</dt>
<dd>
<p>Handles the OnDead or OnCrash event for alive groups set.</p>
<p>Note: The GROUP object in the SET_GROUP collection will only be removed if the last unit is destroyed of the GROUP.</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>
<h2><a id="#(SET_PLAYER)" >Type <code>SET_PLAYER</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(SET_PLAYER).AddClientsByName" >
<strong>SET_PLAYER:AddClientsByName(AddClientNames)</strong>
</a>
</dt>
<dd>
<p>Add CLIENT(s) to SET_PLAYER.</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_PLAYER).AddInDatabase" >
<strong>SET_PLAYER: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>
<a id="#(SET_PLAYER).FilterCategories" >
<strong>SET_PLAYER:FilterCategories(Categories)</strong>
</a>
</dt>
<dd>
<p>Builds a set of clients out of categories joined by players.</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_PLAYER)">#SET_PLAYER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_PLAYER).FilterCoalitions" >
<strong>SET_PLAYER:FilterCoalitions(Coalitions)</strong>
</a>
</dt>
<dd>
<p>Builds a set of clients of coalitions joined by specific players.</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_PLAYER)">#SET_PLAYER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_PLAYER).FilterCountries" >
<strong>SET_PLAYER: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_PLAYER)">#SET_PLAYER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_PLAYER).FilterPrefixes" >
<strong>SET_PLAYER: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_PLAYER)">#SET_PLAYER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_PLAYER).FilterStart" >
<strong>SET_PLAYER:FilterStart()</strong>
</a>
</dt>
<dd>
<p>Starts the filtering.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_PLAYER)">#SET_PLAYER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_PLAYER).FilterTypes" >
<strong>SET_PLAYER:FilterTypes(Types)</strong>
</a>
</dt>
<dd>
<p>Builds a set of clients of defined client types joined by players.</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_PLAYER)">#SET_PLAYER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_PLAYER).FindClient" >
<strong>SET_PLAYER:FindClient(PlayerName)</strong>
</a>
</dt>
<dd>
<p>Finds a Client based on the Player Name.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string PlayerName </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_PLAYER).FindInDatabase" >
<strong>SET_PLAYER: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_PLAYER).ForEachPlayer" >
<strong>SET_PLAYER:ForEachPlayer(IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_PLAYER 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_PLAYER. 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_PLAYER)">#SET_PLAYER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_PLAYER).ForEachPlayerInZone" >
<strong>SET_PLAYER:ForEachPlayerInZone(ZoneObject, IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_PLAYER 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_PLAYER. 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_PLAYER)">#SET_PLAYER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_PLAYER).ForEachPlayerNotInZone" >
<strong>SET_PLAYER:ForEachPlayerNotInZone(ZoneObject, IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_PLAYER 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_PLAYER. 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_PLAYER)">#SET_PLAYER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_PLAYER).IsIncludeObject" >
<strong>SET_PLAYER: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_PLAYER)">#SET_PLAYER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_PLAYER).New" >
<strong>SET_PLAYER:New()</strong>
</a>
</dt>
<dd>
<p>Creates a new SET_PLAYER 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_PLAYER)">#SET_PLAYER</a>:</em></p>
<h3>Usage:</h3>
<pre class="example"><code>-- Define a new SET_PLAYER Object. This DBObject will contain a reference to all Clients.
DBObject = SET_PLAYER:New()</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_PLAYER).RemoveClientsByName" >
<strong>SET_PLAYER:RemoveClientsByName(RemoveClientNames)</strong>
</a>
</dt>
<dd>
<p>Remove CLIENT(s) from SET_PLAYER.</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_STATIC)" >Type <code>SET_STATIC</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(SET_STATIC).AddInDatabase" >
<strong>SET_STATIC: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 STATIC</p>
</li>
<li>
<p><em>#table:</em>
The STATIC</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).AddStatic" >
<strong>SET_STATIC:AddStatic(AddStatic)</strong>
</a>
</dt>
<dd>
<p>Add STATIC(s) to SET_STATIC.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string AddStatic </em></code>:
A single STATIC.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_STATIC)">#SET_STATIC</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).AddStaticsByName" >
<strong>SET_STATIC:AddStaticsByName(AddStaticNames)</strong>
</a>
</dt>
<dd>
<p>Add STATIC(s) to SET_STATIC.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string AddStaticNames </em></code>:
A single name or an array of STATIC names.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_STATIC)">#SET_STATIC</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).FilterCategories" >
<strong>SET_STATIC: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_STATIC)">#SET_STATIC</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).FilterCoalitions" >
<strong>SET_STATIC: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_STATIC)">#SET_STATIC</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).FilterCountries" >
<strong>SET_STATIC: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_STATIC)">#SET_STATIC</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).FilterPrefixes" >
<strong>SET_STATIC: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_STATIC)">#SET_STATIC</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).FilterStart" >
<strong>SET_STATIC:FilterStart()</strong>
</a>
</dt>
<dd>
<p>Starts the filtering.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_STATIC)">#SET_STATIC</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).FilterTypes" >
<strong>SET_STATIC: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_STATIC)">#SET_STATIC</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).FindInDatabase" >
<strong>SET_STATIC: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 STATIC</p>
</li>
<li>
<p><em>#table:</em>
The STATIC</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).FindStatic" >
<strong>SET_STATIC:FindStatic(StaticName)</strong>
</a>
</dt>
<dd>
<p>Finds a Static based on the Static Name.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string StaticName </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Wrapper.Static.html##(STATIC)">Wrapper.Static#STATIC</a>:</em>
The found Static.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).ForEachStatic" >
<strong>SET_STATIC:ForEachStatic(IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_STATIC and call an interator function for each <strong>alive</strong> STATIC, providing the STATIC 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 STATIC in the SET_STATIC. The function needs to accept a STATIC parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_STATIC)">#SET_STATIC</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).ForEachStaticCompletelyInZone" >
<strong>SET_STATIC:ForEachStaticCompletelyInZone(ZoneObject, IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_STATIC and call an iterator function for each <strong>alive</strong> STATIC presence completely in a <a href="Zone.html">Zone</a>, providing the STATIC 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 STATIC in the SET_STATIC. The function needs to accept a STATIC parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_STATIC)">#SET_STATIC</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).ForEachStaticInZone" >
<strong>SET_STATIC:ForEachStaticInZone(IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Check if minimal one element of the SET_STATIC is in the Zone.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an alive STATIC in the SET_STATIC. The function needs to accept a STATIC parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_STATIC)">#SET_STATIC</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).ForEachStaticNotInZone" >
<strong>SET_STATIC:ForEachStaticNotInZone(ZoneObject, IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_STATIC and call an iterator function for each <strong>alive</strong> STATIC presence not in a <a href="Zone.html">Zone</a>, providing the STATIC 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 STATIC in the SET_STATIC. The function needs to accept a STATIC parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_STATIC)">#SET_STATIC</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).GetCoordinate" >
<strong>SET_STATIC:GetCoordinate()</strong>
</a>
</dt>
<dd>
<p>Get the center coordinate of the SET_STATIC.</p>
<h3>Return value</h3>
<p><em><a href="Core.Point.html##(COORDINATE)">Core.Point#COORDINATE</a>:</em>
The center coordinate of all the units in the set, including heading in degrees and speed in mps in case of moving units.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).GetFirst" >
<strong>SET_STATIC:GetFirst()</strong>
</a>
</dt>
<dd>
<p>Get the first unit from the set.</p>
<h3>Return value</h3>
<p><em><a href="Wrapper.Static.html##(STATIC)">Wrapper.Static#STATIC</a>:</em>
The STATIC object.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).GetHeading" >
<strong>SET_STATIC:GetHeading()</strong>
</a>
</dt>
<dd>
<p>Get the average heading of the SET_STATIC.</p>
<h3>Return value</h3>
<p><em>#number:</em>
Heading Heading in degrees and speed in mps in case of moving units.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).GetStaticTypes" >
<strong>SET_STATIC:GetStaticTypes()</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 StaticTypeName and the value is the amount of unit types found.</h1>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).GetStaticTypesText" >
<strong>SET_STATIC:GetStaticTypesText()</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_STATIC).GetTypeNames" >
<strong>SET_STATIC:GetTypeNames(Delimiter)</strong>
</a>
</dt>
<dd>
<p>Retrieve the type names of the <a href="Static.html">Static</a>s in the SET, delimited by an optional delimiter.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Delimiter </em></code>:
(optional) The delimiter, which is default a comma.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#string:</em>
The types of the <a href="Static.html">Static</a>s delimited.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).GetVelocity" >
<strong>SET_STATIC:GetVelocity()</strong>
</a>
</dt>
<dd>
<p>Get the maximum velocity of the SET_STATIC.</p>
<h3>Return value</h3>
<p><em>#number:</em>
The speed in mps in case of moving units.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).IsIncludeObject" >
<strong>SET_STATIC:IsIncludeObject(MStatic)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Static.html##(STATIC)">Wrapper.Static#STATIC</a> MStatic </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_STATIC)">#SET_STATIC</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).IsNotInZone" >
<strong>SET_STATIC:IsNotInZone(ZoneObject, Zone)</strong>
</a>
</dt>
<dd>
<p>Check if no element of the SET_STATIC is in the Zone.</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> Zone </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).IsPatriallyInZone" >
<strong>SET_STATIC:IsPatriallyInZone(Zone)</strong>
</a>
</dt>
<dd>
<p>Check if minimal one element of the SET_STATIC is in the Zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> Zone </em></code>:
The Zone to be tested for.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).New" >
<strong>SET_STATIC:New()</strong>
</a>
</dt>
<dd>
<p>Creates a new SET_STATIC 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_STATIC)">#SET_STATIC</a>:</em></p>
<h3>Usage:</h3>
<pre class="example"><code>-- Define a new SET_STATIC Object. This DBObject will contain a reference to all alive Statics.
DBObject = SET_STATIC:New()</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_STATIC).RemoveStaticsByName" >
<strong>SET_STATIC:RemoveStaticsByName(RemoveStaticNames)</strong>
</a>
</dt>
<dd>
<p>Remove STATIC(s) from SET_STATIC.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Static.html##(STATIC)">Wrapper.Static#STATIC</a> RemoveStaticNames </em></code>:
A single name or an array of STATIC 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>
<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>
<h3>Return value</h3>
<p><em>#number:</em>
The maximum threatlevel</p>
</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>
<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).ForEachUnitInZone" >
<strong>SET_UNIT:ForEachUnitInZone(IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Check if minimal one element of the SET_UNIT is in the Zone.</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).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).ForEachUnitPerThreatLevel" >
<strong>SET_UNIT:ForEachUnitPerThreatLevel(FromThreatLevel, ToThreatLevel, IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_UNIT <strong>sorted *per Threat Level</strong> 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>#number FromThreatLevel </em></code>:
The TreatLevel to start the evaluation <strong>From</strong> (this must be a value between 0 and 10).</p>
</li>
<li>
<p><code><em>#number ToThreatLevel </em></code>:
The TreatLevel to stop the evaluation <strong>To</strong> (this must be a value between 0 and 10).</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>
<h3>Usage:</h3>
<pre class="example"><code>
UnitSet:ForEachUnitPerThreatLevel( 10, 0,
-- @param Wrapper.Unit#UNIT UnitObject The UNIT object in the UnitSet, that will be passed to the local function for evaluation.
function( UnitObject )
.. logic ..
end
)
</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).GetCoordinate" >
<strong>SET_UNIT:GetCoordinate()</strong>
</a>
</dt>
<dd>
<p>Get the center coordinate of the SET_UNIT.</p>
<h3>Return value</h3>
<p><em><a href="Core.Point.html##(COORDINATE)">Core.Point#COORDINATE</a>:</em>
The center coordinate of all the units in the set, including heading in degrees and speed in mps in case of moving units.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).GetFirst" >
<strong>SET_UNIT:GetFirst()</strong>
</a>
</dt>
<dd>
<p>Get the first unit from the set.</p>
<h3>Return value</h3>
<p><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a>:</em>
The UNIT object.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).GetHeading" >
<strong>SET_UNIT:GetHeading()</strong>
</a>
</dt>
<dd>
<p>Get the average heading of the SET_UNIT.</p>
<h3>Return value</h3>
<p><em>#number:</em>
Heading Heading in degrees and speed in mps in case of moving units.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).GetTypeNames" >
<strong>SET_UNIT:GetTypeNames(Delimiter)</strong>
</a>
</dt>
<dd>
<p>Retrieve the type names of the <a href="Unit.html">Unit</a>s in the SET, delimited by an optional delimiter.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Delimiter </em></code>:
(optional) The delimiter, which is default a comma.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#string:</em>
The types of the <a href="Unit.html">Unit</a>s delimited.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).GetUnitThreatLevels" >
<strong>SET_UNIT:GetUnitThreatLevels()</strong>
</a>
</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).GetVelocity" >
<strong>SET_UNIT:GetVelocity()</strong>
</a>
</dt>
<dd>
<p>Get the maximum velocity of the SET_UNIT.</p>
<h3>Return value</h3>
<p><em>#number:</em>
The speed in mps in case of moving units.</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).IsNotInZone" >
<strong>SET_UNIT:IsNotInZone(ZoneObject, Zone)</strong>
</a>
</dt>
<dd>
<p>Check if no element of the SET_UNIT is in the Zone.</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> Zone </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_UNIT).IsPartiallyInZone" >
<strong>SET_UNIT:IsPartiallyInZone(ZoneTest)</strong>
</a>
</dt>
<dd>
<p>Check if minimal one element of the SET_UNIT is in the Zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> ZoneTest </em></code>:
The Zone to be tested for.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></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>
<h2><a id="#(map)" >Type <code>map</code></a></h2>
</div>
</div>
</body>
</html>