Merge branch 'develop' into FF/Develop

This commit is contained in:
funkyfranky
2018-05-24 19:39:48 +02:00
91 changed files with 568 additions and 686 deletions

View File

@@ -8,13 +8,13 @@
--
-- ===
--
-- @module Airbase
-- @module Wrapper.Airbase
--- @type AIRBASE
-- @extends Wrapper.Positionable#POSITIONABLE
--- # AIRBASE class, extends @{Positionable#POSITIONABLE}
--- # AIRBASE class, extends @{Wrapper.Positionable#POSITIONABLE}
--
-- AIRBASE is a wrapper class to handle the DCS Airbase objects:
--

View File

@@ -8,7 +8,7 @@
--
-- ===
--
-- @module Client
-- @module Wrapper.Client
--- The CLIENT class
@@ -16,7 +16,7 @@
-- @extends Wrapper.Unit#UNIT
--- # CLIENT class, extends @{Unit#UNIT}
--- # CLIENT class, extends @{Wrapper.Unit#UNIT}
--
-- Clients are those **Units** defined within the Mission Editor that have the skillset defined as __Client__ or __Player__.
-- Note that clients are NOT the same as Units, they are NOT necessarily alive.

View File

@@ -19,7 +19,7 @@
--- # CONTROLLABLE class, extends @{Positionable#POSITIONABLE}
--- # CONTROLLABLE class, extends @{Wrapper.Positionable#POSITIONABLE}
--
-- CONTROLLABLE is a wrapper class to handle the "DCS Controllable objects", which are Groups and Units:
--
@@ -37,7 +37,7 @@
-- ## CONTROLLABLE Task methods
--
-- Several controllable task methods are available that help you to prepare tasks.
-- These methods return a string consisting of the task description, which can then be given to either a @{Controllable#CONTROLLABLE.PushTask} or @{Controllable#SetTask} method to assign the task to the CONTROLLABLE.
-- These methods return a string consisting of the task description, which can then be given to either a @{Wrapper.Controllable#CONTROLLABLE.PushTask} or @{Wrapper.Controllable#SetTask} method to assign the task to the CONTROLLABLE.
-- Tasks are specific for the category of the CONTROLLABLE, more specific, for AIR, GROUND or AIR and GROUND.
-- Each task description where applicable indicates for which controllable category the task is valid.
-- There are 2 main subdivisions of tasks: Assigned tasks and EnRoute tasks.
@@ -63,7 +63,7 @@
-- * @{#CONTROLLABLE.TaskHold}: (GROUND) Hold ground controllable from moving.
-- * @{#CONTROLLABLE.TaskHoldPosition}: (AIR) Hold position at the current position of the first unit of the controllable.
-- * @{#CONTROLLABLE.TaskLand}: (AIR HELICOPTER) Landing at the ground. For helicopters only.
-- * @{#CONTROLLABLE.TaskLandAtZone}: (AIR) Land the controllable at a @{Zone#ZONE_RADIUS).
-- * @{#CONTROLLABLE.TaskLandAtZone}: (AIR) Land the controllable at a @{Core.Zone#ZONE_RADIUS).
-- * @{#CONTROLLABLE.TaskOrbitCircle}: (AIR) Orbit at the current position of the first unit of the controllable at a specified alititude.
-- * @{#CONTROLLABLE.TaskOrbitCircleAtVec2}: (AIR) Orbit at a specified position at a specified alititude during a specified duration with a specified speed.
-- * @{#CONTROLLABLE.TaskRefueling}: (AIR) Refueling from the nearest tanker. No parameters.
@@ -932,7 +932,7 @@ function CONTROLLABLE:TaskLandAtVec2( Point, Duration )
return DCSTask
end
--- (AIR) Land the controllable at a @{Zone#ZONE_RADIUS).
--- (AIR) Land the controllable at a @{Core.Zone#ZONE_RADIUS).
-- @param #CONTROLLABLE self
-- @param Core.Zone#ZONE Zone The zone where to land.
-- @param #number Duration The duration in seconds to stay on the ground.
@@ -2195,7 +2195,7 @@ end
--- Return the route of a controllable by using the @{Database#DATABASE} class.
--- Return the route of a controllable by using the @{Core.Database#DATABASE} class.
-- @param #CONTROLLABLE self
-- @param #number Begin The route point from where the copy will start. The base route point is 0.
-- @param #number End The route point where the copy will end. The End point is the last point - the End point. The last point has base 0.
@@ -2742,7 +2742,7 @@ end
--- Retrieve the controllable mission and allow to place function hooks within the mission waypoint plan.
-- Use the method @{Controllable#CONTROLLABLE:WayPointFunction} to define the hook functions for specific waypoints.
-- Use the method @{Wrapper.Controllable#CONTROLLABLE:WayPointFunction} to define the hook functions for specific waypoints.
-- Use the method @{Controllable@CONTROLLABLE:WayPointExecute) to start the execution of the new mission plan.
-- Note that when WayPointInitialize is called, the Mission of the controllable is RESTARTED!
-- @param #CONTROLLABLE self

View File

@@ -32,7 +32,7 @@
---
-- # GROUP class, extends @{Controllable#CONTROLLABLE}
-- # GROUP class, extends @{Wrapper.Controllable#CONTROLLABLE}
--
-- For each DCS Group object alive within a running mission, a GROUP wrapper object (instance) will be created within the _@{DATABASE} object.
-- This is done at the beginning of the mission (when the mission starts), and dynamically when new DCS Group objects are spawned (using the @{SPAWN} class).
@@ -51,21 +51,21 @@
--
-- ## GROUP task methods
--
-- A GROUP is a @{Controllable}. See the @{Controllable} task methods section for a description of the task methods.
-- A GROUP is a @{Wrapper.Controllable}. See the @{Wrapper.Controllable} task methods section for a description of the task methods.
--
-- ### Obtain the mission from group templates
--
-- Group templates contain complete mission descriptions. Sometimes you want to copy a complete mission from a group and assign it to another:
--
-- * @{Controllable#CONTROLLABLE.TaskMission}: (AIR + GROUND) Return a mission task from a mission template.
-- * @{Wrapper.Controllable#CONTROLLABLE.TaskMission}: (AIR + GROUND) Return a mission task from a mission template.
--
-- ## GROUP Command methods
--
-- A GROUP is a @{Controllable}. See the @{Controllable} command methods section for a description of the command methods.
-- A GROUP is a @{Wrapper.Controllable}. See the @{Wrapper.Controllable} command methods section for a description of the command methods.
--
-- ## GROUP option methods
--
-- A GROUP is a @{Controllable}. See the @{Controllable} option methods section for a description of the option methods.
-- A GROUP is a @{Wrapper.Controllable}. See the @{Wrapper.Controllable} option methods section for a description of the option methods.
--
-- ## GROUP Zone validation methods
--
@@ -76,7 +76,7 @@
-- * @{#GROUP.IsPartlyInZone}: Returns true if some units of the group are within a @{Zone}.
-- * @{#GROUP.IsNotInZone}: Returns true if none of the group units of the group are within a @{Zone}.
--
-- The zone can be of any @{Zone} class derived from @{Zone#ZONE_BASE}. So, these methods are polymorphic to the zones tested on.
-- The zone can be of any @{Zone} class derived from @{Core.Zone#ZONE_BASE}. So, these methods are polymorphic to the zones tested on.
--
-- ## GROUP AI methods
--
@@ -112,7 +112,7 @@ GROUPTEMPLATE.Takeoff = {
--- Create a new GROUP from a given GroupTemplate as a parameter.
-- Note that the GroupTemplate is NOT spawned into the mission.
-- It is merely added to the @{Database}.
-- It is merely added to the @{Core.Database}.
-- @param #GROUP self
-- @param #table GroupTemplate The GroupTemplate Structure exactly as defined within the mission editor.
-- @param Dcs.DCScoalition#coalition.side CoalitionSide The coalition.side of the group.
@@ -209,8 +209,8 @@ end
-- * Exist at run-time.
-- * Has at least one unit.
--
-- When the first @{Unit} of the Group is active, it will return true.
-- If the first @{Unit} of the Group is inactive, it will return false.
-- When the first @{Wrapper.Unit} of the Group is active, it will return true.
-- If the first @{Wrapper.Unit} of the Group is inactive, it will return false.
--
-- @param #GROUP self
-- @return #boolean true if the Group is alive and active.
@@ -380,9 +380,10 @@ function GROUP:GetSpeedMax()
return nil
end
--- Returns a list of @{Unit} objects of the @{Group}.
--- Returns a list of @{Wrapper.Unit} objects of the @{Wrapper.Group}.
-- @param #GROUP self
-- @return #list<Wrapper.Unit#UNIT> The list of @{Unit} objects of the @{Group}.
-- @return #list<Wrapper.Unit#UNIT> The list of @{Wrapper.Unit} objects of the @{Wrapper.Group}.
function GROUP:GetUnits()
self:F2( { self.GroupName } )
local DCSGroup = self:GetDCSObject()
@@ -401,9 +402,9 @@ function GROUP:GetUnits()
end
--- Returns a list of @{Unit} objects of the @{Group} that are occupied by a player.
--- Returns a list of @{Wrapper.Unit} objects of the @{Wrapper.Group} that are occupied by a player.
-- @param #GROUP self
-- @return #list<Wrapper.Unit#UNIT> The list of player occupied @{Unit} objects of the @{Group}.
-- @return #list<Wrapper.Unit#UNIT> The list of player occupied @{Wrapper.Unit} objects of the @{Wrapper.Group}.
function GROUP:GetPlayerUnits()
self:F2( { self.GroupName } )
local DCSGroup = self:GetDCSObject()
@@ -800,7 +801,7 @@ do -- Is Zone methods
--- Returns true if all units of the group are within a @{Zone}.
-- @param #GROUP self
-- @param Core.Zone#ZONE_BASE Zone The zone to test.
-- @return #boolean Returns true if the Group is completely within the @{Zone#ZONE_BASE}
-- @return #boolean Returns true if the Group is completely within the @{Core.Zone#ZONE_BASE}
function GROUP:IsCompletelyInZone( Zone )
self:F2( { self.GroupName, Zone } )
@@ -820,7 +821,7 @@ end
--- Returns true if some units of the group are within a @{Zone}.
-- @param #GROUP self
-- @param Core.Zone#ZONE_BASE Zone The zone to test.
-- @return #boolean Returns true if the Group is partially within the @{Zone#ZONE_BASE}
-- @return #boolean Returns true if the Group is partially within the @{Core.Zone#ZONE_BASE}
function GROUP:IsPartlyInZone( Zone )
self:F2( { self.GroupName, Zone } )
@@ -848,7 +849,7 @@ end
--- Returns true if none of the group units of the group are within a @{Zone}.
-- @param #GROUP self
-- @param Core.Zone#ZONE_BASE Zone The zone to test.
-- @return #boolean Returns true if the Group is not within the @{Zone#ZONE_BASE}
-- @return #boolean Returns true if the Group is not within the @{Core.Zone#ZONE_BASE}
function GROUP:IsNotInZone( Zone )
self:F2( { self.GroupName, Zone } )
@@ -1194,7 +1195,7 @@ function GROUP:InitRandomizePositionRadius( OuterRadius, InnerRadius )
end
--- Respawn the @{Group} at a @{Point}.
--- Respawn the @{Wrapper.Group} at a @{Point}.
-- The method will setup the new group template according the Init(Respawn) settings provided for the group.
-- These settings can be provided by calling the relevant Init...() methods of the Group.
--
@@ -1408,7 +1409,7 @@ function GROUP:GetTaskRoute()
return routines.utils.deepCopy( _DATABASE.Templates.Groups[self.GroupName].Template.route.points )
end
--- Return the route of a group by using the @{Database#DATABASE} class.
--- Return the route of a group by using the @{Core.Database#DATABASE} class.
-- @param #GROUP self
-- @param #number Begin The route point from where the copy will start. The base route point is 0.
-- @param #number End The route point where the copy will end. The End point is the last point - the End point. The last point has base 0.
@@ -1499,17 +1500,17 @@ end
do -- Route methods
--- (AIR) Return the Group to an @{Airbase#AIRBASE}.
--- (AIR) Return the Group to an @{Wrapper.Airbase#AIRBASE}.
-- The following things are to be taken into account:
--
-- * The group is respawned to achieve the RTB, there may be side artefacts as a result of this. (Like weapons suddenly come back).
-- * A group consisting out of more than one unit, may rejoin formation when respawned.
-- * A speed can be given in km/h. If no speed is specified, the maximum speed of the first unit will be taken to return to base.
-- * When there is no @{Airbase} object specified, the group will return to the home base if the route of the group is pinned at take-off or at landing to a base.
-- * When there is no @{Airbase} object specified and the group route is not pinned to any airbase, it will return to the nearest airbase.
-- * When there is no @{Wrapper.Airbase} object specified, the group will return to the home base if the route of the group is pinned at take-off or at landing to a base.
-- * When there is no @{Wrapper.Airbase} object specified and the group route is not pinned to any airbase, it will return to the nearest airbase.
--
-- @param #GROUP self
-- @param Wrapper.Airbase#AIRBASE RTBAirbase (optional) The @{Airbase} to return to. If blank, the controllable will return to the nearest friendly airbase.
-- @param Wrapper.Airbase#AIRBASE RTBAirbase (optional) The @{Wrapper.Airbase} to return to. If blank, the controllable will return to the nearest friendly airbase.
-- @param #number Speed (optional) The Speed, if no Speed is given, the maximum Speed of the first unit is selected.
-- @return #GROUP
function GROUP:RouteRTB( RTBAirbase, Speed )

View File

@@ -8,13 +8,13 @@
--
-- ===
--
-- @module Identifiable
-- @module Wrapper.Identifiable
--- @type IDENTIFIABLE
-- @extends Wrapper.Object#OBJECT
-- @field #string IdentifiableName The name of the identifiable.
--- # IDENTIFIABLE class, extends @{Object#OBJECT}
--- # IDENTIFIABLE class, extends @{Wrapper.Object#OBJECT}
--
-- The IDENTIFIABLE class is a wrapper class to handle the DCS Identifiable objects:
--

View File

@@ -8,7 +8,7 @@
--
-- ===
--
-- @module Object
-- @module Wrapper.Object
--- @type OBJECT
@@ -16,7 +16,7 @@
-- @field #string ObjectName The name of the Object.
--- # OBJECT class, extends @{Base#BASE}
--- # OBJECT class, extends @{Core.Base#BASE}
--
-- OBJECT handles the DCS Object objects:
--

View File

@@ -8,7 +8,7 @@
--
-- ===
--
-- @module Positionable
-- @module Wrapper.Positionable
--- @type POSITIONABLE.__ Methods which are not intended for mission designers, but which are used interally by the moose designer :-)
-- @extends Wrapper.Identifiable#IDENTIFIABLE
@@ -17,7 +17,7 @@
-- @extends Wrapper.Identifiable#IDENTIFIABLE
--- # POSITIONABLE class, extends @{Identifiable#IDENTIFIABLE}
--- # POSITIONABLE class, extends @{Wrapper.Identifiable#IDENTIFIABLE}
--
-- The POSITIONABLE class is a wrapper class to handle the POSITIONABLE objects:
--
@@ -626,7 +626,7 @@ function POSITIONABLE:MessageToClient( Message, Duration, Client, Name )
return nil
end
--- Send a message to a @{Group}.
--- Send a message to a @{Wrapper.Group}.
-- The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.
-- @param #POSITIONABLE self
-- @param #string Message The message text
@@ -653,7 +653,7 @@ function POSITIONABLE:MessageToGroup( Message, Duration, MessageGroup, Name )
return nil
end
--- Send a message of a message type to a @{Group}.
--- Send a message of a message type to a @{Wrapper.Group}.
-- The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.
-- @param #POSITIONABLE self
-- @param #string Message The message text
@@ -673,7 +673,7 @@ function POSITIONABLE:MessageTypeToGroup( Message, MessageType, MessageGroup, Na
return nil
end
--- Send a message to a @{Set#SET_GROUP}.
--- Send a message to a @{Core.Set#SET_GROUP}.
-- The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.
-- @param #POSITIONABLE self
-- @param #string Message The message text
@@ -697,7 +697,7 @@ function POSITIONABLE:MessageToSetGroup( Message, Duration, MessageSetGroup, Nam
return nil
end
--- Send a message to the players in the @{Group}.
--- Send a message to the players in the @{Wrapper.Group}.
-- The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.
-- @param #POSITIONABLE self
-- @param #string Message The message text

View File

@@ -8,7 +8,7 @@
--
-- ===
--
-- @module Scenery
-- @module Wrapper.Scenery
@@ -16,7 +16,7 @@
-- @extends Wrapper.Positionable#POSITIONABLE
--- # SCENERY class, extends @{Positionable#POSITIONABLE}
--- # SCENERY class, extends @{Wrapper.Positionable#POSITIONABLE}
--
-- Scenery objects are defined on the map.
-- The @{Scenery#SCENERY} class is a wrapper class to handle the DCS Scenery objects:

View File

@@ -8,13 +8,13 @@
--
-- ===
--
-- @module Static
-- @module Wrapper.Static
--- @type STATIC
-- @extends Wrapper.Positionable#POSITIONABLE
--- # STATIC class, extends @{Positionable#POSITIONABLE}
--- # STATIC class, extends @{Wrapper.Positionable#POSITIONABLE}
--
-- Statics are **Static Units** defined within the Mission Editor.
-- Note that Statics are almost the same as Units, but they don't have a controller.
@@ -126,7 +126,7 @@ function STATIC:GetThreatLevel()
return 1, "Static"
end
--- Respawn the @{Unit} using a (tweaked) template of the parent Group.
--- Respawn the @{Wrapper.Unit} using a (tweaked) template of the parent Group.
-- @param #UNIT self
-- @param Core.Point#COORDINATE Coordinate The coordinate where to spawn the new Static.
-- @param #number Heading The heading of the unit respawn.
@@ -138,7 +138,7 @@ function STATIC:SpawnAt( Coordinate, Heading )
end
--- Respawn the @{Unit} at the same location with the same properties.
--- Respawn the @{Wrapper.Unit} at the same location with the same properties.
-- This is useful to respawn a cargo after it has been destroyed.
-- @param #UNIT self
function STATIC:ReSpawn()
@@ -149,7 +149,7 @@ function STATIC:ReSpawn()
end
--- Respawn the @{Unit} at a defined Coordinate with an optional heading.
--- Respawn the @{Wrapper.Unit} at a defined Coordinate with an optional heading.
-- @param #UNIT self
-- @param Core.Point#COORDINATE Coordinate The coordinate where to spawn the new Static.
-- @param #number Heading The heading of the unit respawn.

View File

@@ -17,14 +17,14 @@
--
-- ===
--
-- @module Unit
-- @module Wrapper.Unit
--- @type UNIT
-- @extends Wrapper.Controllable#CONTROLLABLE
---
-- # UNIT class, extends @{Controllable#CONTROLLABLE}
-- # UNIT class, extends @{Wrapper.Controllable#CONTROLLABLE}
--
-- For each DCS Unit object alive within a running mission, a UNIT wrapper object (instance) will be created within the _@{DATABASE} object.
-- This is done at the beginning of the mission (when the mission starts), and dynamically when new DCS Unit objects are spawned (using the @{SPAWN} class).
@@ -75,7 +75,7 @@
--
-- ### Zones range
--
-- To test whether the Unit is within a **zone**, use the @{#UNIT.IsInZone}() or the @{#UNIT.IsNotInZone}() methods. Any zone can be tested on, but the zone must be derived from @{Zone#ZONE_BASE}.
-- To test whether the Unit is within a **zone**, use the @{#UNIT.IsInZone}() or the @{#UNIT.IsNotInZone}() methods. Any zone can be tested on, but the zone must be derived from @{Core.Zone#ZONE_BASE}.
--
-- ### Unit range
--
@@ -190,7 +190,7 @@ function UNIT:Destroy( GenerateEvent )
end
--- Respawn the @{Unit} using a (tweaked) template of the parent Group.
--- Respawn the @{Wrapper.Unit} using a (tweaked) template of the parent Group.
--
-- This function will:
--
@@ -573,9 +573,9 @@ function UNIT:GetFuel()
return nil
end
--- Returns a list of one @{Unit}.
--- Returns a list of one @{Wrapper.Unit}.
-- @param #UNIT self
-- @return #list<Wrapper.Unit#UNIT> A list of one @{Unit}.
-- @return #list<Wrapper.Unit#UNIT> A list of one @{Wrapper.Unit}.
function UNIT:GetUnits()
self:F2( { self.UnitName } )
local DCSUnit = self:GetDCSObject()
@@ -795,7 +795,7 @@ end
--- Returns true if the unit is within a @{Zone}.
-- @param #UNIT self
-- @param Core.Zone#ZONE_BASE Zone The zone to test.
-- @return #boolean Returns true if the unit is within the @{Zone#ZONE_BASE}
-- @return #boolean Returns true if the unit is within the @{Core.Zone#ZONE_BASE}
function UNIT:IsInZone( Zone )
self:F2( { self.UnitName, Zone } )
@@ -810,7 +810,7 @@ end
--- Returns true if the unit is not within a @{Zone}.
-- @param #UNIT self
-- @param Core.Zone#ZONE_BASE Zone The zone to test.
-- @return #boolean Returns true if the unit is not within the @{Zone#ZONE_BASE}
-- @return #boolean Returns true if the unit is not within the @{Core.Zone#ZONE_BASE}
function UNIT:IsNotInZone( Zone )
self:F2( { self.UnitName, Zone } )