Merge remote-tracking branch 'origin/master' into develop

This commit is contained in:
Applevangelist 2022-10-19 12:27:22 +02:00
commit 3214316663
81 changed files with 208 additions and 250 deletions

View File

@ -1,4 +1,6 @@
--- **AI** -- (R2.2) - Models the process of Combat Air Patrol (CAP) for airplanes. --- **AI** - (R2.2) - Models the process of Combat Air Patrol (CAP) for airplanes.
--
-- This is a class used in the @{AI.AI_A2A_Dispatcher}.
-- --
-- === -- ===
-- --
@ -13,7 +15,6 @@
-- @extends AI.AI_Air_Patrol#AI_AIR_PATROL -- @extends AI.AI_Air_Patrol#AI_AIR_PATROL
-- @extends AI.AI_Air_Engage#AI_AIR_ENGAGE -- @extends AI.AI_Air_Engage#AI_AIR_ENGAGE
--- The AI_A2A_CAP class implements the core functions to patrol a @{Zone} by an AI @{Wrapper.Group} or @{Wrapper.Group} --- The AI_A2A_CAP class implements the core functions to patrol a @{Zone} by an AI @{Wrapper.Group} or @{Wrapper.Group}
-- and automatically engage any airborne enemies that are within a certain range or within a certain zone. -- and automatically engage any airborne enemies that are within a certain range or within a certain zone.
-- --
@ -81,7 +82,7 @@
-- that will define when the AI will engage with the detected airborne enemy targets. -- that will define when the AI will engage with the detected airborne enemy targets.
-- The range can be beyond or smaller than the range of the Patrol Zone. -- The range can be beyond or smaller than the range of the Patrol Zone.
-- The range is applied at the position of the AI. -- The range is applied at the position of the AI.
-- Use the method @{AI.AI_CAP#AI_A2A_CAP.SetEngageRange}() to define that range. -- Use the method @{#AI_A2A_CAP.SetEngageRange}() to define that range.
-- --
-- ## 4. Set the Zone of Engagement -- ## 4. Set the Zone of Engagement
-- --
@ -89,7 +90,7 @@
-- --
-- An optional @{Zone} can be set, -- An optional @{Zone} can be set,
-- that will define when the AI will engage with the detected airborne enemy targets. -- that will define when the AI will engage with the detected airborne enemy targets.
-- Use the method @{AI.AI_Cap#AI_A2A_CAP.SetEngageZone}() to define that Zone. -- Use the method @{#AI_A2A_CAP.SetEngageZone}() to define that Zone.
-- --
-- === -- ===
-- --

View File

@ -1148,7 +1148,7 @@ do -- AI_A2A_DISPATCHER
self:I( "Captured " .. AirbaseName ) self:I( "Captured " .. AirbaseName )
-- Now search for all squadrons located at the airbase, and sanatize them. -- Now search for all squadrons located at the airbase, and sanitize them.
for SquadronName, Squadron in pairs( self.DefenderSquadrons ) do for SquadronName, Squadron in pairs( self.DefenderSquadrons ) do
if Squadron.AirbaseName == AirbaseName then if Squadron.AirbaseName == AirbaseName then
Squadron.ResourceCount = -999 -- The base has been captured, and the resources are eliminated. No more spawning. Squadron.ResourceCount = -999 -- The base has been captured, and the resources are eliminated. No more spawning.

View File

@ -1,6 +1,6 @@
--- **AI** -- (R2.2) - Models the process of Ground Controlled Interception (GCI) for airplanes. --- **AI** - (R2.2) - Models the process of Ground Controlled Interception (GCI) for airplanes.
-- --
-- This is a class used in the @{AI_A2A_Dispatcher}. -- This is a class used in the @{AI.AI_A2A_Dispatcher}.
-- --
-- === -- ===
-- --
@ -8,7 +8,7 @@
-- --
-- === -- ===
-- --
-- @module AI.AI_A2A_GCI -- @module AI.AI_A2A_Gci
-- @image AI_Ground_Control_Intercept.JPG -- @image AI_Ground_Control_Intercept.JPG
@ -91,7 +91,7 @@
-- --
-- An optional @{Zone} can be set, -- An optional @{Zone} can be set,
-- that will define when the AI will engage with the detected airborne enemy targets. -- that will define when the AI will engage with the detected airborne enemy targets.
-- Use the method @{AI.AI_Cap#AI_A2A_GCI.SetEngageZone}() to define that Zone. -- Use the method @{AI.AI_CAP#AI_CAP_ZONE.SetEngageZone}() to define that Zone.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **AI** -- (R2.2) - Models the process of air patrol of airplanes. --- **AI** - (R2.2) - Models the process of air patrol of airplanes.
-- --
-- === -- ===
-- --

View File

@ -1,6 +1,6 @@
--- **AI** -- Models the process of air to ground BAI engagement for airplanes and helicopters. --- **AI** - Models the process of air to ground BAI engagement for airplanes and helicopters.
-- --
-- This is a class used in the @{AI_A2G_Dispatcher}. -- This is a class used in the @{AI.AI_A2G_Dispatcher}.
-- --
-- === -- ===
-- --
@ -11,11 +11,8 @@
-- @module AI.AI_A2G_BAI -- @module AI.AI_A2G_BAI
-- @image AI_Air_To_Ground_Engage.JPG -- @image AI_Air_To_Ground_Engage.JPG
--- @type AI_A2G_BAI --- @type AI_A2G_BAI
-- @extends AI.AI_A2A_Engage#AI_A2A_Engage -- @extends AI.AI_A2A_Engage#AI_A2A_Engage -- TODO: Documentation. This class does not exist, unable to determine what it extends.
--- Implements the core functions to intercept intruders. Use the Engage trigger to intercept intruders. --- Implements the core functions to intercept intruders. Use the Engage trigger to intercept intruders.
-- --
@ -26,8 +23,6 @@ AI_A2G_BAI = {
ClassName = "AI_A2G_BAI", ClassName = "AI_A2G_BAI",
} }
--- Creates a new AI_A2G_BAI object --- Creates a new AI_A2G_BAI object
-- @param #AI_A2G_BAI self -- @param #AI_A2G_BAI self
-- @param Wrapper.Group#GROUP AIGroup -- @param Wrapper.Group#GROUP AIGroup
@ -53,7 +48,6 @@ function AI_A2G_BAI:New2( AIGroup, EngageMinSpeed, EngageMaxSpeed, EngageFloorAl
return self return self
end end
--- Creates a new AI_A2G_BAI object --- Creates a new AI_A2G_BAI object
-- @param #AI_A2G_BAI self -- @param #AI_A2G_BAI self
-- @param Wrapper.Group#GROUP AIGroup -- @param Wrapper.Group#GROUP AIGroup
@ -92,8 +86,6 @@ function AI_A2G_BAI:CreateAttackUnitTasks( AttackSetUnit, DefenderGroup, EngageA
end end
end end
end end
return AttackUnitTasks return AttackUnitTasks
end end

View File

@ -1,6 +1,6 @@
--- **AI** -- Models the process of air to ground engagement for airplanes and helicopters. --- **AI** - Models the process of air to ground engagement for airplanes and helicopters.
-- --
-- This is a class used in the @{AI_A2G_Dispatcher}. -- This is a class used in the @{AI.AI_A2G_Dispatcher}.
-- --
-- === -- ===
-- --
@ -11,11 +11,8 @@
-- @module AI.AI_A2G_CAS -- @module AI.AI_A2G_CAS
-- @image AI_Air_To_Ground_Engage.JPG -- @image AI_Air_To_Ground_Engage.JPG
--- @type AI_A2G_CAS --- @type AI_A2G_CAS
-- @extends AI.AI_A2G_Patrol#AI_AIR_PATROL -- @extends AI.AI_A2G_Patrol#AI_AIR_PATROL TODO: Documentation. This class does not exist, unable to determine what it extends.
--- Implements the core functions to intercept intruders. Use the Engage trigger to intercept intruders. --- Implements the core functions to intercept intruders. Use the Engage trigger to intercept intruders.
-- --
@ -26,8 +23,6 @@ AI_A2G_CAS = {
ClassName = "AI_A2G_CAS", ClassName = "AI_A2G_CAS",
} }
--- Creates a new AI_A2G_CAS object --- Creates a new AI_A2G_CAS object
-- @param #AI_A2G_CAS self -- @param #AI_A2G_CAS self
-- @param Wrapper.Group#GROUP AIGroup -- @param Wrapper.Group#GROUP AIGroup
@ -53,7 +48,6 @@ function AI_A2G_CAS:New2( AIGroup, EngageMinSpeed, EngageMaxSpeed, EngageFloorAl
return self return self
end end
--- Creates a new AI_A2G_CAS object --- Creates a new AI_A2G_CAS object
-- @param #AI_A2G_CAS self -- @param #AI_A2G_CAS self
-- @param Wrapper.Group#GROUP AIGroup -- @param Wrapper.Group#GROUP AIGroup
@ -92,9 +86,6 @@ function AI_A2G_CAS:CreateAttackUnitTasks( AttackSetUnit, DefenderGroup, EngageA
end end
end end
end end
return AttackUnitTasks return AttackUnitTasks
end end

View File

@ -1,6 +1,6 @@
--- **AI** -- Models the process of air to ground SEAD engagement for airplanes and helicopters. --- **AI** - Models the process of air to ground SEAD engagement for airplanes and helicopters.
-- --
-- This is a class used in the @{AI_A2G_Dispatcher}. -- This is a class used in the @{AI.AI_A2G_Dispatcher}.
-- --
-- === -- ===
-- --
@ -67,7 +67,7 @@
-- --
-- An optional @{Zone} can be set, -- An optional @{Zone} can be set,
-- that will define when the AI will engage with the detected airborne enemy targets. -- that will define when the AI will engage with the detected airborne enemy targets.
-- Use the method @{AI.AI_Cap#AI_A2G_SEAD.SetEngageZone}() to define that Zone. -- Use the method @{AI.AI_CAP#AI_CAP_ZONE.SetEngageZone}() to define that Zone. -- TODO: Documentation. Check that this is actually correct. The originally referenced class does not exist.
-- --
-- === -- ===
-- --
@ -76,8 +76,6 @@ AI_A2G_SEAD = {
ClassName = "AI_A2G_SEAD", ClassName = "AI_A2G_SEAD",
} }
--- Creates a new AI_A2G_SEAD object --- Creates a new AI_A2G_SEAD object
-- @param #AI_A2G_SEAD self -- @param #AI_A2G_SEAD self
-- @param Wrapper.Group#GROUP AIGroup -- @param Wrapper.Group#GROUP AIGroup

View File

@ -259,7 +259,7 @@
-- --
-- ### Author: **FlightControl** rework of GCICAP + introduction of new concepts (squadrons). -- ### Author: **FlightControl** rework of GCICAP + introduction of new concepts (squadrons).
-- --
-- @module AI.AI_AIR_Dispatcher -- @module AI.AI_Air_Dispatcher
-- @image AI_Air_To_Ground_Dispatching.JPG -- @image AI_Air_To_Ground_Dispatching.JPG
@ -1224,7 +1224,7 @@ do -- AI_AIR_DISPATCHER
self:I( "Captured " .. AirbaseName ) self:I( "Captured " .. AirbaseName )
-- Now search for all squadrons located at the airbase, and sanatize them. -- Now search for all squadrons located at the airbase, and sanitize them.
for SquadronName, Squadron in pairs( self.DefenderSquadrons ) do for SquadronName, Squadron in pairs( self.DefenderSquadrons ) do
if Squadron.AirbaseName == AirbaseName then if Squadron.AirbaseName == AirbaseName then
Squadron.ResourceCount = -999 -- The base has been captured, and the resources are eliminated. No more spawning. Squadron.ResourceCount = -999 -- The base has been captured, and the resources are eliminated. No more spawning.
@ -1796,12 +1796,12 @@ do -- AI_AIR_DISPATCHER
-- --
-- @return #AI_AIR_DISPATCHER -- @return #AI_AIR_DISPATCHER
function AI_AIR_DISPATCHER:SetSquadron2( Squadron ) function AI_AIR_DISPATCHER:SetSquadron2( Squadron )
local SquadronName = Squadron:GetName() -- Retrieves the Squadron Name. local SquadronName = Squadron:GetName() -- Retrieves the Squadron Name.
self.DefenderSquadrons[SquadronName] = self.DefenderSquadrons[SquadronName] or {} self.DefenderSquadrons[SquadronName] = self.DefenderSquadrons[SquadronName] or {}
local DefenderSquadron = self.DefenderSquadrons[SquadronName] local DefenderSquadron = self.DefenderSquadrons[SquadronName]
return self return self
end end
@ -1812,15 +1812,15 @@ do -- AI_AIR_DISPATCHER
function AI_AIR_DISPATCHER:GetSquadron( SquadronName ) function AI_AIR_DISPATCHER:GetSquadron( SquadronName )
local DefenderSquadron = self.DefenderSquadrons[SquadronName] local DefenderSquadron = self.DefenderSquadrons[SquadronName]
if not DefenderSquadron then if not DefenderSquadron then
error( "Unknown Squadron for Dispatcher:" .. SquadronName ) error( "Unknown Squadron for Dispatcher:" .. SquadronName )
end end
return DefenderSquadron return DefenderSquadron
end end
--- Set the Squadron visible before startup of the dispatcher. --- Set the Squadron visible before startup of the dispatcher.
-- All planes will be spawned as uncontrolled on the parking spot. -- All planes will be spawned as uncontrolled on the parking spot.
-- They will lock the parking spot. -- They will lock the parking spot.

View File

@ -1,6 +1,6 @@
--- **AI** -- Models the process of air to ground engagement for airplanes and helicopters. --- **AI** - Models the process of air to ground engagement for airplanes and helicopters.
-- --
-- This is a class used in the @{AI_A2G_Dispatcher}. -- This is a class used in the @{AI.AI_A2G_Dispatcher}.
-- --
-- === -- ===
-- --
@ -67,7 +67,7 @@
-- --
-- An optional @{Zone} can be set, -- An optional @{Zone} can be set,
-- that will define when the AI will engage with the detected airborne enemy targets. -- that will define when the AI will engage with the detected airborne enemy targets.
-- Use the method @{AI.AI_Cap#AI_AIR_ENGAGE.SetEngageZone}() to define that Zone. -- Use the method @{AI.AI_CAP#AI_AIR_ENGAGE.SetEngageZone}() to define that Zone.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **AI** -- Models the process of A2G patrolling and engaging ground targets for airplanes and helicopters. --- **AI** - Models the process of A2G patrolling and engaging ground targets for airplanes and helicopters.
-- --
-- === -- ===
-- --
@ -88,7 +88,7 @@
-- --
-- An optional @{Zone} can be set, -- An optional @{Zone} can be set,
-- that will define when the AI will engage with the detected airborne enemy targets. -- that will define when the AI will engage with the detected airborne enemy targets.
-- Use the method @{AI.AI_Cap#AI_AIR_PATROL.SetEngageZone}() to define that Zone. -- Use the method @{AI.AI_CAP#AI_AIR_PATROL.SetEngageZone}() to define that Zone.
-- --
-- === -- ===
-- --

View File

@ -1,6 +1,6 @@
--- **AI** - Models squadrons for airplanes and helicopters. --- **AI** - Models squadrons for airplanes and helicopters.
-- --
-- This is a class used in the @{AI_Air_Dispatcher} and derived dispatcher classes. -- This is a class used in the @{AI.AI_Air_Dispatcher} and derived dispatcher classes.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **AI** -- Peform Battlefield Area Interdiction (BAI) within an engagement zone. --- **AI** - Peform Battlefield Area Interdiction (BAI) within an engagement zone.
-- --
-- **Features:** -- **Features:**
-- --
@ -26,7 +26,7 @@
-- --
-- === -- ===
-- --
-- @module AI.AI_Bai -- @module AI.AI_BAI
-- @image AI_Battlefield_Air_Interdiction.JPG -- @image AI_Battlefield_Air_Interdiction.JPG

View File

@ -1,4 +1,4 @@
--- **AI** -- Balance player slots with AI to create an engaging simulation environment, independent of the amount of players. --- **AI** - Balance player slots with AI to create an engaging simulation environment, independent of the amount of players.
-- --
-- **Features:** -- **Features:**
-- --

View File

@ -1,4 +1,4 @@
--- **AI** -- Perform Combat Air Patrolling (CAP) for airplanes. --- **AI** - Perform Combat Air Patrolling (CAP) for airplanes.
-- --
-- **Features:** -- **Features:**
-- --
@ -29,7 +29,7 @@
-- --
-- === -- ===
-- --
-- @module AI.AI_Cap -- @module AI.AI_CAP
-- @image AI_Combat_Air_Patrol.JPG -- @image AI_Combat_Air_Patrol.JPG
@ -106,7 +106,7 @@
-- that will define when the AI will engage with the detected airborne enemy targets. -- that will define when the AI will engage with the detected airborne enemy targets.
-- The range can be beyond or smaller than the range of the Patrol Zone. -- The range can be beyond or smaller than the range of the Patrol Zone.
-- The range is applied at the position of the AI. -- The range is applied at the position of the AI.
-- Use the method @{AI.AI_CAP#AI_CAP_ZONE.SetEngageRange}() to define that range. -- Use the method @{#AI_CAP_ZONE.SetEngageRange}() to define that range.
-- --
-- ## 4. Set the Zone of Engagement -- ## 4. Set the Zone of Engagement
-- --
@ -114,7 +114,7 @@
-- --
-- An optional @{Zone} can be set, -- An optional @{Zone} can be set,
-- that will define when the AI will engage with the detected airborne enemy targets. -- that will define when the AI will engage with the detected airborne enemy targets.
-- Use the method @{AI.AI_Cap#AI_CAP_ZONE.SetEngageZone}() to define that Zone. -- Use the method @{#AI_CAP_ZONE.SetEngageZone}() to define that Zone.
-- --
-- === -- ===
-- --
@ -311,7 +311,7 @@ end
function AI_CAP_ZONE:SetEngageZone( EngageZone ) function AI_CAP_ZONE:SetEngageZone( EngageZone )
self:F2() self:F2()
if EngageZone then if EngageZone then
self.EngageZone = EngageZone self.EngageZone = EngageZone
else else
self.EngageZone = nil self.EngageZone = nil

View File

@ -1,4 +1,4 @@
--- **AI** -- Perform Close Air Support (CAS) near friendlies. --- **AI** - Perform Close Air Support (CAS) near friendlies.
-- --
-- **Features:** -- **Features:**
-- --
@ -28,7 +28,7 @@
-- --
-- === -- ===
-- --
-- @module AI.AI_Cas -- @module AI.AI_CAS
-- @image AI_Close_Air_Support.JPG -- @image AI_Close_Air_Support.JPG
--- AI_CAS_ZONE class --- AI_CAS_ZONE class

View File

@ -1,4 +1,4 @@
--- **AI** -- (R2.4) - Models the intelligent transportation of infantry and other cargo using Planes. --- **AI** - (R2.4) - Models the intelligent transportation of infantry and other cargo using Planes.
-- --
-- ## Features: -- ## Features:
-- --

View File

@ -1,4 +1,4 @@
--- **AI** -- (2.4) - Models the intelligent transportation of infantry and other cargo using Helicopters. --- **AI** - (2.4) - Models the intelligent transportation of infantry and other cargo using Helicopters.
-- --
-- ## Features: -- ## Features:
-- --

View File

@ -1,4 +1,4 @@
--- **AI** -- (2.5.1) - Models the intelligent transportation of infantry and other cargo using Ships --- **AI** - (2.5.1) - Models the intelligent transportation of infantry and other cargo using Ships
-- --
-- ## Features: -- ## Features:
-- --
@ -37,14 +37,14 @@
-- --
-- This will be particularly helpful in order to determine how to **Tailor the different cargo handling events**. -- This will be particularly helpful in order to determine how to **Tailor the different cargo handling events**.
-- --
-- The AI_CARGO_DISPATCHER_SHIP class uses the @{Cargo.Cargo} capabilities within the MOOSE framwork. -- The AI_CARGO_DISPATCHER_SHIP class uses the @{Cargo.Cargo} capabilities within the MOOSE framework.
-- Also ensure that you fully understand how to declare and setup Cargo objects within the MOOSE framework before using this class. -- Also ensure that you fully understand how to declare and setup Cargo objects within the MOOSE framework before using this class.
-- CARGO derived objects must generally be declared within the mission to make the AI_CARGO_DISPATCHER_SHIP object recognize the cargo. -- CARGO derived objects must generally be declared within the mission to make the AI_CARGO_DISPATCHER_SHIP object recognize the cargo.
-- --
-- --
-- # 1) AI_CARGO_DISPATCHER_SHIP constructor. -- # 1) AI_CARGO_DISPATCHER_SHIP constructor.
-- --
-- * @{AI_CARGO_DISPATCHER_SHIP.New}(): Creates a new AI_CARGO_DISPATCHER_SHIP object. -- * @{#AI_CARGO_DISPATCHER_SHIP.New}(): Creates a new AI_CARGO_DISPATCHER_SHIP object.
-- --
-- --- -- ---
-- --

View File

@ -1,4 +1,4 @@
--- **AI** -- (R2.5.1) - Models the intelligent transportation of infantry and other cargo. --- **AI** - (R2.5.1) - Models the intelligent transportation of infantry and other cargo.
-- --
-- === -- ===
-- --
@ -46,12 +46,12 @@
-- --
-- ## Cargo deployment. -- ## Cargo deployment.
-- --
-- Using the @{AI_CARGO_SHIP.Deploy}() method, you are able to direct the Ship towards a Deploy zone to unboard/unload the cargo at the -- Using the @{#AI_CARGO_SHIP.Deploy}() method, you are able to direct the Ship towards a Deploy zone to unboard/unload the cargo at the
-- specified coordinate. The Ship will follow the Shipping Lane to ensure consistent cargo transportation within the simulation environment. -- specified coordinate. The Ship will follow the Shipping Lane to ensure consistent cargo transportation within the simulation environment.
-- --
-- ## Cargo pickup. -- ## Cargo pickup.
-- --
-- Using the @{AI_CARGO_SHIP.Pickup}() method, you are able to direct the Ship towards a Pickup zone to board/load the cargo at the specified -- Using the @{#AI_CARGO_SHIP.Pickup}() method, you are able to direct the Ship towards a Pickup zone to board/load the cargo at the specified
-- coordinate. The Ship will follow the Shipping Lane to ensure consistent cargo transportation within the simulation environment. -- coordinate. The Ship will follow the Shipping Lane to ensure consistent cargo transportation within the simulation environment.
-- --
-- --

View File

@ -1,4 +1,4 @@
--- **Functional** -- Taking the lead of AI escorting your flight or of other AI. --- **Functional** - Taking the lead of AI escorting your flight or of other AI.
-- --
-- === -- ===
-- --

View File

@ -11,7 +11,7 @@
-- --
-- === -- ===
-- --
-- @module AI.AI_ESCORT_DISPATCHER_REQUEST -- @module AI.AI_Escort_Dispatcher_Request
-- @image MOOSE.JPG -- @image MOOSE.JPG

View File

@ -1,4 +1,4 @@
--- **Functional** -- Taking the lead of AI escorting your flight or of other AI, upon request using the menu. --- **Functional** - Taking the lead of AI escorting your flight or of other AI, upon request using the menu.
-- --
-- === -- ===
-- --
@ -143,7 +143,7 @@
-- --
-- === -- ===
-- --
-- @module AI.AI_Escort -- @module AI.AI_Escort_Request
-- @image Escorting.JPG -- @image Escorting.JPG

View File

@ -1,4 +1,4 @@
--- **AI** -- Build large airborne formations of aircraft. --- **AI** - Build large airborne formations of aircraft.
-- --
-- **Features:** -- **Features:**
-- --

View File

@ -1,4 +1,4 @@
--- **AI** -- Perform Air Patrolling for airplanes. --- **AI** - Perform Air Patrolling for airplanes.
-- --
-- **Features:** -- **Features:**
-- --

View File

@ -66,7 +66,7 @@
-- you can board the cargo into the carrier `CargoCarrier`. -- you can board the cargo into the carrier `CargoCarrier`.
-- Simple, isn't it? Told you, and this is only the beginning. -- Simple, isn't it? Told you, and this is only the beginning.
-- --
-- The boarding, unboarding, loading, unloading of cargo is however something that is not meant to be coded manualy by mission designers. -- The boarding, unboarding, loading, unloading of cargo is however something that is not meant to be coded manually by mission designers.
-- It would be too low-level and not end-user friendly to deal with cargo handling complexity. -- It would be too low-level and not end-user friendly to deal with cargo handling complexity.
-- Things can become really complex if you want to make cargo being handled and behave in multiple scenarios. -- Things can become really complex if you want to make cargo being handled and behave in multiple scenarios.
-- --
@ -77,8 +77,8 @@
-- --
-- ## 3.1) AI Cargo handlers. -- ## 3.1) AI Cargo handlers.
-- --
-- - @{AI.AI_Cargo_APC} will create for you the capatility to make an APC group handle cargo. -- - @{AI.AI_Cargo_APC} will create for you the capability to make an APC group handle cargo.
-- - @{AI.AI_Cargo_Helicopter} will create for you the capatility to make a Helicopter group handle cargo. -- - @{AI.AI_Cargo_Helicopter} will create for you the capability to make a Helicopter group handle cargo.
-- --
-- --
-- ## 3.2) AI Cargo transportation dispatchers. -- ## 3.2) AI Cargo transportation dispatchers.
@ -86,7 +86,7 @@
-- There are also dispatchers that make AI work together to transport cargo automatically!!! -- There are also dispatchers that make AI work together to transport cargo automatically!!!
-- --
-- - @{AI.AI_Cargo_Dispatcher_APC} derived classes will create for your dynamic cargo handlers controlled by AI ground vehicle groups (APCs) to transport cargo between sites. -- - @{AI.AI_Cargo_Dispatcher_APC} derived classes will create for your dynamic cargo handlers controlled by AI ground vehicle groups (APCs) to transport cargo between sites.
-- - @{AI.AI_Cargo_Dispatcher_Helicopters} derived classes will create for your dynamic cargo handlers controlled by AI helicpter groups to transport cargo between sites. -- - @{AI.AI_Cargo_Dispatcher_Helicopters} derived classes will create for your dynamic cargo handlers controlled by AI helicopter groups to transport cargo between sites.
-- --
-- ## 3.3) Cargo transportation tasking. -- ## 3.3) Cargo transportation tasking.
-- --
@ -94,7 +94,7 @@
-- --
-- - @{Tasking.Task_CARGO} derived classes will create for you cargo transportation tasks, that allow human players to interact with MOOSE cargo objects to complete tasks. -- - @{Tasking.Task_CARGO} derived classes will create for you cargo transportation tasks, that allow human players to interact with MOOSE cargo objects to complete tasks.
-- --
-- Please refer to the documentation reflected within these modules to understand the detailed capabilties. -- Please refer to the documentation reflected within these modules to understand the detailed capabilities.
-- --
-- # 4) Cargo SETs. -- # 4) Cargo SETs.
-- --
@ -228,7 +228,7 @@
-- `StaticName #CARGO(T=CargoTypeName,C=Category,RR=Range,NR=Range)` -- `StaticName #CARGO(T=CargoTypeName,C=Category,RR=Range,NR=Range)`
-- --
-- * **T=** Provide a text that contains the type name of the cargo object. This type name can be used to filter cargo within a SET_CARGO object. -- * **T=** Provide a text that contains the type name of the cargo object. This type name can be used to filter cargo within a SET_CARGO object.
-- * **C=** Provide either `CRATE` or `SLING` to have this static created as a CARGO_CRATE or CARGO_SLINGLOAD respectivly. -- * **C=** Provide either `CRATE` or `SLING` to have this static created as a CARGO_CRATE or CARGO_SLINGLOAD respectively.
-- * **RR=** Provide the minimal range in meters when the report to the carrier, and board to the carrier. -- * **RR=** Provide the minimal range in meters when the report to the carrier, and board to the carrier.
-- Note that this option is optional, so can be omitted. The default value of the RR is 250 meters. -- Note that this option is optional, so can be omitted. The default value of the RR is 250 meters.
-- * **NR=** Provide the maximum range in meters when the cargo units will be boarded within the carrier during boarding. -- * **NR=** Provide the maximum range in meters when the cargo units will be boarded within the carrier during boarding.

View File

@ -1,4 +1,4 @@
--- **Cargo** -- Management of single cargo crates, which are based on a @{Static} object. --- **Cargo** - Management of single cargo crates, which are based on a @{Static} object.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Cargo** -- Management of single cargo crates, which are based on a @{Static} object. The cargo can only be slingloaded. --- **Cargo** - Management of single cargo crates, which are based on a @{Static} object. The cargo can only be slingloaded.
-- --
-- === -- ===
-- --

View File

@ -932,7 +932,7 @@ do -- Event Creation
--- Creation of a ZoneGoal Deletion Event. --- Creation of a ZoneGoal Deletion Event.
-- @param #EVENT self -- @param #EVENT self
-- @param Core.ZoneGoal#ZONE_GOAL ZoneGoal The ZoneGoal created. -- @param Functional.ZoneGoal#ZONE_GOAL ZoneGoal The ZoneGoal created.
function EVENT:CreateEventDeleteZoneGoal( ZoneGoal ) function EVENT:CreateEventDeleteZoneGoal( ZoneGoal )
self:F( { ZoneGoal } ) self:F( { ZoneGoal } )

View File

@ -171,7 +171,7 @@ end
--- Sends a MESSAGE to a Client Group. Note that the Group needs to be defined within the ME with the skillset "Client" or "Player". --- Sends a MESSAGE to a Client Group. Note that the Group needs to be defined within the ME with the skillset "Client" or "Player".
-- @param #MESSAGE self -- @param #MESSAGE self
-- @param Wrapper.Client#CLIENT Client is the Group of the Client. -- @param Wrapper.Client#CLIENT Client is the Group of the Client.
-- @param Core.Settings#SETTINGS Settings Settings used to display the message. -- @param Core.Settings#SETTINGS Settings used to display the message.
-- @return #MESSAGE -- @return #MESSAGE
-- @usage -- @usage
-- --
@ -182,11 +182,11 @@ end
-- MessageClient1 = MESSAGE:New( "Congratulations, you've just hit a target", "Score", 25, "Score" ):ToClient( ClientGroup ) -- MessageClient1 = MESSAGE:New( "Congratulations, you've just hit a target", "Score", 25, "Score" ):ToClient( ClientGroup )
-- MessageClient2 = MESSAGE:New( "Congratulations, you've just killed a target", "Score", 25, "Score" ):ToClient( ClientGroup ) -- MessageClient2 = MESSAGE:New( "Congratulations, you've just killed a target", "Score", 25, "Score" ):ToClient( ClientGroup )
-- or -- or
-- MESSAGE:New( "Congratulations, you've just hit a target", "Score", 25, "Score" ):ToClient( ClientGroup ) -- MESSAGE:New( "Congratulations, you've just hit a target", "Score", 25 ):ToClient( ClientGroup )
-- MESSAGE:New( "Congratulations, you've just killed a target", "Score", 25, "Score" ):ToClient( ClientGroup ) -- MESSAGE:New( "Congratulations, you've just killed a target", "Score", 25 ):ToClient( ClientGroup )
-- or -- or
-- MessageClient1 = MESSAGE:New( "Congratulations, you've just hit a target", "Score", 25, "Score" ) -- MessageClient1 = MESSAGE:New( "Congratulations, you've just hit a target", "Score", 25 )
-- MessageClient2 = MESSAGE:New( "Congratulations, you've just killed a target", "Score", 25, "Score" ) -- MessageClient2 = MESSAGE:New( "Congratulations, you've just killed a target", "Score", 25 )
-- MessageClient1:ToClient( ClientGroup ) -- MessageClient1:ToClient( ClientGroup )
-- MessageClient2:ToClient( ClientGroup ) -- MessageClient2:ToClient( ClientGroup )
-- --
@ -262,41 +262,17 @@ function MESSAGE:ToUnit( Unit, Settings )
return self return self
end end
--- Sends a MESSAGE to a Unit.
-- @param #MESSAGE self
-- @param Wrapper.Unit#UNIT Unit to which the message is displayed.
-- @return #MESSAGE Message object.
function MESSAGE:ToUnit( Unit, Settings )
self:F( Unit.IdentifiableName )
if Unit then
if self.MessageType then
local Settings = Settings or ( Unit and _DATABASE:GetPlayerSettings( Unit:GetPlayerName() ) ) or _SETTINGS -- Core.Settings#SETTINGS
self.MessageDuration = Settings:GetMessageTime( self.MessageType )
self.MessageCategory = "" -- self.MessageType .. ": "
end
if self.MessageDuration ~= 0 then
self:T( self.MessageCategory .. self.MessageText:gsub("\n$",""):gsub("\n$","") .. " / " .. self.MessageDuration )
trigger.action.outTextForUnit( Unit:GetID(), self.MessageCategory .. self.MessageText:gsub("\n$",""):gsub("\n$",""), self.MessageDuration, self.ClearScreen )
end
end
return self
end
--- Sends a MESSAGE to the Blue coalition. --- Sends a MESSAGE to the Blue coalition.
-- @param #MESSAGE self -- @param #MESSAGE self
-- @return #MESSAGE -- @return #MESSAGE
-- @usage -- @usage
-- --
-- -- Send a message created with the @{New} method to the BLUE coalition. -- -- Send a message created with the @{New} method to the BLUE coalition.
-- MessageBLUE = MESSAGE:New( "To the BLUE Players: You receive a penalty because you've killed one of your own units", "Penalty", 25, "Score" ):ToBlue() -- MessageBLUE = MESSAGE:New( "To the BLUE Players: You receive a penalty because you've killed one of your own units", "Penalty", 25):ToBlue()
-- or -- or
-- MESSAGE:New( "To the BLUE Players: You receive a penalty because you've killed one of your own units", "Penalty", 25, "Score" ):ToBlue() -- MESSAGE:New( "To the BLUE Players: You receive a penalty because you've killed one of your own units", "Penalty", 25 ):ToBlue()
-- or -- or
-- MessageBLUE = MESSAGE:New( "To the BLUE Players: You receive a penalty because you've killed one of your own units", "Penalty", 25, "Score" ) -- MessageBLUE = MESSAGE:New( "To the BLUE Players: You receive a penalty because you've killed one of your own units", "Penalty", 25 )
-- MessageBLUE:ToBlue() -- MessageBLUE:ToBlue()
-- --
function MESSAGE:ToBlue() function MESSAGE:ToBlue()
@ -313,11 +289,11 @@ end
-- @usage -- @usage
-- --
-- -- Send a message created with the @{New} method to the RED coalition. -- -- Send a message created with the @{New} method to the RED coalition.
-- MessageRED = MESSAGE:New( "To the RED Players: You receive a penalty because you've killed one of your own units", "Penalty", 25, "Score" ):ToRed() -- MessageRED = MESSAGE:New( "To the RED Players: You receive a penalty because you've killed one of your own units", "Penalty", 25 ):ToRed()
-- or -- or
-- MESSAGE:New( "To the RED Players: You receive a penalty because you've killed one of your own units", "Penalty", 25, "Score" ):ToRed() -- MESSAGE:New( "To the RED Players: You receive a penalty because you've killed one of your own units", "Penalty", 25 ):ToRed()
-- or -- or
-- MessageRED = MESSAGE:New( "To the RED Players: You receive a penalty because you've killed one of your own units", "Penalty", 25, "Score" ) -- MessageRED = MESSAGE:New( "To the RED Players: You receive a penalty because you've killed one of your own units", "Penalty", 25 )
-- MessageRED:ToRed() -- MessageRED:ToRed()
-- --
function MESSAGE:ToRed() function MESSAGE:ToRed()
@ -336,11 +312,11 @@ end
-- @usage -- @usage
-- --
-- -- Send a message created with the @{New} method to the RED coalition. -- -- Send a message created with the @{New} method to the RED coalition.
-- MessageRED = MESSAGE:New( "To the RED Players: You receive a penalty because you've killed one of your own units", "Penalty", 25, "Score" ):ToCoalition( coalition.side.RED ) -- MessageRED = MESSAGE:New( "To the RED Players: You receive a penalty because you've killed one of your own units", "Penalty", 25 ):ToCoalition( coalition.side.RED )
-- or -- or
-- MESSAGE:New( "To the RED Players: You receive a penalty because you've killed one of your own units", "Penalty", 25, "Score" ):ToCoalition( coalition.side.RED ) -- MESSAGE:New( "To the RED Players: You receive a penalty because you've killed one of your own units", "Penalty", 25 ):ToCoalition( coalition.side.RED )
-- or -- or
-- MessageRED = MESSAGE:New( "To the RED Players: You receive a penalty because you've killed one of your own units", "Penalty", 25, "Score" ) -- MessageRED = MESSAGE:New( "To the RED Players: You receive a penalty because you've killed one of your own units", "Penalty", 25 )
-- MessageRED:ToCoalition( coalition.side.RED ) -- MessageRED:ToCoalition( coalition.side.RED )
-- --
function MESSAGE:ToCoalition( CoalitionSide, Settings ) function MESSAGE:ToCoalition( CoalitionSide, Settings )
@ -384,11 +360,11 @@ end
-- @usage -- @usage
-- --
-- -- Send a message created to all players. -- -- Send a message created to all players.
-- MessageAll = MESSAGE:New( "To all Players: BLUE has won! Each player of BLUE wins 50 points!", "End of Mission", 25, "Win" ):ToAll() -- MessageAll = MESSAGE:New( "To all Players: BLUE has won! Each player of BLUE wins 50 points!", "End of Mission", 25 ):ToAll()
-- or -- or
-- MESSAGE:New( "To all Players: BLUE has won! Each player of BLUE wins 50 points!", "End of Mission", 25, "Win" ):ToAll() -- MESSAGE:New( "To all Players: BLUE has won! Each player of BLUE wins 50 points!", "End of Mission", 25 ):ToAll()
-- or -- or
-- MessageAll = MESSAGE:New( "To all Players: BLUE has won! Each player of BLUE wins 50 points!", "End of Mission", 25, "Win" ) -- MessageAll = MESSAGE:New( "To all Players: BLUE has won! Each player of BLUE wins 50 points!", "End of Mission", 25 )
-- MessageAll:ToAll() -- MessageAll:ToAll()
-- --
function MESSAGE:ToAll( Settings ) function MESSAGE:ToAll( Settings )

View File

@ -1,4 +1,4 @@
--- **Core** -- SCHEDULEDISPATCHER dispatches the different schedules. --- **Core** - SCHEDULEDISPATCHER dispatches the different schedules.
-- --
-- === -- ===
-- --

View File

@ -35,13 +35,13 @@ do -- UserFlag
ClassName = "USERFLAG", ClassName = "USERFLAG",
UserFlagName = nil, UserFlagName = nil,
} }
--- USERFLAG Constructor. --- USERFLAG Constructor.
-- @param #USERFLAG self -- @param #USERFLAG self
-- @param #string UserFlagName The name of the userflag, which is a free text string. -- @param #string UserFlagName The name of the userflag, which is a free text string.
-- @return #USERFLAG -- @return #USERFLAG
function USERFLAG:New( UserFlagName ) --R2.3 function USERFLAG:New( UserFlagName ) --R2.3
local self = BASE:Inherit( self, BASE:New() ) -- #USERFLAG local self = BASE:Inherit( self, BASE:New() ) -- #USERFLAG
self.UserFlagName = UserFlagName self.UserFlagName = UserFlagName
@ -52,7 +52,7 @@ do -- UserFlag
--- Get the userflag name. --- Get the userflag name.
-- @param #USERFLAG self -- @param #USERFLAG self
-- @return #string Name of the user flag. -- @return #string Name of the user flag.
function USERFLAG:GetName() function USERFLAG:GetName()
return self.UserFlagName return self.UserFlagName
end end
@ -66,18 +66,17 @@ do -- UserFlag
-- BlueVictory:Set( 100 ) -- Set the UserFlag VictoryBlue to 100. -- BlueVictory:Set( 100 ) -- Set the UserFlag VictoryBlue to 100.
-- --
function USERFLAG:Set( Number, Delay ) --R2.3 function USERFLAG:Set( Number, Delay ) --R2.3
if Delay and Delay>0 then if Delay and Delay>0 then
self:ScheduleOnce(Delay, USERFLAG.Set, self, Number) self:ScheduleOnce(Delay, USERFLAG.Set, self, Number)
else else
--env.info(string.format("Setting flag \"%s\" to %d at T=%.1f", self.UserFlagName, Number, timer.getTime())) --env.info(string.format("Setting flag \"%s\" to %d at T=%.1f", self.UserFlagName, Number, timer.getTime()))
trigger.action.setUserFlag( self.UserFlagName, Number ) trigger.action.setUserFlag( self.UserFlagName, Number )
end end
return self
end
return self
end
--- Get the userflag Number. --- Get the userflag Number.
-- @param #USERFLAG self -- @param #USERFLAG self
-- @return #number Number The number value to be checked if it is the same as the userflag. -- @return #number Number The number value to be checked if it is the same as the userflag.
@ -86,12 +85,10 @@ do -- UserFlag
-- local BlueVictoryValue = BlueVictory:Get() -- Get the UserFlag VictoryBlue value. -- local BlueVictoryValue = BlueVictory:Get() -- Get the UserFlag VictoryBlue value.
-- --
function USERFLAG:Get() --R2.3 function USERFLAG:Get() --R2.3
return trigger.misc.getUserFlag( self.UserFlagName )
end
return trigger.misc.getUserFlag( self.UserFlagName )
end
--- Check if the userflag has a value of Number. --- Check if the userflag has a value of Number.
-- @param #USERFLAG self -- @param #USERFLAG self
-- @param #number Number The number value to be checked if it is the same as the userflag. -- @param #number Number The number value to be checked if it is the same as the userflag.
@ -102,9 +99,9 @@ do -- UserFlag
-- return "Blue has won" -- return "Blue has won"
-- end -- end
function USERFLAG:Is( Number ) --R2.3 function USERFLAG:Is( Number ) --R2.3
return trigger.misc.getUserFlag( self.UserFlagName ) == Number return trigger.misc.getUserFlag( self.UserFlagName ) == Number
end end
end end

View File

@ -1,6 +1,7 @@
--- **Core** - The ZONE_DETECTION class, defined by a zone name, a detection object and a radius.
-- @module Core.Zone_Detection
--- The ZONE_DETECTION class, defined by a zone name, a detection object and a radius. --- @type ZONE_DETECTION
-- @type ZONE_DETECTION
-- @field DCS#Vec2 Vec2 The current location of the zone. -- @field DCS#Vec2 Vec2 The current location of the zone.
-- @field DCS#Distance Radius The radius of the zone. -- @field DCS#Distance Radius The radius of the zone.
-- @extends #ZONE_BASE -- @extends #ZONE_BASE
@ -29,7 +30,7 @@ function ZONE_DETECTION:New( ZoneName, Detection, Radius )
self.Detection = Detection self.Detection = Detection
self.Radius = Radius self.Radius = Radius
return self return self
end end
@ -48,15 +49,14 @@ function ZONE_DETECTION:BoundZone( Points, CountryID, UnBound )
local Angle local Angle
local RadialBase = math.pi*2 local RadialBase = math.pi*2
--
for Angle = 0, 360, (360 / Points ) do for Angle = 0, 360, (360 / Points ) do
local Radial = Angle * RadialBase / 360 local Radial = Angle * RadialBase / 360
Point.x = Vec2.x + math.cos( Radial ) * self:GetRadius() Point.x = Vec2.x + math.cos( Radial ) * self:GetRadius()
Point.y = Vec2.y + math.sin( Radial ) * self:GetRadius() Point.y = Vec2.y + math.sin( Radial ) * self:GetRadius()
local CountryName = _DATABASE.COUNTRY_NAME[CountryID] local CountryName = _DATABASE.COUNTRY_NAME[CountryID]
local Tire = { local Tire = {
["country"] = CountryName, ["country"] = CountryName,
["category"] = "Fortifications", ["category"] = "Fortifications",

View File

@ -1,4 +1,4 @@
--- **Functional** -- Monitor airbase traffic and regulate speed while taxiing. --- **Functional** - Monitor airbase traffic and regulate speed while taxiing.
-- --
-- === -- ===
-- --

View File

@ -30,7 +30,7 @@
-- ### Contributions: [FlightControl](https://forums.eagle.ru/member.php?u=89536) -- ### Contributions: [FlightControl](https://forums.eagle.ru/member.php?u=89536)
-- --
-- ==== -- ====
-- @module Functional.Arty -- @module Functional.Artillery
-- @image Artillery.JPG -- @image Artillery.JPG
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@ -108,7 +108,7 @@
--- Enables mission designers easily to assign targets for artillery units. Since the implementation is based on a Finite State Model (FSM), the mission designer can --- Enables mission designers easily to assign targets for artillery units. Since the implementation is based on a Finite State Model (FSM), the mission designer can
-- interact with the process at certain events or states. -- interact with the process at certain events or states.
-- --
-- A new ARTY object can be created with the @{#ARTY.New}(*group*) contructor. -- A new ARTY object can be created with the @{#ARTY.New}(*group*) constructor.
-- The parameter *group* has to be a MOOSE Group object and defines ARTY group. -- The parameter *group* has to be a MOOSE Group object and defines ARTY group.
-- --
-- The ARTY FSM process can be started by the @{#ARTY.Start}() command. -- The ARTY FSM process can be started by the @{#ARTY.Start}() command.
@ -146,7 +146,7 @@
-- When a new target is assigned via the @{#ARTY.AssignTargetCoord}() function (see below), the **NewTarget** event is triggered. -- When a new target is assigned via the @{#ARTY.AssignTargetCoord}() function (see below), the **NewTarget** event is triggered.
-- --
-- ## Assigning Targets -- ## Assigning Targets
-- Assigning targets is a central point of the ARTY class. Multiple targets can be assigned simultanioulsly and are put into a queue. -- Assigning targets is a central point of the ARTY class. Multiple targets can be assigned simultaneously and are put into a queue.
-- Of course, targets can be added at any time during the mission. For example, once they are detected by a reconnaissance unit. -- Of course, targets can be added at any time during the mission. For example, once they are detected by a reconnaissance unit.
-- --
-- In order to add a target, the function @{#ARTY.AssignTargetCoord}(*coord*, *prio*, *radius*, *nshells*, *maxengage*, *time*, *weapontype*, *name*) has to be used. -- In order to add a target, the function @{#ARTY.AssignTargetCoord}(*coord*, *prio*, *radius*, *nshells*, *maxengage*, *time*, *weapontype*, *name*) has to be used.
@ -161,7 +161,7 @@
-- * *maxengage*: Number of times a target is engaged. -- * *maxengage*: Number of times a target is engaged.
-- * *time*: Time of day the engagement is schedule in the format "hh:mm:ss" for hh=hours, mm=minutes, ss=seconds. -- * *time*: Time of day the engagement is schedule in the format "hh:mm:ss" for hh=hours, mm=minutes, ss=seconds.
-- For example "10:15:35". In the case the attack will be executed at a quarter past ten in the morning at the day the mission started. -- For example "10:15:35". In the case the attack will be executed at a quarter past ten in the morning at the day the mission started.
-- If the engagement should start on the following day the format can be specified as "10:15:35+1", where the +1 denots the following day. -- If the engagement should start on the following day the format can be specified as "10:15:35+1", where the +1 denotes the following day.
-- This is useful for longer running missions or if the mission starts at 23:00 hours and the attack should be scheduled at 01:00 hours on the following day. -- This is useful for longer running missions or if the mission starts at 23:00 hours and the attack should be scheduled at 01:00 hours on the following day.
-- Of course, later days are also possible by appending "+2", "+3", etc. -- Of course, later days are also possible by appending "+2", "+3", etc.
-- **Note** that the time has to be given as a string. So the enclosing quotation marks "" are important. -- **Note** that the time has to be given as a string. So the enclosing quotation marks "" are important.
@ -179,7 +179,7 @@
-- Let's first consider the case that none of the targets is scheduled to be executed at a certain time (*time*=nil). -- Let's first consider the case that none of the targets is scheduled to be executed at a certain time (*time*=nil).
-- The ARTY group will first engage the target with higher priority (*prio*=10). After the engagement is finished, the target with lower priority is attacked. -- The ARTY group will first engage the target with higher priority (*prio*=10). After the engagement is finished, the target with lower priority is attacked.
-- This is because the target with lower prio has been attacked one time less. After the attack on the lower priority task is finished and both targets -- This is because the target with lower prio has been attacked one time less. After the attack on the lower priority task is finished and both targets
-- have been engaged equally often, the target with the higher priority is engaged again. This coninues until a target has engaged three times. -- have been engaged equally often, the target with the higher priority is engaged again. This continues until a target has engaged three times.
-- Once the maximum number of engagements is reached, the target is deleted from the queue. -- Once the maximum number of engagements is reached, the target is deleted from the queue.
-- --
-- In other words, the queue is first sorted with respect to the number of engagements and targets with the same number of engagements are sorted with -- In other words, the queue is first sorted with respect to the number of engagements and targets with the same number of engagements are sorted with
@ -190,7 +190,7 @@
-- As mentioned above, targets can be engaged at a specific time of the day via the *time* parameter. -- As mentioned above, targets can be engaged at a specific time of the day via the *time* parameter.
-- --
-- If the *time* parameter is specified for a target, the first engagement of that target will happen at that time of the day and not before. -- If the *time* parameter is specified for a target, the first engagement of that target will happen at that time of the day and not before.
-- This also applies when multiple engagements are requested via the *maxengage* parameter. The first attack will not happen before the specifed time. -- This also applies when multiple engagements are requested via the *maxengage* parameter. The first attack will not happen before the specified time.
-- When that timed attack is finished, the *time* parameter is deleted and the remaining engagements are carried out in the same manner as for untimed targets (described above). -- When that timed attack is finished, the *time* parameter is deleted and the remaining engagements are carried out in the same manner as for untimed targets (described above).
-- --
-- Of course, it can happen that a scheduled task should be executed at a time, when another target is already under attack. -- Of course, it can happen that a scheduled task should be executed at a time, when another target is already under attack.
@ -201,7 +201,7 @@
-- --
-- ## Determining the Amount of Ammo -- ## Determining the Amount of Ammo
-- --
-- In order to determin when a unit is out of ammo and possible initiate the rearming process it is necessary to know which types of weapons have to be counted. -- In order to determine when a unit is out of ammo and possible initiate the rearming process it is necessary to know which types of weapons have to be counted.
-- For most artillery unit types, this is simple because they only have one type of weapon and hence ammunition. -- For most artillery unit types, this is simple because they only have one type of weapon and hence ammunition.
-- --
-- However, there are more complex scenarios. For example, naval units carry a big arsenal of different ammunition types ranging from various cannon shell types -- However, there are more complex scenarios. For example, naval units carry a big arsenal of different ammunition types ranging from various cannon shell types
@ -217,7 +217,7 @@
-- **Note** that the default parameters "weapons.shells", "weapons.nurs", "weapons.missiles" **should in priciple** capture all the corresponding ammo types. -- **Note** that the default parameters "weapons.shells", "weapons.nurs", "weapons.missiles" **should in priciple** capture all the corresponding ammo types.
-- However, the logic searches for the string "weapon.missies" in the ammo type. Especially for missiles, this string is often not contained in the ammo type descriptor. -- However, the logic searches for the string "weapon.missies" in the ammo type. Especially for missiles, this string is often not contained in the ammo type descriptor.
-- --
-- One way to determin which types of ammo the unit carries, one can use the debug mode of the arty class via @{#ARTY.SetDebugON}(). -- One way to determine which types of ammo the unit carries, one can use the debug mode of the arty class via @{#ARTY.SetDebugON}().
-- In debug mode, the all ammo types of the group are printed to the monitor as message and can be found in the DCS.log file. -- In debug mode, the all ammo types of the group are printed to the monitor as message and can be found in the DCS.log file.
-- --
-- ## Employing Selected Weapons -- ## Employing Selected Weapons
@ -274,7 +274,7 @@
-- --
-- ## Simulated Weapons -- ## Simulated Weapons
-- --
-- In addtion to the standard weapons a group has available some special weapon types that are not possible to use in the native DCS environment are simulated. -- In addition to the standard weapons a group has available some special weapon types that are not possible to use in the native DCS environment are simulated.
-- --
-- ### Tactical Nukes -- ### Tactical Nukes
-- --
@ -283,9 +283,9 @@
-- --
-- By default, they group does not have any nukes available. To give the group the ability the function @{#ARTY.SetTacNukeShells}(*n*) can be used. -- By default, they group does not have any nukes available. To give the group the ability the function @{#ARTY.SetTacNukeShells}(*n*) can be used.
-- This supplies the group with *n* nuclear shells, where *n* is restricted to the number of conventional shells the group can carry. -- This supplies the group with *n* nuclear shells, where *n* is restricted to the number of conventional shells the group can carry.
-- Note that the group must always have convenctional shells left in order to fire a nuclear shell. -- Note that the group must always have conventional shells left in order to fire a nuclear shell.
-- --
-- The default explostion strength is 0.075 kilo tons TNT. The can be changed with the @{#ARTY.SetTacNukeWarhead}(*strength*), where *strength* is given in kilo tons TNT. -- The default explosion strength is 0.075 kilo tons TNT. The can be changed with the @{#ARTY.SetTacNukeWarhead}(*strength*), where *strength* is given in kilo tons TNT.
-- --
-- ### Illumination Shells -- ### Illumination Shells
-- --
@ -301,12 +301,12 @@
-- --
-- ### Smoke Shells -- ### Smoke Shells
-- --
-- In a similar way to illumination shells, ARTY groups can also employ smoke shells. The numer of smoke shells the group has available is set by the function -- In a similar way to illumination shells, ARTY groups can also employ smoke shells. The number of smoke shells the group has available is set by the function
-- @{#ARTY.SetSmokeShells}(*n*, *color*), where *n* is the number of shells and *color* defines the smoke color. Default is SMOKECOLOR.Red. -- @{#ARTY.SetSmokeShells}(*n*, *color*), where *n* is the number of shells and *color* defines the smoke color. Default is SMOKECOLOR.Red.
-- --
-- The weapon type to be used in the @{#ARTY.AssignTargetCoord}() function is *ARTY.WeaponType.SmokeShells*. -- The weapon type to be used in the @{#ARTY.AssignTargetCoord}() function is *ARTY.WeaponType.SmokeShells*.
-- --
-- The explosive shell the group fired is destroyed shortly before its impact on the ground and smoke of the speficied color is triggered at that position. -- The explosive shell the group fired is destroyed shortly before its impact on the ground and smoke of the specified color is triggered at that position.
-- --
-- --
-- ## Assignments via Markers on F10 Map -- ## Assignments via Markers on F10 Map
@ -320,15 +320,15 @@
-- ### Target Assignments -- ### Target Assignments
-- A new target can be assigned by writing **arty engage** in the marker text. -- A new target can be assigned by writing **arty engage** in the marker text.
-- This is followed by a **comma separated list** of (optional) keywords and parameters. -- This is followed by a **comma separated list** of (optional) keywords and parameters.
-- First, it is important to address the ARTY group or groups that should engage. This can be done in numrous ways. The keywords are *battery*, *alias*, *cluster*. -- First, it is important to address the ARTY group or groups that should engage. This can be done in numerous ways. The keywords are *battery*, *alias*, *cluster*.
-- It is also possible to address all ARTY groups by the keyword *everyone* or *allbatteries*. These two can be used synonymously. -- It is also possible to address all ARTY groups by the keyword *everyone* or *allbatteries*. These two can be used synonymously.
-- **Note that**, if no battery is assigned nothing will happen. -- **Note that**, if no battery is assigned nothing will happen.
-- --
-- * *everyone* or *allbatteries* The target is assigned to all batteries. -- * *everyone* or *allbatteries* The target is assigned to all batteries.
-- * *battery* Name of the ARTY group that the target is assigned to. Note that **the name is case sensitive** and has to be given in quotation marks. Default is all ARTY groups of the right coalition. -- * *battery* Name of the ARTY group that the target is assigned to. Note that **the name is case sensitive** and has to be given in quotation marks. Default is all ARTY groups of the right coalition.
-- * *alias* Alias of the ARTY group that the target is assigned to. The alias is **case sensitive** and needs to be in quotation marks. -- * *alias* Alias of the ARTY group that the target is assigned to. The alias is **case sensitive** and needs to be in quotation marks.
-- * *cluster* The cluster of ARTY groups that is addessed. Clusters can be defined by the function @{#ARTY.AddToCluster}(*clusters*). Names are **case sensitive** and need to be in quotation marks. -- * *cluster* The cluster of ARTY groups that is addressed. Clusters can be defined by the function @{#ARTY.AddToCluster}(*clusters*). Names are **case sensitive** and need to be in quotation marks.
-- * *key* A number to authorize the target assignment. Only specifing the correct number will trigger an engagement. -- * *key* A number to authorize the target assignment. Only specifying the correct number will trigger an engagement.
-- * *time* Time for which which the engagement is schedules, e.g. 08:42. Default is as soon as possible. -- * *time* Time for which which the engagement is schedules, e.g. 08:42. Default is as soon as possible.
-- * *prio* Priority of the engagement as number between 1 (high prio) and 100 (low prio). Default is 50, i.e. medium priority. -- * *prio* Priority of the engagement as number between 1 (high prio) and 100 (low prio). Default is 50, i.e. medium priority.
-- * *shots* Number of shots (shells, rockets or missiles) fired at each engagement. Default is 5. -- * *shots* Number of shots (shells, rockets or missiles) fired at each engagement. Default is 5.
@ -353,8 +353,8 @@
-- arty engage, battery "Paladin Alpha", weapon nukes, shots 1, time 20:15 -- arty engage, battery "Paladin Alpha", weapon nukes, shots 1, time 20:15
-- arty engage, battery "Horwitzer 1", lldms 41:51:00N 41:47:58E -- arty engage, battery "Horwitzer 1", lldms 41:51:00N 41:47:58E
-- --
-- Note that the keywords and parameters are *case insensitve*. Only exception are the battery, alias and cluster names. -- Note that the keywords and parameters are *case insensitive*. Only exception are the battery, alias and cluster names.
-- These must be exactly the same as the names of the goups defined in the mission editor or the aliases and cluster names defined in the script. -- These must be exactly the same as the names of the groups defined in the mission editor or the aliases and cluster names defined in the script.
-- --
-- ### Relocation Assignments -- ### Relocation Assignments
-- --
@ -363,11 +363,11 @@
-- * *time* Time for which which the relocation/move is schedules, e.g. 08:42. Default is as soon as possible. -- * *time* Time for which which the relocation/move is schedules, e.g. 08:42. Default is as soon as possible.
-- * *speed* The speed in km/h the group will drive at. Default is 70% of its max possible speed. -- * *speed* The speed in km/h the group will drive at. Default is 70% of its max possible speed.
-- * *on road* Group will use mainly roads. Default is off, i.e. it will go in a straight line from its current position to the assigned coordinate. -- * *on road* Group will use mainly roads. Default is off, i.e. it will go in a straight line from its current position to the assigned coordinate.
-- * *canceltarget* Group will cancel all running firing engagements and immidiately start to move. Default is that group will wait until is current assignment is over. -- * *canceltarget* Group will cancel all running firing engagements and immediately start to move. Default is that group will wait until is current assignment is over.
-- * *battery* Name of the ARTY group that the relocation is assigned to. -- * *battery* Name of the ARTY group that the relocation is assigned to.
-- * *alias* Alias of the ARTY group that the target is assigned to. The alias is **case sensitive** and needs to be in quotation marks. -- * *alias* Alias of the ARTY group that the target is assigned to. The alias is **case sensitive** and needs to be in quotation marks.
-- * *cluster* The cluster of ARTY groups that is addessed. Clusters can be defined by the function @{#ARTY.AddToCluster}(*clusters*). Names are **case sensitive** and need to be in quotation marks. -- * *cluster* The cluster of ARTY groups that is addressed. Clusters can be defined by the function @{#ARTY.AddToCluster}(*clusters*). Names are **case sensitive** and need to be in quotation marks.
-- * *key* A number to authorize the target assignment. Only specifing the correct number will trigger an engagement. -- * *key* A number to authorize the target assignment. Only specifying the correct number will trigger an engagement.
-- * *lldms* Specify the coordinates in Lat/Long degrees, minutes and seconds format. The actual location of the marker is unimportant. The group will move to the coordinates given in the lldms keyword. -- * *lldms* Specify the coordinates in Lat/Long degrees, minutes and seconds format. The actual location of the marker is unimportant. The group will move to the coordinates given in the lldms keyword.
-- Format is DD:MM:SS[N,S] DD:MM:SS[W,E]. See example below. -- Format is DD:MM:SS[N,S] DD:MM:SS[W,E]. See example below.
-- * *readonly* Marker cannot be deleted by users any more. Hence, assignment cannot be cancelled by removing the marker. -- * *readonly* Marker cannot be deleted by users any more. Hence, assignment cannot be cancelled by removing the marker.
@ -410,12 +410,12 @@
-- --
-- A few options can be set by marks. The corresponding keyword is **arty set**. This can be used to define the rearming place and group for a battery. -- A few options can be set by marks. The corresponding keyword is **arty set**. This can be used to define the rearming place and group for a battery.
-- --
-- To set the reamring place of a group at the marker position type -- To set the rearming place of a group at the marker position type
-- arty set, battery "Paladin Alpha", rearming place -- arty set, battery "Paladin Alpha", rearming place
-- --
-- Setting the rearming group is independent of the position of the mark. Just create one anywhere on the map and type -- Setting the rearming group is independent of the position of the mark. Just create one anywhere on the map and type
-- arty set, battery "Mortar Bravo", rearming group "Ammo Truck M818" -- arty set, battery "Mortar Bravo", rearming group "Ammo Truck M818"
-- Note that the name of the rearming group has to be given in quotation marks and spellt exactly as the group name defined in the mission editor. -- Note that the name of the rearming group has to be given in quotation marks and spelt exactly as the group name defined in the mission editor.
-- --
-- ## Transporting -- ## Transporting
-- --

View File

@ -1,4 +1,4 @@
--- **Functional** -- Keep airbases clean of crashing or colliding airplanes, and kill missiles when being fired at airbases. --- **Functional** - Keep airbases clean of crashing or colliding airplanes, and kill missiles when being fired at airbases.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Functional** -- Management of target **Designation**. Lase, smoke and illuminate targets. --- **Functional** - Management of target **Designation**. Lase, smoke and illuminate targets.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Functional** -- Models the detection of enemy units by FACs or RECCEs and group them according various methods. --- **Functional** - Models the detection of enemy units by FACs or RECCEs and group them according various methods.
-- --
-- === -- ===
-- --

View File

@ -1,3 +1,6 @@
--- **Functional** - Captures the class DETECTION_ZONES.
-- @module Functional.DetectionZones
do -- DETECTION_ZONES do -- DETECTION_ZONES
--- @type DETECTION_ZONES --- @type DETECTION_ZONES
@ -40,27 +43,27 @@ do -- DETECTION_ZONES
ClassName = "DETECTION_ZONES", ClassName = "DETECTION_ZONES",
DetectionZoneRange = nil, DetectionZoneRange = nil,
} }
--- DETECTION_ZONES constructor. --- DETECTION_ZONES constructor.
-- @param #DETECTION_ZONES self -- @param #DETECTION_ZONES self
-- @param Core.Set#SET_ZONE DetectionSetZone The @{Set} of ZONE_RADIUS. -- @param Core.Set#SET_ZONE DetectionSetZone The @{Set} of ZONE_RADIUS.
-- @param DCS#Coalition.side DetectionCoalition The coalition of the detection. -- @param DCS#Coalition.side DetectionCoalition The coalition of the detection.
-- @return #DETECTION_ZONES -- @return #DETECTION_ZONES
function DETECTION_ZONES:New( DetectionSetZone, DetectionCoalition ) function DETECTION_ZONES:New( DetectionSetZone, DetectionCoalition )
-- Inherits from DETECTION_BASE -- Inherits from DETECTION_BASE
local self = BASE:Inherit( self, DETECTION_BASE:New( DetectionSetZone ) ) -- #DETECTION_ZONES local self = BASE:Inherit( self, DETECTION_BASE:New( DetectionSetZone ) ) -- #DETECTION_ZONES
self.DetectionSetZone = DetectionSetZone -- Core.Set#SET_ZONE self.DetectionSetZone = DetectionSetZone -- Core.Set#SET_ZONE
self.DetectionCoalition = DetectionCoalition self.DetectionCoalition = DetectionCoalition
self._SmokeDetectedUnits = false self._SmokeDetectedUnits = false
self._FlareDetectedUnits = false self._FlareDetectedUnits = false
self._SmokeDetectedZones = false self._SmokeDetectedZones = false
self._FlareDetectedZones = false self._FlareDetectedZones = false
self._BoundDetectedZones = false self._BoundDetectedZones = false
return self return self
end end

View File

@ -1,4 +1,4 @@
--- **Functional** -- Taking the lead of AI escorting your flight. --- **Functional** - Taking the lead of AI escorting your flight.
-- --
-- === -- ===
-- --

View File

@ -20,7 +20,7 @@
-- === -- ===
-- --
-- ### Author: **funkyfranky** -- ### Author: **funkyfranky**
-- @module Functional.FOX -- @module Functional.Fox
-- @image Functional_FOX.png -- @image Functional_FOX.png
--- FOX class. --- FOX class.

View File

@ -1,4 +1,4 @@
--- **Functional** -- Modular, Automatic and Network capable Targeting and Interception System for Air Defenses --- **Functional** - Modular, Automatic and Network capable Targeting and Interception System for Air Defenses
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Functional** -- Train missile defence and deflection. --- **Functional** - Train missile defence and deflection.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Functional** -- Limit the movement of simulaneous moving ground vehicles. --- **Functional** - Limit the movement of simulaneous moving ground vehicles.
-- --
-- === -- ===
-- --

View File

@ -51,7 +51,7 @@
-- ### Contributions: [FlightControl](https://forums.eagle.ru/member.php?u=89536) -- ### Contributions: [FlightControl](https://forums.eagle.ru/member.php?u=89536)
-- --
-- === -- ===
-- @module Functional.Rat -- @module Functional.RAT
-- @image RAT.JPG -- @image RAT.JPG
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

View File

@ -1,4 +1,4 @@
--- **Functional** -- Make SAM sites execute evasive and defensive behaviour when being fired upon. --- **Functional** - Make SAM sites execute evasive and defensive behaviour when being fired upon.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Functional** -- Short Range Air Defense System --- **Functional** - Short Range Air Defense System
-- --
-- === -- ===
-- --

View File

@ -1274,7 +1274,7 @@
-- --
-- ## Example 13: Battlefield Air Interdiction -- ## Example 13: Battlefield Air Interdiction
-- --
-- This example show how to couple the WAREHOUSE class with the @{AI.AI_Bai} class. -- This example show how to couple the WAREHOUSE class with the @{AI.AI_BAI} class.
-- Four enemy targets have been located at the famous Kobuleti X. All three available Viggen 2-ship flights are assigned to kill at least one of the BMPs to complete their mission. -- Four enemy targets have been located at the famous Kobuleti X. All three available Viggen 2-ship flights are assigned to kill at least one of the BMPs to complete their mission.
-- --
-- -- Start Warehouse at Kobuleti. -- -- Start Warehouse at Kobuleti.

View File

@ -1,4 +1,4 @@
--- **Functional** -- Models the process to zone guarding and capturing. --- **Functional** - Models the process to zone guarding and capturing.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Functional (WIP)** -- Base class that models processes to achieve goals involving a Zone. --- **Functional (WIP)** - Base class that models processes to achieve goals involving a Zone.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Functional (WIP)** -- Base class that models processes to achieve goals involving a Zone and Cargo. --- **Functional (WIP)** - Base class that models processes to achieve goals involving a Zone and Cargo.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Functional (WIP)** -- Base class that models processes to achieve goals involving a Zone for a Coalition. --- **Functional (WIP)** - Base class that models processes to achieve goals involving a Zone for a Coalition.
-- --
-- === -- ===
-- --

View File

@ -46,7 +46,7 @@
-- --
-- ### Author: **funkyfranky** -- ### Author: **funkyfranky**
-- --
-- @module Ops.Atis -- @module Ops.ATIS
-- @image OPS_ATIS.png -- @image OPS_ATIS.png
--- ATIS class. --- ATIS class.
@ -1047,7 +1047,7 @@ end
-- Or you make your life simple and just include the sign so you don't have to bother about East/West. -- Or you make your life simple and just include the sign so you don't have to bother about East/West.
-- --
-- @param #ATIS self -- @param #ATIS self
-- @param #number magvar Magnetic variation in degrees. Positive for easterly and negative for westerly variation. Default is magnatic declinaton of the used map, c.f. @{Utilities.UTils#UTILS.GetMagneticDeclination}. -- @param #number magvar Magnetic variation in degrees. Positive for easterly and negative for westerly variation. Default is magnatic declinaton of the used map, c.f. @{Utilities.Utils#UTILS.GetMagneticDeclination}.
-- @return #ATIS self -- @return #ATIS self
function ATIS:SetMagneticDeclination( magvar ) function ATIS:SetMagneticDeclination( magvar )
self.magvar = magvar or UTILS.GetMagneticDeclination() self.magvar = magvar or UTILS.GetMagneticDeclination()

View File

@ -1,4 +1,4 @@
--- **Ops** -- Combat Search and Rescue. --- **Ops** - Combat Search and Rescue.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Ops** -- Combat Troops & Logistics Department. --- **Ops** - Combat Troops & Logistics Department.
-- --
-- === -- ===
-- --

View File

@ -26,7 +26,7 @@
-- === -- ===
-- --
-- ### Author: **funkyfranky** -- ### Author: **funkyfranky**
-- @module Sound.MSRS -- @module Sound.SRS
-- @image Sound_MSRS.png -- @image Sound_MSRS.png
--- MSRS class. --- MSRS class.

View File

@ -1,4 +1,4 @@
--- **Tasking** -- A command center governs multiple missions, and takes care of the reporting and communications. --- **Tasking** - A command center governs multiple missions, and takes care of the reporting and communications.
-- --
-- **Features:** -- **Features:**
-- --

View File

@ -1,4 +1,4 @@
--- **Tasking** -- A mission models a goal to be achieved through the execution and completion of tasks by human players. --- **Tasking** - A mission models a goal to be achieved through the execution and completion of tasks by human players.
-- --
-- **Features:** -- **Features:**
-- --

View File

@ -1,4 +1,4 @@
--- **Tasking** -- A task object governs the main engine to administer human taskings. --- **Tasking** - A task object governs the main engine to administer human taskings.
-- --
-- **Features:** -- **Features:**
-- --
@ -262,8 +262,8 @@
-- --
-- ## 1.3) Cargo Tasks -- ## 1.3) Cargo Tasks
-- --
-- - @{Tasking.Task_Cargo#TASK_CARGO_TRANSPORT} - Models the transportation of cargo to deployment zones. -- - @{Tasking.Task_CARGO#TASK_CARGO_TRANSPORT} - Models the transportation of cargo to deployment zones.
-- - @{Tasking.Task_Cargo#TASK_CARGO_CSAR} - Models the rescue of downed friendly pilots from behind enemy lines. -- - @{Tasking.Task_CARGO#TASK_CARGO_CSAR} - Models the rescue of downed friendly pilots from behind enemy lines.
-- --
-- --
-- # 2) Task status events. -- # 2) Task status events.

View File

@ -1,4 +1,4 @@
--- **Tasking** -- Controls the information of a Task. --- **Tasking** - Controls the information of a Task.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Tasking** -- Dynamically allocates A2G tasks to human players, based on detected ground targets through reconnaissance. --- **Tasking** - Dynamically allocates A2G tasks to human players, based on detected ground targets through reconnaissance.
-- --
-- **Features:** -- **Features:**
-- --

View File

@ -1,11 +1,11 @@
--- **Tasking** -- Base class to model tasks for players to transport cargo. --- **Tasking** - Base class to model tasks for players to transport cargo.
-- --
-- ## Features: -- ## Features:
-- --
-- * TASK_CARGO is the **base class** for: -- * TASK_CARGO is the **base class** for:
-- --
-- * @{Tasking.Task_Cargo_Transport#TASK_CARGO_TRANSPORT} -- * @{Tasking.Task_Cargo_Transport#TASK_CARGO_TRANSPORT}
-- * @{Tasking.Task_Cargo_CSAR#TASK_CARGO_CSAR} -- * @{Tasking.Task_CARGO_CSAR#TASK_CARGO_CSAR}
-- --
-- --
-- === -- ===
@ -34,7 +34,7 @@
-- The following TASK_CARGO_ classes are important, as they implement the CONCRETE tasks: -- The following TASK_CARGO_ classes are important, as they implement the CONCRETE tasks:
-- --
-- * @{Tasking.Task_Cargo_Transport#TASK_CARGO_TRANSPORT}: Defines a task for a human player to transport a set of cargo between various zones. -- * @{Tasking.Task_Cargo_Transport#TASK_CARGO_TRANSPORT}: Defines a task for a human player to transport a set of cargo between various zones.
-- * @{Tasking.Task_Cargo_CSAR#TASK_CARGO_CSAR}: Defines a task for a human player to Search and Rescue wounded pilots. -- * @{Tasking.Task_CARGO_CSAR#TASK_CARGO_CSAR}: Defines a task for a human player to Search and Rescue wounded pilots.
-- --
-- However! The menu system and basic usage of the TASK_CARGO classes is explained in the @{#TASK_CARGO} class description. -- However! The menu system and basic usage of the TASK_CARGO classes is explained in the @{#TASK_CARGO} class description.
-- So please browse further below to understand how to use it from a player perspective! -- So please browse further below to understand how to use it from a player perspective!
@ -387,9 +387,9 @@
-- --
-- Please consult the documentation how to implement the derived classes of SET_CARGO in: -- Please consult the documentation how to implement the derived classes of SET_CARGO in:
-- --
-- - @{Tasking.Task_Cargo#TASK_CARGO}: Documents the main methods how to handle the cargo tasking from a mission designer perspective. -- - @{Tasking.Task_CARGO#TASK_CARGO}: Documents the main methods how to handle the cargo tasking from a mission designer perspective.
-- - @{Tasking.Task_Cargo#TASK_CARGO_TRANSPORT}: Documents the specific methods how to handle the cargo transportation tasking from a mission designer perspective. -- - @{Tasking.Task_CARGO#TASK_CARGO_TRANSPORT}: Documents the specific methods how to handle the cargo transportation tasking from a mission designer perspective.
-- - @{Tasking.Task_Cargo#TASK_CARGO_CSAR}: Documents the specific methods how to handle the cargo CSAR tasking from a mission designer perspective. -- - @{Tasking.Task_CARGO#TASK_CARGO_CSAR}: Documents the specific methods how to handle the cargo CSAR tasking from a mission designer perspective.
-- --
-- --
-- === -- ===
@ -400,7 +400,7 @@
-- --
-- === -- ===
-- --
-- @module Tasking.Task_Cargo -- @module Tasking.Task_CARGO
-- @image MOOSE.JPG -- @image MOOSE.JPG
do -- TASK_CARGO do -- TASK_CARGO
@ -438,8 +438,8 @@ do -- TASK_CARGO
-- --
-- ### 2.1.1) Cargo Tasks -- ### 2.1.1) Cargo Tasks
-- --
-- - @{Tasking.Task_Cargo#TASK_CARGO_TRANSPORT} - Models the transportation of cargo to deployment zones. -- - @{Tasking.Task_CARGO#TASK_CARGO_TRANSPORT} - Models the transportation of cargo to deployment zones.
-- - @{Tasking.Task_Cargo#TASK_CARGO_CSAR} - Models the rescue of downed friendly pilots from behind enemy lines. -- - @{Tasking.Task_CARGO#TASK_CARGO_CSAR} - Models the rescue of downed friendly pilots from behind enemy lines.
-- --
-- ## 2.2) Handle TASK_CARGO Events ... -- ## 2.2) Handle TASK_CARGO Events ...
-- --

View File

@ -54,7 +54,7 @@
-- --
-- === -- ===
-- --
-- @module Tasking.Task_Zone_Capture_Dispatcher -- @module Tasking.Task_Capture_Dispatcher
-- @image MOOSE.JPG -- @image MOOSE.JPG
do -- TASK_CAPTURE_DISPATCHER do -- TASK_CAPTURE_DISPATCHER

View File

@ -8,14 +8,14 @@
-- --
-- === -- ===
-- --
-- @module Tasking.TaskZoneCapture -- @module Tasking.Task_Capture_Zone
-- @image MOOSE.JPG -- @image MOOSE.JPG
do -- TASK_ZONE_GOAL do -- TASK_ZONE_GOAL
--- The TASK_ZONE_GOAL class --- The TASK_ZONE_GOAL class
-- @type TASK_ZONE_GOAL -- @type TASK_ZONE_GOAL
-- @field Core.ZoneGoal#ZONE_GOAL ZoneGoal -- @field Functional.ZoneGoal#ZONE_GOAL ZoneGoal
-- @extends Tasking.Task#TASK -- @extends Tasking.Task#TASK
--- # TASK_ZONE_GOAL class, extends @{Tasking.Task#TASK} --- # TASK_ZONE_GOAL class, extends @{Tasking.Task#TASK}
@ -47,7 +47,7 @@ do -- TASK_ZONE_GOAL
-- @param Tasking.Mission#MISSION Mission -- @param Tasking.Mission#MISSION Mission
-- @param Core.Set#SET_GROUP SetGroup The set of groups for which the Task can be assigned. -- @param Core.Set#SET_GROUP SetGroup The set of groups for which the Task can be assigned.
-- @param #string TaskName The name of the Task. -- @param #string TaskName The name of the Task.
-- @param Core.ZoneGoalCoalition#ZONE_GOAL_COALITION ZoneGoal -- @param Functional.ZoneGoalCoalition#ZONE_GOAL_COALITION ZoneGoal
-- @return #TASK_ZONE_GOAL self -- @return #TASK_ZONE_GOAL self
function TASK_ZONE_GOAL:New( Mission, SetGroup, TaskName, ZoneGoal, TaskType, TaskBriefing ) function TASK_ZONE_GOAL:New( Mission, SetGroup, TaskName, ZoneGoal, TaskType, TaskBriefing )
local self = BASE:Inherit( self, TASK:New( Mission, SetGroup, TaskName, TaskType, TaskBriefing ) ) -- #TASK_ZONE_GOAL local self = BASE:Inherit( self, TASK:New( Mission, SetGroup, TaskName, TaskType, TaskBriefing ) ) -- #TASK_ZONE_GOAL
@ -115,10 +115,10 @@ do -- TASK_ZONE_GOAL
end end
--- @param #TASK_ZONE_GOAL self --- @param #TASK_ZONE_GOAL self
-- @param Core.ZoneGoal#ZONE_GOAL ZoneGoal The ZoneGoal Engine. -- @param Functional.ZoneGoal#ZONE_GOAL ZoneGoal The ZoneGoal Engine.
function TASK_ZONE_GOAL:SetProtect( ZoneGoal ) function TASK_ZONE_GOAL:SetProtect( ZoneGoal )
self.ZoneGoal = ZoneGoal -- Core.ZoneGoal#ZONE_GOAL self.ZoneGoal = ZoneGoal -- Functional.ZoneGoal#ZONE_GOAL
end end
@ -169,10 +169,10 @@ do -- TASK_CAPTURE_ZONE
--- The TASK_CAPTURE_ZONE class --- The TASK_CAPTURE_ZONE class
-- @type TASK_CAPTURE_ZONE -- @type TASK_CAPTURE_ZONE
-- @field Core.ZoneGoalCoalition#ZONE_GOAL_COALITION ZoneGoal -- @field Functional.ZoneGoalCoalition#ZONE_GOAL_COALITION ZoneGoal
-- @extends #TASK_ZONE_GOAL -- @extends #TASK_ZONE_GOAL
--- # TASK_CAPTURE_ZONE class, extends @{Tasking.TaskZoneGoal#TASK_ZONE_GOAL} --- # TASK_CAPTURE_ZONE class, extends @{Tasking.Task_Capture_Zone#TASK_ZONE_GOAL}
-- --
-- The TASK_CAPTURE_ZONE class defines an Suppression or Extermination of Air Defenses task for a human player to be executed. -- The TASK_CAPTURE_ZONE class defines an Suppression or Extermination of Air Defenses task for a human player to be executed.
-- These tasks are important to be executed as they will help to achieve air superiority at the vicinity. -- These tasks are important to be executed as they will help to achieve air superiority at the vicinity.
@ -191,7 +191,7 @@ do -- TASK_CAPTURE_ZONE
-- @param Tasking.Mission#MISSION Mission -- @param Tasking.Mission#MISSION Mission
-- @param Core.Set#SET_GROUP SetGroup The set of groups for which the Task can be assigned. -- @param Core.Set#SET_GROUP SetGroup The set of groups for which the Task can be assigned.
-- @param #string TaskName The name of the Task. -- @param #string TaskName The name of the Task.
-- @param Core.ZoneGoalCoalition#ZONE_GOAL_COALITION ZoneGoalCoalition -- @param Functional.ZoneGoalCoalition#ZONE_GOAL_COALITION ZoneGoalCoalition
-- @param #string TaskBriefing The briefing of the task. -- @param #string TaskBriefing The briefing of the task.
-- @return #TASK_CAPTURE_ZONE self -- @return #TASK_CAPTURE_ZONE self
function TASK_CAPTURE_ZONE:New( Mission, SetGroup, TaskName, ZoneGoalCoalition, TaskBriefing) function TASK_CAPTURE_ZONE:New( Mission, SetGroup, TaskName, ZoneGoalCoalition, TaskBriefing)

View File

@ -1,4 +1,4 @@
--- **Tasking** -- Orchestrates the task for players to execute CSAR for downed pilots. --- **Tasking** - Orchestrates the task for players to execute CSAR for downed pilots.
-- --
-- **Specific features:** -- **Specific features:**
-- --
@ -44,7 +44,7 @@
-- --
-- === -- ===
-- --
-- Please read through the @{Tasking.Task_Cargo} process to understand the mechanisms of tasking and cargo tasking and handling. -- Please read through the @{Tasking.Task_CARGO} process to understand the mechanisms of tasking and cargo tasking and handling.
-- --
-- The cargo will be a downed pilot, which is located somwhere on the battlefield. Use the menus system and facilities to -- The cargo will be a downed pilot, which is located somwhere on the battlefield. Use the menus system and facilities to
-- join the CSAR task, and retrieve the pilot from behind enemy lines. The menu system is generic, there is nothing -- join the CSAR task, and retrieve the pilot from behind enemy lines. The menu system is generic, there is nothing

View File

@ -1,4 +1,4 @@
--- **Tasking** -- Models tasks for players to transport cargo. --- **Tasking** - Models tasks for players to transport cargo.
-- --
-- **Specific features:** -- **Specific features:**
-- --

View File

@ -13,7 +13,7 @@
-- --
-- Other Moose classes also have enumerators. For example, the AIRBASE class has enumerators for airbase names. -- Other Moose classes also have enumerators. For example, the AIRBASE class has enumerators for airbase names.
-- --
-- @module ENUMS -- @module Utilities.Enums
-- @image MOOSE.JPG -- @image MOOSE.JPG
--- [DCS Enum world](https://wiki.hoggitworld.com/view/DCS_enum_world) --- [DCS Enum world](https://wiki.hoggitworld.com/view/DCS_enum_world)

View File

@ -10,7 +10,7 @@
-- === -- ===
-- --
-- ### Author: **applevangelist** -- ### Author: **applevangelist**
-- @module Utils.FiFo -- @module Utilities.FiFo
-- @image MOOSE.JPG -- @image MOOSE.JPG
-- Date: April 2022 -- Date: April 2022

View File

@ -6,7 +6,7 @@
-- --
-- ### Author: **TAW CougarNL**, *funkyfranky* -- ### Author: **TAW CougarNL**, *funkyfranky*
-- --
-- @module Utilities.PROFILER -- @module Utilities.Profiler
-- @image Utils_Profiler.jpg -- @image Utils_Profiler.jpg
--- PROFILER class. --- PROFILER class.

View File

@ -1,5 +1,5 @@
--- Various routines --- Various routines
-- @module routines -- @module Utilities.Routines
-- @image MOOSE.JPG -- @image MOOSE.JPG
env.setErrorMessageBoxEnabled( false ) env.setErrorMessageBoxEnabled( false )

View File

@ -1,7 +1,7 @@
--- **Utilities** DCS Simple Text-To-Speech (STTS). --- **Utilities** DCS Simple Text-To-Speech (STTS).
-- --
-- --
-- @module Utils.STTS -- @module Utilities.STTS
-- @image MOOSE.JPG -- @image MOOSE.JPG
--- [DCS Enum world](https://wiki.hoggitworld.com/view/DCS_enum_world) --- [DCS Enum world](https://wiki.hoggitworld.com/view/DCS_enum_world)

View File

@ -9,7 +9,7 @@
-- * FlightControl : Rework to OO framework. -- * FlightControl : Rework to OO framework.
-- * And many more -- * And many more
-- --
-- @module Utils -- @module Utilities.Utils
-- @image MOOSE.JPG -- @image MOOSE.JPG

View File

@ -1,4 +1,4 @@
--- **Wrapper** -- AIRBASE is a wrapper class to handle the DCS Airbase objects. --- **Wrapper** - AIRBASE is a wrapper class to handle the DCS Airbase objects.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Wrapper** -- CLIENT wraps DCS Unit objects acting as a __Client__ or __Player__ within a mission. --- **Wrapper** - CLIENT wraps DCS Unit objects acting as a __Client__ or __Player__ within a mission.
-- --
-- === -- ===
-- --
@ -58,7 +58,7 @@
-- * @{#CLIENT.Find}(): Find a CLIENT instance from the _DATABASE object using a DCS Unit object. -- * @{#CLIENT.Find}(): Find a CLIENT instance from the _DATABASE object using a DCS Unit object.
-- * @{#CLIENT.FindByName}(): Find a CLIENT instance from the _DATABASE object using a DCS Unit name. -- * @{#CLIENT.FindByName}(): Find a CLIENT instance from the _DATABASE object using a DCS Unit name.
-- --
-- **IMPORTANT: ONE SHOULD NEVER SANATIZE these CLIENT OBJECT REFERENCES! (make the CLIENT object references nil).** -- **IMPORTANT: ONE SHOULD NEVER SANITIZE these CLIENT OBJECT REFERENCES! (make the CLIENT object references nil).**
-- --
-- @field #CLIENT -- @field #CLIENT
CLIENT = { CLIENT = {

View File

@ -1,4 +1,4 @@
--- **Wrapper** -- CONTROLLABLE is an intermediate class wrapping Group and Unit classes "controllers". --- **Wrapper** - CONTROLLABLE is an intermediate class wrapping Group and Unit classes "controllers".
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Wrapper** -- GROUP wraps the DCS Class Group objects. --- **Wrapper** - GROUP wraps the DCS Class Group objects.
-- --
-- === -- ===
-- --
@ -11,7 +11,7 @@
-- * Handle local Group Controller. -- * Handle local Group Controller.
-- * Manage the "state" of the DCS Group. -- * Manage the "state" of the DCS Group.
-- --
-- **IMPORTANT: ONE SHOULD NEVER SANATIZE these GROUP OBJECT REFERENCES! (make the GROUP object references nil).** -- **IMPORTANT: ONE SHOULD NEVER SANITIZE these GROUP OBJECT REFERENCES! (make the GROUP object references nil).**
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Wrapper** -- IDENTIFIABLE is an intermediate class wrapping DCS Object class derived Objects. --- **Wrapper** - IDENTIFIABLE is an intermediate class wrapping DCS Object class derived Objects.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Wrapper** -- OBJECT wraps the DCS Object derived objects. --- **Wrapper** - OBJECT wraps the DCS Object derived objects.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Wrapper** -- POSITIONABLE wraps DCS classes that are "positionable". --- **Wrapper** - POSITIONABLE wraps DCS classes that are "positionable".
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Wrapper** -- SCENERY models scenery within the DCS simulator. --- **Wrapper** - SCENERY models scenery within the DCS simulator.
-- --
-- === -- ===
-- --

View File

@ -1,4 +1,4 @@
--- **Wrapper** -- STATIC wraps the DCS StaticObject class. --- **Wrapper** - STATIC wraps the DCS StaticObject class.
-- --
-- === -- ===
-- --
@ -40,7 +40,7 @@
-- --
-- * @{#STATIC.FindByName}(): Find a STATIC instance from the _DATABASE object using a DCS Static name. -- * @{#STATIC.FindByName}(): Find a STATIC instance from the _DATABASE object using a DCS Static name.
-- --
-- IMPORTANT: ONE SHOULD NEVER SANATIZE these STATIC OBJECT REFERENCES! (make the STATIC object references nil). -- IMPORTANT: ONE SHOULD NEVER SANITIZE these STATIC OBJECT REFERENCES! (make the STATIC object references nil).
-- --
-- @field #STATIC -- @field #STATIC
STATIC = { STATIC = {

View File

@ -42,7 +42,7 @@
-- * @{#UNIT.Find}(): Find a UNIT instance from the _DATABASE object using a DCS Unit object. -- * @{#UNIT.Find}(): Find a UNIT instance from the _DATABASE object using a DCS Unit object.
-- * @{#UNIT.FindByName}(): Find a UNIT instance from the _DATABASE object using a DCS Unit name. -- * @{#UNIT.FindByName}(): Find a UNIT instance from the _DATABASE object using a DCS Unit name.
-- --
-- IMPORTANT: ONE SHOULD NEVER SANATIZE these UNIT OBJECT REFERENCES! (make the UNIT object references nil). -- IMPORTANT: ONE SHOULD NEVER SANITIZE these UNIT OBJECT REFERENCES! (make the UNIT object references nil).
-- --
-- ## DCS UNIT APIs -- ## DCS UNIT APIs
-- --