Documentation

This commit is contained in:
FlightControl 2017-04-02 09:39:00 +02:00
parent f8f68ea695
commit 7e9b97dda0
55 changed files with 2422 additions and 398 deletions

View File

@ -1,11 +1,20 @@
--- **Tasking** - The TASK_CARGO models tasks for players to transport @{Cargo}.
--
-- ![Banner Image]()
--
--- **Tasking (Release 2.1)** -- The TASK_CARGO models tasks for players to transport @{Cargo}.
--
-- ![Banner Image](..\Presentations\TASK_CARGO\Dia1.JPG)
--
-- ====
--
-- Cargo are units or cargo objects within DCS world that allow to be transported or sling loaded by other units.
-- The CARGO class, as part of the moose core, is able to Board, Load, UnBoard and UnLoad from Carrier units.
-- This collection of classes in this module define tasks for human players to handle cargo objects.
-- Cargo can be transported, picked-up, deployed and sling-loaded from and to other places.
--
-- The following classes are important to consider:
--
-- * @{#TASK_CARGO_TRANSPORT}: Defines a task for a human player to transport a set of cargo between various zones.
--
-- ==
--
-- # **API CHANGE HISTORY**
--
-- The underlying change log documents the API changes. Please read this carefully. The following notation is used:
@ -23,8 +32,6 @@
--
-- ### Contributions:
--
-- * **[WingThor]**: Concept, Advice & Testing.
--
-- ### Authors:
--
-- * **FlightControl**: Concept, Design & Programming.

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>
@ -97,60 +98,7 @@
<li>AI<em>CARGO</em>GROUPED, represented by a Group of CARGO_UNITs.</li>
</ul>
<h1>1) <a href="##(AI_CARGO)">#AI_CARGO</a> class, extends <a href="Fsm.html##(FSM_PROCESS)">Fsm#FSM_PROCESS</a></h1>
<p>The <a href="##(AI_CARGO)">#AI_CARGO</a> class defines the core functions that defines a cargo object within MOOSE.
A cargo is a logical object defined that is available for transport, and has a life status within a simulation.</p>
<p>The AI<em>CARGO is a state machine: it manages the different events and states of the cargo.
All derived classes from AI</em>CARGO follow the same state machine, expose the same cargo event functions, and provide the same cargo states.</p>
<h2>1.2.1) AI_CARGO Events:</h2>
<ul>
<li><a href="##(AI_CARGO).Board">AI_CARGO.Board</a>( ToCarrier ): Boards the cargo to a carrier.</li>
<li><a href="##(AI_CARGO).Load">AI_CARGO.Load</a>( ToCarrier ): Loads the cargo into a carrier, regardless of its position.</li>
<li><a href="##(AI_CARGO).UnBoard">AI_CARGO.UnBoard</a>( ToPointVec2 ): UnBoard the cargo from a carrier. This will trigger a movement of the cargo to the option ToPointVec2.</li>
<li><a href="##(AI_CARGO).UnLoad">AI_CARGO.UnLoad</a>( ToPointVec2 ): UnLoads the cargo from a carrier.</li>
<li><a href="##(AI_CARGO).Dead">AI_CARGO.Dead</a>( Controllable ): The cargo is dead. The cargo process will be ended.</li>
</ul>
<h2>1.2.2) AI_CARGO States:</h2>
<ul>
<li><strong>UnLoaded</strong>: The cargo is unloaded from a carrier.</li>
<li><strong>Boarding</strong>: The cargo is currently boarding (= running) into a carrier.</li>
<li><strong>Loaded</strong>: The cargo is loaded into a carrier.</li>
<li><strong>UnBoarding</strong>: The cargo is currently unboarding (=running) from a carrier.</li>
<li><strong>Dead</strong>: The cargo is dead ...</li>
<li><strong>End</strong>: The process has come to an end.</li>
</ul>
<h2>1.2.3) AI_CARGO state transition methods:</h2>
<p>State transition functions can be set <strong>by the mission designer</strong> customizing or improving the behaviour of the state.
There are 2 moments when state transition methods will be called by the state machine:</p>
<ul>
<li><p><strong>Leaving</strong> the state.
The state transition method needs to start with the name <strong>OnLeave + the name of the state</strong>.
If the state transition method returns false, then the processing of the state transition will not be done!
If you want to change the behaviour of the AIControllable at this event, return false,
but then you'll need to specify your own logic using the AIControllable!</p></li>
<li><p><strong>Entering</strong> the state.
The state transition method needs to start with the name <strong>OnEnter + the name of the state</strong>.
These state transition methods need to provide a return value, which is specified at the function description.</p></li>
</ul>
<h1>2) #AI<em>CARGO</em>UNIT class</h1>
<p>The AI<em>CARGO</em>UNIT class defines a cargo that is represented by a UNIT object within the simulator, and can be transported by a carrier.
Use the event functions as described above to Load, UnLoad, Board, UnBoard the AI<em>CARGO</em>UNIT objects to and from carriers.</p>
<h1>5) #AI<em>CARGO</em>GROUPED class</h1>
<p>The AI<em>CARGO</em>GROUPED class defines a cargo that is represented by a group of UNIT objects within the simulator, and can be transported by a carrier.
Use the event functions as described above to Load, UnLoad, Board, UnBoard the AI<em>CARGO</em>UNIT objects to and from carriers.</p>
<p>This module is still under construction, but is described above works already, and will keep working ...</p>
@ -160,19 +108,25 @@ Use the event functions as described above to Load, UnLoad, Board, UnBoard the A
<tr>
<td class="name" nowrap="nowrap"><a href="#AI_CARGO">AI_CARGO</a></td>
<td class="summary">
<h1>AI_CARGO class, extends <a href="Fsm.html##(FSM_PROCESS)">Fsm#FSM_PROCESS</a></h1>
<p>The AI_CARGO class defines the core functions that defines a cargo object within MOOSE.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#AI_CARGO_GROUP">AI_CARGO_GROUP</a></td>
<td class="summary">
<h1>AI_CARGO_GROUP class</h1>
<p>The AI_CARGO_GROUP class defines a cargo that is represented by a group of <a href="Unit.html">Unit</a> objects within the simulator, and can be transported by a carrier.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#AI_CARGO_GROUPED">AI_CARGO_GROUPED</a></td>
<td class="summary">
<h1>AI_CARGO_GROUPED class</h1>
<p>The AI_CARGO_GROUPED class defines a cargo that is represented by a group of UNIT objects within the simulator, and can be transported by a carrier.</p>
</td>
</tr>
<tr>
@ -190,7 +144,9 @@ Use the event functions as described above to Load, UnLoad, Board, UnBoard the A
<tr>
<td class="name" nowrap="nowrap"><a href="#AI_CARGO_UNIT">AI_CARGO_UNIT</a></td>
<td class="summary">
<h1>AI_CARGO_UNIT class, extends <a href="##(AI_CARGO_REPRESENTABLE)">#AI<em>CARGO</em>REPRESENTABLE</a></h1>
<p>The AI_CARGO_UNIT class defines a cargo that is represented by a UNIT object within the simulator, and can be transported by a carrier.</p>
</td>
</tr>
<tr>
@ -218,24 +174,66 @@ Use the event functions as described above to Load, UnLoad, Board, UnBoard the A
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO).CargoObject">AI_CARGO.CargoObject</a></td>
<td class="summary">
<p>The alive DCS object representing the cargo. This value can be nil, meaning, that the cargo is not represented anywhere...</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO).ClassName">AI_CARGO.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO).Containable">AI_CARGO.Containable</a></td>
<td class="summary">
<p>This flag defines if the cargo can be contained within a DCS Unit.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO).GetBoardingRange">AI_CARGO:GetBoardingRange()</a></td>
<td class="summary">
<p>Get the range till cargo will board.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO).GetName">AI_CARGO:GetName()</a></td>
<td class="summary">
<p>Get the name of the Cargo.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO).GetPointVec2">AI_CARGO:GetPointVec2()</a></td>
<td class="summary">
<p>Get the current PointVec2 of the cargo.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO).GetType">AI_CARGO:GetType()</a></td>
<td class="summary">
<p>Get the type of the Cargo.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO).IsInRadius">AI_CARGO:IsInRadius(PointVec2)</a></td>
<td class="summary">
<p>Check if CargoCarrier is in the radius for the Cargo to be Loaded.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO).IsInZone">AI_CARGO:IsInZone(Zone)</a></td>
<td class="summary">
<p>Check if Cargo is the given <a href="Zone.html">Zone</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO).IsLoaded">AI_CARGO:IsLoaded()</a></td>
<td class="summary">
<p>Check if cargo is loaded.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO).IsNear">AI_CARGO:IsNear(PointVec2)</a></td>
<td class="summary">
<p>Check if CargoCarrier is near the Cargo to be Loaded.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO).IsUnLoaded">AI_CARGO:IsUnLoaded()</a></td>
<td class="summary">
<p>Check if cargo is unloaded.</p>
</td>
</tr>
<tr>
@ -396,12 +394,6 @@ Use the event functions as described above to Load, UnLoad, Board, UnBoard the A
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO_GROUP).CargoSet">AI_CARGO_GROUP.CargoSet</a></td>
<td class="summary">
<p>A set of cargo objects.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO_GROUP).ClassName">AI_CARGO_GROUP.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -421,12 +413,6 @@ Use the event functions as described above to Load, UnLoad, Board, UnBoard the A
<h2><a id="#(AI_CARGO_GROUPED)">Type <code>AI_CARGO_GROUPED</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO_GROUPED).ClassName">AI_CARGO_GROUPED.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO_GROUPED).New">AI_CARGO_GROUPED:New(CargoSet, Type, Name, Weight, ReportRadius, NearRadius)</a></td>
<td class="summary">
<p>AI<em>CARGO</em>GROUPED constructor.</p>
@ -589,9 +575,9 @@ Use the event functions as described above to Load, UnLoad, Board, UnBoard the A
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO_UNIT).ClassName">AI_CARGO_UNIT.ClassName</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO_UNIT).Destroy">AI_CARGO_UNIT:Destroy()</a></td>
<td class="summary">
<p>AI<em>CARGO</em>UNIT Destructor.</p>
</td>
</tr>
<tr>
@ -607,7 +593,7 @@ Use the event functions as described above to Load, UnLoad, Board, UnBoard the A
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO_UNIT).onafterBoard">AI_CARGO_UNIT:onafterBoard(Event, From, To, CargoCarrier)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO_UNIT).onafterBoard">AI_CARGO_UNIT:onafterBoard(Event, From, To, CargoCarrier, ...)</a></td>
<td class="summary">
<p>Board Event.</p>
</td>
@ -619,7 +605,7 @@ Use the event functions as described above to Load, UnLoad, Board, UnBoard the A
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO_UNIT).onenterBoarding">AI_CARGO_UNIT:onenterBoarding(Event, From, To, CargoCarrier)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO_UNIT).onenterBoarding">AI_CARGO_UNIT:onenterBoarding(Event, From, To, CargoCarrier, ...)</a></td>
<td class="summary">
<p>Enter Boarding State.</p>
</td>
@ -643,7 +629,7 @@ Use the event functions as described above to Load, UnLoad, Board, UnBoard the A
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO_UNIT).onleaveBoarding">AI_CARGO_UNIT:onleaveBoarding(Event, From, To, CargoCarrier)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_CARGO_UNIT).onleaveBoarding">AI_CARGO_UNIT:onleaveBoarding(Event, From, To, CargoCarrier, ...)</a></td>
<td class="summary">
<p>Leave Boarding State.</p>
</td>
@ -667,6 +653,52 @@ Use the event functions as described above to Load, UnLoad, Board, UnBoard the A
</dt>
<dd>
<h1>AI_CARGO class, extends <a href="Fsm.html##(FSM_PROCESS)">Fsm#FSM_PROCESS</a></h1>
<p>The AI_CARGO class defines the core functions that defines a cargo object within MOOSE.</p>
<p>A cargo is a logical object defined that is available for transport, and has a life status within a simulation.</p>
<p>The AI_CARGO is a state machine: it manages the different events and states of the cargo.
All derived classes from AI_CARGO follow the same state machine, expose the same cargo event functions, and provide the same cargo states.</p>
<h2>AI_CARGO Events:</h2>
<ul>
<li><a href="##(AI)">#AI</a>( ToCarrier ): Boards the cargo to a carrier.</li>
<li><a href="##(AI)">#AI</a>( ToCarrier ): Loads the cargo into a carrier, regardless of its position.</li>
<li><a href="##(AI)">#AI</a>( ToPointVec2 ): UnBoard the cargo from a carrier. This will trigger a movement of the cargo to the option ToPointVec2.</li>
<li><a href="##(AI)">#AI</a>( ToPointVec2 ): UnLoads the cargo from a carrier.</li>
<li><a href="##(AI)">#AI</a>( Controllable ): The cargo is dead. The cargo process will be ended.</li>
</ul>
<h2>AI_CARGO States:</h2>
<ul>
<li><strong>UnLoaded</strong>: The cargo is unloaded from a carrier.</li>
<li><strong>Boarding</strong>: The cargo is currently boarding (= running) into a carrier.</li>
<li><strong>Loaded</strong>: The cargo is loaded into a carrier.</li>
<li><strong>UnBoarding</strong>: The cargo is currently unboarding (=running) from a carrier.</li>
<li><strong>Dead</strong>: The cargo is dead ...</li>
<li><strong>End</strong>: The process has come to an end.</li>
</ul>
<h2>AI_CARGO state transition methods:</h2>
<p>State transition functions can be set <strong>by the mission designer</strong> customizing or improving the behaviour of the state.
There are 2 moments when state transition methods will be called by the state machine:</p>
<ul>
<li><p><strong>Leaving</strong> the state.
The state transition method needs to start with the name <strong>OnLeave + the name of the state</strong>.
If the state transition method returns false, then the processing of the state transition will not be done!
If you want to change the behaviour of the AIControllable at this event, return false,
but then you'll need to specify your own logic using the AIControllable!</p></li>
<li><p><strong>Entering</strong> the state.
The state transition method needs to start with the name <strong>OnEnter + the name of the state</strong>.
These state transition methods need to provide a return value, which is specified at the function description.</p></li>
</ul>
</dd>
@ -681,6 +713,12 @@ Use the event functions as described above to Load, UnLoad, Board, UnBoard the A
</dt>
<dd>
<h1>AI_CARGO_GROUP class</h1>
<p>The AI_CARGO_GROUP class defines a cargo that is represented by a group of <a href="Unit.html">Unit</a> objects within the simulator, and can be transported by a carrier.</p>
<p>Use the event functions as described above to Load, UnLoad, Board, UnBoard the AI_CARGO_GROUP to and from carrier.</p>
</dd>
@ -695,6 +733,12 @@ Use the event functions as described above to Load, UnLoad, Board, UnBoard the A
</dt>
<dd>
<h1>AI_CARGO_GROUPED class</h1>
<p>The AI_CARGO_GROUPED class defines a cargo that is represented by a group of UNIT objects within the simulator, and can be transported by a carrier.</p>
<p>Use the event functions as described above to Load, UnLoad, Board, UnBoard the AI_CARGO_UNIT objects to and from carriers.</p>
</dd>
@ -737,6 +781,14 @@ Use the event functions as described above to Load, UnLoad, Board, UnBoard the A
</dt>
<dd>
<h1>AI_CARGO_UNIT class, extends <a href="##(AI_CARGO_REPRESENTABLE)">#AI<em>CARGO</em>REPRESENTABLE</a></h1>
<p>The AI_CARGO_UNIT class defines a cargo that is represented by a UNIT object within the simulator, and can be transported by a carrier.</p>
<p>Use the event functions as described above to Load, UnLoad, Board, UnBoard the AI_CARGO_UNIT objects to and from carriers.</p>
<hr/>
</dd>
@ -811,20 +863,6 @@ The Carrier that will hold the cargo.</p>
<p>The alive DCS object representing the cargo. This value can be nil, meaning, that the cargo is not represented anywhere...</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(AI_CARGO).ClassName" >
<strong>AI_CARGO.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -844,6 +882,148 @@ The Carrier that will hold the cargo.</p>
<dl class="function">
<dt>
<a id="#(AI_CARGO).GetBoardingRange" >
<strong>AI_CARGO:GetBoardingRange()</strong>
</a>
</dt>
<dd>
<p>Get the range till cargo will board.</p>
<h3>Return value</h3>
<p><em>#number:</em>
The range till cargo will board.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_CARGO).GetName" >
<strong>AI_CARGO:GetName()</strong>
</a>
</dt>
<dd>
<p>Get the name of the Cargo.</p>
<h3>Return value</h3>
<p><em>#string:</em>
The name of the Cargo.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_CARGO).GetPointVec2" >
<strong>AI_CARGO:GetPointVec2()</strong>
</a>
</dt>
<dd>
<p>Get the current PointVec2 of the cargo.</p>
<h3>Return value</h3>
<p><em><a href="Core.Point.html##(POINT_VEC2)">Core.Point#POINT_VEC2</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_CARGO).GetType" >
<strong>AI_CARGO:GetType()</strong>
</a>
</dt>
<dd>
<p>Get the type of the Cargo.</p>
<h3>Return value</h3>
<p><em>#string:</em>
The type of the Cargo.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_CARGO).IsInRadius" >
<strong>AI_CARGO:IsInRadius(PointVec2)</strong>
</a>
</dt>
<dd>
<p>Check if CargoCarrier is in the radius for the Cargo to be Loaded.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Point.html##(POINT_VEC2)">Core.Point#POINT_VEC2</a> PointVec2 </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_CARGO).IsInZone" >
<strong>AI_CARGO:IsInZone(Zone)</strong>
</a>
</dt>
<dd>
<p>Check if Cargo is the given <a href="Zone.html">Zone</a>.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Zone.html##(ZONE_BASE)">Core.Zone#ZONE_BASE</a> Zone </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
<strong>true</strong> if cargo is in the Zone, <strong>false</strong> if cargo is not in the Zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_CARGO).IsLoaded" >
<strong>AI_CARGO:IsLoaded()</strong>
</a>
</dt>
<dd>
<p>Check if cargo is loaded.</p>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if loaded</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_CARGO).IsNear" >
<strong>AI_CARGO:IsNear(PointVec2)</strong>
</a>
@ -865,6 +1045,24 @@ The Carrier that will hold the cargo.</p>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_CARGO).IsUnLoaded" >
<strong>AI_CARGO:IsUnLoaded()</strong>
</a>
</dt>
<dd>
<p>Check if cargo is unloaded.</p>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if unloaded</p>
</dd>
</dl>
<dl class="function">
@ -1467,20 +1665,6 @@ The amount of seconds to delay the action.</p>
<p>A set of cargo objects.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(AI_CARGO_GROUP).ClassName" >
<strong>AI_CARGO_GROUP.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -1556,20 +1740,6 @@ The amount of seconds to delay the action.</p>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(AI_CARGO_GROUPED).ClassName" >
<strong>AI_CARGO_GROUPED.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AI_CARGO_GROUPED).New" >
<strong>AI_CARGO_GROUPED:New(CargoSet, Type, Name, Weight, ReportRadius, NearRadius)</strong>
</a>
@ -2426,6 +2596,7 @@ The UNIT carrying the package.</p>
<dl class="function">
<dt>
<em></em>
<a id="#(AI_CARGO_UNIT).CargoCarrier" >
<strong>AI_CARGO_UNIT.CargoCarrier</strong>
</a>
@ -2467,13 +2638,17 @@ The UNIT carrying the package.</p>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(AI_CARGO_UNIT).ClassName" >
<strong>AI_CARGO_UNIT.ClassName</strong>
<a id="#(AI_CARGO_UNIT).Destroy" >
<strong>AI_CARGO_UNIT:Destroy()</strong>
</a>
</dt>
<dd>
<p>AI<em>CARGO</em>UNIT Destructor.</p>
<h3>Return value</h3>
<p><em><a href="##(AI_CARGO_UNIT)">#AI<em>CARGO</em>UNIT</a>:</em></p>
</dd>
@ -2548,7 +2723,7 @@ The UNIT carrying the package.</p>
<dt>
<a id="#(AI_CARGO_UNIT).onafterBoard" >
<strong>AI_CARGO_UNIT:onafterBoard(Event, From, To, CargoCarrier)</strong>
<strong>AI_CARGO_UNIT:onafterBoard(Event, From, To, CargoCarrier, ...)</strong>
</a>
</dt>
<dd>
@ -2576,6 +2751,11 @@ The UNIT carrying the package.</p>
<p><code><em> CargoCarrier </em></code>: </p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
</dd>
@ -2620,7 +2800,7 @@ The UNIT carrying the package.</p>
<dt>
<a id="#(AI_CARGO_UNIT).onenterBoarding" >
<strong>AI_CARGO_UNIT:onenterBoarding(Event, From, To, CargoCarrier)</strong>
<strong>AI_CARGO_UNIT:onenterBoarding(Event, From, To, CargoCarrier, ...)</strong>
</a>
</dt>
<dd>
@ -2648,6 +2828,11 @@ The UNIT carrying the package.</p>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> CargoCarrier </em></code>: </p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
</dd>
@ -2770,7 +2955,7 @@ Point#POINT_VEC2</p>
<dt>
<a id="#(AI_CARGO_UNIT).onleaveBoarding" >
<strong>AI_CARGO_UNIT:onleaveBoarding(Event, From, To, CargoCarrier)</strong>
<strong>AI_CARGO_UNIT:onleaveBoarding(Event, From, To, CargoCarrier, ...)</strong>
</a>
</dt>
<dd>
@ -2798,6 +2983,11 @@ Point#POINT_VEC2</p>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> CargoCarrier </em></code>: </p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
</dd>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>
@ -83,12 +84,14 @@
<p>Mission designers can use the DATABASE class to refer to:</p>
<ul>
<li>STATICS</li>
<li>UNITS</li>
<li>GROUPS</li>
<li>CLIENTS</li>
<li>AIRPORTS</li>
<li>AIRBASES</li>
<li>PLAYERSJOINED</li>
<li>PLAYERS</li>
<li>CARGOS</li>
</ul>
<p>On top, for internal MOOSE administration purposes, the DATBASE administers the Unit and Group TEMPLATES as defined within the Mission Editor.</p>
@ -131,9 +134,15 @@ The following iterator methods are currently available within the DATABASE:</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).AddAirbase">DATABASE:AddAirbase(DCSAirbaseName)</a></td>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).AddAirbase">DATABASE:AddAirbase(AirbaseName)</a></td>
<td class="summary">
<p>Adds a Airbase based on the Airbase Name in the DATABASE.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).AddCargo">DATABASE:AddCargo(CargoName, Cargo)</a></td>
<td class="summary">
<p>Adds a Cargo based on the Cargo Name in the DATABASE.</p>
</td>
</tr>
<tr>
@ -164,6 +173,12 @@ The following iterator methods are currently available within the DATABASE:</p>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).AddUnit">DATABASE:AddUnit(DCSUnitName)</a></td>
<td class="summary">
<p>Adds a Unit based on the Unit Name in the DATABASE.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).CARGOS">DATABASE.CARGOS</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -191,9 +206,15 @@ The following iterator methods are currently available within the DATABASE:</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).DeleteAirbase">DATABASE:DeleteAirbase(DCSAirbaseName)</a></td>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).DeleteAirbase">DATABASE:DeleteAirbase(AirbaseName)</a></td>
<td class="summary">
<p>Deletes a Airbase from the DATABASE based on the Airbase Name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).DeleteCargo">DATABASE:DeleteCargo(CargoName)</a></td>
<td class="summary">
<p>Deletes a Cargo from the DATABASE based on the Cargo Name.</p>
</td>
</tr>
<tr>
@ -217,7 +238,13 @@ The following iterator methods are currently available within the DATABASE:</p>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).FindAirbase">DATABASE:FindAirbase(AirbaseName)</a></td>
<td class="summary">
<p>Finds a AIRBASE based on the AirbaseName.</p>
<p>Finds an AIRBASE based on the AirbaseName.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).FindCargo">DATABASE:FindCargo(CargoName)</a></td>
<td class="summary">
<p>Finds an CARGO based on the CargoName.</p>
</td>
</tr>
<tr>
@ -248,6 +275,12 @@ The following iterator methods are currently available within the DATABASE:</p>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).ForEach">DATABASE:ForEach(IteratorFunction, FinalizeFunction, arg, Set)</a></td>
<td class="summary">
<p>Iterate the DATABASE and call an iterator function for the given set, providing the Object for each element within the set and optional parameters.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).ForEachCargo">DATABASE:ForEachCargo(IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the DATABASE and call an iterator function for each CARGO, providing the CARGO object to the function and optional parameters.</p>
</td>
</tr>
<tr>
@ -350,6 +383,18 @@ The following iterator methods are currently available within the DATABASE:</p>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).New">DATABASE:New()</a></td>
<td class="summary">
<p>Creates a new DATABASE 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="##(DATABASE).OnEventDeleteCargo">DATABASE:OnEventDeleteCargo(EventData)</a></td>
<td class="summary">
<p>Handles the OnEventDeleteCargo.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).OnEventNewCargo">DATABASE:OnEventNewCargo(EventData)</a></td>
<td class="summary">
<p>Handles the OnEventNewCargo event.</p>
</td>
</tr>
<tr>
@ -502,7 +547,7 @@ The following iterator methods are currently available within the DATABASE:</p>
<dt>
<a id="#(DATABASE).AddAirbase" >
<strong>DATABASE:AddAirbase(DCSAirbaseName)</strong>
<strong>DATABASE:AddAirbase(AirbaseName)</strong>
</a>
</dt>
<dd>
@ -513,7 +558,35 @@ The following iterator methods are currently available within the DATABASE:</p>
<ul>
<li>
<p><code><em> DCSAirbaseName </em></code>: </p>
<p><code><em>#string AirbaseName </em></code>:
The name of the airbase</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DATABASE).AddCargo" >
<strong>DATABASE:AddCargo(CargoName, Cargo)</strong>
</a>
</dt>
<dd>
<p>Adds a Cargo based on the Cargo Name in the DATABASE.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string CargoName </em></code>:
The name of the airbase</p>
</li>
<li>
<p><code><em> Cargo </em></code>: </p>
</li>
</ul>
@ -627,6 +700,20 @@ The following iterator methods are currently available within the DATABASE:</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(DATABASE).CARGOS" >
<strong>DATABASE.CARGOS</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -689,7 +776,7 @@ The following iterator methods are currently available within the DATABASE:</p>
<dt>
<a id="#(DATABASE).DeleteAirbase" >
<strong>DATABASE:DeleteAirbase(DCSAirbaseName)</strong>
<strong>DATABASE:DeleteAirbase(AirbaseName)</strong>
</a>
</dt>
<dd>
@ -700,7 +787,30 @@ The following iterator methods are currently available within the DATABASE:</p>
<ul>
<li>
<p><code><em> DCSAirbaseName </em></code>: </p>
<p><code><em>#string AirbaseName </em></code>:
The name of the airbase</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DATABASE).DeleteCargo" >
<strong>DATABASE:DeleteCargo(CargoName)</strong>
</a>
</dt>
<dd>
<p>Deletes a Cargo from the DATABASE based on the Cargo Name.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string CargoName </em></code>:
The name of the airbase</p>
</li>
</ul>
@ -778,7 +888,7 @@ The following iterator methods are currently available within the DATABASE:</p>
</dt>
<dd>
<p>Finds a AIRBASE based on the AirbaseName.</p>
<p>Finds an AIRBASE based on the AirbaseName.</p>
<h3>Parameter</h3>
<ul>
@ -798,6 +908,32 @@ The found AIRBASE.</p>
<dl class="function">
<dt>
<a id="#(DATABASE).FindCargo" >
<strong>DATABASE:FindCargo(CargoName)</strong>
</a>
</dt>
<dd>
<p>Finds an CARGO based on the CargoName.</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="#(DATABASE).FindClient" >
<strong>DATABASE:FindClient(ClientName)</strong>
</a>
@ -944,6 +1080,38 @@ self</p>
<dl class="function">
<dt>
<a id="#(DATABASE).ForEachCargo" >
<strong>DATABASE:ForEachCargo(IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Iterate the DATABASE and call an iterator function for each CARGO, providing the CARGO object to the function and optional parameters.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called for each object in the database. 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="##(DATABASE)">#DATABASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DATABASE).ForEachClient" >
<strong>DATABASE:ForEachClient(IteratorFunction, ...)</strong>
</a>
@ -957,7 +1125,7 @@ self</p>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an alive player in the database. The function needs to accept a CLIENT parameter.</p>
The function that will be called object in the database. The function needs to accept a CLIENT parameter.</p>
</li>
<li>
@ -989,7 +1157,7 @@ self</p>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an alive GROUP in the database. The function needs to accept a GROUP parameter.</p>
The function that will be called for each object in the database. The function needs to accept a GROUP parameter.</p>
</li>
<li>
@ -1021,7 +1189,7 @@ self</p>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an player in the database. The function needs to accept the player name.</p>
The function that will be called for each object in the database. The function needs to accept the player name.</p>
</li>
<li>
@ -1053,7 +1221,7 @@ self</p>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is was a player in the database. The function needs to accept a UNIT parameter.</p>
The function that will be called for each object in the database. The function needs to accept a UNIT parameter.</p>
</li>
<li>
@ -1085,7 +1253,7 @@ self</p>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an alive UNIT in the database. The function needs to accept a UNIT parameter.</p>
The function that will be called for each object in the database. The function needs to accept a UNIT parameter.</p>
</li>
<li>
@ -1343,6 +1511,48 @@ self</p>
<pre class="example"><code>-- Define a new DATABASE Object. This DBObject will contain a reference to all Group and Unit Templates defined within the ME and the DCSRTE.
DBObject = DATABASE:New()</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DATABASE).OnEventDeleteCargo" >
<strong>DATABASE:OnEventDeleteCargo(EventData)</strong>
</a>
</dt>
<dd>
<p>Handles the OnEventDeleteCargo.</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="#(DATABASE).OnEventNewCargo" >
<strong>DATABASE:OnEventNewCargo(EventData)</strong>
</a>
</dt>
<dd>
<p>Handles the OnEventNewCargo event.</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">

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>
@ -2238,7 +2239,7 @@ self</p>
<dl class="function">
<dt>
<em></em>
<em>#number</em>
<a id="#(DETECTION_BASE).DetectionInterval" >
<strong>DETECTION_BASE.DetectionInterval</strong>
</a>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>
@ -309,6 +310,18 @@ YYYY-MM-DD: CLASS:<strong>NewFunction( Params )</strong> added</p>
<td class="name" nowrap="nowrap"><a href="##(EVENT).ClassName">EVENT.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).CreateEventDeleteCargo">EVENT:CreateEventDeleteCargo(Cargo)</a></td>
<td class="summary">
<p>Creation of a Cargo Deletion Event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENT).CreateEventNewCargo">EVENT:CreateEventNewCargo(Cargo)</a></td>
<td class="summary">
<p>Creation of a New Cargo Event.</p>
</td>
</tr>
<tr>
@ -440,6 +453,18 @@ YYYY-MM-DD: CLASS:<strong>NewFunction( Params )</strong> added</p>
<h2><a id="#(EVENTDATA)">Type <code>EVENTDATA</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).Cargo">EVENTDATA.Cargo</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).CargoName">EVENTDATA.CargoName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniCategory">EVENTDATA.IniCategory</a></td>
<td class="summary">
<p>(UNIT) The category of the initiator.</p>
@ -718,6 +743,12 @@ YYYY-MM-DD: CLASS:<strong>NewFunction( Params )</strong> added</p>
<td class="name" nowrap="nowrap"><a href="##(EVENTS).Dead">EVENTS.Dead</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTS).DeleteCargo">EVENTS.DeleteCargo</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -766,6 +797,12 @@ YYYY-MM-DD: CLASS:<strong>NewFunction( Params )</strong> added</p>
<td class="name" nowrap="nowrap"><a href="##(EVENTS).MissionStart">EVENTS.MissionStart</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTS).NewCargo">EVENTS.NewCargo</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -912,6 +949,50 @@ YYYY-MM-DD: CLASS:<strong>NewFunction( Params )</strong> added</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).CreateEventDeleteCargo" >
<strong>EVENT:CreateEventDeleteCargo(Cargo)</strong>
</a>
</dt>
<dd>
<p>Creation of a Cargo Deletion Event.</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> Cargo </em></code>:
The Cargo created.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(EVENT).CreateEventNewCargo" >
<strong>EVENT:CreateEventNewCargo(Cargo)</strong>
</a>
</dt>
<dd>
<p>Creation of a New Cargo Event.</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> Cargo </em></code>:
The Cargo created.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
@ -1586,6 +1667,34 @@ Note that at the beginning of each field description, there is an indication whi
<dl class="function">
<dt>
<em></em>
<a id="#(EVENTDATA).Cargo" >
<strong>EVENTDATA.Cargo</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(EVENTDATA).CargoName" >
<strong>EVENTDATA.CargoName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Dcs.DCSUnit.html##(Unit.Category)">Dcs.DCSUnit#Unit.Category</a></em>
<a id="#(EVENTDATA).IniCategory" >
<strong>EVENTDATA.IniCategory</strong>
@ -2228,6 +2337,20 @@ Note that at the beginning of each field description, there is an indication whi
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(EVENTS).DeleteCargo" >
<strong>EVENTS.DeleteCargo</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -2340,6 +2463,20 @@ Note that at the beginning of each field description, there is an indication whi
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(EVENTS).NewCargo" >
<strong>EVENTS.NewCargo</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>
@ -1528,7 +1529,7 @@ The zone to test.</p>
<h3>Return value</h3>
<p><em>#boolean:</em>
Returns true if the Group is completely within the <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></p>
Returns true if the Group is not within the <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></p>
</dd>
</dl>
@ -1555,7 +1556,7 @@ The zone to test.</p>
<h3>Return value</h3>
<p><em>#boolean:</em>
Returns true if the Group is completely within the <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></p>
Returns true if the Group is partially within the <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></p>
</dd>
</dl>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>
@ -191,6 +192,7 @@ on defined intervals (currently every minute).</p>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(MOVEMENT).AliveUnits" >
<strong>MOVEMENT.AliveUnits</strong>
</a>
@ -199,6 +201,9 @@ on defined intervals (currently every minute).</p>
<p> Contains the counter how many units are currently alive</p>
</dd>
</dl>
<dl class="function">

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>
@ -143,6 +144,28 @@
<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>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>
@ -455,6 +478,106 @@
<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>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>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>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>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>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>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>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>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>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>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>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">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CARGO).New">SET_CARGO:New()</a></td>
<td class="summary">
<p>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>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>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>Remove CARGOs from SET_CARGO.</p>
</td>
</tr>
</table>
@ -923,6 +1046,72 @@ The default <strong>"time interval"</strong> is after 0.001 seconds.</p>
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>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">
@ -2189,6 +2378,454 @@ self</p>
<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>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>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>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>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>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>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>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>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>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>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>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>
<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>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>
self</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>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>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>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>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>
@ -872,6 +873,12 @@ and any spaces before and after the resulting name are removed.</p>
<td class="name" nowrap="nowrap"><a href="##(SPAWN)._TranslateRotate">SPAWN:_TranslateRotate(SpawnIndex, SpawnRootX, SpawnRootY, SpawnX, SpawnY, SpawnAngle)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).uncontrolled">SPAWN.uncontrolled</a></td>
<td class="summary">
</td>
</tr>
</table>
@ -1859,9 +1866,6 @@ The group that was spawned. You can use this group for further actions.</p>
<p> Don't repeat the group from Take-Off till Landing and back Take-Off by ReSpawning.</p>
</dd>
</dl>
<dl class="function">
@ -2332,9 +2336,6 @@ when nothing was spawned.</p>
<p> By default, no InitLimit</p>
</dd>
</dl>
<dl class="function">
@ -2370,7 +2371,7 @@ when nothing was spawned.</p>
<dl class="function">
<dt>
<em>#number</em>
<em></em>
<a id="#(SPAWN).SpawnMaxGroups" >
<strong>SPAWN.SpawnMaxGroups</strong>
</a>
@ -2387,7 +2388,7 @@ when nothing was spawned.</p>
<dl class="function">
<dt>
<em>#number</em>
<em></em>
<a id="#(SPAWN).SpawnMaxUnitsAlive" >
<strong>SPAWN.SpawnMaxUnitsAlive</strong>
</a>
@ -2705,7 +2706,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
<dl class="function">
<dt>
<em>#boolean</em>
<em></em>
<a id="#(SPAWN).SpawnUnControlled" >
<strong>SPAWN.SpawnUnControlled</strong>
</a>
@ -2729,7 +2730,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
<p> Flag that indicates if all the Groups of the SpawnGroup need to be visible when Spawned.</p>
<p> When the first Spawn executes, all the Groups need to be made visible before start.</p>
</dd>
</dl>
@ -3295,6 +3296,20 @@ True = Continue Scheduler</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SPAWN).uncontrolled" >
<strong>SPAWN.uncontrolled</strong>
</a>
</dt>
<dd>
</dd>
</dl>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li>Task</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="Utils.html">Utils</a></li>
@ -73,54 +74,12 @@
<div id="content">
<h1>Module <code>Task</code></h1>
<p>This module contains the TASK class.</p>
<p><strong>Tasking</strong> -- This module contains the TASK class.</p>
<h1>1) <a href="##(TASK)">#TASK</a> class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<h2>1.1) The <a href="##(TASK)">#TASK</a> class implements the methods for task orchestration within MOOSE. </h2>
<p>The class provides a couple of methods to:</p>
<hr/>
<ul>
<li><a href="##(TASK).AssignToGroup">TASK.AssignToGroup</a>():Assign a task to a group (of players).</li>
<li><a href="##(TASK).AddProcess">TASK.AddProcess</a>():Add a <a href="Process.html">Process</a> to a task.</li>
<li><a href="##(TASK).RemoveProcesses">TASK.RemoveProcesses</a>():Remove a running <a href="Process.html">Process</a> from a running task.</li>
<li><a href="##(TASK).SetStateMachine">TASK.SetStateMachine</a>():Set a <a href="Fsm.html">Fsm</a> to a task.</li>
<li><a href="##(TASK).RemoveStateMachine">TASK.RemoveStateMachine</a>():Remove <a href="Fsm.html">Fsm</a> from a task.</li>
<li><a href="##(TASK).HasStateMachine">TASK.HasStateMachine</a>():Enquire if the task has a <a href="Fsm.html">Fsm</a></li>
<li><a href="##(TASK).AssignToUnit">TASK.AssignToUnit</a>(): Assign a task to a unit. (Needs to be implemented in the derived classes from <a href="##(TASK)">#TASK</a>.</li>
<li><a href="##(TASK).UnAssignFromUnit">TASK.UnAssignFromUnit</a>(): Unassign the task from a unit.</li>
<li><a href="##(TASK).SetTimeOut">TASK.SetTimeOut</a>(): Set timer in seconds before task gets cancelled if not assigned.</li>
</ul>
<h2>1.2) Set and enquire task status (beyond the task state machine processing).</h2>
<p>A task needs to implement as a minimum the following task states:</p>
<ul>
<li><strong>Success</strong>: Expresses the successful execution and finalization of the task.</li>
<li><strong>Failed</strong>: Expresses the failure of a task.</li>
<li><strong>Planned</strong>: Expresses that the task is created, but not yet in execution and is not assigned yet.</li>
<li><strong>Assigned</strong>: Expresses that the task is assigned to a Group of players, and that the task is in execution mode.</li>
</ul>
<p>A task may also implement the following task states:</p>
<ul>
<li><strong>Rejected</strong>: Expresses that the task is rejected by a player, who was requested to accept the task.</li>
<li><strong>Cancelled</strong>: Expresses that the task is cancelled by HQ or through a logical situation where a cancellation of the task is required.</li>
</ul>
<p>A task can implement more statusses than the ones outlined above. Please consult the documentation of the specific tasks to understand the different status modelled.</p>
<p>The status of tasks can be set by the methods <strong>State</strong> followed by the task status. An example is <code>StateAssigned()</code>.
The status of tasks can be enquired by the methods <strong>IsState</strong> followed by the task status name. An example is <code>if IsStateAssigned() then</code>.</p>
<h2>1.3) Add scoring when reaching a certain task status:</h2>
<p>Upon reaching a certain task status in a task, additional scoring can be given. If the Mission has a scoring system attached, the scores will be added to the mission scoring.
Use the method <a href="##(TASK).AddScore">TASK.AddScore</a>() to add scores when a status is reached.</p>
<h2>1.4) Task briefing:</h2>
<p>A task briefing can be given that is shown to the player when he is assigned to the task.</p>
<hr/>
@ -132,7 +91,9 @@ Use the method <a href="##(TASK).AddScore">TASK.AddScore</a>() to add scores whe
<tr>
<td class="name" nowrap="nowrap"><a href="#TASK">TASK</a></td>
<td class="summary">
<h1>TASK class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<h2>The TASK class implements the methods for task orchestration within MOOSE.</h2>
</td>
</tr>
</table>
@ -166,12 +127,6 @@ Use the method <a href="##(TASK).AddScore">TASK.AddScore</a>() to add scores whe
<td class="name" nowrap="nowrap"><a href="##(TASK).Cancel">TASK:Cancel()</a></td>
<td class="summary">
<p>FSM Cancel synchronous event function for TASK.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).ClassName">TASK.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -358,12 +313,6 @@ Use the method <a href="##(TASK).AddScore">TASK.AddScore</a>() to add scores whe
<td class="name" nowrap="nowrap"><a href="##(TASK).JoinUnit">TASK:JoinUnit(PlayerUnit, PlayerGroup)</a></td>
<td class="summary">
<p>Add a PlayerUnit to join the Task.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).Menu">TASK.Menu</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -418,24 +367,6 @@ Use the method <a href="##(TASK).AddScore">TASK.AddScore</a>() to add scores whe
<td class="name" nowrap="nowrap"><a href="##(TASK).OnAfterPlayerDead">TASK:OnAfterPlayerDead(PlayerUnit, PlayerName)</a></td>
<td class="summary">
<p>FSM PlayerDead event handler prototype for TASK.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).Players">TASK.Players</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).ProcessClasses">TASK.ProcessClasses</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).Processes">TASK.Processes</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -478,12 +409,6 @@ Use the method <a href="##(TASK).AddScore">TASK.AddScore</a>() to add scores whe
<td class="name" nowrap="nowrap"><a href="##(TASK).ReportSummary">TASK:ReportSummary()</a></td>
<td class="summary">
<p>Create a summary report of the Task.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).Scores">TASK.Scores</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -769,6 +694,57 @@ Use the method <a href="##(TASK).AddScore">TASK.AddScore</a>() to add scores whe
</dt>
<dd>
<h1>TASK class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<h2>The TASK class implements the methods for task orchestration within MOOSE.</h2>
<p>The class provides a couple of methods to:</p>
<ul>
<li><a href="##(TASK).AssignToGroup">TASK.AssignToGroup</a>():Assign a task to a group (of players).</li>
<li><a href="##(TASK).AddProcess">TASK.AddProcess</a>():Add a <a href="Process.html">Process</a> to a task.</li>
<li><a href="##(TASK).RemoveProcesses">TASK.RemoveProcesses</a>():Remove a running <a href="Process.html">Process</a> from a running task.</li>
<li><a href="##(TASK).SetStateMachine">TASK.SetStateMachine</a>():Set a <a href="Fsm.html">Fsm</a> to a task.</li>
<li><a href="##(TASK).RemoveStateMachine">TASK.RemoveStateMachine</a>():Remove <a href="Fsm.html">Fsm</a> from a task.</li>
<li><a href="##(TASK).HasStateMachine">TASK.HasStateMachine</a>():Enquire if the task has a <a href="Fsm.html">Fsm</a></li>
<li><a href="##(TASK).AssignToUnit">TASK.AssignToUnit</a>(): Assign a task to a unit. (Needs to be implemented in the derived classes from <a href="##(TASK)">#TASK</a>.</li>
<li><a href="##(TASK).UnAssignFromUnit">TASK.UnAssignFromUnit</a>(): Unassign the task from a unit.</li>
<li><a href="##(TASK).SetTimeOut">TASK.SetTimeOut</a>(): Set timer in seconds before task gets cancelled if not assigned.</li>
</ul>
<h2>1.2) Set and enquire task status (beyond the task state machine processing).</h2>
<p>A task needs to implement as a minimum the following task states:</p>
<ul>
<li><strong>Success</strong>: Expresses the successful execution and finalization of the task.</li>
<li><strong>Failed</strong>: Expresses the failure of a task.</li>
<li><strong>Planned</strong>: Expresses that the task is created, but not yet in execution and is not assigned yet.</li>
<li><strong>Assigned</strong>: Expresses that the task is assigned to a Group of players, and that the task is in execution mode.</li>
</ul>
<p>A task may also implement the following task states:</p>
<ul>
<li><strong>Rejected</strong>: Expresses that the task is rejected by a player, who was requested to accept the task.</li>
<li><strong>Cancelled</strong>: Expresses that the task is cancelled by HQ or through a logical situation where a cancellation of the task is required.</li>
</ul>
<p>A task can implement more statusses than the ones outlined above. Please consult the documentation of the specific tasks to understand the different status modelled.</p>
<p>The status of tasks can be set by the methods <strong>State</strong> followed by the task status. An example is <code>StateAssigned()</code>.
The status of tasks can be enquired by the methods <strong>IsState</strong> followed by the task status name. An example is <code>if IsStateAssigned() then</code>.</p>
<h2>1.3) Add scoring when reaching a certain task status:</h2>
<p>Upon reaching a certain task status in a task, additional scoring can be given. If the Mission has a scoring system attached, the scores will be added to the mission scoring.
Use the method <a href="##(TASK).AddScore">TASK.AddScore</a>() to add scores when a status is reached.</p>
<h2>1.4) Task briefing:</h2>
<p>A task briefing can be given that is shown to the player when he is assigned to the task.</p>
</dd>
@ -776,10 +752,7 @@ Use the method <a href="##(TASK).AddScore">TASK.AddScore</a>() to add scores whe
<h2><a id="#(Task)" >Type <code>Task</code></a></h2>
<h2><a id="#(TASK)" >Type <code>TASK</code></a></h2>
<p>The TASK class</p>
<h3>Field(s)</h3>
<h3>Field(s)</h3>
<dl class="function">
<dt>
@ -893,20 +866,6 @@ self</p>
<p>Use this event to Cancel the Task.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(TASK).ClassName" >
<strong>TASK.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -1498,20 +1457,6 @@ The GROUP of the player joining the Mission.</p>
<p><em>#boolean:</em>
true if Unit is part of the Task.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(TASK).Menu" >
<strong>TASK.Menu</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -1742,47 +1687,6 @@ The name of the Player.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK).Players" >
<strong>TASK.Players</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(TASK).ProcessClasses" >
<strong>TASK.ProcessClasses</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(TASK).Processes" >
<strong>TASK.Processes</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -1955,20 +1859,6 @@ self</p>
<p><em>#string:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(TASK).Scores" >
<strong>TASK.Scores</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</a></li>
<li>Task_A2G</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="Utils.html">Utils</a></li>
@ -326,7 +327,7 @@ The TASK_A2G is implemented using a <a href="Statemachine.html##(FSM_TASK)">Stat
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_SEAD).New">TASK_SEAD:New(Mission, SetGroup, TaskName, UnitSetTargets, TargetDistance, TargetZone, TargetSetUnit)</a></td>
<td class="name" nowrap="nowrap"><a href="##(TASK_SEAD).New">TASK_SEAD:New(Mission, SetGroup, TaskName, TargetSetUnit)</a></td>
<td class="summary">
<p>Instantiates a new TASK_SEAD.</p>
</td>
@ -1068,7 +1069,7 @@ self</p>
<dt>
<a id="#(TASK_SEAD).New" >
<strong>TASK_SEAD:New(Mission, SetGroup, TaskName, UnitSetTargets, TargetDistance, TargetZone, TargetSetUnit)</strong>
<strong>TASK_SEAD:New(Mission, SetGroup, TaskName, TargetSetUnit)</strong>
</a>
</dt>
<dd>
@ -1096,25 +1097,7 @@ The name of the Task.</p>
</li>
<li>
<p><code><em><a href="Set.html##(SET_UNIT)">Set#SET_UNIT</a> UnitSetTargets </em></code>: </p>
</li>
<li>
<p><code><em>#number TargetDistance </em></code>:
The distance to Target when the Player is considered to have "arrived" at the engagement range.</p>
</li>
<li>
<p><code><em><a href="Core.Zone.html##(ZONE_BASE)">Core.Zone#ZONE_BASE</a> TargetZone </em></code>:
The target zone, if known.
If the TargetZone parameter is specified, the player will be routed to the center of the zone where all the targets are assumed to be.</p>
</li>
<li>
<p><code><em> TargetSetUnit </em></code>: </p>
<p><code><em><a href="Set.html##(SET_UNIT)">Set#SET_UNIT</a> TargetSetUnit </em></code>: </p>
</li>
</ul>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</a></li>
<li><a href="Task_A2G.html">Task_A2G</a></li>
<li>Task_A2G_Dispatcher</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="Utils.html">Utils</a></li>

