diff --git a/Moose Development/Moose/AI/AI_CAS.lua b/Moose Development/Moose/AI/AI_CAS.lua index 8e9eb20f6..dd7dd5a49 100644 --- a/Moose Development/Moose/AI/AI_CAS.lua +++ b/Moose Development/Moose/AI/AI_CAS.lua @@ -107,11 +107,11 @@ -- -- ![Engage Event](..\Presentations\AI_CAS\Dia12.JPG) -- --- # 1. AI_CAS_ZONE constructor +-- ## AI_CAS_ZONE constructor -- -- * @{#AI_CAS_ZONE.New}(): Creates a new AI_CAS_ZONE object. -- --- ## 2. AI_CAS_ZONE is a FSM +-- ## AI_CAS_ZONE is a FSM -- -- ![Process](..\Presentations\AI_CAS\Dia2.JPG) -- diff --git a/Moose Development/Moose/Tasking/CommandCenter.lua b/Moose Development/Moose/Tasking/CommandCenter.lua index 6e6fc2420..5249589d3 100644 --- a/Moose Development/Moose/Tasking/CommandCenter.lua +++ b/Moose Development/Moose/Tasking/CommandCenter.lua @@ -85,6 +85,53 @@ end -- @field Dcs.DCSCoalitionWrapper.Object#coalition CommandCenterCoalition -- @list Missions -- @extends Core.Base#BASE + + +--- # COMMANDCENTER class, extends @{Base#BASE} +-- +-- The COMMANDCENTER class governs multiple missions, the tasking and the reporting. +-- +-- The commandcenter communicates important messages between the various groups of human players executing tasks in missions. +-- +-- ## COMMANDCENTER constructor +-- +-- * @{#COMMANDCENTER.New}(): Creates a new COMMANDCENTER object. +-- +-- ## Mission Management +-- +-- * @{#COMMANDCENTER.AddMission}(): Adds a mission to the commandcenter control. +-- * @{#COMMANDCENTER.RemoveMission}(): Removes a mission to the commandcenter control. +-- * @{#COMMANDCENTER.GetMissions}(): Retrieves the missions table controlled by the commandcenter. +-- +-- ## Reference Zones +-- +-- Command Centers may be aware of certain Reference Zones within the battleground. These Reference Zones can refer to +-- known areas, recognizable buildings or sites, or any other point of interest. +-- Command Centers will use these Reference Zones to help pilots with defining coordinates in terms of navigation +-- during the WWII era. +-- The Reference Zones are related to the WWII mode that the Command Center will operate in. +-- Use the method @{#COMMANDCENTER.SetModeWWII}() to set the mode of communication to the WWII mode. +-- +-- In WWII mode, the Command Center will receive detected targets, and will select for each target the closest +-- nearby Reference Zone. This allows pilots to navigate easier through the battle field readying for combat. +-- +-- The Reference Zones need to be set by the Mission Designer in the Mission Editor. +-- Reference Zones are set by normal trigger zones. One can color the zones in a specific color, +-- and the radius of the zones doesn't matter, only the point is important. Place the center of these Reference Zones at +-- specific scenery objects or points of interest (like cities, rivers, hills, crossing etc). +-- The trigger zones indicating a Reference Zone need to follow a specific syntax. +-- The name of each trigger zone expressing a Reference Zone need to start with a classification name of the object, +-- followed by a #, followed by a symbolic name of the Reference Zone. +-- A few examples: +-- +-- * A church at Tskinvali would be indicated as: *Church#Tskinvali* +-- * A train station near Kobuleti would be indicated as: *Station#Kobuleti* +-- +-- The COMMANDCENTER class contains a method to indicate which trigger zones need to be used as Reference Zones. +-- This is done by using the method @{#COMMANDCENTER.SetReferenceZones}(). +-- For the moment, only one Reference Zone class can be specified, but in the future, more classes will become possible. +-- +-- @field #COMMANDCENTER COMMANDCENTER = { ClassName = "COMMANDCENTER", CommandCenterName = "", @@ -95,6 +142,7 @@ COMMANDCENTER = { ReferenceNames = {}, CommunicationMode = "80", } + --- The constructor takes an IDENTIFIABLE as the HQ command center. -- @param #COMMANDCENTER self -- @param Wrapper.Positionable#POSITIONABLE CommandCenterPositionable @@ -253,10 +301,29 @@ function COMMANDCENTER:RemoveMission( Mission ) return Mission end ---- Set reference points known by the command center to guide airborne units during WWII. --- These reference points are zones, with a special name. +--- Set special Reference Zones known by the Command Center to guide airborne pilots during WWII. +-- +-- These Reference Zones are normal trigger zones, with a special naming. +-- The Reference Zones need to be set by the Mission Designer in the Mission Editor. +-- Reference Zones are set by normal trigger zones. One can color the zones in a specific color, +-- and the radius of the zones doesn't matter, only the center of the zone is important. Place the center of these Reference Zones at +-- specific scenery objects or points of interest (like cities, rivers, hills, crossing etc). +-- The trigger zones indicating a Reference Zone need to follow a specific syntax. +-- The name of each trigger zone expressing a Reference Zone need to start with a classification name of the object, +-- followed by a #, followed by a symbolic name of the Reference Zone. +-- A few examples: +-- +-- * A church at Tskinvali would be indicated as: *Church#Tskinvali* +-- * A train station near Kobuleti would be indicated as: *Station#Kobuleti* +-- +-- Taking the above example, this is how this method would be used: +-- +-- CC:SetReferenceZones( "Church" ) +-- CC:SetReferenceZones( "Station" ) +-- +-- -- @param #COMMANDCENTER self --- @param #string ReferenceZonePrefix Reference points. +-- @param #string ReferenceZonePrefix The name before the #-mark indicating the class of the Reference Zones. -- @return #COMMANDCENTER function COMMANDCENTER:SetReferenceZones( ReferenceZonePrefix ) local MatchPattern = "(.*)#(.*)" @@ -273,13 +340,14 @@ function COMMANDCENTER:SetReferenceZones( ReferenceZonePrefix ) end --- Set the commandcenter operations in WWII mode --- This will disable LL, MGRS, BRA, BULLS from the settings. +-- This will disable LL, MGRS, BRA, BULLS navigatin messages sent by the Command Center, +-- and will be replaced by a navigation using Reference Zones. -- It will also disable the settings at the settings menu for these. --- And, it will use any ReferenceZones set as reference points for communication. -- @param #COMMANDCENTER self -- @return #COMMANDCENTER function COMMANDCENTER:SetModeWWII() self.CommunicationMode = "WWII" + return self end diff --git a/Moose Development/Moose/Tasking/Task_A2A.lua b/Moose Development/Moose/Tasking/Task_A2A.lua index 2bd6cfc80..cda6c724c 100644 --- a/Moose Development/Moose/Tasking/Task_A2A.lua +++ b/Moose Development/Moose/Tasking/Task_A2A.lua @@ -23,10 +23,6 @@ -- * @{#TASK_A2A.SetScoreOnSuccess}(): Set a score when all the targets in scope of the A2A attack, have been destroyed. -- * @{#TASK_A2A.SetPenaltyOnFailed}(): Set a penalty when the A2A attack has failed. -- --- # 2) @{Task_A2A#TASK_INTERCEPT} class, extends @{Task_A2A#TASK_A2A} --- --- The TASK_A2A_INTERCEPT class defines an INTERCEPT task for a @{Set} of Target Units. --- -- ==== -- -- # **API CHANGE HISTORY** @@ -343,6 +339,19 @@ do -- TASK_A2A_INTERCEPT -- @type TASK_A2A_INTERCEPT -- @field Set#SET_UNIT TargetSetUnit -- @extends Tasking.Task#TASK + + --- # TASK_A2A_INTERCEPT class, extends @{Task_A2A#TASK_A2A} + -- + -- The TASK_A2A_INTERCEPT class defines an intercept task for a human player to be executed. + -- When enemy planes need to be intercepted by human players, use this task type to urgen the players to get out there! + -- + -- The TASK_A2A_INTERCEPT is used by the @{Task_A2A_Dispatcher#TASK_A2A_DISPATCHER} to automatically create intercept tasks + -- based on detected airborne enemy targets intruding friendly airspace. + -- + -- The task is defined for a @{Mission#MISSION}, where a friendly @{Set#SET_GROUP} consisting of GROUPs with one human players each, is intercepting the targets. + -- The task is given a name and a briefing, that is used in the menu structure and in the reporting. + -- + -- @field #TASK_A2A_INTERCEPT TASK_A2A_INTERCEPT = { ClassName = "TASK_A2A_INTERCEPT", } @@ -390,6 +399,21 @@ do -- TASK_A2A_SWEEP -- @type TASK_A2A_SWEEP -- @field Set#SET_UNIT TargetSetUnit -- @extends Tasking.Task#TASK + + --- # TASK_A2A_SWEEP class, extends @{Task_A2A#TASK_A2A} + -- + -- The TASK_A2A_SWEEP class defines a sweep task for a human player to be executed. + -- A sweep task needs to be given when targets were detected but somehow the detection was lost. + -- Most likely, these enemy planes are hidden in the mountains or are flying under radar. + -- These enemy planes need to be sweeped by human players, and use this task type to urge the players to get out there and find those enemy fighters. + -- + -- The TASK_A2A_SWEEP is used by the @{Task_A2A_Dispatcher#TASK_A2A_DISPATCHER} to automatically create sweep tasks + -- based on detected airborne enemy targets intruding friendly airspace, for which the detection has been lost for more than 60 seconds. + -- + -- The task is defined for a @{Mission#MISSION}, where a friendly @{Set#SET_GROUP} consisting of GROUPs with one human players each, is sweeping the targets. + -- The task is given a name and a briefing, that is used in the menu structure and in the reporting. + -- + -- @field #TASK_A2A_SWEEP TASK_A2A_SWEEP = { ClassName = "TASK_A2A_SWEEP", } @@ -437,6 +461,19 @@ do -- TASK_A2A_ENGAGE -- @type TASK_A2A_ENGAGE -- @field Set#SET_UNIT TargetSetUnit -- @extends Tasking.Task#TASK + + --- # TASK_A2A_ENGAGE class, extends @{Task_A2A#TASK_A2A} + -- + -- The TASK_A2A_ENGAGE class defines an engage task for a human player to be executed. + -- When enemy planes are close to human players, use this task type is used urge the players to get out there! + -- + -- The TASK_A2A_ENGAGE is used by the @{Task_A2A_Dispatcher#TASK_A2A_DISPATCHER} to automatically create engage tasks + -- based on detected airborne enemy targets intruding friendly airspace. + -- + -- The task is defined for a @{Mission#MISSION}, where a friendly @{Set#SET_GROUP} consisting of GROUPs with one human players each, is engaging the targets. + -- The task is given a name and a briefing, that is used in the menu structure and in the reporting. + -- + -- @field #TASK_A2A_ENGAGE TASK_A2A_ENGAGE = { ClassName = "TASK_A2A_ENGAGE", } @@ -461,7 +498,7 @@ do -- TASK_A2A_ENGAGE self:SetBriefing( TaskBriefing or - "Bogeys are nearby! Those players who are near to the intruders are requested to ENGAGE!\n" + "Bogeys are nearby! Players close by are ordered to ENGAGE the intruders!\n" ) local TargetCoordinate = TargetSetUnit:GetFirst():GetCoordinate() diff --git a/Moose Development/Moose/Tasking/Task_A2G.lua b/Moose Development/Moose/Tasking/Task_A2G.lua index 2a387ffef..f6907aa08 100644 --- a/Moose Development/Moose/Tasking/Task_A2G.lua +++ b/Moose Development/Moose/Tasking/Task_A2G.lua @@ -23,22 +23,6 @@ -- * @{#TASK_A2G.SetScoreOnSuccess}(): Set a score when all the targets in scope of the A2G attack, have been destroyed. -- * @{#TASK_A2G.SetPenaltyOnFailed}(): Set a penalty when the A2G attack has failed. -- --- # 2) @{Task_A2G#TASK_SEAD} class, extends @{Task_A2G#TASK_A2G} --- --- The @{#TASK_SEAD} class defines a SEAD task for a @{Set} of Target Units. --- --- === --- --- # 3) @{Task_A2G#TASK_CAS} class, extends @{Task_A2G#TASK_A2G} --- --- The @{#TASK_CAS} class defines a CAS task for a @{Set} of Target Units. --- --- === --- --- # 4) @{Task_A2G#TASK_BAI} class, extends @{Task_A2G#TASK_A2G} --- --- The @{#TASK_BAI} class defines a BAI task for a @{Set} of Target Units. --- -- ==== -- -- # **API CHANGE HISTORY** @@ -351,26 +335,36 @@ do -- TASK_A2G end -do -- TASK_SEAD +do -- TASK_A2G_SEAD - --- The TASK_SEAD class - -- @type TASK_SEAD + --- The TASK_A2G_SEAD class + -- @type TASK_A2G_SEAD -- @field Set#SET_UNIT TargetSetUnit -- @extends Tasking.Task#TASK - TASK_SEAD = { - ClassName = "TASK_SEAD", + + --- # TASK_A2G_SEAD class, extends @{Task_A2G#TASK_A2G} + -- + -- The TASK_A2G_SEAD 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. + -- + -- The TASK_A2G_SEAD is used by the @{Task_A2G_Dispatcher#TASK_A2G_DISPATCHER} to automatically create SEAD tasks + -- based on detected enemy ground targets. + -- + -- @field #TASK_A2G_SEAD + TASK_A2G_SEAD = { + ClassName = "TASK_A2G_SEAD", } - --- Instantiates a new TASK_SEAD. - -- @param #TASK_SEAD self + --- Instantiates a new TASK_A2G_SEAD. + -- @param #TASK_A2G_SEAD self -- @param Tasking.Mission#MISSION Mission -- @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 Core.Set#SET_UNIT TargetSetUnit -- @param #string TaskBriefing The briefing of the task. - -- @return #TASK_SEAD self - function TASK_SEAD:New( Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing ) - local self = BASE:Inherit( self, TASK_A2G:New( Mission, SetGroup, TaskName, TargetSetUnit, "SEAD", TaskBriefing ) ) -- #TASK_SEAD + -- @return #TASK_A2G_SEAD self + function TASK_A2G_SEAD:New( Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing ) + local self = BASE:Inherit( self, TASK_A2G:New( Mission, SetGroup, TaskName, TargetSetUnit, "SEAD", TaskBriefing ) ) -- #TASK_A2G_SEAD self:F() Mission:AddTask( self ) @@ -393,26 +387,37 @@ do -- TASK_SEAD end -do -- TASK_BAI +do -- TASK_A2G_BAI - --- The TASK_BAI class - -- @type TASK_BAI + --- The TASK_A2G_BAI class + -- @type TASK_A2G_BAI -- @field Set#SET_UNIT TargetSetUnit -- @extends Tasking.Task#TASK - TASK_BAI = { - ClassName = "TASK_BAI", + + --- # TASK_A2G_BAI class, extends @{Task_A2G#TASK_A2G} + -- + -- The TASK_A2G_BAI class defines an Battlefield Air Interdiction task for a human player to be executed. + -- These tasks are more strategic in nature and are most of the time further away from friendly forces. + -- BAI tasks can also be used to express the abscence of friendly forces near the vicinity. + -- + -- The TASK_A2G_BAI is used by the @{Task_A2G_Dispatcher#TASK_A2G_DISPATCHER} to automatically create BAI tasks + -- based on detected enemy ground targets. + -- + -- @field #TASK_A2G_BAI + TASK_A2G_BAI = { + ClassName = "TASK_A2G_BAI", } - --- Instantiates a new TASK_BAI. - -- @param #TASK_BAI self + --- Instantiates a new TASK_A2G_BAI. + -- @param #TASK_A2G_BAI self -- @param Tasking.Mission#MISSION Mission -- @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 Core.Set#SET_UNIT TargetSetUnit -- @param #string TaskBriefing The briefing of the task. - -- @return #TASK_BAI self - function TASK_BAI:New( Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing ) - local self = BASE:Inherit( self, TASK_A2G:New( Mission, SetGroup, TaskName, TargetSetUnit, "BAI", TaskBriefing ) ) -- #TASK_BAI + -- @return #TASK_A2G_BAI self + function TASK_A2G_BAI:New( Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing ) + local self = BASE:Inherit( self, TASK_A2G:New( Mission, SetGroup, TaskName, TargetSetUnit, "BAI", TaskBriefing ) ) -- #TASK_A2G_BAI self:F() Mission:AddTask( self ) @@ -435,26 +440,36 @@ do -- TASK_BAI end -do -- TASK_CAS +do -- TASK_A2G_CAS - --- The TASK_CAS class - -- @type TASK_CAS + --- The TASK_A2G_CAS class + -- @type TASK_A2G_CAS -- @field Set#SET_UNIT TargetSetUnit -- @extends Tasking.Task#TASK - TASK_CAS = { - ClassName = "TASK_CAS", + + --- # TASK_A2G_CAS class, extends @{Task_A2G#TASK_A2G} + -- + -- The TASK_A2G_CAS class defines an Close Air Support task for a human player to be executed. + -- Friendly forces will be in the vicinity within 6km from the enemy. + -- + -- The TASK_A2G_CAS is used by the @{Task_A2G_Dispatcher#TASK_A2G_DISPATCHER} to automatically create CAS tasks + -- based on detected enemy ground targets. + -- + -- @field #TASK_A2G_CAS + TASK_A2G_CAS = { + ClassName = "TASK_A2G_CAS", } - --- Instantiates a new TASK_CAS. - -- @param #TASK_CAS self + --- Instantiates a new TASK_A2G_CAS. + -- @param #TASK_A2G_CAS self -- @param Tasking.Mission#MISSION Mission -- @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 Core.Set#SET_UNIT TargetSetUnit -- @param #string TaskBriefing The briefing of the task. - -- @return #TASK_CAS self - function TASK_CAS:New( Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing ) - local self = BASE:Inherit( self, TASK_A2G:New( Mission, SetGroup, TaskName, TargetSetUnit, "CAS", TaskBriefing ) ) -- #TASK_CAS + -- @return #TASK_A2G_CAS self + function TASK_A2G_CAS:New( Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing ) + local self = BASE:Inherit( self, TASK_A2G:New( Mission, SetGroup, TaskName, TargetSetUnit, "CAS", TaskBriefing ) ) -- #TASK_A2G_CAS self:F() Mission:AddTask( self ) diff --git a/Moose Development/Moose/Tasking/Task_A2G_Dispatcher.lua b/Moose Development/Moose/Tasking/Task_A2G_Dispatcher.lua index 4153b95f3..272dd57a7 100644 --- a/Moose Development/Moose/Tasking/Task_A2G_Dispatcher.lua +++ b/Moose Development/Moose/Tasking/Task_A2G_Dispatcher.lua @@ -252,21 +252,21 @@ do -- TASK_A2G_DISPATCHER if not Task then local TargetSetUnit = self:EvaluateSEAD( DetectedItem ) -- Returns a SetUnit if there are targets to be SEADed... if TargetSetUnit then - Task = TASK_SEAD:New( Mission, self.SetGroup, string.format( "SEAD.%03d", DetectedItemID ), TargetSetUnit ) + Task = TASK_A2G_SEAD:New( Mission, self.SetGroup, string.format( "SEAD.%03d", DetectedItemID ), TargetSetUnit ) end -- Evaluate CAS if not Task then local TargetSetUnit = self:EvaluateCAS( DetectedItem ) -- Returns a SetUnit if there are targets to be CASed... if TargetSetUnit then - Task = TASK_CAS:New( Mission, self.SetGroup, string.format( "CAS.%03d", DetectedItemID ), TargetSetUnit ) + Task = TASK_A2G_CAS:New( Mission, self.SetGroup, string.format( "CAS.%03d", DetectedItemID ), TargetSetUnit ) end -- Evaluate BAI if not Task then local TargetSetUnit = self:EvaluateBAI( DetectedItem, self.Mission:GetCommandCenter():GetPositionable():GetCoalition() ) -- Returns a SetUnit if there are targets to be BAIed... if TargetSetUnit then - Task = TASK_BAI:New( Mission, self.SetGroup, string.format( "BAI.%03d", DetectedItemID ), TargetSetUnit ) + Task = TASK_A2G_BAI:New( Mission, self.SetGroup, string.format( "BAI.%03d", DetectedItemID ), TargetSetUnit ) end end end diff --git a/Utils/Slate Documentation Generator/bin/TreeHierarchy.csv b/Utils/Slate Documentation Generator/bin/TreeHierarchy.csv index 2f09984f2..49f4db68e 100644 --- a/Utils/Slate Documentation Generator/bin/TreeHierarchy.csv +++ b/Utils/Slate Documentation Generator/bin/TreeHierarchy.csv @@ -1,13 +1,13 @@ -@K=function, @M=Task_A2A, @N=onafterRouteToRendezVous, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2A.lua, @C=4756, -@K=function, @M=Task_A2A, @N=OnAfterArriveAtRendezVous, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2A.lua, @C=5417, -@K=function, @M=Task_A2A, @N=onafterEngage, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2A.lua, @C=5814, -@K=function, @M=Task_A2A, @N=onafterRouteToTarget, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2A.lua, @C=6136, -@K=function, @M=Task_A2A, @N=onafterRouteToTargets, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2A.lua, @C=7017, -@K=function, @M=Task_A2G, @N=onafterRouteToRendezVous, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2G.lua, @C=5157, -@K=function, @M=Task_A2G, @N=OnAfterArriveAtRendezVous, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2G.lua, @C=5818, -@K=function, @M=Task_A2G, @N=onafterEngage, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2G.lua, @C=6215, -@K=function, @M=Task_A2G, @N=onafterRouteToTarget, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2G.lua, @C=6537, -@K=function, @M=Task_A2G, @N=onafterRouteToTargets, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2G.lua, @C=7416, +@K=function, @M=Task_A2A, @N=onafterRouteToRendezVous, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2A.lua, @C=4585, +@K=function, @M=Task_A2A, @N=OnAfterArriveAtRendezVous, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2A.lua, @C=5246, +@K=function, @M=Task_A2A, @N=onafterEngage, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2A.lua, @C=5643, +@K=function, @M=Task_A2A, @N=onafterRouteToTarget, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2A.lua, @C=5965, +@K=function, @M=Task_A2A, @N=onafterRouteToTargets, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2A.lua, @C=6846, +@K=function, @M=Task_A2G, @N=onafterRouteToRendezVous, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2G.lua, @C=4672, +@K=function, @M=Task_A2G, @N=OnAfterArriveAtRendezVous, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2G.lua, @C=5333, +@K=function, @M=Task_A2G, @N=onafterEngage, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2G.lua, @C=5730, +@K=function, @M=Task_A2G, @N=onafterRouteToTarget, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2G.lua, @C=6052, +@K=function, @M=Task_A2G, @N=onafterRouteToTargets, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2G.lua, @C=6931, @K=function, @M=Task_Cargo, @N=onafterSelectAction, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=10711, @K=function, @M=Task_Cargo, @N=OnLeaveWaitingForCommand, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=13740, @K=function, @M=Task_Cargo, @N=onafterRouteToPickup, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=14601, diff --git a/docs/Documentation/AI_Cas.html b/docs/Documentation/AI_Cas.html index 677dbe72c..1ae0d9720 100644 --- a/docs/Documentation/AI_Cas.html +++ b/docs/Documentation/AI_Cas.html @@ -491,13 +491,13 @@ It can be notified to go RTB through the RTB event.

