Merge branch 'master' into FC/Documentation-Release_2.3

This commit is contained in:
FlightControl_Master
2018-03-18 07:39:41 +01:00
7 changed files with 107 additions and 73 deletions

View File

@@ -1,6 +1,4 @@
--- **Tasking** - The TASK_A2G_DISPATCHER creates and manages player TASK_A2G tasks based on detected targets.
--
--
--- **Tasking** - The TASK\_A2G\_DISPATCHER dispatches A2G Tasks to Players based on enemy location detection.
--
-- ====
--
@@ -30,8 +28,8 @@ do -- TASK_A2G_DISPATCHER
-- It provides a truly dynamic battle environment for pilots and ground commanders to engage upon,
-- in a true co-operation environment wherein **Multiple Teams** will collaborate in Missions to **achieve a common Mission Goal**.
--
-- The A2G dispatcher will dispatch the A2G Tasks to a defined @{Set} of @{Group}s that will be manned by **Players**.
-- We call this the **AttackSet** of the A2G dispatcher. So, Players are seated in @{Unit}s of @{Group}s that contain @{Client}s.
-- The A2G dispatcher will dispatch the A2G Tasks to a defined @{Set} of @{Group}s that will be manned by **Players**.
-- We call this the **AttackSet** of the A2G dispatcher. So, the Players are seated in the @{Client}s of the @{Group} @{Set}.
--
-- Depending on the actions of the enemy, preventive tasks are dispatched to the players to orchestrate the engagement in a true co-operation.
-- The detection object will group the detected targets by its grouping method, and integrates a @{Set} of @{Group}s that are Recce vehicles or air units.
@@ -40,9 +38,9 @@ do -- TASK_A2G_DISPATCHER
-- Depending on the current detected tactical situation, different task types will be dispatched to the Players seated in the AttackSet..
-- There are currently 3 **Task Types** implemented in the TASK\_A2G\_DISPATCHER:
--
-- - **SEAD Task**: Is dispatched when there are enemy ground units wihtin range of the FAC, which have **air 2 air search radars**.
-- - **CAS Task**: Is dispatched when there are friendly ground units within range of the enemy targets.
-- - **BAI Task**: Is dispatched when there are no friendly ground units within range of the enemy targets.
-- - **SEAD Task**: Dispatched when there are ground based Radar Emitters detected within an area.
-- - **CAS Task**: Dispatched when there are no ground based Radar Emitters within the area, but there are friendly ground Units within 6 km from the enemy.
-- - **BAI Task**: Dispatched when there are no ground based Radar Emitters within the area, and there aren't friendly ground Units within 6 km from the enemy.
--
-- # 0. Tactical Situations
--
@@ -51,7 +49,7 @@ do -- TASK_A2G_DISPATCHER
--
-- # 0.1. SEAD Task
--
-- A SEAD Task is created when there are Ground based Radar Emitters detected within an area.
-- A SEAD Task is dispatched when there are ground based Radar Emitters detected within an area.
--
-- ![](..\Presentations\TASK_A2G_DISPATCHER\Dia11.JPG)
--
@@ -60,7 +58,7 @@ do -- TASK_A2G_DISPATCHER
--
-- # 0.2. CAS Task
--
-- A CAS Task is created when there are no Radar Emitters within the area, but there are friendly ground Units within 6 km of the area.
-- A CAS Task is dispatched when there are no ground based Radar Emitters within the area, but there are friendly ground Units within 6 km from the enemy.
--
-- ![](..\Presentations\TASK_A2G_DISPATCHER\Dia12.JPG)
--
@@ -69,7 +67,7 @@ do -- TASK_A2G_DISPATCHER
--
-- # 0.3. BAI Task
--
-- A BAI Task is created when there are no Radar Emitters within the area, and there aren't any friendly ground Units within 6 km of the area.
-- A BAI Task is dispatched when there are no ground based Radar Emitters within the area, and there aren't friendly ground Units within 6 km from the enemy.
--
-- ![](..\Presentations\TASK_A2G_DISPATCHER\Dia13.JPG)
--
@@ -89,12 +87,12 @@ do -- TASK_A2G_DISPATCHER
-- F1. Mission "Alpha"
-- F2. Mission "Beta"
-- F3. Mission "Gamma"
-- F1. Command Center |Gudauta|
-- F1. Command Center |Lima|
-- F1. Mission "Overlord"
-- F2. Mission "Desert Storm"
--
-- CC |Gori| is controlling Mission "Alpha", "Beta", "Gamma".
-- CC |Gudauta| is controlling Missions "Overlord" and "Desert Storm".
-- CC |Lima| is controlling Missions "Overlord" and "Desert Storm".
--
-- ## 1.1. Mission Menu (Under the Command Center Menu)
--
@@ -105,18 +103,19 @@ do -- TASK_A2G_DISPATCHER
-- - **Create Task Reports**: A menu to create various reports of the current tasks dispatched by the A2G dispatcher.
-- - **Create Mission Reports**: A menu to create various reports on the current mission.
--
-- ![](..\Presentations\TASK_A2G_DISPATCHER\Dia6.JPG)
--
-- For CC |Gori|, Mission "Alpha", the menu structure could look like this:
-- For CC |Lima|, Mission "Overlord", the menu structure could look like this:
--
-- Radio MENU Structure (F10. Other)
--
-- F1. Command Center |Gori|
-- F1. Mission "Alpha"
-- F1. Command Center |Lima|
-- F1. Mission "Overlord"
-- F1. Mission Briefing
-- F2. Mark Task Locations on Map
-- F3. Task Reports
-- F4. Mission Reports
--
-- ![](..\Presentations\TASK_A2G_DISPATCHER\Dia6.JPG)
--
--
--
-- ### 1.1.1. Mission Briefing Menu
@@ -358,39 +357,39 @@ do -- TASK_A2G_DISPATCHER
--
-- Below an example mission declaration that is defines a Task A2G Dispatcher object.
--
-- -- Declare the Command Center
-- local HQ = GROUP
-- :FindByName( "HQ", "Bravo HQ" )
-- -- Declare the Command Center
-- local HQ = GROUP
-- :FindByName( "HQ", "Bravo HQ" )
--
-- local CommandCenter = COMMANDCENTER
-- :New( HQ, "Lima" )
-- local CommandCenter = COMMANDCENTER
-- :New( HQ, "Lima" )
--
-- -- Declare the Mission for the Command Center.
-- local Mission = MISSION
-- :New( CommandCenter, "Overlord", "High", "Attack Detect Mission Briefing", coalition.side.RED )
-- -- Declare the Mission for the Command Center.
-- local Mission = MISSION
-- :New( CommandCenter, "Overlord", "High", "Attack Detect Mission Briefing", coalition.side.RED )
--
-- -- Define the RecceSet that will detect the enemy.
-- local RecceSet = SET_GROUP
-- :New()
-- :FilterPrefixes( "FAC" )
-- :FilterCoalitions("red")
-- :FilterStart()
-- -- Define the RecceSet that will detect the enemy.
-- local RecceSet = SET_GROUP
-- :New()
-- :FilterPrefixes( "FAC" )
-- :FilterCoalitions("red")
-- :FilterStart()
--
-- -- Setup the detection. We use DETECTION_AREAS to detect and group the enemies within areas of 3 km radius.
-- local DetectionAreas = DETECTION_AREAS
-- :New( RecceSet, 3000 ) -- The RecceSet will detect the enemies.
-- -- Setup the detection. We use DETECTION_AREAS to detect and group the enemies within areas of 3 km radius.
-- local DetectionAreas = DETECTION_AREAS
-- :New( RecceSet, 3000 ) -- The RecceSet will detect the enemies.
--
-- -- Setup the AttackSet, which is a SET_GROUP.
-- -- The SET_GROUP is a dynamic collection of GROUP objects.
-- local AttackSet = SET_GROUP
-- :New() -- Create the SET_GROUP object.
-- :FilterCoalitions( "red" ) -- Only incorporate the RED coalitions.
-- :FilterPrefixes( "Attack" ) -- Only incorporate groups that start with the name Attack.
-- :FilterStart() -- Enable the dynamic filtering. From this moment the AttackSet will contain all groups that are red and start with the name Attack.
-- -- Setup the AttackSet, which is a SET_GROUP.
-- -- The SET_GROUP is a dynamic collection of GROUP objects.
-- local AttackSet = SET_GROUP
-- :New() -- Create the SET_GROUP object.
-- :FilterCoalitions( "red" ) -- Only incorporate the RED coalitions.
-- :FilterPrefixes( "Attack" ) -- Only incorporate groups that start with the name Attack.
-- :FilterStart() -- Enable the dynamic filtering. From this moment the AttackSet will contain all groups that are red and start with the name Attack.
--
-- -- Now we have everything to setup the main A2G TaskDispatcher.
-- TaskDispatcher = TASK_A2G_DISPATCHER
-- :New( Mission, AttackSet, DetectionAreas ) -- We assign the TaskDispatcher under Mission. The AttackSet will engage the enemy and will recieve the dispatched Tasks. The DetectionAreas will report any detected enemies to the TaskDispatcher.
-- -- Now we have everything to setup the main A2G TaskDispatcher.
-- TaskDispatcher = TASK_A2G_DISPATCHER
-- :New( Mission, AttackSet, DetectionAreas ) -- We assign the TaskDispatcher under Mission. The AttackSet will engage the enemy and will recieve the dispatched Tasks. The DetectionAreas will report any detected enemies to the TaskDispatcher.
--
--
--
@@ -581,7 +580,7 @@ do -- TASK_A2G_DISPATCHER
if not DetectedItem then
local TaskText = Task:GetName()
for TaskGroupID, TaskGroup in pairs( self.SetGroup:GetSet() ) do
Mission:GetCommandCenter():MessageToGroup( string.format( "Obsolete A2G task %s for %s removed.", TaskText, Mission:GetName() ), TaskGroup )
Mission:GetCommandCenter():MessageToGroup( string.format( "Obsolete A2G task %s for %s removed.", TaskText, Mission:GetShortText() ), TaskGroup )
end
Task = self:RemoveTask( TaskIndex )
end
@@ -752,7 +751,7 @@ do -- TASK_A2G_DISPATCHER
local TaskText = TaskReport:Text(", ")
for TaskGroupID, TaskGroup in pairs( self.SetGroup:GetSet() ) do
if ( not Mission:IsGroupAssigned(TaskGroup) ) and TaskText ~= "" then
Mission:GetCommandCenter():MessageToGroup( string.format( "%s has tasks %s. Subscribe to a task using the radio menu.", Mission:GetName(), TaskText ), TaskGroup )
Mission:GetCommandCenter():MessageToGroup( string.format( "%s has tasks %s. Subscribe to a task using the radio menu.", Mission:GetShortText(), TaskText ), TaskGroup )
end
end