View File

@ -0,0 +1,826 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" href="stylesheet.css" type="text/css"/>
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div>
<div id="main">
<div id="navigation">
<h2>Modules</h2>
<ul><li>
<a href="index.html">index</a>
</li></ul>
<ul>
<li><a href="AI_Balancer.html">AI_Balancer</a></li>
<li><a href="AI_Cap.html">AI_Cap</a></li>
<li><a href="AI_Cas.html">AI_Cas</a></li>
<li><a href="AI_Patrol.html">AI_Patrol</a></li>
<li><a href="Account.html">Account</a></li>
<li><a href="Airbase.html">Airbase</a></li>
<li><a href="AirbasePolice.html">AirbasePolice</a></li>
<li><a href="Assign.html">Assign</a></li>
<li><a href="Base.html">Base</a></li>
<li><a href="Cargo.html">Cargo</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="CommandCenter.html">CommandCenter</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="Database.html">Database</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="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="Radio.html">Radio</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><a href="Set.html">Set</a></li>
<li><a href="Smoke.html">Smoke</a></li>
<li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="Task.html">Task</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>Task_CARGO</li>
<li><a href="Task_PICKUP.html">Task_PICKUP</a></li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="Utils.html">Utils</a></li>
<li><a href="Zone.html">Zone</a></li>
<li><a href="routines.html">routines</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>Task_CARGO</code></h1>
<p><strong>Tasking (Release 2.1)</strong> -- The TASK_CARGO models tasks for players to transport <a href="Cargo.html">Cargo</a>.</p>
<p><img src="..\Presentations\TASK_CARGO\Dia1.JPG" alt="Banner Image"/></p>
<hr/>
<p>Cargo are units or cargo objects within DCS world that allow to be transported or sling loaded by other units.
The CARGO class, as part of the moose core, is able to Board, Load, UnBoard and UnLoad from Carrier units.
This collection of classes in this module define tasks for human players to handle cargo objects.
Cargo can be transported, picked-up, deployed and sling-loaded from and to other places.</p>
<p>The following classes are important to consider:</p>
<ul>
<li><a href="##(TASK_CARGO_TRANSPORT)">#TASK<em>CARGO</em>TRANSPORT</a>: Defines a task for a human player to transport a set of cargo between various zones.</li>
</ul>
<p>==</p>
<h1><strong>API CHANGE HISTORY</strong></h1>
<p>The underlying change log documents the API changes. Please read this carefully. The following notation is used:</p>
<ul>
<li><strong>Added</strong> parts are expressed in bold type face.</li>
<li><em>Removed</em> parts are expressed in italic type face.</li>
</ul>
<p>Hereby the change log:</p>
<p>2017-03-09: Revised version.</p>
<hr/>
<h1><strong>AUTHORS and CONTRIBUTIONS</strong></h1>
<h3>Contributions:</h3>
<h3>Authors:</h3>
<ul>
<li><strong>FlightControl</strong>: Concept, Design &amp; Programming.
</li>
</ul>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#TASK_CARGO">TASK_CARGO</a></td>
<td class="summary">
<h1>TASK_CARGO class, extends <a href="Task.html##(TASK)">Task#TASK</a></h1>
<p>The TASK_CARGO class defines <a href="Cargo.html">Cargo</a> transport tasks,
based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TASK</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#TASK_CARGO_TRANSPORT">TASK_CARGO_TRANSPORT</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(FSM_PROCESS)">Type <code>FSM_PROCESS</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(FSM_PROCESS).Cargo">FSM_PROCESS.Cargo</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FSM_PROCESS).DeployZone">FSM_PROCESS.DeployZone</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(TASK_CARGO)">Type <code>TASK_CARGO</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).AddDeployZone">TASK_CARGO:AddDeployZone(DeployZone, TaskUnit)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).DeployZones">TASK_CARGO.DeployZones</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).GetPlannedMenuText">TASK_CARGO:GetPlannedMenuText()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).GetTargetZone">TASK_CARGO:GetTargetZone(TaskUnit)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).New">TASK_CARGO:New(Mission, SetGroup, TaskName, SetCargo, TaskType)</a></td>
<td class="summary">
<p>Instantiates a new TASK_CARGO.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).RemoveDeployZone">TASK_CARGO:RemoveDeployZone(DeployZone, TaskUnit)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).SetCargo">TASK_CARGO.SetCargo</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).SetCargoPickup">TASK_CARGO:SetCargoPickup(Cargo, TaskUnit)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).SetDeployZone">TASK_CARGO:SetDeployZone(DeployZone, TaskUnit)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).SetDeployZones">TASK_CARGO:SetDeployZones(@, TaskUnit, DeployZones)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).SetPenaltyOnFailed">TASK_CARGO:SetPenaltyOnFailed(Text, Penalty, TaskUnit)</a></td>
<td class="summary">
<p>Set a penalty when the A2G attack has failed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).SetScoreOnDestroy">TASK_CARGO:SetScoreOnDestroy(Text, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when a target in scope of the A2G attack, has been destroyed .</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).SetScoreOnSuccess">TASK_CARGO:SetScoreOnSuccess(Text, Score, TaskUnit)</a></td>
<td class="summary">
<p>Set a score when all the targets in scope of the A2G attack, have been destroyed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO).TaskType">TASK_CARGO.TaskType</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(TASK_CARGO_TRANSPORT)">Type <code>TASK_CARGO_TRANSPORT</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO_TRANSPORT).ClassName">TASK_CARGO_TRANSPORT.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK_CARGO_TRANSPORT).New">TASK_CARGO_TRANSPORT:New(Mission, SetGroup, TaskName, SetCargo)</a></td>
<td class="summary">
<p>Instantiates a new TASK<em>CARGO</em>TRANSPORT.</p>
</td>
</tr>
</table>
<h2>Global(s)</h2>
<dl class="function">
<dt>
<em><a href="##(TASK_CARGO)">#TASK_CARGO</a></em>
<a id="TASK_CARGO" >
<strong>TASK_CARGO</strong>
</a>
</dt>
<dd>
<h1>TASK_CARGO class, extends <a href="Task.html##(TASK)">Task#TASK</a></h1>
<p>The TASK_CARGO class defines <a href="Cargo.html">Cargo</a> transport tasks,
based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TASK</a>.</p>
<p>The TASK_CARGO is implemented using a <a href="Statemachine.html##(FSM_TASK)">Statemachine#FSM_TASK</a>, and has the following statuses:</p>
<ul>
<li><strong>None</strong>: Start of the process.</li>
<li><strong>Planned</strong>: The cargo task is planned.</li>
<li><strong>Assigned</strong>: The cargo task is assigned to a <a href="Group.html##(GROUP)">Group#GROUP</a>.</li>
<li><strong>Success</strong>: The cargo task is successfully completed.</li>
<li><strong>Failed</strong>: The cargo task has failed. This will happen if the player exists the task early, without communicating a possible cancellation to HQ.</li>
</ul>
<h1>1.1) Set the scoring of achievements in a cargo task.</h1>
<p>Scoring or penalties can be given in the following circumstances:</p>
<hr/>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(TASK_CARGO_TRANSPORT)">#TASK_CARGO_TRANSPORT</a></em>
<a id="TASK_CARGO_TRANSPORT" >
<strong>TASK_CARGO_TRANSPORT</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(Task_CARGO)" >Type <code>Task_CARGO</code></a></h2>
<h2><a id="#(FSM_PROCESS)" >Type <code>FSM_PROCESS</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em></em>
<a id="#(FSM_PROCESS).Cargo" >
<strong>FSM_PROCESS.Cargo</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(FSM_PROCESS).DeployZone" >
<strong>FSM_PROCESS.DeployZone</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(TASK_CARGO)" >Type <code>TASK_CARGO</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(TASK_CARGO).AddDeployZone" >
<strong>TASK_CARGO:AddDeployZone(DeployZone, TaskUnit)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> DeployZone </em></code>: </p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_CARGO)">#TASK_CARGO</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(TASK_CARGO).DeployZones" >
<strong>TASK_CARGO.DeployZones</strong>
</a>
</dt>
<dd>
<p> setmetatable( {}, { __mode = "v" } ) -- weak table on value</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_CARGO).GetPlannedMenuText" >
<strong>TASK_CARGO:GetPlannedMenuText()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_CARGO).GetTargetZone" >
<strong>TASK_CARGO:GetTargetZone(TaskUnit)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Core.Zone.html##(ZONE_BASE)">Core.Zone#ZONE_BASE</a>:</em>
The Zone object where the Target is located on the map.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_CARGO).New" >
<strong>TASK_CARGO:New(Mission, SetGroup, TaskName, SetCargo, TaskType)</strong>
</a>
</dt>
<dd>
<p>Instantiates a new TASK_CARGO.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Tasking.Mission.html##(MISSION)">Tasking.Mission#MISSION</a> Mission </em></code>: </p>
</li>
<li>
<p><code><em><a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a> SetGroup </em></code>:
The set of groups for which the Task can be assigned.</p>
</li>
<li>
<p><code><em>#string TaskName </em></code>:
The name of the Task.</p>
</li>
<li>
<p><code><em><a href="Core.Set.html##(SET_CARGO)">Core.Set#SET_CARGO</a> SetCargo </em></code>:
The scope of the cargo to be transported.</p>
</li>
<li>
<p><code><em>#string TaskType </em></code>:
The type of Cargo task.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_CARGO)">#TASK_CARGO</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_CARGO).RemoveDeployZone" >
<strong>TASK_CARGO:RemoveDeployZone(DeployZone, TaskUnit)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> DeployZone </em></code>: </p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_CARGO)">#TASK_CARGO</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(TASK_CARGO).SetCargo" >
<strong>TASK_CARGO.SetCargo</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_CARGO).SetCargoPickup" >
<strong>TASK_CARGO:SetCargoPickup(Cargo, TaskUnit)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="AI.AI_Cargo.html##(AI_CARGO)">AI.AI<em>Cargo#AI</em>CARGO</a> Cargo </em></code>:
The cargo.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_CARGO)">#TASK_CARGO</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_CARGO).SetDeployZone" >
<strong>TASK_CARGO:SetDeployZone(DeployZone, TaskUnit)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> DeployZone </em></code>: </p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_CARGO)">#TASK_CARGO</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_CARGO).SetDeployZones" >
<strong>TASK_CARGO:SetDeployZones(@, TaskUnit, DeployZones)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> @ </em></code>:
ist<Core.Zone#ZONE> DeployZones</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
<li>
<p><code><em> DeployZones </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_CARGO)">#TASK_CARGO</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_CARGO).SetPenaltyOnFailed" >
<strong>TASK_CARGO:SetPenaltyOnFailed(Text, Penalty, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a penalty when the A2G attack has failed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Text </em></code>:
The text to display to the player, when the A2G attack has failed.</p>
</li>
<li>
<p><code><em>#number Penalty </em></code>:
The penalty in points.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_CARGO)">#TASK_CARGO</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_CARGO).SetScoreOnDestroy" >
<strong>TASK_CARGO:SetScoreOnDestroy(Text, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when a target in scope of the A2G attack, has been destroyed .</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Text </em></code>:
The text to display to the player, when the target has been destroyed.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_CARGO)">#TASK_CARGO</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_CARGO).SetScoreOnSuccess" >
<strong>TASK_CARGO:SetScoreOnSuccess(Text, Score, TaskUnit)</strong>
</a>
</dt>
<dd>
<p>Set a score when all the targets in scope of the A2G attack, have been destroyed.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Text </em></code>:
The text to display to the player, when all targets hav been destroyed.</p>
</li>
<li>
<p><code><em>#number Score </em></code>:
The score in points.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> TaskUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_CARGO)">#TASK_CARGO</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(TASK_CARGO).TaskType" >
<strong>TASK_CARGO.TaskType</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(TASK_CARGO_TRANSPORT)" >Type <code>TASK_CARGO_TRANSPORT</code></a></h2>
<p>The TASK<em>CARGO</em>TRANSPORT class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(TASK_CARGO_TRANSPORT).ClassName" >
<strong>TASK_CARGO_TRANSPORT.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK_CARGO_TRANSPORT).New" >
<strong>TASK_CARGO_TRANSPORT:New(Mission, SetGroup, TaskName, SetCargo)</strong>
</a>
</dt>
<dd>
<p>Instantiates a new TASK<em>CARGO</em>TRANSPORT.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Tasking.Mission.html##(MISSION)">Tasking.Mission#MISSION</a> Mission </em></code>: </p>
</li>
<li>
<p><code><em><a href="Set.html##(SET_GROUP)">Set#SET_GROUP</a> SetGroup </em></code>:
The set of groups for which the Task can be assigned.</p>
</li>
<li>
<p><code><em>#string TaskName </em></code>:
The name of the Task.</p>
</li>
<li>
<p><code><em><a href="Core.Set.html##(SET_CARGO)">Core.Set#SET_CARGO</a> SetCargo </em></code>:
The scope of the cargo to be transported.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK_CARGO_TRANSPORT)">#TASK<em>CARGO</em>TRANSPORT</a>:</em>
self</p>
</dd>
</dl>
</div>
</div>
</body>
</html>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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>Task_PICKUP</li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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>Unit</li>
<li><a href="Utils.html">Utils</a></li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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>Utils</li>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>
@ -154,7 +155,7 @@
<tr>
<td class="name" nowrap="nowrap"><a href="#ZONE">ZONE</a></td>
<td class="summary">
<h1>3) ZONE class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<h1>ZONE class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<p>The ZONE class, defined by the zone name as defined within the Mission Editor.</p>
</td>
@ -162,7 +163,7 @@
<tr>
<td class="name" nowrap="nowrap"><a href="#ZONE_BASE">ZONE_BASE</a></td>
<td class="summary">
<h1>1) ZONE_BASE class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<h1>ZONE_BASE class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>This class is an abstract BASE class for derived classes, and is not meant to be instantiated.</p>
</td>
@ -170,7 +171,7 @@
<tr>
<td class="name" nowrap="nowrap"><a href="#ZONE_GROUP">ZONE_GROUP</a></td>
<td class="summary">
<h1>5) #ZONE_GROUP class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<h1>ZONE_GROUP class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<p>The ZONE_GROUP class defines by a zone around a <a href="Group.html##(GROUP)">Group#GROUP</a> with a radius.</p>
</td>
@ -178,7 +179,7 @@
<tr>
<td class="name" nowrap="nowrap"><a href="#ZONE_POLYGON">ZONE_POLYGON</a></td>
<td class="summary">
<h1>7) ZONE_POLYGON class, extends <a href="Zone.html##(ZONE_POLYGON_BASE)">Zone#ZONE<em>POLYGON</em>BASE</a></h1>
<h1>ZONE_POLYGON class, extends <a href="Zone.html##(ZONE_POLYGON_BASE)">Zone#ZONE<em>POLYGON</em>BASE</a></h1>
<p>The ZONE_POLYGON class defined by a sequence of <a href="Group.html##(GROUP)">Group#GROUP</a> waypoints within the Mission Editor, forming a polygon.</p>
</td>
@ -186,7 +187,7 @@
<tr>
<td class="name" nowrap="nowrap"><a href="#ZONE_POLYGON_BASE">ZONE_POLYGON_BASE</a></td>
<td class="summary">
<h1>6) ZONE<em>POLYGON</em>BASE class, extends <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></h1>
<h1>ZONE<em>POLYGON</em>BASE class, extends <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></h1>
<p>The ZONE<em>POLYGON</em>BASE class defined by a sequence of <a href="Group.html##(GROUP)">Group#GROUP</a> waypoints within the Mission Editor, forming a polygon.</p>
</td>
@ -194,7 +195,7 @@
<tr>
<td class="name" nowrap="nowrap"><a href="#ZONE_RADIUS">ZONE_RADIUS</a></td>
<td class="summary">
<h1>2) <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a> class, extends <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></h1>
<h1>ZONE_RADIUS class, extends <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></h1>
<p>The ZONE_RADIUS class defined by a zone name, a location and a radius.</p>
</td>
@ -202,7 +203,7 @@
<tr>
<td class="name" nowrap="nowrap"><a href="#ZONE_UNIT">ZONE_UNIT</a></td>
<td class="summary">
<h1>4) #ZONE_UNIT class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<h1>ZONE_UNIT class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<p>The ZONE_UNIT class defined by a zone around a <a href="Unit.html##(UNIT)">Unit#UNIT</a> with a radius.</p>
</td>
@ -290,18 +291,30 @@
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).GetZoneProbability">ZONE_BASE:GetZoneProbability()</a></td>
<td class="summary">
<p>Get the randomization probability of a zone to be selected.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).IsPointVec2InZone">ZONE_BASE:IsPointVec2InZone(PointVec2)</a></td>
<td class="summary">
<p>Returns if a PointVec2 is within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).IsPointVec3InZone">ZONE_BASE:IsPointVec3InZone(PointVec3)</a></td>
<td class="summary">
<p>Returns if a PointVec3 is within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).IsVec2InZone">ZONE_BASE:IsVec2InZone(Vec2)</a></td>
<td class="summary">
<p>Returns if a location is within the zone.</p>
<p>Returns if a Vec2 is within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).IsVec3InZone">ZONE_BASE:IsVec3InZone(Vec3)</a></td>
<td class="summary">
<p>Returns if a point is within the zone.</p>
<p>Returns if a Vec3 is within the zone.</p>
</td>
</tr>
<tr>
@ -438,6 +451,12 @@
<td class="name" nowrap="nowrap"><a href="##(ZONE_POLYGON_BASE).GetRandomVec2">ZONE_POLYGON_BASE:GetRandomVec2()</a></td>
<td class="summary">
<p>Define a random <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_POLYGON_BASE).GetVec2">ZONE_POLYGON_BASE:GetVec2()</a></td>
<td class="summary">
<p>Returns the center location of the polygon.</p>
</td>
</tr>
<tr>
@ -617,15 +636,13 @@
</dt>
<dd>
<h1>3) ZONE class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<h1>ZONE class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<p>The ZONE class, defined by the zone name as defined within the Mission Editor.</p>
<p>This class implements the inherited functions from <a href="##(ZONE_RADIUS)">#ZONE_RADIUS</a> taking into account the own zone format and properties.</p>
<hr/>
</dd>
</dl>
@ -639,26 +656,26 @@
</dt>
<dd>
<h1>1) ZONE_BASE class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<h1>ZONE_BASE class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>This class is an abstract BASE class for derived classes, and is not meant to be instantiated.</p>
<h2>1.1) Each zone has a name:</h2>
<h2>Each zone has a name:</h2>
<ul>
<li><a href="##(ZONE_BASE).GetName">ZONE_BASE.GetName</a>(): Returns the name of the zone.</li>
</ul>
<h2>1.2) Each zone implements two polymorphic functions defined in <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a>:</h2>
<h2>Each zone implements two polymorphic functions defined in <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a>:</h2>
<ul>
<li><a href="##(ZONE_BASE).IsVec2InZone">ZONE_BASE.IsVec2InZone</a>(): Returns if a Vec2 is within the zone.</li>
<li><a href="##(ZONE_BASE).IsVec3InZone">ZONE_BASE.IsVec3InZone</a>(): Returns if a Vec3 is within the zone.</li>
</ul>
<h2>1.3) A zone has a probability factor that can be set to randomize a selection between zones:</h2>
<h2>A zone has a probability factor that can be set to randomize a selection between zones:</h2>
<ul>
<li><a href="##(ZONE_BASE).SetRandomizeProbability">ZONE_BASE.SetRandomizeProbability</a>(): Set the randomization probability of a zone to be selected, taking a value between 0 and 1 ( 0 = 0%, 1 = 100% )</li>
@ -666,27 +683,26 @@
<li><a href="##(ZONE_BASE).GetZoneMaybe">ZONE_BASE.GetZoneMaybe</a>(): Get the zone taking into account the randomization probability. nil is returned if this zone is not a candidate.</li>
</ul>
<h2>1.4) A zone manages Vectors:</h2>
<h2>A zone manages Vectors:</h2>
<ul>
<li><a href="##(ZONE_BASE).GetVec2">ZONE_BASE.GetVec2</a>(): Returns the <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> coordinate of the zone.</li>
<li><a href="##(ZONE_BASE).GetRandomVec2">ZONE_BASE.GetRandomVec2</a>(): Define a random <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> within the zone.</li>
</ul>
<h2>1.5) A zone has a bounding square:</h2>
<h2>A zone has a bounding square:</h2>
<ul>
<li><a href="##(ZONE_BASE).GetBoundingSquare">ZONE_BASE.GetBoundingSquare</a>(): Get the outer most bounding square of the zone.</li>
</ul>
<h2>1.6) A zone can be marked:</h2>
<h2>A zone can be marked:</h2>
<ul>
<li><a href="##(ZONE_BASE).SmokeZone">ZONE_BASE.SmokeZone</a>(): Smokes the zone boundaries in a color.</li>
<li><a href="##(ZONE_BASE).FlareZone">ZONE_BASE.FlareZone</a>(): Flares the zone boundaries in a color.</li>
</ul>
<hr/>
</dd>
</dl>
@ -700,7 +716,7 @@
</dt>
<dd>
<h1>5) #ZONE_GROUP class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<h1>ZONE_GROUP class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<p>The ZONE_GROUP class defines by a zone around a <a href="Group.html##(GROUP)">Group#GROUP</a> with a radius.</p>
@ -708,8 +724,6 @@
<p>The current leader of the group defines the center of the zone.
This class implements the inherited functions from <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a> taking into account the own zone format and properties.</p>
<hr/>
</dd>
</dl>
@ -723,15 +737,13 @@ This class implements the inherited functions from <a href="Zone.html##(ZONE_RAD
</dt>
<dd>
<h1>7) ZONE_POLYGON class, extends <a href="Zone.html##(ZONE_POLYGON_BASE)">Zone#ZONE<em>POLYGON</em>BASE</a></h1>
<h1>ZONE_POLYGON class, extends <a href="Zone.html##(ZONE_POLYGON_BASE)">Zone#ZONE<em>POLYGON</em>BASE</a></h1>
<p>The ZONE_POLYGON class defined by a sequence of <a href="Group.html##(GROUP)">Group#GROUP</a> waypoints within the Mission Editor, forming a polygon.</p>
<p>This class implements the inherited functions from <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a> taking into account the own zone format and properties.</p>
<hr/>
</dd>
</dl>
@ -745,7 +757,7 @@ This class implements the inherited functions from <a href="Zone.html##(ZONE_RAD
</dt>
<dd>
<h1>6) ZONE<em>POLYGON</em>BASE class, extends <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></h1>
<h1>ZONE<em>POLYGON</em>BASE class, extends <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></h1>
<p>The ZONE<em>POLYGON</em>BASE class defined by a sequence of <a href="Group.html##(GROUP)">Group#GROUP</a> waypoints within the Mission Editor, forming a polygon.</p>
@ -753,7 +765,7 @@ This class implements the inherited functions from <a href="Zone.html##(ZONE_RAD
<p>This class implements the inherited functions from <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a> taking into account the own zone format and properties.
This class is an abstract BASE class for derived classes, and is not meant to be instantiated.</p>
<h2>6.1) Zone point randomization</h2>
<h2>Zone point randomization</h2>
<p>Various functions exist to find random points within the zone.</p>
@ -763,8 +775,6 @@ This class is an abstract BASE class for derived classes, and is not meant to be
<li><a href="##(ZONE_POLYGON_BASE).GetRandomPointVec3">ZONE<em>POLYGON</em>BASE.GetRandomPointVec3</a>(): Return a <a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a> object representing a random 3D point at landheight within the zone.</li>
</ul>
<hr/>
</dd>
</dl>
@ -778,27 +788,27 @@ This class is an abstract BASE class for derived classes, and is not meant to be
</dt>
<dd>
<h1>2) <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a> class, extends <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></h1>
<h1>ZONE_RADIUS class, extends <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></h1>
<p>The ZONE_RADIUS class defined by a zone name, a location and a radius.</p>
<p>This class implements the inherited functions from Core.Zone#ZONE_BASE taking into account the own zone format and properties.</p>
<h2>2.1) <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a> constructor</h2>
<h2>ZONE_RADIUS constructor</h2>
<ul>
<li><a href="##(ZONE_RADIUS).New">ZONE_RADIUS.New</a>(): Constructor.</li>
</ul>
<h2>2.2) Manage the radius of the zone</h2>
<h2>Manage the radius of the zone</h2>
<ul>
<li><a href="##(ZONE_RADIUS).SetRadius">ZONE_RADIUS.SetRadius</a>(): Sets the radius of the zone.</li>
<li><a href="##(ZONE_RADIUS).GetRadius">ZONE_RADIUS.GetRadius</a>(): Returns the radius of the zone.</li>
</ul>
<h2>2.3) Manage the location of the zone</h2>
<h2>Manage the location of the zone</h2>
<ul>
<li><a href="##(ZONE_RADIUS).SetVec2">ZONE_RADIUS.SetVec2</a>(): Sets the <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> of the zone.</li>
@ -806,7 +816,7 @@ This class is an abstract BASE class for derived classes, and is not meant to be
<li><a href="##(ZONE_RADIUS).GetVec3">ZONE_RADIUS.GetVec3</a>(): Returns the <a href="DCSTypes.html##(Vec3)">DCSTypes#Vec3</a> of the zone, taking an additional height parameter.</li>
</ul>
<h2>2.4) Zone point randomization</h2>
<h2>Zone point randomization</h2>
<p>Various functions exist to find random points within the zone.</p>
@ -816,8 +826,6 @@ This class is an abstract BASE class for derived classes, and is not meant to be
<li><a href="##(ZONE_RADIUS).GetRandomPointVec3">ZONE_RADIUS.GetRandomPointVec3</a>(): Gets a <a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a> object representing a random 3D point in the zone. Note that the height of the point is at landheight.</li>
</ul>
<hr/>
</dd>
</dl>
@ -831,15 +839,13 @@ This class is an abstract BASE class for derived classes, and is not meant to be
</dt>
<dd>
<h1>4) #ZONE_UNIT class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<h1>ZONE_UNIT class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<p>The ZONE_UNIT class defined by a zone around a <a href="Unit.html##(UNIT)">Unit#UNIT</a> with a radius.</p>
<p>This class implements the inherited functions from <a href="##(ZONE_RADIUS)">#ZONE_RADIUS</a> taking into account the own zone format and properties.</p>
<hr/>
</dd>
</dl>
@ -1131,27 +1137,81 @@ A value between 0 and 1. 0 = 0% and 1 = 100% probability.</p>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).IsVec2InZone" >
<strong>ZONE_BASE:IsVec2InZone(Vec2)</strong>
<a id="#(ZONE_BASE).IsPointVec2InZone" >
<strong>ZONE_BASE:IsPointVec2InZone(PointVec2)</strong>
</a>
</dt>
<dd>
<p>Returns if a location is within the zone.</p>
<p>Returns if a PointVec2 is within the zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a> Vec2 </em></code>:
The location to test.</p>
<p><code><em><a href="Core.Point.html##(POINT_VEC2)">Core.Point#POINT_VEC2</a> PointVec2 </em></code>:
The PointVec2 to test.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if the location is within the zone.</p>
true if the PointVec2 is within the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).IsPointVec3InZone" >
<strong>ZONE_BASE:IsPointVec3InZone(PointVec3)</strong>
</a>
</dt>
<dd>
<p>Returns if a PointVec3 is within the zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Point.html##(POINT_VEC3)">Core.Point#POINT_VEC3</a> PointVec3 </em></code>:
The PointVec3 to test.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if the PointVec3 is within the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).IsVec2InZone" >
<strong>ZONE_BASE:IsVec2InZone(Vec2)</strong>
</a>
</dt>
<dd>
<p>Returns if a Vec2 is within the zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a> Vec2 </em></code>:
The Vec2 to test.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if the Vec2 is within the zone.</p>
</dd>
</dl>
@ -1164,7 +1224,7 @@ true if the location is within the zone.</p>
</dt>
<dd>
<p>Returns if a point is within the zone.</p>
<p>Returns if a Vec3 is within the zone.</p>
<h3>Parameter</h3>
<ul>
@ -1178,7 +1238,7 @@ The point to test.</p>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if the point is within the zone.</p>
true if the Vec3 is within the zone.</p>
</dd>
</dl>
@ -1597,6 +1657,24 @@ The Vec2 coordinate.</p>
<dl class="function">
<dt>
<a id="#(ZONE_POLYGON_BASE).GetVec2" >
<strong>ZONE_POLYGON_BASE:GetVec2()</strong>
</a>
</dt>
<dd>
<p>Returns the center location of the polygon.</p>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a>:</em>
The location of the zone based on the <a href="Group.html">Group</a> location.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_POLYGON_BASE).IsVec2InZone" >
<strong>ZONE_POLYGON_BASE:IsVec2InZone(Vec2)</strong>
</a>
@ -2163,10 +2241,7 @@ self</p>
</dl>
<h2><a id="#(ZONE_UNIT)" >Type <code>ZONE_UNIT</code></a></h2>
<p>The ZONE_UNIT class defined by a zone around a <a href="Unit.html##(UNIT)">Unit#UNIT</a> with a radius.</p>
<h3>Field(s)</h3>
<h3>Field(s)</h3>
<dl class="function">
<dt>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>
@ -392,7 +393,7 @@ and creates a CSV file logging the scoring events and results for use at team or
<tr>
<td class="name" nowrap="nowrap"><a href="Task.html">Task</a></td>
<td class="summary">
<p>This module contains the TASK class.</p>
<p><strong>Tasking</strong> -- This module contains the TASK class.</p>
</td>
</tr>
<tr>
@ -405,6 +406,12 @@ and creates a CSV file logging the scoring events and results for use at team or
<td class="name" nowrap="nowrap"><a href="Task_A2G_Dispatcher.html">Task_A2G_Dispatcher</a></td>
<td class="summary">
<p><strong>Tasking</strong> - The TASK<em>A2G</em>DISPATCHER creates and manages player TASK_A2G tasks based on detected targets.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="Task_CARGO.html">Task_CARGO</a></td>
<td class="summary">
<p><strong>Tasking (Release 2.1)</strong> -- The TASK_CARGO models tasks for players to transport <a href="Cargo.html">Cargo</a>.</p>
</td>
</tr>
<tr>

View File

@ -63,6 +63,7 @@
<li><a href="Task.html">Task</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="Utils.html">Utils</a></li>

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB