From 495786b4eb00db83d571fd6734e92b3a805b0ed7 Mon Sep 17 00:00:00 2001 From: FlightControl_Master Date: Wed, 26 Jul 2017 13:17:55 +0200 Subject: [PATCH] Heavily improved the documentation of AI_A2A_DISPATCHER --- .../Moose/AI/AI_A2A_Dispatcher.lua | 165 +++++++++++++-- .../Moose/Functional/Designate.lua | 2 +- docs/Documentation/AI_A2A_Dispatcher.html | 196 ++++++++++++++++-- docs/Documentation/AI_Patrol.html | 3 - docs/Documentation/Cargo.html | 2 +- docs/Documentation/Fsm.html | 3 +- docs/Documentation/Movement.html | 4 - docs/Documentation/Settings.html | 2 +- docs/Documentation/Spawn.html | 17 +- docs/Documentation/Spot.html | 4 + docs/README.md | 5 +- 11 files changed, 342 insertions(+), 61 deletions(-) diff --git a/Moose Development/Moose/AI/AI_A2A_Dispatcher.lua b/Moose Development/Moose/AI/AI_A2A_Dispatcher.lua index 597cbba79..0260cc4e4 100644 --- a/Moose Development/Moose/AI/AI_A2A_Dispatcher.lua +++ b/Moose Development/Moose/AI/AI_A2A_Dispatcher.lua @@ -10,6 +10,142 @@ -- ### Contributions: -- -- ==== +-- +-- # QUICK START GUIDE +-- +-- There are basically two classes available to model an A2A defense system. +-- +-- AI\_A2A\_DISPATCHER is the main A2A defense class that models the A2A defense system. +-- AI\_A2A\_GCICAP derives or inherits from AI\_A2A\_DISPATCHER and is a more **noob** user friendly class, but is less flexible. +-- +-- Before you start using the AI\_A2A\_DISPATCHER or AI\_A2A\_GCICAP ask youself the following questions: +-- +-- ## 0. Do I need AI\_A2A\_DISPATCHER or do I need AI\_A2A\_GCICAP? +-- +-- AI\_A2A\_GCICAP, automates a lot of the below questions using the mission editor and requires minimal lua scripting. +-- But the AI\_A2A\_GCICAP provides less flexibility and a lot of options are defaulted. +-- With AI\_A2A\_DISPATCHER you can setup a much more **fine grained** A2A defense mechanism, but some more (easy) lua scripting is required. +-- +-- ## 1. Which Coalition am I modeling an A2A defense system for? blue or red? +-- +-- One AI\_A2A\_DISPATCHER object can create a defense system for **one coalition**, which is blue or red. +-- If you want to create a **mutual defense system**, for both blue and red, then you need to create **two** AI\_A2A\_DISPATCHER **objects**, +-- each governing their defense system. +-- +-- +-- ## 2. Which type of EWR will I setup? Grouping based per AREA, per TYPE or per UNIT? (Later others will follow). +-- +-- The MOOSE framework leverages the @{Detection} classes to perform the EWR detection. +-- Several types of @{Detection} classes exist, and the most common characteristics of these classes is that they: +-- +-- * Perform detections from multiple FACs as one co-operating entity. +-- * Communicate with a Head Quarters, which consolidates each detection. +-- * Groups detections based on a method (per area, per type or per unit). +-- * Communicates detections. +-- +-- ## 3. Which EWR units will be used as part of the detection system? Only Ground or also Airborne? +-- +-- Typically EWR networks are setup using 55G6 EWR, 1L13 EWR, Hawk sr and Patriot str ground based radar units. +-- These radars have different ranges and 55G6 EWR and 1L13 EWR radars are Eastern Bloc units (eg Russia, Ukraine, Georgia) while the Hawk and Patriot radars are Western (eg US). +-- Additionally, ANY other radar capable unit can be part of the EWR network! Also AWACS airborne units, planes, helicopters can help to detect targets, as long as they have radar. +-- The position of these units is very important as they need to provide enough coverage +-- to pick up enemy aircraft as they approach so that CAP and GCI flights can be tasked to intercept them. +-- +-- ## 4. Is a border required? +-- +-- Is this a cold car or a hot war situation? In case of a cold war situation, a border can be set that will only trigger defenses +-- if the border is crossed by enemy units. +-- +-- ## 5. What maximum range needs to be checked to allow defenses to engage any attacker? +-- +-- A good functioning defense will have a "maximum range" evaluated to the enemy when CAP will be engaged or GCI will be spawned. +-- +-- ## 6. Which Airbases, Carrier Ships, Farps will take part in the defense system for the Coalition? +-- +-- Carefully plan which airbases will take part in the coalition. Color each airbase in the color of the coalition. +-- +-- ## 7. Which Squadrons will I create and which name will I give each Squadron? +-- +-- The defense system works with Squadrons. Each Squadron must be given a unique name, that forms the **key** to the defense system. +-- Several options and activities can be set per Squadron. +-- +-- ## 8. Where will the Squadrons be located? On Airbases? On Carrier Ships? On Farps? +-- +-- Squadrons are placed as the "home base" on an airfield, carrier or farp. +-- Carefully plan where each Squadron will be located as part of the defense system. +-- +-- ## 9. Which plane models will I assign for each Squadron? Do I need one plane model or more plane models per squadron? +-- +-- Per Squadron, one or multiple plane models can be allocated as **Templates**. +-- These are late activated groups with one airplane or helicopter that start with a specific name, called the **template prefix**. +-- The A2A defense system will select from the given templates a random template to spawn a new plane (group). +-- +-- ## 10. Which payloads, skills and skins will these plane models have? +-- +-- Per Squadron, even if you have one plane model, you can still allocate multiple templates of one plane model, +-- each having different payloads, skills and skins. +-- The A2A defense system will select from the given templates a random template to spawn a new plane (group). +-- +-- ## 11. For each Squadron, which will perform CAP? +-- +-- Per Squadron, evaluate which Squadrons will perform CAP. +-- Not all Squadrons need to perform CAP. +-- +-- ## 12. For each Squadron doing CAP, in which ZONE(s) will the CAP be performed? +-- +-- Per CAP, evaluate **where** the CAP will be performed, in other words, define the **zone**. +-- Near the border or a bit further away? +-- +-- ## 13. For each Squadron doing CAP, which zone types will I create? +-- +-- Per CAP zone, evaluate whether you want: +-- +-- * simple trigger zones +-- * polygon zones +-- * moving zones +-- +-- Depending on the type of zone selected, a different @{Zone} object needs to be created from a ZONE_ class. +-- +-- ## 14. For each Squadron doing CAP, what are the time intervals and CAP amounts to be performed? +-- +-- For each CAP: +-- +-- * **How many** CAP you want to have airborne at the same time? +-- * **How frequent** you want the defense mechanism to check whether to start a new CAP? +-- +-- ## 15. For each Squadron, which will perform GCI? +-- +-- For each Squadron, evaluate which Squadrons will perform GCI? +-- Not all Squadrons need to perform GCI. +-- +-- ## 16. For each Squadron, which takeoff method will I use? +-- +-- For each Squadron, evaluate which takeoff method will be used: +-- +-- * Straight from the air (default) +-- * From the runway +-- * From a parking spot with running engines +-- * From a parking spot with cold engines +-- +-- ## 17. For each Squadron, which landing method will I use? +-- +-- For each Squadron, evaluate which landing method will be used: +-- +-- * Near the airbase when returning (default) +-- * After landing on the runway +-- * After engine shutdown after landing +-- +-- ## 18. For each Squadron, which overhead will I use? +-- +-- For each Squadron, depending on the airplane type (modern, old) and payload, which overhead is required to provide any defense? +-- In other words, if **X** attacker airplanes are detected, how many **Y** defense airplanes need to be spawned per squadron? +-- The **Y** is dependent on the type of airplane (era), payload, fuel levels, skills etc. +-- The overhead is a **factor** that will calculate dynamically how many **Y** defenses will be required based on **X** attackers detected. +-- +-- ## 19. For each Squadron, which grouping will I use? +-- +-- When multiple targets are detected, how will defense airplanes be grouped when multiple defense airplanes are spawned for multiple attackers? +-- Per one, two, three, four? -- -- @module AI_A2A_Dispatcher @@ -29,7 +165,7 @@ do -- AI_A2A_DISPATCHER -- -- ==== -- - -- # Demo Mission + -- # Demo Missions -- -- ### [AI\_A2A\_DISPATCHER Demo Mission](https://github.com/FlightControl-Master/MOOSE_MISSIONS/tree/release-2-2-pre/AID%20-%20AI%20Dispatching/AID-100%20-%20AI_A2A%20-%20Demonstration) -- @@ -56,6 +192,10 @@ do -- AI_A2A_DISPATCHER -- Note that in order to create a two way A2A defense system, two AI\_A2A\_DISPATCHER defense system may need to be created, for each coalition one. -- This is a good implementation, because maybe in the future, more coalitions may become available in DCS world. -- + -- --- + -- + -- # USAGE GUIDE + -- -- ## 1. AI\_A2A\_DISPATCHER constructor: -- -- The @{#AI_A2A_DISPATCHER.New}() method creates a new AI\_A2A\_DISPATCHER instance. @@ -99,14 +239,20 @@ do -- AI_A2A_DISPATCHER -- -- -- Setup the A2A dispatcher, and initialize it. -- A2ADispatcher = AI_A2A_DISPATCHER:New( Detection ) - -- + -- + -- -- The above example creates a SET_GROUP instance, and stores this in the variable (object) **DetectionSetGroup**. -- **DetectionSetGroup** is then being configured to filter all active groups with a group name starting with **DF CCCP AWACS** or **DF CCCP EWR** to be included in the Set. -- **DetectionSetGroup** is then being ordered to start the dynamic filtering. Note that any destroy or new spawn of a group with the above names will be removed or added to the Set. -- Then a new Detection object is created from the class DETECTION_AREAS. A grouping radius of 30000 is choosen, which is 30km. -- The **Detection** object is then passed to the @{#AI_A2A_DISPATCHER.New}() method to indicate the EWR network configuration and setup the A2A defense detection mechanism. -- - -- ### 2. Define the detected **target grouping radius**: + -- You could build a **mutual defense system** like this: + -- + -- A2ADispatcher_Red = AI_A2A_DISPATCHER:New( EWR_Red ) + -- A2ADispatcher_Blue = AI_A2A_DISPATCHER:New( EWR_Blue ) + -- + -- ### 2. Define the detected **target grouping radius**: -- -- The target grouping radius is a property of the Detection object, that was passed to the AI\_A2A\_DISPATCHER object, but can be changed. -- The grouping radius should not be too small, but also depends on the types of planes and the era of the simulation. @@ -1025,6 +1171,7 @@ do -- AI_A2A_DISPATCHER -- Examples are `"Batumi"` or `"Tbilisi-Lochini"`. -- EXACTLY the airbase name, between quotes `""`. -- To ease the airbase naming when using the LDT editor and IntelliSense, the @{Airbase#AIRBASE} class contains enumerations of the airbases of each map. + -- -- * Caucasus: @{Airbase#AIRBASE.Caucaus} -- * Nevada or NTTR: @{Airbase#AIRBASE.Nevada} -- * Normandy: @{Airbase#AIRBASE.Normandy} @@ -1037,29 +1184,21 @@ do -- AI_A2A_DISPATCHER -- @param #number Resources A number that specifies how many resources are in stock of the squadron. It is still a bit buggy, this part. Just make this a large number for the moment. This will be fine tuned later. -- -- @usage - -- -- -- Now Setup the A2A dispatcher, and initialize it using the Detection object. -- A2ADispatcher = AI_A2A_DISPATCHER:New( Detection ) - -- -- @usage - -- -- -- This will create squadron "Squadron1" at "Batumi" airbase, and will use plane types "SQ1" and has 40 planes in stock... -- A2ADispatcher:SetSquadron( "Squadron1", "Batumi", "SQ1", 40 ) - -- -- @usage - -- -- -- This will create squadron "Sq 1" at "Batumi" airbase, and will use plane types "Mig-29" and "Su-27" and has 20 planes in stock... -- -- Note that in this implementation, the A2A dispatcher will select a random plane when a new plane (group) needs to be spawned for defenses. -- -- Note the usage of the {} for the airplane templates list. -- A2ADispatcher:SetSquadron( "Sq 1", "Batumi", { "Mig-29", "Su-27" }, 40 ) - -- -- @usage - -- -- -- This will create 2 squadrons "104th" and "23th" at "Batumi" airbase, and will use plane types "Mig-29" and "Su-27" respectively and each squadron has 10 planes in stock... -- -- Note that in this implementation, the A2A dispatcher will select a random plane when a new plane (group) needs to be spawned for defenses. - -- A2ADispatcher:SetSquadron( "104th", "Batumi", "Mig-29", 40 ) - -- A2ADispatcher:SetSquadron( "23th", "Batumi", "Su-27", 40 ) - -- + -- A2ADispatcher:SetSquadron( "104th", "Batumi", "Mig-29", 10 ) + -- A2ADispatcher:SetSquadron( "23th", "Batumi", "Su-27", 10 ) -- @return #AI_A2A_DISPATCHER function AI_A2A_DISPATCHER:SetSquadron( SquadronName, AirbaseName, SpawnTemplates, Resources ) diff --git a/Moose Development/Moose/Functional/Designate.lua b/Moose Development/Moose/Functional/Designate.lua index 01630fe18..8193f47e4 100644 --- a/Moose Development/Moose/Functional/Designate.lua +++ b/Moose Development/Moose/Functional/Designate.lua @@ -815,7 +815,7 @@ do -- DESIGNATE break end else - RecceUnit:MessageToSetGroup( "Can't mark " .. TargetUnit:GetTypeName(), 5, self.AttackSet ) + --RecceUnit:MessageToSetGroup( "Can't mark " .. TargetUnit:GetTypeName(), 5, self.AttackSet ) end else -- The Recce is lasing, but the Target is not detected or within LOS. So stop lasing and send a report. diff --git a/docs/Documentation/AI_A2A_Dispatcher.html b/docs/Documentation/AI_A2A_Dispatcher.html index 818cc2c98..3daf54082 100644 --- a/docs/Documentation/AI_A2A_Dispatcher.html +++ b/docs/Documentation/AI_A2A_Dispatcher.html @@ -120,6 +120,152 @@
+

QUICK START GUIDE

+ +

There are basically two classes available to model an A2A defense system.

+ +

AI_A2A_DISPATCHER is the main A2A defense class that models the A2A defense system. +AI_A2A_GCICAP derives or inherits from AI_A2A_DISPATCHER and is a more noob user friendly class, but is less flexible.

+ +

Before you start using the AI_A2A_DISPATCHER or AI_A2A_GCICAP ask youself the following questions:

+ +

0. Do I need AI_A2A_DISPATCHER or do I need AI_A2A_GCICAP?

+ +

AI_A2A_GCICAP, automates a lot of the below questions using the mission editor and requires minimal lua scripting. +But the AI_A2A_GCICAP provides less flexibility and a lot of options are defaulted. +With AI_A2A_DISPATCHER you can setup a much more fine grained A2A defense mechanism, but some more (easy) lua scripting is required.

+ +

1. Which Coalition am I modeling an A2A defense system for? blue or red?

+ +

One AI_A2A_DISPATCHER object can create a defense system for one coalition, which is blue or red. +If you want to create a mutual defense system, for both blue and red, then you need to create two AI_A2A_DISPATCHER objects, +each governing their defense system.

+ + +

2. Which type of EWR will I setup? Grouping based per AREA, per TYPE or per UNIT? (Later others will follow).

+ +

The MOOSE framework leverages the Detection classes to perform the EWR detection. +Several types of Detection classes exist, and the most common characteristics of these classes is that they:

+ + + +

3. Which EWR units will be used as part of the detection system? Only Ground or also Airborne?

+ +

Typically EWR networks are setup using 55G6 EWR, 1L13 EWR, Hawk sr and Patriot str ground based radar units. +These radars have different ranges and 55G6 EWR and 1L13 EWR radars are Eastern Bloc units (eg Russia, Ukraine, Georgia) while the Hawk and Patriot radars are Western (eg US). +Additionally, ANY other radar capable unit can be part of the EWR network! Also AWACS airborne units, planes, helicopters can help to detect targets, as long as they have radar. +The position of these units is very important as they need to provide enough coverage +to pick up enemy aircraft as they approach so that CAP and GCI flights can be tasked to intercept them.

+ +

4. Is a border required?

+ +

Is this a cold car or a hot war situation? In case of a cold war situation, a border can be set that will only trigger defenses +if the border is crossed by enemy units.

+ +

5. What maximum range needs to be checked to allow defenses to engage any attacker?

+ +

A good functioning defense will have a "maximum range" evaluated to the enemy when CAP will be engaged or GCI will be spawned.

+ +

6. Which Airbases, Carrier Ships, Farps will take part in the defense system for the Coalition?

+ +

Carefully plan which airbases will take part in the coalition. Color each airbase in the color of the coalition.

+ +

7. Which Squadrons will I create and which name will I give each Squadron?

+ +

The defense system works with Squadrons. Each Squadron must be given a unique name, that forms the key to the defense system. +Several options and activities can be set per Squadron.

+ +

8. Where will the Squadrons be located? On Airbases? On Carrier Ships? On Farps?

+ +

Squadrons are placed as the "home base" on an airfield, carrier or farp. +Carefully plan where each Squadron will be located as part of the defense system.

+ +

9. Which plane models will I assign for each Squadron? Do I need one plane model or more plane models per squadron?

+ +

Per Squadron, one or multiple plane models can be allocated as Templates. +These are late activated groups with one airplane or helicopter that start with a specific name, called the template prefix. +The A2A defense system will select from the given templates a random template to spawn a new plane (group).

+ +

10. Which payloads, skills and skins will these plane models have?

+ +

Per Squadron, even if you have one plane model, you can still allocate multiple templates of one plane model, +each having different payloads, skills and skins. +The A2A defense system will select from the given templates a random template to spawn a new plane (group).

+ +

11. For each Squadron, which will perform CAP?

+ +

Per Squadron, evaluate which Squadrons will perform CAP. +Not all Squadrons need to perform CAP.

+ +

12. For each Squadron doing CAP, in which ZONE(s) will the CAP be performed?

+ +

Per CAP, evaluate where the CAP will be performed, in other words, define the zone. +Near the border or a bit further away?

+ +

13. For each Squadron doing CAP, which zone types will I create?

+ +

Per CAP zone, evaluate whether you want:

+ + + +

Depending on the type of zone selected, a different Zone object needs to be created from a ZONE_ class.

+ +

14. For each Squadron doing CAP, what are the time intervals and CAP amounts to be performed?

+ +

For each CAP:

+ + + +

15. For each Squadron, which will perform GCI?

+ +

For each Squadron, evaluate which Squadrons will perform GCI? +Not all Squadrons need to perform GCI.

+ +

16. For each Squadron, which takeoff method will I use?

+ +

For each Squadron, evaluate which takeoff method will be used:

+ + + +

17. For each Squadron, which landing method will I use?

+ +

For each Squadron, evaluate which landing method will be used:

+ + + +

18. For each Squadron, which overhead will I use?

+ +

For each Squadron, depending on the airplane type (modern, old) and payload, which overhead is required to provide any defense? +In other words, if X attacker airplanes are detected, how many Y defense airplanes need to be spawned per squadron? +The Y is dependent on the type of airplane (era), payload, fuel levels, skills etc. +The overhead is a factor that will calculate dynamically how many Y defenses will be required based on X attackers detected.

+ +

19. For each Squadron, which grouping will I use?

+ +

When multiple targets are detected, how will defense airplanes be grouped when multiple defense airplanes are spawned for multiple attackers? +Per one, two, three, four?

+

Global(s)

@@ -653,7 +799,7 @@
-

Demo Mission

+

Demo Missions

AI_A2A_DISPATCHER Demo Mission

@@ -680,6 +826,10 @@ In short it is a plug in very flexible and configurable air defence module for D

Note that in order to create a two way A2A defense system, two AI_A2A_DISPATCHER defense system may need to be created, for each coalition one. This is a good implementation, because maybe in the future, more coalitions may become available in DCS world.

+
+ +

USAGE GUIDE

+

1. AI_A2A_DISPATCHER constructor:

The AIA2ADISPATCHER.New() method creates a new AI_A2A_DISPATCHER instance.

@@ -725,12 +875,19 @@ Detection = DETECTION_AREAS:New( DetectionSetGroup, 30000 ) A2ADispatcher = AI_A2A_DISPATCHER:New( Detection ) +

The above example creates a SET_GROUP instance, and stores this in the variable (object) DetectionSetGroup. DetectionSetGroup is then being configured to filter all active groups with a group name starting with DF CCCP AWACS or DF CCCP EWR to be included in the Set. DetectionSetGroup is then being ordered to start the dynamic filtering. Note that any destroy or new spawn of a group with the above names will be removed or added to the Set. Then a new Detection object is created from the class DETECTION_AREAS. A grouping radius of 30000 is choosen, which is 30km. The Detection object is then passed to the AIA2ADISPATCHER.New() method to indicate the EWR network configuration and setup the A2A defense detection mechanism.

+

You could build a mutual defense system like this:

+ +
 A2ADispatcher_Red = AI_A2A_DISPATCHER:New( EWR_Red )
+ A2ADispatcher_Blue = AI_A2A_DISPATCHER:New( EWR_Blue )
+
+

2. Define the detected target grouping radius:

The target grouping radius is a property of the Detection object, that was passed to the AI_A2A_DISPATCHER object, but can be changed. @@ -2943,10 +3100,13 @@ The airbase name where you want to have the squadron located. You need to specify here EXACTLY the name of the airbase as you see it in the mission editor. Examples are "Batumi" or "Tbilisi-Lochini". EXACTLY the airbase name, between quotes "". -To ease the airbase naming when using the LDT editor and IntelliSense, the Airbase#AIRBASE class contains enumerations of the airbases of each map. - * Caucasus: Airbase#AIRBASE.Caucaus - * Nevada or NTTR: Airbase#AIRBASE.Nevada - * Normandy: Airbase#AIRBASE.Normandy

+To ease the airbase naming when using the LDT editor and IntelliSense, the Airbase#AIRBASE class contains enumerations of the airbases of each map.

+ + @@ -2975,26 +3135,18 @@ A number that specifies how many resources are in stock of the squadron. It is s

Usages:

diff --git a/docs/Documentation/AI_Patrol.html b/docs/Documentation/AI_Patrol.html index 43392b308..93a9f8ce6 100644 --- a/docs/Documentation/AI_Patrol.html +++ b/docs/Documentation/AI_Patrol.html @@ -926,9 +926,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 a11fd4dba..fe4a4263b 100644 --- a/docs/Documentation/Cargo.html +++ b/docs/Documentation/Cargo.html @@ -3417,7 +3417,6 @@ The range till cargo will board.

- CARGO_UNIT.CargoCarrier @@ -3543,6 +3542,7 @@ The range till cargo will board.

+ #number CARGO_UNIT.RunCount diff --git a/docs/Documentation/Fsm.html b/docs/Documentation/Fsm.html index 177f34281..e0276d335 100644 --- a/docs/Documentation/Fsm.html +++ b/docs/Documentation/Fsm.html @@ -1598,7 +1598,7 @@ A string defining the start state.

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

