From 040a342e252dcfec6c085809da4445a830f08fba Mon Sep 17 00:00:00 2001
From: FlightControl
Date: Mon, 17 Apr 2017 11:18:01 +0200
Subject: [PATCH] Updated documentation in AI_CAP, AI_CAS, AI_BALANCER,
AI_PATROL
---
Moose Development/Moose/AI/AI_Balancer.lua | 118 ++++++------
Moose Development/Moose/AI/AI_CAP.lua | 35 ++--
Moose Development/Moose/AI/AI_CAS.lua | 33 +++-
Moose Development/Moose/AI/AI_Patrol.lua | 41 +++--
docs/Documentation/AI_Balancer.html | 200 ++++++++-------------
docs/Documentation/AI_Cap.html | 36 ++--
docs/Documentation/AI_Cas.html | 34 +++-
docs/Documentation/AI_Patrol.html | 45 +++--
docs/Documentation/Cargo.html | 1 +
docs/Documentation/Detection.html | 4 +-
docs/Documentation/Fsm.html | 3 +-
docs/Documentation/Spawn.html | 28 ++-
docs/Documentation/SpawnStatic.html | 1 +
docs/Documentation/Task_Cargo.html | 2 +-
docs/Documentation/index.html | 21 ++-
15 files changed, 347 insertions(+), 255 deletions(-)
diff --git a/Moose Development/Moose/AI/AI_Balancer.lua b/Moose Development/Moose/AI/AI_Balancer.lua
index 8b6b51cba..7a06f54c2 100644
--- a/Moose Development/Moose/AI/AI_Balancer.lua
+++ b/Moose Development/Moose/AI/AI_Balancer.lua
@@ -4,62 +4,22 @@
--
-- 
--
--- ===
+-- ====
--
--- # 1) @{AI_Balancer#AI_BALANCER} class, extends @{Fsm#FSM_SET}
+-- # Demo Missions
--
--- The @{AI_Balancer#AI_BALANCER} class monitors and manages as many replacement AI groups as there are
--- CLIENTS in a SET_CLIENT collection, which are not occupied by human players.
--- In other words, use AI_BALANCER to simulate human behaviour by spawning in replacement AI in multi player missions.
+-- ### [AI_BALANCER Demo Missions source code](https://github.com/FlightControl-Master/MOOSE_MISSIONS/tree/master-release/AIB%20-%20AI%20Balancing)
--
--- The parent class @{Fsm#FSM_SET} manages the functionality to control the Finite State Machine (FSM).
--- The mission designer can tailor the behaviour of the AI_BALANCER, by defining event and state transition methods.
--- An explanation about state and event transition methods can be found in the @{FSM} module documentation.
+-- ### [AI_BALANCER Demo Missions, only for beta testers](https://github.com/FlightControl-Master/MOOSE_MISSIONS/tree/master/AIB%20-%20AI%20Balancing)
+--
+-- ### [ALL Demo Missions pack of the last release](https://github.com/FlightControl-Master/MOOSE_MISSIONS/releases)
--
--- The mission designer can tailor the AI_BALANCER behaviour, by implementing a state or event handling method for the following:
+-- ====
--
--- * **@{#AI_BALANCER.OnAfterSpawned}**( AISet, From, Event, To, AIGroup ): Define to add extra logic when an AI is spawned.
+-- # YouTube Channel
--
--- ## 1.1) AI_BALANCER construction
+-- ### [AI_BALANCER YouTube Channel](https://www.youtube.com/playlist?list=PL7ZUrU4zZUl2CJVIrL1TdAumuVS8n64B7)
--
--- Create a new AI_BALANCER object with the @{#AI_BALANCER.New}() method:
---
--- ## 1.2) AI_BALANCER is a FSM
---
--- 
---
--- ### 1.2.1) AI_BALANCER States
---
--- * **Monitoring** ( Set ): Monitoring the Set if all AI is spawned for the Clients.
--- * **Spawning** ( Set, ClientName ): There is a new AI group spawned with ClientName as the name of reference.
--- * **Spawned** ( Set, AIGroup ): A new AI has been spawned. You can handle this event to customize the AI behaviour with other AI FSMs or own processes.
--- * **Destroying** ( Set, AIGroup ): The AI is being destroyed.
--- * **Returning** ( Set, AIGroup ): The AI is returning to the airbase specified by the ReturnToAirbase methods. Handle this state to customize the return behaviour of the AI, if any.
---
--- ### 1.2.2) AI_BALANCER Events
---
--- * **Monitor** ( Set ): Every 10 seconds, the Monitor event is triggered to monitor the Set.
--- * **Spawn** ( Set, ClientName ): Triggers when there is a new AI group to be spawned with ClientName as the name of reference.
--- * **Spawned** ( Set, AIGroup ): Triggers when a new AI has been spawned. You can handle this event to customize the AI behaviour with other AI FSMs or own processes.
--- * **Destroy** ( Set, AIGroup ): The AI is being destroyed.
--- * **Return** ( Set, AIGroup ): The AI is returning to the airbase specified by the ReturnToAirbase methods.
---
--- ## 1.3) AI_BALANCER spawn interval for replacement AI
---
--- Use the method @{#AI_BALANCER.InitSpawnInterval}() to set the earliest and latest interval in seconds that is waited until a new replacement AI is spawned.
---
--- ## 1.4) AI_BALANCER returns AI to Airbases
---
--- By default, When a human player joins a slot that is AI_BALANCED, the AI group will be destroyed by default.
--- However, there are 2 additional options that you can use to customize the destroy behaviour.
--- When a human player joins a slot, you can configure to let the AI return to:
---
--- * @{#AI_BALANCER.ReturnToHomeAirbase}: Returns the AI to the **home** @{Airbase#AIRBASE}.
--- * @{#AI_BALANCER.ReturnToNearestAirbases}: Returns the AI to the **nearest friendly** @{Airbase#AIRBASE}.
---
--- Note that when AI returns to an airbase, the AI_BALANCER will trigger the **Return** event and the AI will return,
--- otherwise the AI_BALANCER will trigger a **Destroy** event, and the AI will be destroyed.
---
-- ===
--
-- # **API CHANGE HISTORY**
@@ -90,12 +50,68 @@
--
-- @module AI_Balancer
---- AI_BALANCER class
--- @type AI_BALANCER
+--- @type AI_BALANCER
-- @field Core.Set#SET_CLIENT SetClient
-- @field Functional.Spawn#SPAWN SpawnAI
-- @field Wrapper.Group#GROUP Test
-- @extends Core.Fsm#FSM_SET
+
+
+--- # AI_BALANCER class, extends @{Fsm#FSM_SET}
+--
+-- The AI_BALANCER class monitors and manages as many replacement AI groups as there are
+-- CLIENTS in a SET_CLIENT collection, which are not occupied by human players.
+-- In other words, use AI_BALANCER to simulate human behaviour by spawning in replacement AI in multi player missions.
+--
+-- The parent class @{Fsm#FSM_SET} manages the functionality to control the Finite State Machine (FSM).
+-- The mission designer can tailor the behaviour of the AI_BALANCER, by defining event and state transition methods.
+-- An explanation about state and event transition methods can be found in the @{FSM} module documentation.
+--
+-- The mission designer can tailor the AI_BALANCER behaviour, by implementing a state or event handling method for the following:
+--
+-- * @{#AI_BALANCER.OnAfterSpawned}( AISet, From, Event, To, AIGroup ): Define to add extra logic when an AI is spawned.
+--
+-- ## 1. AI_BALANCER construction
+--
+-- Create a new AI_BALANCER object with the @{#AI_BALANCER.New}() method:
+--
+-- ## 2. AI_BALANCER is a FSM
+--
+-- 
+--
+-- ### 2.1. AI_BALANCER States
+--
+-- * **Monitoring** ( Set ): Monitoring the Set if all AI is spawned for the Clients.
+-- * **Spawning** ( Set, ClientName ): There is a new AI group spawned with ClientName as the name of reference.
+-- * **Spawned** ( Set, AIGroup ): A new AI has been spawned. You can handle this event to customize the AI behaviour with other AI FSMs or own processes.
+-- * **Destroying** ( Set, AIGroup ): The AI is being destroyed.
+-- * **Returning** ( Set, AIGroup ): The AI is returning to the airbase specified by the ReturnToAirbase methods. Handle this state to customize the return behaviour of the AI, if any.
+--
+-- ### 2.2. AI_BALANCER Events
+--
+-- * **Monitor** ( Set ): Every 10 seconds, the Monitor event is triggered to monitor the Set.
+-- * **Spawn** ( Set, ClientName ): Triggers when there is a new AI group to be spawned with ClientName as the name of reference.
+-- * **Spawned** ( Set, AIGroup ): Triggers when a new AI has been spawned. You can handle this event to customize the AI behaviour with other AI FSMs or own processes.
+-- * **Destroy** ( Set, AIGroup ): The AI is being destroyed.
+-- * **Return** ( Set, AIGroup ): The AI is returning to the airbase specified by the ReturnToAirbase methods.
+--
+-- ## 3. AI_BALANCER spawn interval for replacement AI
+--
+-- Use the method @{#AI_BALANCER.InitSpawnInterval}() to set the earliest and latest interval in seconds that is waited until a new replacement AI is spawned.
+--
+-- ## 4. AI_BALANCER returns AI to Airbases
+--
+-- By default, When a human player joins a slot that is AI_BALANCED, the AI group will be destroyed by default.
+-- However, there are 2 additional options that you can use to customize the destroy behaviour.
+-- When a human player joins a slot, you can configure to let the AI return to:
+--
+-- * @{#AI_BALANCER.ReturnToHomeAirbase}: Returns the AI to the **home** @{Airbase#AIRBASE}.
+-- * @{#AI_BALANCER.ReturnToNearestAirbases}: Returns the AI to the **nearest friendly** @{Airbase#AIRBASE}.
+--
+-- Note that when AI returns to an airbase, the AI_BALANCER will trigger the **Return** event and the AI will return,
+-- otherwise the AI_BALANCER will trigger a **Destroy** event, and the AI will be destroyed.
+--
+-- @field #AI_BALANCER
AI_BALANCER = {
ClassName = "AI_BALANCER",
PatrolZones = {},
diff --git a/Moose Development/Moose/AI/AI_CAP.lua b/Moose Development/Moose/AI/AI_CAP.lua
index 1b7dcbe22..ad9a242b1 100644
--- a/Moose Development/Moose/AI/AI_CAP.lua
+++ b/Moose Development/Moose/AI/AI_CAP.lua
@@ -11,6 +11,22 @@
-- * @{#AI_CAP_ZONE}: Perform a CAP in a zone.
--
-- ====
+--
+-- # Demo Missions
+--
+-- ### [AI_CAP Demo Missions source code](https://github.com/FlightControl-Master/MOOSE_MISSIONS/tree/master-release/CAP%20-%20Combat%20Air%20Patrol)
+--
+-- ### [AI_CAP Demo Missions, only for beta testers](https://github.com/FlightControl-Master/MOOSE_MISSIONS/tree/master/CAP%20-%20Combat%20Air%20Patrol)
+--
+-- ### [ALL Demo Missions pack of the last release](https://github.com/FlightControl-Master/MOOSE_MISSIONS/releases)
+--
+-- ====
+--
+-- # YouTube Channel
+--
+-- ### [AI_CAP YouTube Channel](https://www.youtube.com/playlist?list=PL7ZUrU4zZUl1YCyPxJgoZn-CfhwyeW65L)
+--
+-- ====
--
-- # **API CHANGE HISTORY**
--
@@ -48,9 +64,9 @@
-- @extends AI.AI_Patrol#AI_PATROL_ZONE
---- # 1) @{#AI_CAP_ZONE} class, extends @{AI_CAP#AI_PATROL_ZONE}
+--- # AI_CAP_ZONE class, extends @{AI_CAP#AI_PATROL_ZONE}
--
--- The @{#AI_CAP_ZONE} class implements the core functions to patrol a @{Zone} by an AI @{Controllable} or @{Group}
+-- The AI_CAP_ZONE class implements the core functions to patrol a @{Zone} by an AI @{Controllable} or @{Group}
-- and automatically engage any airborne enemies that are within a certain range or within a certain zone.
--
-- 
@@ -81,22 +97,22 @@
--
-- 
--
--- ## 1.1) AI_CAP_ZONE constructor
+-- ## 1. AI_CAP_ZONE constructor
--
-- * @{#AI_CAP_ZONE.New}(): Creates a new AI_CAP_ZONE object.
--
--- ## 1.2) AI_CAP_ZONE is a FSM
+-- ## 2. AI_CAP_ZONE is a FSM
--
-- 
--
--- ### 1.2.1) AI_CAP_ZONE States
+-- ### 2.1 AI_CAP_ZONE States
--
-- * **None** ( Group ): The process is not started yet.
-- * **Patrolling** ( Group ): The AI is patrolling the Patrol Zone.
-- * **Engaging** ( Group ): The AI is engaging the bogeys.
-- * **Returning** ( Group ): The AI is returning to Base..
--
--- ### 1.2.2) AI_CAP_ZONE Events
+-- ### 2.2 AI_CAP_ZONE Events
--
-- * **@{AI_Patrol#AI_PATROL_ZONE.Start}**: Start the process.
-- * **@{AI_Patrol#AI_PATROL_ZONE.Route}**: Route the AI to a new random 3D point within the Patrol Zone.
@@ -109,7 +125,7 @@
-- * **@{#AI_CAP_ZONE.Destroyed}**: The AI has destroyed all bogeys @{Unit}s assigned in the CAS task.
-- * **Status** ( Group ): The AI is checking status (fuel and damage). When the tresholds have been reached, the AI will RTB.
--
--- ## 1.3) Set the Range of Engagement
+-- ## 3. Set the Range of Engagement
--
-- 
--
@@ -119,7 +135,7 @@
-- The range is applied at the position of the AI.
-- Use the method @{AI_CAP#AI_CAP_ZONE.SetEngageRange}() to define that range.
--
--- ## 1.4) Set the Zone of Engagement
+-- ## 4. Set the Zone of Engagement
--
-- 
--
@@ -129,8 +145,7 @@
--
-- ===
--
--- @field #AI_CAP_ZONE AI_CAP_ZONE
---
+-- @field #AI_CAP_ZONE
AI_CAP_ZONE = {
ClassName = "AI_CAP_ZONE",
}
diff --git a/Moose Development/Moose/AI/AI_CAS.lua b/Moose Development/Moose/AI/AI_CAS.lua
index 49ffdbc51..b9f866f0e 100644
--- a/Moose Development/Moose/AI/AI_CAS.lua
+++ b/Moose Development/Moose/AI/AI_CAS.lua
@@ -10,6 +10,22 @@
--
-- * @{#AI_CAS_ZONE}: Perform a CAS in a zone.
--
+-- ====
+--
+-- # Demo Missions
+--
+-- ### [AI_CAS Demo Missions source code](https://github.com/FlightControl-Master/MOOSE_MISSIONS/tree/master-release/CAS%20-%20Close%20Air%20Support)
+--
+-- ### [AI_CAS Demo Missions, only for beta testers](https://github.com/FlightControl-Master/MOOSE_MISSIONS/tree/master/CAS%20-%20Close%20Air%20Support)
+--
+-- ### [ALL Demo Missions pack of the last release](https://github.com/FlightControl-Master/MOOSE_MISSIONS/releases)
+--
+-- ====
+--
+-- # YouTube Channel
+--
+-- ### [AI_CAS YouTube Channel](https://www.youtube.com/playlist?list=PL7ZUrU4zZUl3JBO1WDqqpyYRRmIkR2ir2)
+--
-- ===
--
-- # **API CHANGE HISTORY**
@@ -46,11 +62,11 @@
-- @field Core.Zone#ZONE_BASE TargetZone The @{Zone} where the patrol needs to be executed.
-- @extends AI.AI_Patrol#AI_PATROL_ZONE
---- # 1) @{#AI_CAS_ZONE} class, extends @{AI_Patrol#AI_PATROL_ZONE}
+--- # AI_CAS_ZONE class, extends @{AI_Patrol#AI_PATROL_ZONE}
--
--- @{#AI_CAS_ZONE} derives from the @{AI_Patrol#AI_PATROL_ZONE}, inheriting its methods and behaviour.
+-- AI_CAS_ZONE derives from the @{AI_Patrol#AI_PATROL_ZONE}, inheriting its methods and behaviour.
--
--- The @{#AI_CAS_ZONE} class implements the core functions to provide Close Air Support in an Engage @{Zone} by an AIR @{Controllable} or @{Group}.
+-- The AI_CAS_ZONE class implements the core functions to provide Close Air Support in an Engage @{Zone} by an AIR @{Controllable} or @{Group}.
-- The AI_CAS_ZONE runs a process. It holds an AI in a Patrol Zone and when the AI is commanded to engage, it will fly to an Engage Zone.
--
-- 
@@ -104,22 +120,22 @@
--
-- 
--
--- # 1.1) AI_CAS_ZONE constructor
+-- # 1. AI_CAS_ZONE constructor
--
-- * @{#AI_CAS_ZONE.New}(): Creates a new AI_CAS_ZONE object.
--
--- ## 1.2) AI_CAS_ZONE is a FSM
+-- ## 2. AI_CAS_ZONE is a FSM
--
-- 
--
--- ### 1.2.1) AI_CAS_ZONE States
+-- ### 2.1. AI_CAS_ZONE States
--
-- * **None** ( Group ): The process is not started yet.
-- * **Patrolling** ( Group ): The AI is patrolling the Patrol Zone.
-- * **Engaging** ( Group ): The AI is engaging the targets in the Engage Zone, executing CAS.
-- * **Returning** ( Group ): The AI is returning to Base..
--
--- ### 1.2.2) AI_CAS_ZONE Events
+-- ### 2.2. AI_CAS_ZONE Events
--
-- * **@{AI_Patrol#AI_PATROL_ZONE.Start}**: Start the process.
-- * **@{AI_Patrol#AI_PATROL_ZONE.Route}**: Route the AI to a new random 3D point within the Patrol Zone.
@@ -134,8 +150,7 @@
--
-- ===
--
--- @field #AI_CAS_ZONE AI_CAS_ZONE
---
+-- @field #AI_CAS_ZONE
AI_CAS_ZONE = {
ClassName = "AI_CAS_ZONE",
}
diff --git a/Moose Development/Moose/AI/AI_Patrol.lua b/Moose Development/Moose/AI/AI_Patrol.lua
index 404b0d904..2b4f24c55 100644
--- a/Moose Development/Moose/AI/AI_Patrol.lua
+++ b/Moose Development/Moose/AI/AI_Patrol.lua
@@ -12,6 +12,22 @@
--
-- ====
--
+-- # Demo Missions
+--
+-- ### [AI_PATROL Demo Missions source code](https://github.com/FlightControl-Master/MOOSE_MISSIONS/tree/master-release/PAT%20-%20Patrolling)
+--
+-- ### [AI_PATROL Demo Missions, only for beta testers](https://github.com/FlightControl-Master/MOOSE_MISSIONS/tree/master/PAT%20-%20Patrolling)
+--
+-- ### [ALL Demo Missions pack of the last release](https://github.com/FlightControl-Master/MOOSE_MISSIONS/releases)
+--
+-- ====
+--
+-- # YouTube Channel
+--
+-- ### [AI_PATROL YouTube Channel](https://www.youtube.com/playlist?list=PL7ZUrU4zZUl35HvYZKA6G22WMt7iI3zky)
+--
+-- ====
+--
-- # **OPEN ISSUES**
--
-- 2017-01-17: When Spawned AI is located at an airbase, it will be routed first back to the airbase after take-off.
@@ -64,9 +80,9 @@
-- @field Functional.Spawn#SPAWN CoordTest
-- @extends Core.Fsm#FSM_CONTROLLABLE
---- # 1) @{#AI_PATROL_ZONE} class, extends @{Fsm#FSM_CONTROLLABLE}
+--- # AI_PATROL_ZONE class, extends @{Fsm#FSM_CONTROLLABLE}
--
--- The @{#AI_PATROL_ZONE} class implements the core functions to patrol a @{Zone} by an AI @{Controllable} or @{Group}.
+-- The AI_PATROL_ZONE class implements the core functions to patrol a @{Zone} by an AI @{Controllable} or @{Group}.
--
-- 
--
@@ -97,15 +113,15 @@
--
-- 
--
--- ## 1.1) AI_PATROL_ZONE constructor
+-- ## 1. AI_PATROL_ZONE constructor
--
-- * @{#AI_PATROL_ZONE.New}(): Creates a new AI_PATROL_ZONE object.
--
--- ## 1.2) AI_PATROL_ZONE is a FSM
+-- ## 2. AI_PATROL_ZONE is a FSM
--
-- 
--
--- ### 1.2.1) AI_PATROL_ZONE States
+-- ### 2.1. AI_PATROL_ZONE States
--
-- * **None** ( Group ): The process is not started yet.
-- * **Patrolling** ( Group ): The AI is patrolling the Patrol Zone.
@@ -113,7 +129,7 @@
-- * **Stopped** ( Group ): The process is stopped.
-- * **Crashed** ( Group ): The AI has crashed or is dead.
--
--- ### 1.2.2) AI_PATROL_ZONE Events
+-- ### 2.2. AI_PATROL_ZONE Events
--
-- * **Start** ( Group ): Start the process.
-- * **Stop** ( Group ): Stop the process.
@@ -123,17 +139,17 @@
-- * **Detected** ( Group ): The AI has detected new targets.
-- * **Status** ( Group ): The AI is checking status (fuel and damage). When the tresholds have been reached, the AI will RTB.
--
--- ## 1.3) Set or Get the AI controllable
+-- ## 3. Set or Get the AI controllable
--
-- * @{#AI_PATROL_ZONE.SetControllable}(): Set the AIControllable.
-- * @{#AI_PATROL_ZONE.GetControllable}(): Get the AIControllable.
--
--- ## 1.4) Set the Speed and Altitude boundaries of the AI controllable
+-- ## 4. Set the Speed and Altitude boundaries of the AI controllable
--
-- * @{#AI_PATROL_ZONE.SetSpeed}(): Set the patrol speed boundaries of the AI, for the next patrol.
-- * @{#AI_PATROL_ZONE.SetAltitude}(): Set altitude boundaries of the AI, for the next patrol.
--
--- ## 1.5) Manage the detection process of the AI controllable
+-- ## 5. Manage the detection process of the AI controllable
--
-- The detection process of the AI controllable can be manipulated.
-- Detection requires an amount of CPU power, which has an impact on your mission performance.
@@ -150,7 +166,7 @@
-- Note that when the zone is too far away, or the AI is not heading towards the zone, or the AI is too high, no targets may be detected
-- according the weather conditions.
--
--- ## 1.6) Manage the "out of fuel" in the AI_PATROL_ZONE
+-- ## 6. Manage the "out of fuel" in the AI_PATROL_ZONE
--
-- When the AI is out of fuel, it is required that a new AI is started, before the old AI can return to the home base.
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
@@ -159,7 +175,7 @@
-- Once the time is finished, the old AI will return to the base.
-- Use the method @{#AI_PATROL_ZONE.ManageFuel}() to have this proces in place.
--
--- ## 1.7) Manage "damage" behaviour of the AI in the AI_PATROL_ZONE
+-- ## 7. Manage "damage" behaviour of the AI in the AI_PATROL_ZONE
--
-- When the AI is damaged, it is required that a new AIControllable is started. However, damage cannon be foreseen early on.
-- Therefore, when the damage treshold is reached, the AI will return immediately to the home base (RTB).
@@ -167,8 +183,7 @@
--
-- ===
--
--- @field #AI_PATROL_ZONE AI_PATROL_ZONE
---
+-- @field #AI_PATROL_ZONE
AI_PATROL_ZONE = {
ClassName = "AI_PATROL_ZONE",
}
diff --git a/docs/Documentation/AI_Balancer.html b/docs/Documentation/AI_Balancer.html
index 84f7b559e..75e5c06cd 100644
--- a/docs/Documentation/AI_Balancer.html
+++ b/docs/Documentation/AI_Balancer.html
@@ -101,75 +101,28 @@ even when there are hardly any players in the mission.
-
+Demo Missions
-The AIBalancer#AIBALANCER class monitors and manages as many replacement AI groups as there are
-CLIENTS in a SET_CLIENT collection, which are not occupied by human players.
+
-
-In other words, use AI_BALANCER to simulate human behaviour by spawning in replacement AI in multi player missions.
+
-The parent class Fsm#FSM_SET manages the functionality to control the Finite State Machine (FSM).
-The mission designer can tailor the behaviour of the AI_BALANCER, by defining event and state transition methods.
-An explanation about state and event transition methods can be found in the FSM module documentation.
+
-The mission designer can tailor the AI_BALANCER behaviour, by implementing a state or event handling method for the following:
+
-
+YouTube Channel
-1.1) AI_BALANCER construction
-
-Create a new AI_BALANCER object with the AI_BALANCER.New() method:
-
-1.2) AI_BALANCER is a FSM
-
-
-
-1.2.1) AI_BALANCER States
-
-
- - Monitoring ( Set ): Monitoring the Set if all AI is spawned for the Clients.
- - Spawning ( Set, ClientName ): There is a new AI group spawned with ClientName as the name of reference.
- - Spawned ( Set, AIGroup ): A new AI has been spawned. You can handle this event to customize the AI behaviour with other AI FSMs or own processes.
- - Destroying ( Set, AIGroup ): The AI is being destroyed.
- - Returning ( Set, AIGroup ): The AI is returning to the airbase specified by the ReturnToAirbase methods. Handle this state to customize the return behaviour of the AI, if any.
-
-
-1.2.2) AI_BALANCER Events
-
-
- - Monitor ( Set ): Every 10 seconds, the Monitor event is triggered to monitor the Set.
- - Spawn ( Set, ClientName ): Triggers when there is a new AI group to be spawned with ClientName as the name of reference.
- - Spawned ( Set, AIGroup ): Triggers when a new AI has been spawned. You can handle this event to customize the AI behaviour with other AI FSMs or own processes.
- - Destroy ( Set, AIGroup ): The AI is being destroyed.
- - Return ( Set, AIGroup ): The AI is returning to the airbase specified by the ReturnToAirbase methods.
-
-
-1.3) AI_BALANCER spawn interval for replacement AI
-
-Use the method AI_BALANCER.InitSpawnInterval() to set the earliest and latest interval in seconds that is waited until a new replacement AI is spawned.
-
-1.4) AI_BALANCER returns AI to Airbases
-
-By default, When a human player joins a slot that is AI_BALANCED, the AI group will be destroyed by default.
-However, there are 2 additional options that you can use to customize the destroy behaviour.
-When a human player joins a slot, you can configure to let the AI return to:
-
-
-
-Note that when AI returns to an airbase, the AIBALANCER will trigger the Return event and the AI will return,
-otherwise the AIBALANCER will trigger a Destroy event, and the AI will be destroyed.
+
API CHANGE HISTORY
-The underlying change log documents the API changes. Please read this carefully. The following notation is used:
+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.
@@ -205,25 +158,16 @@ otherwise the AIBALANCER will trigger a Destroy event, and
| AI_BALANCER |
+AI_BALANCER class, extends Fsm#FSM_SET
+The AIBALANCER class monitors and manages as many replacement AI groups as there are
+CLIENTS in a SETCLIENT collection, which are not occupied by human players.
|
- | AI_BALANCER.AIGroups |
-
-
- |
-
-
- | AI_BALANCER.ClassName |
-
-
- |
-
-
| AI_BALANCER.Earliest |
@@ -245,12 +189,6 @@ otherwise the AIBALANCER will trigger a Destroy event, and
| AI_BALANCER:New(SetClient, SpawnAI) |
Creates a new AI_BALANCER object
- |
-
-
- | AI_BALANCER.PatrolZones |
-
-
|
@@ -344,6 +282,69 @@ otherwise the AIBALANCER will trigger a Destroy event, and
-
+
AI_BALANCER class, extends Fsm#FSM_SET
+
+The AIBALANCER class monitors and manages as many replacement AI groups as there are
+CLIENTS in a SETCLIENT collection, which are not occupied by human players.
+
+
+In other words, use AI_BALANCER to simulate human behaviour by spawning in replacement AI in multi player missions.
+
+The parent class Fsm#FSM_SET manages the functionality to control the Finite State Machine (FSM).
+The mission designer can tailor the behaviour of the AI_BALANCER, by defining event and state transition methods.
+An explanation about state and event transition methods can be found in the FSM module documentation.
+
+The mission designer can tailor the AI_BALANCER behaviour, by implementing a state or event handling method for the following:
+
+
+
+1. AI_BALANCER construction
+
+Create a new AI_BALANCER object with the AI_BALANCER.New() method:
+
+2. AI_BALANCER is a FSM
+
+
+
+2.1. AI_BALANCER States
+
+
+ - Monitoring ( Set ): Monitoring the Set if all AI is spawned for the Clients.
+ - Spawning ( Set, ClientName ): There is a new AI group spawned with ClientName as the name of reference.
+ - Spawned ( Set, AIGroup ): A new AI has been spawned. You can handle this event to customize the AI behaviour with other AI FSMs or own processes.
+ - Destroying ( Set, AIGroup ): The AI is being destroyed.
+ - Returning ( Set, AIGroup ): The AI is returning to the airbase specified by the ReturnToAirbase methods. Handle this state to customize the return behaviour of the AI, if any.
+
+
+2.2. AI_BALANCER Events
+
+
+ - Monitor ( Set ): Every 10 seconds, the Monitor event is triggered to monitor the Set.
+ - Spawn ( Set, ClientName ): Triggers when there is a new AI group to be spawned with ClientName as the name of reference.
+ - Spawned ( Set, AIGroup ): Triggers when a new AI has been spawned. You can handle this event to customize the AI behaviour with other AI FSMs or own processes.
+ - Destroy ( Set, AIGroup ): The AI is being destroyed.
+ - Return ( Set, AIGroup ): The AI is returning to the airbase specified by the ReturnToAirbase methods.
+
+
+3. AI_BALANCER spawn interval for replacement AI
+
+Use the method AI_BALANCER.InitSpawnInterval() to set the earliest and latest interval in seconds that is waited until a new replacement AI is spawned.
+
+4. AI_BALANCER returns AI to Airbases
+
+By default, When a human player joins a slot that is AI_BALANCED, the AI group will be destroyed by default.
+However, there are 2 additional options that you can use to customize the destroy behaviour.
+When a human player joins a slot, you can configure to let the AI return to:
+
+
+
+Note that when AI returns to an airbase, the AIBALANCER will trigger the Return event and the AI will return,
+otherwise the AIBALANCER will trigger a Destroy event, and the AI will be destroyed.
@@ -351,38 +352,7 @@ otherwise the AIBALANCER will trigger a Destroy event, and
-
-AI_BALANCER class
-
- Field(s)
-
--
-
-
-
-AI_BALANCER.AIGroups
-
-
--
-
-
-
-
-
-
--
-
- #string
-
-AI_BALANCER.ClassName
-
-
--
-
-
-
-
-
+ Field(s)
-
@@ -478,20 +448,6 @@ The default Spawn object to spawn new AI Groups when needed.
#AI_BALANCER:
-
-
-
--
-
-
-
-AI_BALANCER.PatrolZones
-
-
--
-
-
-
diff --git a/docs/Documentation/AI_Cap.html b/docs/Documentation/AI_Cap.html
index 7b1a109bc..a02100d1d 100644
--- a/docs/Documentation/AI_Cap.html
+++ b/docs/Documentation/AI_Cap.html
@@ -111,6 +111,22 @@
+Demo Missions
+
+
+
+
+
+
+
+
+
+YouTube Channel
+
+
+
+
+
API CHANGE HISTORY
The underlying change log documents the API changes. Please read this carefully. The following notation is used:
@@ -150,9 +166,9 @@
| AI_CAP_ZONE |
-
+
- The #AICAPZONE class implements the core functions to patrol a Zone by an AI Controllable or Group
+ The AICAPZONE class implements the core functions to patrol a Zone by an AI Controllable or Group
and automatically engage any airborne enemies that are within a certain range or within a certain zone.
|
@@ -412,9 +428,9 @@ and automatically engage any airborne enemies that are within a certain range or
-
-
+
-
The #AICAPZONE class implements the core functions to patrol a Zone by an AI Controllable or Group
+
The AICAPZONE class implements the core functions to patrol a Zone by an AI Controllable or Group
and automatically engage any airborne enemies that are within a certain range or within a certain zone.
@@ -447,17 +463,17 @@ When the fuel treshold has been reached, the airplane will fly towards the neare

-1.1) AICAPZONE constructor
+1. AICAPZONE constructor
-1.2) AICAPZONE is a FSM
+2. AICAPZONE is a FSM

-1.2.1) AICAPZONE States
+2.1 AICAPZONE States
- None ( Group ): The process is not started yet.
@@ -466,7 +482,7 @@ When the fuel treshold has been reached, the airplane will fly towards the neare
- Returning ( Group ): The AI is returning to Base..
-1.2.2) AICAPZONE Events
+2.2 AICAPZONE Events
- **AIPatrol#AIPATROL_ZONE.Start**: Start the process.
@@ -481,7 +497,7 @@ When the fuel treshold has been reached, the airplane will fly towards the neare
- Status ( Group ): The AI is checking status (fuel and damage). When the tresholds have been reached, the AI will RTB.
-1.3) Set the Range of Engagement
+3. Set the Range of Engagement

@@ -491,7 +507,7 @@ The range can be beyond or smaller than the range of the Patrol Zone.
The range is applied at the position of the AI.
Use the method AICAP#AICAP_ZONE.SetEngageRange() to define that range.
-1.4) Set the Zone of Engagement
+4. Set the Zone of Engagement

diff --git a/docs/Documentation/AI_Cas.html b/docs/Documentation/AI_Cas.html
index 4c0163c84..9c0d1d4e6 100644
--- a/docs/Documentation/AI_Cas.html
+++ b/docs/Documentation/AI_Cas.html
@@ -111,6 +111,22 @@
+Demo Missions
+
+
+
+
+
+
+
+
+
+YouTube Channel
+
+
+
+
+
API CHANGE HISTORY
The underlying change log documents the API changes. Please read this carefully. The following notation is used:
@@ -148,9 +164,9 @@
| AI_CAS_ZONE |
-
+
- #AICASZONE derives from the AIPatrol#AIPATROL_ZONE, inheriting its methods and behaviour.
+AICASZONE derives from the AIPatrol#AIPATROL_ZONE, inheriting its methods and behaviour.
|
@@ -421,13 +437,13 @@
-
-
+
-
#AICASZONE derives from the AIPatrol#AIPATROL_ZONE, inheriting its methods and behaviour.
+AICASZONE derives from the AIPatrol#AIPATROL_ZONE, inheriting its methods and behaviour.
-The #AICASZONE class implements the core functions to provide Close Air Support in an Engage Zone by an AIR Controllable or Group.
+The AICASZONE class implements the core functions to provide Close Air Support in an Engage Zone by an AIR Controllable or Group.
The AICASZONE runs a process. It holds an AI in a Patrol Zone and when the AI is commanded to engage, it will fly to an Engage Zone.

@@ -483,17 +499,17 @@ It can be notified to go RTB through the RTB event.

-1.1) AICASZONE constructor
+1. AICASZONE constructor
-1.2) AICASZONE is a FSM
+2. AICASZONE is a FSM

-1.2.1) AICASZONE States
+2.1. AICASZONE States
- None ( Group ): The process is not started yet.
@@ -502,7 +518,7 @@ It can be notified to go RTB through the RTB event.
- Returning ( Group ): The AI is returning to Base..
-1.2.2) AICASZONE Events
+2.2. AICASZONE Events
- **AIPatrol#AIPATROL_ZONE.Start**: Start the process.
diff --git a/docs/Documentation/AI_Patrol.html b/docs/Documentation/AI_Patrol.html
index b6fa99328..145ca6017 100644
--- a/docs/Documentation/AI_Patrol.html
+++ b/docs/Documentation/AI_Patrol.html
@@ -111,6 +111,22 @@
+Demo Missions
+
+
+
+
+
+
+
+
+
+YouTube Channel
+
+
+
+
+
OPEN ISSUES
2017-01-17: When Spawned AI is located at an airbase, it will be routed first back to the airbase after take-off.
@@ -162,9 +178,9 @@
| AI_PATROL_ZONE |
-
+
- The #AIPATROLZONE class implements the core functions to patrol a Zone by an AI Controllable or Group.
+The AIPATROLZONE class implements the core functions to patrol a Zone by an AI Controllable or Group.
|
@@ -657,9 +673,9 @@
-
-
+
-
The #AIPATROLZONE class implements the core functions to patrol a Zone by an AI Controllable or Group.
+The AIPATROLZONE class implements the core functions to patrol a Zone by an AI Controllable or Group.
@@ -692,17 +708,17 @@ When the fuel treshold has been reached, the airplane will fly towards the neare

-1.1) AIPATROLZONE constructor
+1. AIPATROLZONE constructor
-1.2) AIPATROLZONE is a FSM
+2. AIPATROLZONE is a FSM

-1.2.1) AIPATROLZONE States
+2.1. AIPATROLZONE States
- None ( Group ): The process is not started yet.
@@ -712,7 +728,7 @@ When the fuel treshold has been reached, the airplane will fly towards the neare
- Crashed ( Group ): The AI has crashed or is dead.
-1.2.2) AIPATROLZONE Events
+2.2. AIPATROLZONE Events
- Start ( Group ): Start the process.
@@ -724,21 +740,21 @@ When the fuel treshold has been reached, the airplane will fly towards the neare
- Status ( Group ): The AI is checking status (fuel and damage). When the tresholds have been reached, the AI will RTB.
-1.3) Set or Get the AI controllable
+3. Set or Get the AI controllable
-1.4) Set the Speed and Altitude boundaries of the AI controllable
+4. Set the Speed and Altitude boundaries of the AI controllable
-1.5) Manage the detection process of the AI controllable
+5. Manage the detection process of the AI controllable
The detection process of the AI controllable can be manipulated.
Detection requires an amount of CPU power, which has an impact on your mission performance.
@@ -757,7 +773,7 @@ Use the method AIPATROLZO
Note that when the zone is too far away, or the AI is not heading towards the zone, or the AI is too high, no targets may be detected
according the weather conditions.
-1.6) Manage the "out of fuel" in the AIPATROLZONE
+6. Manage the "out of fuel" in the AIPATROLZONE
When the AI is out of fuel, it is required that a new AI is started, before the old AI can return to the home base.
Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
@@ -766,7 +782,7 @@ while a new AI is targetted to the AIPATROLZONE.
Once the time is finished, the old AI will return to the base.
Use the method AIPATROLZONE.ManageFuel() to have this proces in place.
-1.7) Manage "damage" behaviour of the AI in the AIPATROLZONE
+7. Manage "damage" behaviour of the AI in the AIPATROLZONE
When the AI is damaged, it is required that a new AIControllable is started. However, damage cannon be foreseen early on.
Therefore, when the damage treshold is reached, the AI will return immediately to the home base (RTB).
@@ -933,9 +949,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 3a1408075..a97780b33 100644
--- a/docs/Documentation/Cargo.html
+++ b/docs/Documentation/Cargo.html
@@ -2819,6 +2819,7 @@ The range till cargo will board.
-
+
CARGO_UNIT.CargoCarrier
diff --git a/docs/Documentation/Detection.html b/docs/Documentation/Detection.html
index 75eb0145f..c17360e5a 100644
--- a/docs/Documentation/Detection.html
+++ b/docs/Documentation/Detection.html
@@ -2172,7 +2172,6 @@ self
-
- #number
DETECTION_BASE.DetectedItemCount
@@ -2186,7 +2185,6 @@ self
-
- #number
DETECTION_BASE.DetectedItemMax
@@ -2300,7 +2298,7 @@ self
-
- #number
+
DETECTION_BASE.DetectionInterval
diff --git a/docs/Documentation/Fsm.html b/docs/Documentation/Fsm.html
index b418f0898..c3394e0ee 100644
--- a/docs/Documentation/Fsm.html
+++ b/docs/Documentation/Fsm.html
@@ -1620,7 +1620,7 @@ A string defining the start state.
-
- #string
+
FSM._StartState
@@ -1919,6 +1919,7 @@ A string defining the start state.
-
+
FSM.current
diff --git a/docs/Documentation/Spawn.html b/docs/Documentation/Spawn.html
index 57d590be1..a495d0c0c 100644
--- a/docs/Documentation/Spawn.html
+++ b/docs/Documentation/Spawn.html
@@ -810,6 +810,12 @@ and any spaces before and after the resulting name are removed.
| SPAWN:_TranslateRotate(SpawnIndex, SpawnRootX, SpawnRootY, SpawnX, SpawnY, SpawnAngle) |
+ |
+
+
+ | SPAWN.uncontrolled |
+
+
|
@@ -2111,9 +2117,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.
-
@@ -2567,9 +2570,6 @@ when nothing was spawned.
-
- Overwrite unit names by default with group name.
-
@@ -2991,7 +2991,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.
@@ -3557,6 +3557,20 @@ True = Continue Scheduler
+
+
+
+-
+
+
+
+SPAWN.uncontrolled
+
+
+-
+
+
+
diff --git a/docs/Documentation/SpawnStatic.html b/docs/Documentation/SpawnStatic.html
index 5413f9a2e..99a7e20af 100644
--- a/docs/Documentation/SpawnStatic.html
+++ b/docs/Documentation/SpawnStatic.html
@@ -442,6 +442,7 @@ ptional) The name of the new static.
-
+ #number
SPAWNSTATIC.SpawnIndex
diff --git a/docs/Documentation/Task_Cargo.html b/docs/Documentation/Task_Cargo.html
index 757d21e25..b2cbf3569 100644
--- a/docs/Documentation/Task_Cargo.html
+++ b/docs/Documentation/Task_Cargo.html
@@ -451,7 +451,7 @@ based on the tasking capabilities defined in Task#TA
-
- Core.Cargo#CARGO_GROUP
+
FSM_PROCESS.Cargo
diff --git a/docs/Documentation/index.html b/docs/Documentation/index.html
index 91ea5f63f..bb25ca5bb 100644
--- a/docs/Documentation/index.html
+++ b/docs/Documentation/index.html
@@ -104,10 +104,25 @@ even when there are hardly any players in the mission.
-
+Demo Missions
-The AIBalancer#AIBALANCER class monitors and manages as many replacement AI groups as there are
-CLIENTS in a SET_CLIENT collection, which are not occupied by human players.
+
+
+
+
+
+
+
+
+YouTube Channel
+
+
+
+
+
+API CHANGE HISTORY
+
+The underlying change log documents the API changes.