Engage Event

-

1. AICASZONE constructor

+

AICASZONE constructor

-

2. AICASZONE is a FSM

+

AICASZONE is a FSM

Process

diff --git a/docs/Documentation/AI_Patrol.html b/docs/Documentation/AI_Patrol.html index 72b9c5689..f0b7b24e4 100644 --- a/docs/Documentation/AI_Patrol.html +++ b/docs/Documentation/AI_Patrol.html @@ -956,9 +956,6 @@ Use the method AIPATROLZONE.M - -

This table contains the targets detected during patrol.

-
diff --git a/docs/Documentation/Cargo.html b/docs/Documentation/Cargo.html index 243a8f68c..878d3c7dc 100644 --- a/docs/Documentation/Cargo.html +++ b/docs/Documentation/Cargo.html @@ -2924,7 +2924,6 @@ The range till cargo will board.

- CARGO_UNIT.CargoCarrier @@ -3050,6 +3049,7 @@ The range till cargo will board.

+ #number CARGO_UNIT.RunCount diff --git a/docs/Documentation/CommandCenter.html b/docs/Documentation/CommandCenter.html index 3f64c4468..b033d6dca 100644 --- a/docs/Documentation/CommandCenter.html +++ b/docs/Documentation/CommandCenter.html @@ -110,7 +110,9 @@ COMMANDCENTER +