+ FSM.current diff --git a/docs/Documentation/Movement.html b/docs/Documentation/Movement.html index be5ce073c..4307c3aaa 100644 --- a/docs/Documentation/Movement.html +++ b/docs/Documentation/Movement.html @@ -227,7 +227,6 @@ on defined intervals (currently every minute).

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

- -

Contains the counter how many units are currently alive

-
diff --git a/docs/Documentation/Settings.html b/docs/Documentation/Settings.html index 318968720..6836574d8 100644 --- a/docs/Documentation/Settings.html +++ b/docs/Documentation/Settings.html @@ -1142,7 +1142,7 @@ true if metric.

- + #boolean SETTINGS.Metric diff --git a/docs/Documentation/Spawn.html b/docs/Documentation/Spawn.html index 0f27003d1..1183a03bf 100644 --- a/docs/Documentation/Spawn.html +++ b/docs/Documentation/Spawn.html @@ -2194,9 +2194,6 @@ The group that was spawned. You can use this group for further actions.

- -

Don't repeat the group from Take-Off till Landing and back Take-Off by ReSpawning.

-
@@ -2729,9 +2726,6 @@ when nothing was spawned.

- -

Overwrite unit names by default with group name.

-
@@ -2746,9 +2740,6 @@ when nothing was spawned.

- -

By default, no InitLimit

-
@@ -2784,7 +2775,7 @@ when nothing was spawned.

- #number + SPAWN.SpawnMaxGroups @@ -2801,7 +2792,7 @@ when nothing was spawned.

- #number + SPAWN.SpawnMaxUnitsAlive @@ -3129,7 +3120,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
- #boolean + SPAWN.SpawnUnControlled @@ -3153,7 +3144,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.

diff --git a/docs/Documentation/Spot.html b/docs/Documentation/Spot.html index ead3792db..5fdc3b305 100644 --- a/docs/Documentation/Spot.html +++ b/docs/Documentation/Spot.html @@ -765,6 +765,7 @@ true if it is lasing

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

+ SPOT.SpotIR @@ -791,6 +793,7 @@ true if it is lasing

+ SPOT.SpotLaser @@ -804,6 +807,7 @@ true if it is lasing

+ SPOT.Target diff --git a/docs/README.md b/docs/README.md index 01695f09c..b47295d70 100644 --- a/docs/README.md +++ b/docs/README.md @@ -81,8 +81,9 @@ Each TASK has a TASK ACTION flow, which is the flow that a player (hosted by a U MOOSE AI Controlling Classes provide mechanisms to control AI over long lasting processes. These AI Controlling Classes are based on FSM (Finite State Machine) Classes, and provided an encapsulated way to make AI behave or execute an activity. -* [AI\_A2A\_GCICAP](Documentation/AI_A2A_Dispatcher.html#AI_A2A_GCICAP): Create an automatic and dynamic A2A defense system, executed by AI units, as a result of detected A2A airborne targets executing CAP and GCI. Using an easy process you can define an air defense strategy using the Mission Editor. -* [AI\_A2A\_DISPATCHER](Documentation/AI_A2A_Dispatcher.html#AI_A2A_DISPATCHER): Same as AI\_A2A\_GCICAP, but is for more advanced or developer type mission designers. This class provides more options. +* [AI A2A Defenses](Documentation/AI_A2A_Dispatcher.html): Create automatic A2A defense systems executed by AI and perform CAP or GCI. + * [AI\_A2A\_GCICAP](Documentation/AI_A2A_Dispatcher.html#AI_A2A_GCICAP): Using an easy process you can define an A2A defense system using the Mission Editor. + * [AI\_A2A\_DISPATCHER](Documentation/AI_A2A_Dispatcher.html#AI_A2A_DISPATCHER): Same as AI\_A2A\_GCICAP, but is for more advanced or developer type mission designers. This class provides more options. * [AI\_BALANCER](Documentation/AI_Balancer.html): Compensate in a multi player mission the abscence of players with dynamically spawned AI air units. When players join CLIENTS, the AI will either be destroyed, or will fly back to the home or nearest friendly airbase.