COMMANDCENTER class, extends Base#BASE

+

The COMMANDCENTER class governs multiple missions, the tasking and the reporting.

@@ -126,12 +128,6 @@ COMMANDCENTER:AddMission(Mission)

Add a MISSION to be governed by the HQ command center.

- - - - COMMANDCENTER.ClassName - - @@ -147,13 +143,7 @@ - COMMANDCENTER.CommandCenterName - - - - - - COMMANDCENTER.CommandCenterPositionable + COMMANDCENTER.CommunicationMode @@ -192,6 +182,12 @@ COMMANDCENTER:HasGroup(Wrapper, MissionGroup)

Checks of the COMMANDCENTER has a GROUP.

+ + + + COMMANDCENTER:IsModeWWII() + +

Returns if the commandcenter operations is in WWII mode

@@ -210,12 +206,6 @@ COMMANDCENTER:MessageToGroup(Message, TaskGroup, Name)

Send a CC message to a GROUP.

- - - - COMMANDCENTER.Name - - @@ -252,6 +242,20 @@ COMMANDCENTER:SetMenu()

Sets the menu structure of the Missions governed by the HQ command center.

+ + + + COMMANDCENTER:SetModeWWII() + +

Set the commandcenter operations in WWII mode +This will disable LL, MGRS, BRA, BULLS navigatin messages sent by the Command Center, +and will be replaced by a navigation using Reference Zones.

+ + + + COMMANDCENTER:SetReferenceZones(ReferenceZonePrefix) + +

Set special Reference Zones known by the Command Center to guide airborne pilots during WWII.

@@ -331,7 +335,59 @@
+

COMMANDCENTER class, extends Base#BASE

+

The COMMANDCENTER class governs multiple missions, the tasking and the reporting.

+ + +

+ The commandcenter communicates important messages between the various groups of human players executing tasks in missions.

+ +

COMMANDCENTER constructor

+ + + +

Mission Management

+ + + +

Reference Zones

+ +

Command Centers may be aware of certain Reference Zones within the battleground. These Reference Zones can refer to +known areas, recognizable buildings or sites, or any other point of interest. +Command Centers will use these Reference Zones to help pilots with defining coordinates in terms of navigation +during the WWII era. +The Reference Zones are related to the WWII mode that the Command Center will operate in. +Use the method COMMANDCENTER.SetModeWWII() to set the mode of communication to the WWII mode.

+ +

In WWII mode, the Command Center will receive detected targets, and will select for each target the closest +nearby Reference Zone. This allows pilots to navigate easier through the battle field readying for combat.

+ +

The Reference Zones need to be set by the Mission Designer in the Mission Editor. +Reference Zones are set by normal trigger zones. One can color the zones in a specific color, +and the radius of the zones doesn't matter, only the point is important. Place the center of these Reference Zones at +specific scenery objects or points of interest (like cities, rivers, hills, crossing etc). +The trigger zones indicating a Reference Zone need to follow a specific syntax. +The name of each trigger zone expressing a Reference Zone need to start with a classification name of the object, +followed by a #, followed by a symbolic name of the Reference Zone. +A few examples:

+ +
    +
  • A church at Tskinvali would be indicated as: Church#Tskinvali
  • +
  • A train station near Kobuleti would be indicated as: Station#Kobuleti
  • +
+ +

The COMMANDCENTER class contains a method to indicate which trigger zones need to be used as Reference Zones. +This is done by using the method COMMANDCENTER.SetReferenceZones(). +For the moment, only one Reference Zone class can be specified, but in the future, more classes will become possible.

+ +

@@ -380,20 +436,6 @@

Tasking.Mission#MISSION:

- -
-
-
- - #string - -COMMANDCENTER.ClassName - -
-
- - -
@@ -427,21 +469,8 @@
#string - -COMMANDCENTER.CommandCenterName - -
-
- - - -
-
-
-
- - -COMMANDCENTER.CommandCenterPositionable + +COMMANDCENTER.CommunicationMode
@@ -566,6 +595,24 @@ Group#GROUP

#boolean:

+
+
+
+
+ + +COMMANDCENTER:IsModeWWII() + +
+
+ +

Returns if the commandcenter operations is in WWII mode

+ +

Return value

+ +

#boolean: +true if in WWII mode.

+
@@ -640,20 +687,6 @@ Group#GROUP

- -
-
-
- - #string - -COMMANDCENTER.Name - -
-
- - -
@@ -804,6 +837,81 @@ Group#GROUP

Sets the menu structure of the Missions governed by the HQ command center.

+ +
+
+
+ + +COMMANDCENTER:SetModeWWII() + +
+
+ +

Set the commandcenter operations in WWII mode +This will disable LL, MGRS, BRA, BULLS navigatin messages sent by the Command Center, +and will be replaced by a navigation using Reference Zones.

+ + +

It will also disable the settings at the settings menu for these.

+ +

Return value

+ +

#COMMANDCENTER:

+ + +
+
+
+
+ + +COMMANDCENTER:SetReferenceZones(ReferenceZonePrefix) + +
+
+ +

Set special Reference Zones known by the Command Center to guide airborne pilots during WWII.

+ + + +

These Reference Zones are normal trigger zones, with a special naming. +The Reference Zones need to be set by the Mission Designer in the Mission Editor. +Reference Zones are set by normal trigger zones. One can color the zones in a specific color, +and the radius of the zones doesn't matter, only the center of the zone is important. Place the center of these Reference Zones at +specific scenery objects or points of interest (like cities, rivers, hills, crossing etc). +The trigger zones indicating a Reference Zone need to follow a specific syntax. +The name of each trigger zone expressing a Reference Zone need to start with a classification name of the object, +followed by a #, followed by a symbolic name of the Reference Zone. +A few examples:

+ +
    +
  • A church at Tskinvali would be indicated as: Church#Tskinvali
  • +
  • A train station near Kobuleti would be indicated as: Station#Kobuleti
  • +
+ +

Taking the above example, this is how this method would be used:

+ +
CC:SetReferenceZones( "Church" )
+CC:SetReferenceZones( "Station" )
+
+ + + +

Parameter

+
    +
  • + +

    #string ReferenceZonePrefix : +The name before the #-mark indicating the class of the Reference Zones.

    + +
  • +
+

Return value

+ +

#COMMANDCENTER:

+ +
diff --git a/docs/Documentation/Controllable.html b/docs/Documentation/Controllable.html index 64d62a028..888b18d40 100644 --- a/docs/Documentation/Controllable.html +++ b/docs/Documentation/Controllable.html @@ -168,6 +168,7 @@ This is different from the EnRoute tasks, where the targets of the task need to
  • CONTROLLABLE.EnRouteTaskAWACS: (AIR) Aircraft will act as an AWACS for friendly units (will provide them with information about contacts). No parameters.
  • CONTROLLABLE.EnRouteTaskEngageControllable: (AIR) Engaging a controllable. The task does not assign the target controllable to the unit/controllable to attack now; it just allows the unit/controllable to engage the target controllable as well as other assigned targets.
  • CONTROLLABLE.EnRouteTaskEngageTargets: (AIR) Engaging targets of defined types.
  • +
  • CONTROLLABLE.EnRouteTaskEngageTargetsInZone: (AIR) Engaging a targets of defined types at circle-shaped zone.
  • CONTROLLABLE.EnRouteTaskEWR: (AIR) Attack the Unit.
  • CONTROLLABLE.EnRouteTaskFAC: (AIR + GROUND) The task makes the controllable/unit a FAC and lets the FAC to choose a targets (enemy ground controllable) around as well as other assigned targets.
  • CONTROLLABLE.EnRouteTaskFAC_EngageControllable: (AIR + GROUND) The task makes the controllable/unit a FAC and lets the FAC to choose the target (enemy ground controllable) as well as other assigned targets.
  • @@ -324,6 +325,12 @@ This is different from the EnRoute tasks, where the targets of the task need to CONTROLLABLE:EnRouteTaskEngageTargets(Distance, TargetTypes, Priority)

    (AIR) Engaging targets of defined types.

    + + + + CONTROLLABLE:EnRouteTaskEngageTargetsInZone(Vec2, Radius, TargetTypes, Priority) + +

    (AIR) Engaging a targets of defined types at circle-shaped zone.

    @@ -1123,6 +1130,51 @@ The DCS task structure.

    + +CONTROLLABLE:EnRouteTaskEngageTargetsInZone(Vec2, Radius, TargetTypes, Priority) + +
    +
    + +

    (AIR) Engaging a targets of defined types at circle-shaped zone.

    + +

    Parameters

    +
      +
    • + +

      Dcs.DCSTypes#Vec2 Vec2 : +2D-coordinates of the zone.

      + +
    • +
    • + +

      Dcs.DCSTypes#Distance Radius : +Radius of the zone.

      + +
    • +
    • + +

      Dcs.DCSTypes#AttributeNameArray TargetTypes : +Array of target categories allowed to engage.

      + +
    • +
    • + +

      #number Priority : +All en-route tasks have the priority parameter. This is a number (less value - higher priority) that determines actions related to what task will be performed first.

      + +
    • +
    +

    Return value

    + +

    Dcs.DCSTasking.Task#Task: +The DCS task structure.

    + +
    +
    +
    +
    + CONTROLLABLE:EnRouteTaskEngageUnit(EngageUnit, Priority, GroupAttack, WeaponExpend, AttackQty, Direction, Altitude, Visible, ControllableAttack) diff --git a/docs/Documentation/Database.html b/docs/Documentation/Database.html index 074b166d3..96e43500a 100644 --- a/docs/Documentation/Database.html +++ b/docs/Documentation/Database.html @@ -529,6 +529,12 @@ The following iterator methods are currently available within the DATABASE:

    DATABASE.UNITS_Position + + + + DATABASE.ZONENAMES + + @@ -2034,6 +2040,20 @@ self

    + +
    +
    +
    + + + +DATABASE.ZONENAMES + +
    +
    + + +
    diff --git a/docs/Documentation/Designate.html b/docs/Documentation/Designate.html index bf0481cec..1a1acc091 100644 --- a/docs/Documentation/Designate.html +++ b/docs/Documentation/Designate.html @@ -895,7 +895,6 @@ function below will use the range 1-7 just in case

    - DESIGNATE.LaserCodes diff --git a/docs/Documentation/Detection.html b/docs/Documentation/Detection.html index 5cbd9bb85..f7dd38549 100644 --- a/docs/Documentation/Detection.html +++ b/docs/Documentation/Detection.html @@ -360,9 +360,9 @@ DETECTION uses the in-built detection capabilities of DCS World, but adds new fu - DETECTION_BASE:CleanDetectionItems() + DETECTION_BASE:CleanDetectionItem(DetectedItem, DetectedItemID) -

    Make a DetectionSet table.

    + @@ -650,6 +650,12 @@ The different values of Unit.Category can be:

    DETECTION_BASE:InitDetectVisual(DetectVisual)

    Detect Visual.

    + + + + DETECTION_BASE:IsDetectedItemDetected(DetectedItem) + +

    Checks if there is at least one UNIT detected in the Set of the the DetectedItem.

    @@ -854,6 +860,12 @@ The different values of Unit.Category can be:

    DETECTION_BASE:UnIdentifyDetectedObject(DetectedObject)

    UnIdentify a detected object during detection processing.

    + + + + DETECTION_BASE:UpdateDetectedItemDetection(DetectedItem) + +

    Set IsDetected flag for all DetectedItems.

    @@ -893,7 +905,7 @@ The different values of Unit.Category can be:

    - DETECTION_BASE:onafterDetectionGroup(From, Event, To, DetectionGroup) + DETECTION_BASE:onafterDetectionGroup(From, Event, To, DetectionGroup, DetectionTimeStamp) @@ -2188,22 +2200,32 @@ The index of the DetectedItem.

    - -DETECTION_BASE:CleanDetectionItems() + +DETECTION_BASE:CleanDetectionItem(DetectedItem, DetectedItemID)
    -

    Make a DetectionSet table.

    + -

    This function will be overridden in the derived clsses.

    +

    Clean the DetectedItem table. + @param #DETECTIONBASE self + @return #DETECTIONBASE

    -

    Return value

    +

    Parameters

    +
    @@ -3145,6 +3167,32 @@ self

    + +DETECTION_BASE:IsDetectedItemDetected(DetectedItem) + +
    +
    + +

    Checks if there is at least one UNIT detected in the Set of the the DetectedItem.

    + +

    Parameter

    +
      +
    • + +

      DetectedItem :

      + +
    • +
    +

    Return value

    + +

    #boolean: +true if at least one UNIT is detected from the DetectedSet, false if no UNIT was detected from the DetectedSet.

    + +
    +
    +
    +
    + DETECTION_BASE:IsDetectedObjectIdentified(DetectedObject) @@ -4099,6 +4147,42 @@ self

    +
    +
    +
    + + +DETECTION_BASE:UpdateDetectedItemDetection(DetectedItem) + +
    +
    + +

    Set IsDetected flag for all DetectedItems.

    + +

    Parameter

    +
      +
    • + +

      DetectedItem :

      + +
    • +
    +

    Return values

    +
      +
    1. + +

      #DETECTION_BASE.DetectedItem: +DetectedItem

      + +
    2. +
    3. + +

      #boolean: +true if at least one UNIT is detected from the DetectedSet, false if no UNIT was detected from the DetectedSet.

      + +
    4. +
    +
    @@ -4240,7 +4324,7 @@ The To State string.

    -DETECTION_BASE:onafterDetectionGroup(From, Event, To, DetectionGroup) +DETECTION_BASE:onafterDetectionGroup(From, Event, To, DetectionGroup, DetectionTimeStamp)
    @@ -4272,6 +4356,11 @@ The To State string.

    Wrapper.Group#GROUP DetectionGroup : The Group detecting.

    + +
  • + +

    DetectionTimeStamp :

    +
  • diff --git a/docs/Documentation/Fsm.html b/docs/Documentation/Fsm.html index 1b1039138..c5184cb8d 100644 --- a/docs/Documentation/Fsm.html +++ b/docs/Documentation/Fsm.html @@ -1627,7 +1627,7 @@ A string defining the start state.

    - #string + FSM._StartState @@ -1926,6 +1926,7 @@ A string defining the start state.

    + FSM.current diff --git a/docs/Documentation/Mission.html b/docs/Documentation/Mission.html index 6d500b748..a130c83cf 100644 --- a/docs/Documentation/Mission.html +++ b/docs/Documentation/Mission.html @@ -286,13 +286,19 @@ A CLIENT needs to be registered within the MISSION:MenuReportOverview(TaskStatus, ReportGroup) + MISSION:MenuReportPlayersPerTask(ReportGroup) - MISSION:MenuReportSummary(ReportGroup) + MISSION:MenuReportTasksPerStatus(TaskStatus, ReportGroup) + + + + + + MISSION:MenuReportTasksSummary(ReportGroup) @@ -466,7 +472,7 @@ A CLIENT needs to be registered within the MISSION:ReportDetails() + MISSION:ReportDetails(ReportGroup)

    Create a detailed report of the Mission, listing all the details of the Task.

    @@ -478,9 +484,9 @@ A CLIENT needs to be registered within the MISSION:ReportPlayers() + MISSION:ReportPlayersPerTask(ReportGroup) -

    Create a player report of the Mission.

    +

    Create an active player report of the Mission.

    @@ -1239,8 +1245,29 @@ true if Unit is part of a Task in the Mission.

    - -MISSION:MenuReportOverview(TaskStatus, ReportGroup) + +MISSION:MenuReportPlayersPerTask(ReportGroup) + +
    +
    + + + +

    Parameter

    + +
    +
    +
    +
    + + +MISSION:MenuReportTasksPerStatus(TaskStatus, ReportGroup)
    @@ -1266,8 +1293,8 @@ The status

    - -MISSION:MenuReportSummary(ReportGroup) + +MISSION:MenuReportTasksSummary(ReportGroup)
    @@ -2157,13 +2184,21 @@ self

    -MISSION:ReportDetails() +MISSION:ReportDetails(ReportGroup)

    Create a detailed report of the Mission, listing all the details of the Task.

    +

    Parameter

    +
      +
    • + +

      ReportGroup :

      + +
    • +

    Return value

    #string:

    @@ -2205,24 +2240,32 @@ self

    - -MISSION:ReportPlayers() + +MISSION:ReportPlayersPerTask(ReportGroup)
    -

    Create a player report of the Mission.

    +

    Create an active player report of the Mission.

    This reports provides a one liner of the mission status. It indicates how many players and how many Tasks.

    -
    Mission "<MissionName>" - Status "<MissionStatus>"
    +
    Mission "<MissionName>" - <MissionStatus> - Active Players Report
      - Player "<PlayerName>: Task <TaskName> <TaskStatus>, Task <TaskName> <TaskStatus>
      - Player <PlayerName>: Task <TaskName> <TaskStatus>, Task <TaskName> <TaskStatus>
      - ..
     
    +

    Parameter

    +
      +
    • + +

      ReportGroup :

      + +
    • +

    Return value

    #string:

    diff --git a/docs/Documentation/Movement.html b/docs/Documentation/Movement.html index fe2422f58..a719ec933 100644 --- a/docs/Documentation/Movement.html +++ b/docs/Documentation/Movement.html @@ -218,6 +218,7 @@ on defined intervals (currently every minute).

    + #number MOVEMENT.AliveUnits @@ -226,6 +227,9 @@ on defined intervals (currently every minute).

    + +

    Contains the counter how many units are currently alive

    +
    diff --git a/docs/Documentation/Point.html b/docs/Documentation/Point.html index 1f63adeda..165f53c56 100644 --- a/docs/Documentation/Point.html +++ b/docs/Documentation/Point.html @@ -434,6 +434,13 @@ COORDINATE:ToStringBULLS(Coalition, Settings)

    Return a BULLS string from a COORDINATE to the BULLS of the coalition.

    + + + + COORDINATE:ToStringFromRP(Controllable, Settings, ReferenceCoord, ReferenceName) + +

    Provides a coordinate string of the point, based on a coordinate format system: + * Uses default settings in COORDINATE.

    @@ -1737,7 +1744,7 @@ The Vec2 point.

    Return value

    -

    Core.Point#COORDINATE:

    +

    #COORDINATE:

    @@ -2133,6 +2140,53 @@ The BR text.

    + +COORDINATE:ToStringFromRP(Controllable, Settings, ReferenceCoord, ReferenceName) + +
    +
    + +

    Provides a coordinate string of the point, based on a coordinate format system: + * Uses default settings in COORDINATE.

    + + +
      +
    • Can be overridden if for a GROUP containing x clients, a menu was selected to override the default.
    • +
    + +

    Parameters

    + +

    Return value

    + +

    #string: +The coordinate Text in the configured coordinate system.

    + +
    +
    +
    +
    + COORDINATE:ToStringLL(Settings) @@ -2767,7 +2821,6 @@ The y coordinate.

    - POINT_VEC2.z diff --git a/docs/Documentation/Settings.html b/docs/Documentation/Settings.html index fdfdf1448..354a931f0 100644 --- a/docs/Documentation/Settings.html +++ b/docs/Documentation/Settings.html @@ -1071,7 +1071,7 @@ true if metric.

    - #boolean + SETTINGS.Metric diff --git a/docs/Documentation/Spawn.html b/docs/Documentation/Spawn.html index 0ce1033f1..5c4529eb3 100644 --- a/docs/Documentation/Spawn.html +++ b/docs/Documentation/Spawn.html @@ -463,6 +463,12 @@ and any spaces before and after the resulting name are removed.

    SPAWN.SpawnGroups + + + + SPAWN.SpawnHookScheduler + + @@ -775,6 +781,12 @@ and any spaces before and after the resulting name are removed.

    SPAWN:_TranslateRotate(SpawnIndex, SpawnRootX, SpawnRootY, SpawnX, SpawnY, SpawnAngle) + + + + SPAWN.uncontrolled + + @@ -2450,6 +2462,23 @@ SpawnGroupName

    Array containing the descriptions of each Group to be Spawned.

    +
    +
    +
    +
    + + + +SPAWN.SpawnHookScheduler + +
    +
    + + + + +

    delay calling this for .1 seconds so that it hopefully comes after the BIRTH event of the group.

    +
    @@ -2532,9 +2561,6 @@ when nothing was spawned.

    - -

    Overwrite unit names by default with group name.

    -
    @@ -2956,7 +2982,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 ) -

    Flag that indicates if all the Groups of the SpawnGroup need to be visible when Spawned.

    +

    When the first Spawn executes, all the Groups need to be made visible before start.

    @@ -3522,6 +3548,20 @@ True = Continue Scheduler

    + +
    +
    +
    + + + +SPAWN.uncontrolled + +
    +
    + + +
    diff --git a/docs/Documentation/Spot.html b/docs/Documentation/Spot.html index 765a0449d..018cdd833 100644 --- a/docs/Documentation/Spot.html +++ b/docs/Documentation/Spot.html @@ -766,7 +766,6 @@ true if it is lasing

    - SPOT.ScheduleID @@ -780,7 +779,6 @@ true if it is lasing

    - SPOT.SpotIR @@ -794,7 +792,6 @@ true if it is lasing

    - SPOT.SpotLaser @@ -808,7 +805,6 @@ true if it is lasing

    - SPOT.Target diff --git a/docs/Documentation/Task.html b/docs/Documentation/Task.html index 37429004e..78495f0c4 100644 --- a/docs/Documentation/Task.html +++ b/docs/Documentation/Task.html @@ -456,7 +456,7 @@ - TASK:ReportDetails(TaskGroup) + TASK:ReportDetails(TaskGroup, ReportGroup)

    Create a detailed report of the Task.

    @@ -2010,7 +2010,7 @@ self

    -TASK:ReportDetails(TaskGroup) +TASK:ReportDetails(TaskGroup, ReportGroup)
    @@ -2020,12 +2020,17 @@ self

    List the Task Status, and the Players assigned to the Task.

    -

    Parameter

    +

    Parameters

    Return value

    diff --git a/docs/Documentation/Task_A2A.html b/docs/Documentation/Task_A2A.html index 5a87f36ca..4c8514b50 100644 --- a/docs/Documentation/Task_A2A.html +++ b/docs/Documentation/Task_A2A.html @@ -131,10 +131,6 @@ The TASK_A2A is implemented using a Stat
  • TASK_A2A.SetPenaltyOnFailed(): Set a penalty when the A2A attack has failed.
  • -

    2) TaskA2A#TASKINTERCEPT class, extends TaskA2A#TASKA2A

    - -

    The TASKA2AINTERCEPT class defines an INTERCEPT task for a Set of Target Units.

    -

    API CHANGE HISTORY

    @@ -174,13 +170,25 @@ The TASK_A2A is implemented using a Stat TASK_A2A_ENGAGE +

    TASKA2AENGAGE class, extends TaskA2A#TASKA2A

    +

    The TASKA2AENGAGE class defines an engage task for a human player to be executed.

    TASK_A2A_INTERCEPT +

    TASKA2AINTERCEPT class, extends TaskA2A#TASKA2A

    +

    The TASKA2AINTERCEPT class defines an intercept task for a human player to be executed.

    + + + + TASK_A2A_SWEEP + +

    TASKA2ASWEEP class, extends TaskA2A#TASKA2A

    + +

    The TASKA2ASWEEP class defines a sweep task for a human player to be executed.

    @@ -281,12 +289,6 @@ The TASK_A2A is implemented using a Stat

    Type TASK_A2A_ENGAGE

    - - - -
    TASK_A2A_ENGAGE.ClassName - -
    TASK_A2A_ENGAGE:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing)

    Instantiates a new TASKA2AENGAGE.

    @@ -303,12 +305,6 @@ The TASK_A2A is implemented using a Stat

    Type TASK_A2A_INTERCEPT

    - - - - + +
    TASK_A2A_INTERCEPT.ClassName - -
    TASK_A2A_INTERCEPT:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing)

    Instantiates a new TASKA2AINTERCEPT.

    @@ -318,6 +314,22 @@ The TASK_A2A is implemented using a Stat
    TASK_A2A_INTERCEPT.TargetSetUnit +
    + +

    Type TASK_A2A_SWEEP

    + + + + + + + +
    TASK_A2A_SWEEP:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing) +

    Instantiates a new TASKA2ASWEEP.

    +
    TASK_A2A_SWEEP.TargetSetUnit +
    @@ -347,6 +359,18 @@ The TASK_A2A is implemented using a Stat
    +

    TASKA2AENGAGE class, extends TaskA2A#TASKA2A

    + +

    The TASKA2AENGAGE class defines an engage task for a human player to be executed.

    + + +

    When enemy planes are close to human players, use this task type is used urge the players to get out there!

    + +

    The TASKA2AENGAGE is used by the TaskA2ADispatcher#TASKA2ADISPATCHER to automatically create engage tasks +based on detected airborne enemy targets intruding friendly airspace.

    + +

    The task is defined for a Mission#MISSION, where a friendly Set#SET_GROUP consisting of GROUPs with one human players each, is engaging the targets. +The task is given a name and a briefing, that is used in the menu structure and in the reporting.

    @@ -361,6 +385,46 @@ The TASK_A2A is implemented using a Stat
    +

    TASKA2AINTERCEPT class, extends TaskA2A#TASKA2A

    + +

    The TASKA2AINTERCEPT class defines an intercept task for a human player to be executed.

    + + +

    When enemy planes need to be intercepted by human players, use this task type to urgen the players to get out there!

    + +

    The TASKA2AINTERCEPT is used by the TaskA2ADispatcher#TASKA2ADISPATCHER to automatically create intercept tasks +based on detected airborne enemy targets intruding friendly airspace.

    + +

    The task is defined for a Mission#MISSION, where a friendly Set#SET_GROUP consisting of GROUPs with one human players each, is intercepting the targets. +The task is given a name and a briefing, that is used in the menu structure and in the reporting.

    + + +
    + +
    +
    + + #TASK_A2A_SWEEP + +TASK_A2A_SWEEP + +
    +
    + +

    TASKA2ASWEEP class, extends TaskA2A#TASKA2A

    + +

    The TASKA2ASWEEP class defines a sweep task for a human player to be executed.

    + + +

    A sweep task needs to be given when targets were detected but somehow the detection was lost. +Most likely, these enemy planes are hidden in the mountains or are flying under radar. +These enemy planes need to be sweeped by human players, and use this task type to urge the players to get out there and find those enemy fighters.

    + +

    The TASKA2ASWEEP is used by the TaskA2ADispatcher#TASKA2ADISPATCHER to automatically create sweep tasks +based on detected airborne enemy targets intruding friendly airspace, for which the detection has been lost for more than 60 seconds.

    + +

    The task is defined for a Mission#MISSION, where a friendly Set#SET_GROUP consisting of GROUPs with one human players each, is sweeping the targets. +The task is given a name and a briefing, that is used in the menu structure and in the reporting.

    @@ -847,20 +911,6 @@ The Zone object where the Target is located on the map.

    - #string - -TASK_A2A_ENGAGE.ClassName - -
    -
    - - - -
    -
    -
    -
    - TASK_A2A_ENGAGE:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing) @@ -930,20 +980,6 @@ self

    - #string - -TASK_A2A_INTERCEPT.ClassName - -
    -
    - - - -
    -
    -
    -
    - TASK_A2A_INTERCEPT:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing) @@ -1002,6 +1038,75 @@ self

    + +
    + +

    Type TASK_A2A_SWEEP

    + +

    The TASKA2ASWEEP class

    + +

    Field(s)

    +
    +
    + + +TASK_A2A_SWEEP:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing) + +
    +
    + +

    Instantiates a new TASKA2ASWEEP.

    + +

    Parameters

    +
      +
    • + +

      Tasking.Mission#MISSION Mission :

      + +
    • +
    • + +

      Core.Set#SET_GROUP SetGroup : +The set of groups for which the Task can be assigned.

      + +
    • +
    • + +

      #string TaskName : +The name of the Task.

      + +
    • +
    • + +

      Core.Set#SET_UNIT TargetSetUnit :

      + +
    • +
    • + +

      #string TaskBriefing : +The briefing of the task.

      + +
    • +
    +

    Return value

    + +

    #TASKA2ASWEEP: +self

    + +
    +
    +
    +
    + + Set#SET_UNIT + +TASK_A2A_SWEEP.TargetSetUnit + +
    +
    + + +
    diff --git a/docs/Documentation/Task_A2A_Dispatcher.html b/docs/Documentation/Task_A2A_Dispatcher.html index 56997d179..1a0f304b4 100644 --- a/docs/Documentation/Task_A2A_Dispatcher.html +++ b/docs/Documentation/Task_A2A_Dispatcher.html @@ -104,38 +104,6 @@ -
    - -

    1) #TASKA2ADISPATCHER class, extends #DETECTION_MANAGER

    - -

    The #TASKA2ADISPATCHER class implements the dynamic dispatching of tasks upon groups of detected units determined a Set of EWR installation groups. -The EWR will detect units, will group them, and will dispatch Tasks to groups. Depending on the type of target detected, different tasks will be dispatched. -Find a summary below describing for which situation a task type is created:

    - -
      -
    • INTERCEPT Task: Is created when the target is known, is detected and within a danger zone, and there is no friendly airborne in range.
    • -
    • SWEEP Task: Is created when the target is unknown, was detected and the last position is only known, and within a danger zone, and there is no friendly airborne in range.
    • -
    • ENGAGE Task: Is created when the target is known, is detected and within a danger zone, and there is a friendly airborne in range, that will receive this task.
    • -
    - -

    Other task types will follow...

    - -

    3.1) TASKA2ADISPATCHER constructor:

    -

    The TASKA2ADISPATCHER.New() method creates a new TASKA2ADISPATCHER instance.

    - -
    - -

    API CHANGE HISTORY

    - -

    The underlying change log documents the API changes. Please read this carefully. The following notation is used:

    - -
      -
    • Added parts are expressed in bold type face.
    • -
    • Removed parts are expressed in italic type face.
    • -
    - -

    Hereby the change log:

    -

    AUTHORS and CONTRIBUTIONS

    @@ -154,22 +122,18 @@ Find a summary below describing for which situation a task type is created:

    TASK_A2A_DISPATCHER +

    TASKA2ADISPATCHER class, extends Tasking#DETECTION_MANAGER

    +

    The #TASKA2ADISPATCHER class implements the dynamic dispatching of tasks upon groups of detected units determined a Set of EWR installation groups.

    Type TASK_A2A_DISPATCHER

    - - - - @@ -188,6 +152,12 @@ Find a summary below describing for which situation a task type is created:

    + + + + @@ -224,18 +194,6 @@ Find a summary below describing for which situation a task type is created:

    - - - - - - - -
    TASK_A2A_DISPATCHER.ClassName - -
    TASK_A2A_DISPATCHER.Detection -

    The DETECTION_BASE object that is used to report the detected objects. The Detection object will only function in RADAR mode!!!

    +
    TASK_A2A_DISPATCHER:EvaluateRemoveTask(Mission, Task, Detection, DetectedItemID, DetectedItemChange, DetectedItem, DetectedItemIndex, DetectedItemChanged)

    Evaluates the removal of the Task from the Mission.

    +
    TASK_A2A_DISPATCHER:EvaluateSWEEP(DetectedItem) +

    Creates an SWEEP task when there are targets for it.

    TASK_A2A_DISPATCHER:ProcessDetected(Detection)

    Assigns tasks in relation to the detected items to the Set#SET_GROUP.

    -
    TASK_A2A_DISPATCHER.SetGroup -

    The groups to which the FAC will report to.

    -
    TASK_A2A_DISPATCHER.Tasks -
    @@ -251,6 +209,25 @@ Find a summary below describing for which situation a task type is created:

    +

    TASKA2ADISPATCHER class, extends Tasking#DETECTION_MANAGER

    + +

    The #TASKA2ADISPATCHER class implements the dynamic dispatching of tasks upon groups of detected units determined a Set of EWR installation groups.

    + + +

    The EWR will detect units, will group them, and will dispatch Tasks to groups. Depending on the type of target detected, different tasks will be dispatched. +Find a summary below describing for which situation a task type is created:

    + +
      +
    • INTERCEPT Task: Is created when the target is known, is detected and within a danger zone, and there is no friendly airborne in range.
    • +
    • SWEEP Task: Is created when the target is unknown, was detected and the last position is only known, and within a danger zone, and there is no friendly airborne in range.
    • +
    • ENGAGE Task: Is created when the target is known, is detected and within a danger zone, and there is a friendly airborne in range, that will receive this task.
    • +
    + +

    Other task types will follow...

    + +

    TASKA2ADISPATCHER constructor:

    +
    +

    The TASKA2ADISPATCHER.New() method creates a new TASKA2ADISPATCHER instance.

    @@ -265,28 +242,14 @@ Find a summary below describing for which situation a task type is created:

    - #string - -TASK_A2A_DISPATCHER.ClassName - -
    -
    - - - -
    -
    -
    -
    - - Functional.Detection#DETECTION_BASE + TASK_A2A_DISPATCHER.Detection
    -

    The DETECTION_BASE object that is used to report the detected objects. The Detection object will only function in RADAR mode!!!

    +
    @@ -430,6 +393,42 @@ The detection created by the Detectio
    + +TASK_A2A_DISPATCHER:EvaluateSWEEP(DetectedItem) + +
    +
    + +

    Creates an SWEEP task when there are targets for it.

    + +

    Parameter

    + +

    Return values

    +
      +
    1. + +

      Set#SET_UNIT: +TargetSetUnit: The target set of units.

      + +
    2. +
    3. + +

      #nil: +If there are no targets to be set.

      + +
    4. +
    +
    +
    +
    +
    + TASK_A2A_DISPATCHER:GetFriendliesNearBy(DetectedItem) @@ -482,7 +481,7 @@ The detection created by the Detectio
    - Tasking.Mission#MISSION + TASK_A2A_DISPATCHER.Mission @@ -606,34 +605,6 @@ The detection created by the Detectio

    #boolean: Return true if you want the task assigning to continue... false will cancel the loop.

    - -
    -
    -
    - - Set#SET_GROUP - -TASK_A2A_DISPATCHER.SetGroup - -
    -
    - -

    The groups to which the FAC will report to.

    - -
    -
    -
    -
    - - - -TASK_A2A_DISPATCHER.Tasks - -
    -
    - - -
    diff --git a/docs/Documentation/Task_A2G.html b/docs/Documentation/Task_A2G.html index 78390c8c1..6590c6927 100644 --- a/docs/Documentation/Task_A2G.html +++ b/docs/Documentation/Task_A2G.html @@ -131,22 +131,6 @@ The TASK_A2G is implemented using a Stat
  • TASK_A2G.SetPenaltyOnFailed(): Set a penalty when the A2G attack has failed.
  • -

    2) TaskA2G#TASKSEAD class, extends TaskA2G#TASKA2G

    - -

    The #TASK_SEAD class defines a SEAD task for a Set of Target Units.

    - -
    - -

    3) TaskA2G#TASKCAS class, extends TaskA2G#TASKA2G

    - -

    The #TASK_CAS class defines a CAS task for a Set of Target Units.

    - -
    - -

    4) TaskA2G#TASKBAI class, extends TaskA2G#TASKA2G

    - -

    The #TASK_BAI class defines a BAI task for a Set of Target Units.

    -

    API CHANGE HISTORY

    @@ -188,21 +172,27 @@ The TASK_A2G is implemented using a Stat - TASK_BAI + TASK_A2G_BAI +

    TASKA2GBAI class, extends TaskA2G#TASKA2G

    +

    The TASKA2GBAI class defines an Battlefield Air Interdiction task for a human player to be executed.

    - TASK_CAS + TASK_A2G_CAS +

    TASKA2GCAS class, extends TaskA2G#TASKA2G

    +

    The TASKA2GCAS class defines an Close Air Support task for a human player to be executed.

    - TASK_SEAD + TASK_A2G_SEAD +

    TASKA2GSEAD class, extends TaskA2G#TASKA2G

    +

    The TASKA2GSEAD class defines an Suppression or Extermination of Air Defenses task for a human player to be executed.

    @@ -300,66 +290,48 @@ The TASK_A2G is implemented using a Stat -

    Type TASK_BAI

    +

    Type TASK_A2G_BAI

    - + - - - - - +
    TASK_BAI.ClassNameTASK_A2G_BAI:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing) - +

    Instantiates a new TASKA2GBAI.

    TASK_BAI:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing) -

    Instantiates a new TASK_BAI.

    -
    TASK_BAI.TargetSetUnitTASK_A2G_BAI.TargetSetUnit
    -

    Type TASK_CAS

    +

    Type TASK_A2G_CAS

    - + - - - - - +
    TASK_CAS.ClassNameTASK_A2G_CAS:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing) - +

    Instantiates a new TASKA2GCAS.

    TASK_CAS:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing) -

    Instantiates a new TASK_CAS.

    -
    TASK_CAS.TargetSetUnitTASK_A2G_CAS.TargetSetUnit
    -

    Type TASK_SEAD

    +

    Type TASK_A2G_SEAD

    - + - - - - - + @@ -384,13 +356,23 @@ The TASK_A2G is implemented using a Stat
    - #TASK_BAI - -TASK_BAI + #TASK_A2G_BAI + +TASK_A2G_BAI
    +

    TASKA2GBAI class, extends TaskA2G#TASKA2G

    + +

    The TASKA2GBAI class defines an Battlefield Air Interdiction task for a human player to be executed.

    + + +

    These tasks are more strategic in nature and are most of the time further away from friendly forces. +BAI tasks can also be used to express the abscence of friendly forces near the vicinity.

    + +

    The TASKA2GBAI is used by the TaskA2GDispatcher#TASKA2GDISPATCHER to automatically create BAI tasks +based on detected enemy ground targets.

    @@ -398,13 +380,22 @@ The TASK_A2G is implemented using a Stat
    - #TASK_CAS - -TASK_CAS + #TASK_A2G_CAS + +TASK_A2G_CAS
    +

    TASKA2GCAS class, extends TaskA2G#TASKA2G

    + +

    The TASKA2GCAS class defines an Close Air Support task for a human player to be executed.

    + + +

    Friendly forces will be in the vicinity within 6km from the enemy.

    + +

    The TASKA2GCAS is used by the TaskA2GDispatcher#TASKA2GDISPATCHER to automatically create CAS tasks +based on detected enemy ground targets.

    @@ -412,13 +403,22 @@ The TASK_A2G is implemented using a Stat
    - #TASK_SEAD - -TASK_SEAD + #TASK_A2G_SEAD + +TASK_A2G_SEAD
    +

    TASKA2GSEAD class, extends TaskA2G#TASKA2G

    + +

    The TASKA2GSEAD 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.

    + +

    The TASKA2GSEAD is used by the TaskA2GDispatcher#TASKA2GDISPATCHER to automatically create SEAD tasks +based on detected enemy ground targets.

    @@ -887,35 +887,21 @@ The Zone object where the Target is located on the map.

    -

    Type TASK_BAI

    +

    Type TASK_A2G_BAI

    -

    The TASK_BAI class

    +

    The TASKA2GBAI class

    Field(s)

    - #string - -TASK_BAI.ClassName + +TASK_A2G_BAI:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing)
    - - -
    -
    -
    -
    - - -TASK_BAI:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing) - -
    -
    - -

    Instantiates a new TASK_BAI.

    +

    Instantiates a new TASKA2GBAI.

    Parameters

      @@ -950,7 +936,7 @@ The briefing of the task.

    Return value

    -

    #TASK_BAI: +

    #TASKA2GBAI: self

    @@ -959,8 +945,8 @@ self

    Set#SET_UNIT - -TASK_BAI.TargetSetUnit + +TASK_A2G_BAI.TargetSetUnit
    @@ -970,35 +956,21 @@ self

    -

    Type TASK_CAS

    +

    Type TASK_A2G_CAS

    -

    The TASK_CAS class

    +

    The TASKA2GCAS class

    Field(s)

    - #string - -TASK_CAS.ClassName + +TASK_A2G_CAS:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing)
    - - -
    -
    -
    -
    - - -TASK_CAS:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing) - -
    -
    - -

    Instantiates a new TASK_CAS.

    +

    Instantiates a new TASKA2GCAS.

    Parameters

      @@ -1033,7 +1005,7 @@ The briefing of the task.

    Return value

    -

    #TASK_CAS: +

    #TASKA2GCAS: self

    @@ -1042,8 +1014,8 @@ self

    Set#SET_UNIT - -TASK_CAS.TargetSetUnit + +TASK_A2G_CAS.TargetSetUnit
    @@ -1053,35 +1025,21 @@ self

    -

    Type TASK_SEAD

    +

    Type TASK_A2G_SEAD

    -

    The TASK_SEAD class

    +

    The TASKA2GSEAD class

    Field(s)

    - #string - -TASK_SEAD.ClassName + +TASK_A2G_SEAD:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing)
    - - -
    -
    -
    -
    - - -TASK_SEAD:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing) - -
    -
    - -

    Instantiates a new TASK_SEAD.

    +

    Instantiates a new TASKA2GSEAD.

    Parameters

      @@ -1116,7 +1074,7 @@ The briefing of the task.

    Return value

    -

    #TASK_SEAD: +

    #TASKA2GSEAD: self

    @@ -1125,8 +1083,8 @@ self

    Set#SET_UNIT - -TASK_SEAD.TargetSetUnit + +TASK_A2G_SEAD.TargetSetUnit
    diff --git a/docs/Documentation/Task_Cargo.html b/docs/Documentation/Task_Cargo.html index 551956b7a..5d43158f5 100644 --- a/docs/Documentation/Task_Cargo.html +++ b/docs/Documentation/Task_Cargo.html @@ -524,7 +524,7 @@ based on the tasking capabilities defined in Task#TA
    - + Core.Cargo#CARGO_GROUP FSM_PROCESS.Cargo @@ -538,7 +538,6 @@ based on the tasking capabilities defined in Task#TA
    - FSM_PROCESS.DeployZone diff --git a/docs/Documentation/Zone.html b/docs/Documentation/Zone.html index fd739ed73..7b8149788 100644 --- a/docs/Documentation/Zone.html +++ b/docs/Documentation/Zone.html @@ -260,7 +260,7 @@
    - + @@ -945,22 +945,13 @@ The bounding square.

    -ZONE_BASE:GetCoordinate(Height) +ZONE_BASE:GetCoordinate()

    Returns a Point#COORDINATE of the zone.

    -

    Parameter

    -
      -
    • - -

      Dcs.DCSTypes#Distance Height : -The height to add to the land height where the center of the zone is located.

      - -
    • -

    Return value

    Core.Point#COORDINATE:

    TASK_SEAD.ClassNameTASK_A2G_SEAD:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing) - +

    Instantiates a new TASKA2GSEAD.

    TASK_SEAD:New(Mission, SetGroup, TaskName, TargetSetUnit, TaskBriefing) -

    Instantiates a new TASK_SEAD.

    -
    TASK_SEAD.TargetSetUnitTASK_A2G_SEAD.TargetSetUnit
    ZONE_BASE:GetCoordinate(Height)ZONE_BASE:GetCoordinate()

    Returns a Point#COORDINATE of the zone.