Restructuring of folder tree

This commit is contained in:
kaltokri
2024-01-01 11:42:34 +01:00
parent a18ac8ab4d
commit 08c03ceceb
1074 changed files with 7510 additions and 14158 deletions
@@ -0,0 +1,48 @@
--- Detect and attack a set of enemy units using helicopters.
-- Name: AID-A2G-001 - Detection and Attack Helicopters
-- Author: FlightControl
-- Date Created: 02 Nov 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } )
DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 5000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityHigh()
A2GDispatcher:SetDefenseRadius( 200000 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T" }, 10 )
A2GDispatcher:SetSquadronSead( "Maykop SEAD", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop SEAD" )
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.2 )
A2GDispatcher:SetSquadron( "Maykop CAS", "CAS", { "CCCP KA-50" }, 10 )
A2GDispatcher:SetSquadronCas( "Maykop CAS", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop CAS" )
A2GDispatcher:SetSquadronOverhead( "Maykop CAS", 0.25 )
A2GDispatcher:SetSquadron( "Maykop BAI", "BAI", { "CCCP KA-50" }, 10 )
A2GDispatcher:SetSquadronBai( "Maykop BAI", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop BAI" )
A2GDispatcher:SetSquadronOverhead( "Maykop BAI", 0.25 )
-- We set for each squadron a takeoff interval, as each helicopter will launch from a FARP.
-- This to prevent helicopters to clutter.
-- Each helicopter group is taking off the FARP in hot start.
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop SEAD", 60 )
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop CAS", 60 )
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop BAI", 60 )
@@ -0,0 +1,52 @@
--- Detect and attack a set of enemy units using helicopters.
-- Name: AID-A2G-001 - Detection and Attack Helicopters
-- Author: FlightControl
-- Date Created: 02 Nov 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } )
DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityHigh()
A2GDispatcher:SetDefenseRadius( 100000 )
A2GDispatcher:SetTacticalDisplay( true )
local PatrolZone = ZONE:New( "PatrolZone" )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Maykop SEAD", "SEAD", { "CCCP KA-50" }, 10 )
A2GDispatcher:SetSquadronSeadPatrol( "Maykop SEAD", PatrolZone, 300, 500, 50, 80, 250, 300 )
A2GDispatcher:SetSquadronPatrolInterval( "Maykop SEAD", 2, 30, 60, 1, "SEAD" )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop SEAD" )
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.25 )
A2GDispatcher:SetSquadron( "Maykop CAS", "CAS", { "CCCP KA-50" }, 10 )
A2GDispatcher:SetSquadronCasPatrol( "Maykop CAS", PatrolZone, 600, 700, 50, 80, 250, 300 )
A2GDispatcher:SetSquadronPatrolInterval( "Maykop CAS", 2, 30, 60, 1, "CAS" )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop CAS" )
A2GDispatcher:SetSquadronOverhead( "Maykop CAS", 0.25 )
A2GDispatcher:SetSquadron( "Maykop BAI", "BAI", { "CCCP KA-50" }, 10 )
A2GDispatcher:SetSquadronBaiPatrol( "Maykop BAI", PatrolZone, 800, 900, 50, 80, 250, 300 )
A2GDispatcher:SetSquadronPatrolInterval( "Maykop BAI", 2, 30, 60, 1, "BAI" )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop BAI" )
A2GDispatcher:SetSquadronOverhead( "Maykop BAI", 0.25 )
-- We set for each squadron a takeoff interval, as each helicopter will launch from a FARP.
-- This to prevent helicopters to clutter.
-- Each helicopter group is taking off the FARP in hot start.
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop SEAD", 60 )
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop CAS", 60 )
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop BAI", 60 )
@@ -0,0 +1,52 @@
--- Detect and attack a set of enemy units using helicopters.
-- Name: AID-A2G-001 - Detection and Attack Helicopters
-- Author: FlightControl
-- Date Created: 02 Nov 2018
CC = COMMANDCENTER:New( GROUP:FindByName("HQ"),"HQ")
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } )
DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
A2GDispatcher:SetCommandCenter( CC )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityHigh()
A2GDispatcher:SetDefenseRadius( 200000 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T" }, 10 )
A2GDispatcher:SetSquadronSead( "Maykop SEAD", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop SEAD" )
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.2 )
A2GDispatcher:SetSquadron( "Maykop CAS", "CAS", { "CCCP KA-50" }, 10 )
A2GDispatcher:SetSquadronCas( "Maykop CAS", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop CAS" )
A2GDispatcher:SetSquadronOverhead( "Maykop CAS", 0.25 )
A2GDispatcher:SetSquadron( "Maykop BAI", "BAI", { "CCCP KA-50" }, 10 )
A2GDispatcher:SetSquadronBai( "Maykop BAI", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop BAI" )
A2GDispatcher:SetSquadronOverhead( "Maykop BAI", 0.25 )
-- We set for each squadron a takeoff interval, as each helicopter will launch from a FARP.
-- This to prevent helicopters to clutter.
-- Each helicopter group is taking off the FARP in hot start.
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop SEAD", 60 )
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop CAS", 60 )
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop BAI", 60 )
@@ -0,0 +1,52 @@
--- Detect and attack a set of enemy units using helicopters.
-- Name: AID-A2G-001 - Detection and Attack Helicopters
-- Author: FlightControl
-- Date Created: 02 Nov 2018
CC = COMMANDCENTER:New( GROUP:FindByName("HQ"),"HQ")
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } )
DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
A2GDispatcher:SetCommandCenter( CC )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityHigh()
A2GDispatcher:SetDefenseRadius( 200000 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T" }, 10 )
A2GDispatcher:SetSquadronSead( "Maykop SEAD", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop SEAD" )
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.2 )
A2GDispatcher:SetSquadron( "Maykop CAS", "CAS", { "CCCP KA-50" }, 10 )
A2GDispatcher:SetSquadronCas( "Maykop CAS", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop CAS" )
A2GDispatcher:SetSquadronOverhead( "Maykop CAS", 0.25 )
A2GDispatcher:SetSquadron( "Maykop BAI", "BAI", { "CCCP KA-50" }, 10 )
A2GDispatcher:SetSquadronBai( "Maykop BAI", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop BAI" )
A2GDispatcher:SetSquadronOverhead( "Maykop BAI", 0.25 )
-- We set for each squadron a takeoff interval, as each helicopter will launch from a FARP.
-- This to prevent helicopters to clutter.
-- Each helicopter group is taking off the FARP in hot start.
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop SEAD", 60 )
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop CAS", 60 )
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop BAI", 60 )
@@ -0,0 +1,52 @@
--- Detect and attack a set of enemy units using helicopters.
-- Name: AID-A2G-001 - Detection and Attack Helicopters
-- Author: FlightControl
-- Date Created: 02 Nov 2018
CC = COMMANDCENTER:New( GROUP:FindByName( "HQ" ), "HQ" )
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } )
DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
A2GDispatcher:SetCommandCenter( CC )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityHigh()
A2GDispatcher:SetDefenseRadius( 200000 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T" }, 10 )
A2GDispatcher:SetSquadronSead( "Maykop SEAD", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop SEAD" )
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.2 )
A2GDispatcher:SetSquadron( "Maykop CAS", "CAS", { "CCCP KA-50" }, 10 )
A2GDispatcher:SetSquadronCas( "Maykop CAS", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop CAS" )
A2GDispatcher:SetSquadronOverhead( "Maykop CAS", 0.25 )
A2GDispatcher:SetSquadron( "Maykop BAI", "BAI", { "CCCP KA-50" }, 10 )
A2GDispatcher:SetSquadronBai( "Maykop BAI", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop BAI" )
A2GDispatcher:SetSquadronOverhead( "Maykop BAI", 0.25 )
-- We set for each squadron a takeoff interval, as each helicopter will launch from a FARP.
-- This to prevent helicopters to clutter.
-- Each helicopter group is taking off the FARP in hot start.
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop SEAD", 60 )
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop CAS", 60 )
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop BAI", 60 )
@@ -0,0 +1,50 @@
--- Test the defense radius.
-- Defenses should pickup targets within the defense radius, but not outside of it!
-- Defenses should engage targets closer to the HQ with higher probability than targets at longer distance from the HQ.
-- The tests are with SEAD only.
-- Name: AID-A2G-003 - DefenseRadius
-- Author: FlightControl
-- Date Created: 11 Nov 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New() -- Defene a set of group objects, caled DetectionSetGroup.
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } ) -- The DetectionSetGroup will search for groups that start with the name "CCCP Recce".
-- This command will start the dynamic filtering, so when groups spawn in or are destroyed,
-- which have a group name starting with "CCCP Recce", then these will be automatically added or removed from the set.
DetectionSetGroup:FilterStart()
-- This command defines the reconnaissance network.
-- It will group any detected ground enemy targets within a radius of 1km.
-- It uses the DetectionSetGroup, which defines the set of reconnaissance groups to detect for enemy ground targets.
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityHigh()
A2GDispatcher:SetDefenseRadius( 100000 )
A2GDispatcher:SetTacticalDisplay( true )
local PatrolZone = ZONE:New( "PatrolZone" )
-- Setup the SEAD squadrons.
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T SEAD" }, 10 )
A2GDispatcher:SetSquadronSeadPatrol( "Maykop SEAD", PatrolZone, 1000, 2500, 400, 600, 1100, 1500 )
A2GDispatcher:SetSquadronSeadPatrolInterval( "Maykop SEAD", 1, 30, 60, 1 )
A2GDispatcher:SetSquadronTakeoffInAir( "Maykop SEAD" )
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.25 )
-- Setup the CAS squadrons.
A2GDispatcher:SetSquadron( "Maykop CAS", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T CAS" }, 10 )
A2GDispatcher:SetSquadronCasPatrol( "Maykop CAS", PatrolZone, 1000, 2500, 400, 600, 1100, 1500 )
A2GDispatcher:SetSquadronCasPatrolInterval( "Maykop CAS", 1, 30, 60, 1 )
A2GDispatcher:SetSquadronTakeoffInAir( "Maykop CAS" )
A2GDispatcher:SetSquadronOverhead( "Maykop CAS", 0.25 )
@@ -0,0 +1,45 @@
--- Test the default engage limit.
-- Defenses should engage enemy units, but not more defenses than the defense limit!
-- Name: AID-A2G-110 - Default DefenseLimit
-- Author: FlightControl
-- Date Created: 15 Nov 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New() -- Defene a set of group objects, caled DetectionSetGroup.
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } ) -- The DetectionSetGroup will search for groups that start with the name "CCCP Recce".
-- This command will start the dynamic filtering, so when groups spawn in or are destroyed,
-- which have a group name starting with "CCCP Recce", then these will be automatically added or removed from the set.
DetectionSetGroup:FilterStart()
-- This command defines the reconnaissance network.
-- It will group any detected ground enemy targets within a radius of 1km.
-- It uses the DetectionSetGroup, which defines the set of reconnaissance groups to detect for enemy ground targets.
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityHigh()
A2GDispatcher:SetDefenseRadius( 100000 )
-- This is the test, not more than 4 defenses in total should engage!
A2GDispatcher:SetDefaultEngageLimit( 6 )
A2GDispatcher:SetTacticalDisplay( true )
local PatrolZone = ZONE:New( "PatrolZone" )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T SEAD" }, 10 )
A2GDispatcher:SetSquadronSead( "Maykop SEAD", 250, 350 )
--A2GDispatcher:SetSquadronSeadPatrol( "Maykop SEAD", PatrolZone, 1000, 2500, 400, 600, 1100, 1500 )
--A2GDispatcher:SetSquadronSeadPatrolInterval( "Maykop SEAD", 4, 30, 60, 1 )
A2GDispatcher:SetSquadronTakeoffInAir( "Maykop SEAD" )
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.25 )
@@ -0,0 +1,80 @@
--- Test the communication system to other players.
-- A command center will facilitate the A2G defenses communication to the players, who reporting to the same command center.
-- The task system needs to be used to have this reporting facilitated.
-- Name: AID-A2G-190 - Communication
-- Author: FlightControl
-- Date Created: 11 Jan 2019
-- Define a command center that will communicate with the players.
CC_Red = COMMANDCENTER:New( GROUP:FindByName( "HQ" ), "Command" )
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New() -- Defene a set of group objects, caled DetectionSetGroup.
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } ) -- The DetectionSetGroup will search for groups that start with the name "CCCP Recce".
-- This command will start the dynamic filtering, so when groups spawn in or are destroyed,
-- which have a group name starting with "CCCP Recce", then these will be automatically added or removed from the set.
DetectionSetGroup:FilterStart()
-- This command defines the reconnaissance network.
-- It will group any detected ground enemy targets within a radius of 1km.
-- It uses the DetectionSetGroup, which defines the set of reconnaissance groups to detect for enemy ground targets.
Detection_Red = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
AI_A2G_Dispatcher_Red = AI_A2G_DISPATCHER:New( Detection_Red )
-- Add defense coordinates.
AI_A2G_Dispatcher_Red:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
AI_A2G_Dispatcher_Red:SetDefenseReactivityHigh()
AI_A2G_Dispatcher_Red:SetDefenseRadius( 100000 )
-- This is the test, not more than 4 defenses in total should engage!
AI_A2G_Dispatcher_Red:SetDefaultEngageLimit( 6 )
AI_A2G_Dispatcher_Red:SetTacticalDisplay( true )
local PatrolZone = ZONE:New( "PatrolZone" )
-- Setup the squadrons.
-- SEAD
AI_A2G_Dispatcher_Red:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP AI SU-25T SEAD #001", "CCCP AI SU-25T SEAD #002", "CCCP AI SU-25T SEAD #003" }, 10 )
AI_A2G_Dispatcher_Red:SetSquadronSead( "Maykop SEAD", 600, 800 )
AI_A2G_Dispatcher_Red:SetSquadronTakeoffFromParkingHot( "Maykop SEAD" )
AI_A2G_Dispatcher_Red:SetSquadronOverhead( "Maykop SEAD", 0.2 )
AI_A2G_Dispatcher_Red:SetSquadronTakeoffInterval( "Maykop SEAD", 60 )
-- CAS
AI_A2G_Dispatcher_Red:SetSquadron( "Maykop CAS", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP AI SU-25T CAS" }, 10 )
AI_A2G_Dispatcher_Red:SetSquadronCas( "Maykop CAS", 600, 800 )
AI_A2G_Dispatcher_Red:SetSquadronTakeoffFromParkingHot( "Maykop CAS" )
AI_A2G_Dispatcher_Red:SetSquadronOverhead( "Maykop CAS", 0.25 )
AI_A2G_Dispatcher_Red:SetSquadronTakeoffInterval( "Maykop CAS", 60 )
-- BAI
AI_A2G_Dispatcher_Red:SetSquadron( "Maykop BAI", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP AI SU-25T BAI" }, 10 )
AI_A2G_Dispatcher_Red:SetSquadronBai( "Maykop BAI", 600, 800 )
AI_A2G_Dispatcher_Red:SetSquadronTakeoffFromParkingHot( "Maykop BAI" )
AI_A2G_Dispatcher_Red:SetSquadronOverhead( "Maykop BAI", 0.25 )
AI_A2G_Dispatcher_Red:SetSquadronTakeoffInterval( "Maykop BAI", 60 )
-- Now we setup the TASK A2G dispatcher, that will use the same detection system, as the AI A2G dispatcher!
Mission_Red = MISSION:New( CC_Red, "Comms Demo", "Example", "This mission demonstrates the communications between the AI A2G dispatcher and the TASK A2G dispatcher to the involved players.", coalition.side.RED )
Players_Red = SET_GROUP:New():FilterPrefixes( "CCCP Player" ):FilterStart()
Task_A2G_Dispatcher_Red = TASK_A2G_DISPATCHER:New( Mission_Red, Players_Red, Detection_Red )
Task_A2G_Dispatcher_Red:Start()
-- Here we set the command center, which will faciliate the communication to the Players_Red, using the same Detection_Red.
AI_A2G_Dispatcher_Red:SetCommandCenter( CC_Red )
@@ -0,0 +1,63 @@
--- Test the communication system to other players.
-- A command center will facilitate the A2G defenses communication to the players, who reporting to the same command center.
-- The task system needs to be used to have this reporting facilitated.
--
-- Author: FlightControl
-- Date Created: 20 Jan 2019
-- Define a command center that will communicate with the players.
CC_Red = COMMANDCENTER:New( GROUP:FindByName( "HQ" ), "Command" )
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New() -- Defene a set of group objects, caled DetectionSetGroup.
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } ) -- The DetectionSetGroup will search for groups that start with the name "CCCP Recce".
-- This command will start the dynamic filtering, so when groups spawn in or are destroyed,
-- which have a group name starting with "CCCP Recce", then these will be automatically added or removed from the set.
DetectionSetGroup:FilterStart()
-- This command defines the reconnaissance network.
-- It will group any detected ground enemy targets within a radius of 1km.
-- It uses the DetectionSetGroup, which defines the set of reconnaissance groups to detect for enemy ground targets.
Detection_Red = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
AI_A2G_Dispatcher_Red = AI_A2G_DISPATCHER:New( Detection_Red )
-- Add defense coordinates.
AI_A2G_Dispatcher_Red:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
AI_A2G_Dispatcher_Red:SetDefenseReactivityHigh()
AI_A2G_Dispatcher_Red:SetDefenseRadius( 100000 )
-- This is the test, not more than 4 defenses in total should engage!
AI_A2G_Dispatcher_Red:SetDefaultEngageLimit( 6 )
AI_A2G_Dispatcher_Red:SetTacticalDisplay( true )
local PatrolZone = ZONE:New( "PatrolZone" )
-- Setup the squadrons.
-- SEAD
AI_A2G_Dispatcher_Red:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP AI SU-25T SEAD #001", "CCCP AI SU-25T SEAD #002", "CCCP AI SU-25T SEAD #003" }, 10 )
AI_A2G_Dispatcher_Red:SetSquadronSead( "Maykop SEAD", 600, 800 )
AI_A2G_Dispatcher_Red:SetSquadronOverhead( "Maykop SEAD", 0.2 )
AI_A2G_Dispatcher_Red:SetSquadronTakeoffInterval( "Maykop SEAD", 60 )
-- Now we setup the TASK A2G dispatcher, that will use the same detection system, as the AI A2G dispatcher!
Mission_Red = MISSION:New( CC_Red, "Comms Demo", "Example", "This mission demonstrates the communications between the AI A2G dispatcher and the TASK A2G dispatcher to the involved players.", coalition.side.RED )
Players_Red = SET_GROUP:New():FilterPrefixes( "CCCP Player" ):FilterStart()
Task_A2G_Dispatcher_Red = TASK_A2G_DISPATCHER:New( Mission_Red, Players_Red, Detection_Red )
Task_A2G_Dispatcher_Red:Start()
-- Here we set the command center, which will faciliate the communication to the Players_Red, using the same Detection_Red.
AI_A2G_Dispatcher_Red:SetCommandCenter( CC_Red )
@@ -0,0 +1,42 @@
--- Test the default engage limit.
-- Defenses should engage enemy units, but not more defenses than the defense limit!
-- Name: AID-A2G-110 - Default DefenseLimit
-- Author: FlightControl
-- Date Created: 15 Nov 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New() -- Defene a set of group objects, caled DetectionSetGroup.
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } ) -- The DetectionSetGroup will search for groups that start with the name "CCCP Recce".
-- This command will start the dynamic filtering, so when groups spawn in or are destroyed,
-- which have a group name starting with "CCCP Recce", then these will be automatically added or removed from the set.
DetectionSetGroup:FilterStart()
-- This command defines the reconnaissance network.
-- It will group any detected ground enemy targets within a radius of 1km.
-- It uses the DetectionSetGroup, which defines the set of reconnaissance groups to detect for enemy ground targets.
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityHigh()
A2GDispatcher:SetDefenseRadius( 100000 )
A2GDispatcher:SetTacticalDisplay( true )
local PatrolZone = ZONE:New( "PatrolZone" )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T SEAD" }, 10 )
A2GDispatcher:SetSquadronSead( "Maykop SEAD", 250, 350 )
--A2GDispatcher:SetSquadronSeadPatrol( "Maykop SEAD", PatrolZone, 1000, 2500, 400, 600, 1100, 1500 )
--A2GDispatcher:SetSquadronSeadPatrolInterval( "Maykop SEAD", 4, 30, 60, 1 )
A2GDispatcher:SetSquadronTakeoffFromParkingCold( "Maykop SEAD" )
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.25 )
@@ -0,0 +1,42 @@
--- Test the default engage limit.
-- Defenses should engage enemy units, but not more defenses than the defense limit!
-- Name: AID-A2G-110 - Default DefenseLimit
-- Author: FlightControl
-- Date Created: 15 Nov 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New() -- Defene a set of group objects, caled DetectionSetGroup.
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } ) -- The DetectionSetGroup will search for groups that start with the name "CCCP Recce".
-- This command will start the dynamic filtering, so when groups spawn in or are destroyed,
-- which have a group name starting with "CCCP Recce", then these will be automatically added or removed from the set.
DetectionSetGroup:FilterStart()
-- This command defines the reconnaissance network.
-- It will group any detected ground enemy targets within a radius of 1km.
-- It uses the DetectionSetGroup, which defines the set of reconnaissance groups to detect for enemy ground targets.
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityHigh()
A2GDispatcher:SetDefenseRadius( 100000 )
A2GDispatcher:SetTacticalDisplay( true )
local PatrolZone = ZONE:New( "PatrolZone" )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T SEAD" }, 10 )
A2GDispatcher:SetSquadronSead( "Maykop SEAD", 250, 350 )
--A2GDispatcher:SetSquadronSeadPatrol( "Maykop SEAD", PatrolZone, 1000, 2500, 400, 600, 1100, 1500 )
--A2GDispatcher:SetSquadronSeadPatrolInterval( "Maykop SEAD", 4, 30, 60, 1 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop SEAD" )
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.25 )
@@ -0,0 +1,45 @@
--- Test the default engage limit.
-- Defenses should engage enemy units, but not more defenses than the defense limit!
-- Name: AID-A2G-110 - Default DefenseLimit
-- Author: FlightControl
-- Date Created: 15 Nov 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New() -- Defene a set of group objects, caled DetectionSetGroup.
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } ) -- The DetectionSetGroup will search for groups that start with the name "CCCP Recce".
-- This command will start the dynamic filtering, so when groups spawn in or are destroyed,
-- which have a group name starting with "CCCP Recce", then these will be automatically added or removed from the set.
DetectionSetGroup:FilterStart()
-- This command defines the reconnaissance network.
-- It will group any detected ground enemy targets within a radius of 1km.
-- It uses the DetectionSetGroup, which defines the set of reconnaissance groups to detect for enemy ground targets.
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityHigh()
A2GDispatcher:SetDefenseRadius( 100000 )
-- This is the test, not more than 4 defenses in total should engage!
A2GDispatcher:SetDefaultEngageLimit( 6 )
A2GDispatcher:SetTacticalDisplay( true )
local PatrolZone = ZONE:New( "PatrolZone" )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T SEAD" }, 10 )
A2GDispatcher:SetSquadronSead( "Maykop SEAD", 250, 350 )
--A2GDispatcher:SetSquadronSeadPatrol( "Maykop SEAD", PatrolZone, 1000, 2500, 400, 600, 1100, 1500 )
--A2GDispatcher:SetSquadronSeadPatrolInterval( "Maykop SEAD", 4, 30, 60, 1 )
A2GDispatcher:SetSquadronTakeoffFromRunway( "Maykop SEAD" )
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.25 )
@@ -0,0 +1,45 @@
--- Test the default engage limit.
-- Defenses should engage enemy units, but not more defenses than the defense limit!
-- Name: AID-A2G-110 - Default DefenseLimit
-- Author: FlightControl
-- Date Created: 15 Nov 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New() -- Defene a set of group objects, caled DetectionSetGroup.
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } ) -- The DetectionSetGroup will search for groups that start with the name "CCCP Recce".
-- This command will start the dynamic filtering, so when groups spawn in or are destroyed,
-- which have a group name starting with "CCCP Recce", then these will be automatically added or removed from the set.
DetectionSetGroup:FilterStart()
-- This command defines the reconnaissance network.
-- It will group any detected ground enemy targets within a radius of 1km.
-- It uses the DetectionSetGroup, which defines the set of reconnaissance groups to detect for enemy ground targets.
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityHigh()
A2GDispatcher:SetDefenseRadius( 100000 )
-- This is the test, not more than 4 defenses in total should engage!
A2GDispatcher:SetDefaultEngageLimit( 6 )
A2GDispatcher:SetTacticalDisplay( true )
local PatrolZone = ZONE:New( "PatrolZone" )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T SEAD" }, 10 )
A2GDispatcher:SetSquadronSead( "Maykop SEAD", 250, 350 )
--A2GDispatcher:SetSquadronSeadPatrol( "Maykop SEAD", PatrolZone, 1000, 2500, 400, 600, 1100, 1500 )
--A2GDispatcher:SetSquadronSeadPatrolInterval( "Maykop SEAD", 4, 30, 60, 1 )
A2GDispatcher:SetSquadronTakeoffInAir( "Maykop SEAD" )
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.25 )
@@ -0,0 +1,48 @@
--- Test the default engage limit.
-- Defenses should engage enemy units, but not more defenses than the defense limit!
-- Name: AID-A2G-110 - Default DefenseLimit
-- Author: FlightControl
-- Date Created: 15 Nov 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New() -- Defene a set of group objects, caled DetectionSetGroup.
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } ) -- The DetectionSetGroup will search for groups that start with the name "CCCP Recce".
-- This command will start the dynamic filtering, so when groups spawn in or are destroyed,
-- which have a group name starting with "CCCP Recce", then these will be automatically added or removed from the set.
DetectionSetGroup:FilterStart()
-- This command defines the reconnaissance network.
-- It will group any detected ground enemy targets within a radius of 1km.
-- It uses the DetectionSetGroup, which defines the set of reconnaissance groups to detect for enemy ground targets.
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityHigh()
A2GDispatcher:SetDefenseRadius( 200000 )
-- This is the test, not more than 4 defenses in total should engage!
A2GDispatcher:SetDefaultEngageLimit( 6 )
A2GDispatcher:SetTacticalDisplay( true )
local PatrolZone = ZONE:New( "PatrolZone" )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Krymsk SEAD", AIRBASE.Caucasus.Krymsk, { "CCCP SEAD Su-30", "CCCP SEAD Su-25T", "CCCP SEAD Su-25TM", "CCCP SEAD Su-34" }, 20 )
A2GDispatcher:SetSquadronSead( "Krymsk SEAD", 600, 800 )
--A2GDispatcher:SetSquadronSeadPatrol( "Krymsk SEAD", PatrolZone, 1000, 2500, 400, 600, 1100, 1500 )
--A2GDispatcher:SetSquadronSeadPatrolInterval( "Krymsk SEAD", 4, 30, 60, 1 )
A2GDispatcher:SetSquadronOverhead( "Krymsk SEAD", 0.2 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Krymsk SEAD" )
A2GDispatcher:SetSquadronLandingAtEngineShutdown( "Krymsk SEAD" )
--A2GDispatcher:SetSquadronVisible( "Krymsk SEAD" )
@@ -0,0 +1,31 @@
--- Detect and attack a set of enemy units using helicopters.
-- Name: AID-A2G-001 - Detection and Attack Helicopters
-- Author: FlightControl
-- Date Created: 02 Nov 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "Recce" } )
DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityMedium()
A2GDispatcher:SetDefenseRadius( 100000 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Sq34", "FARP CAS", { "Defender" }, 10 )
A2GDispatcher:SetSquadronCas( "Sq34", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Sq34" )
A2GDispatcher:SetSquadronOverhead( "Sq34", 0.25 )
@@ -0,0 +1,33 @@
--- Detect and attack a set of enemy units using helicopters.
-- Name: AID-A2G-001 - Detection and Attack Helicopters
-- Author: FlightControl
-- Date Created: 02 Nov 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "Recce" } )
DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityMedium()
A2GDispatcher:SetDefenseRadius( 100000 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
local CASPatrolZone = ZONE:New( "CASPatrolZone" )
A2GDispatcher:SetSquadron( "Sq34", "FARP CAS", { "Defender" }, 10 )
A2GDispatcher:SetSquadronCasPatrol( "Sq34", CASPatrolZone, 200, 500, 70, 100, 250, 300 )
A2GDispatcher:SetSquadronCasPatrolInterval( "Sq34", 2, 30, 60 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Sq34" )
A2GDispatcher:SetSquadronOverhead( "Sq34", 0.25 )
@@ -0,0 +1,61 @@
--- Detect and attack a set of enemy units using helicopters.
-- Name: AID-A2G-001 - Detection and Attack Helicopters
-- Author: FlightControl
-- Date Created: 02 Nov 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "Recce" } )
DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
Detection:SetFriendliesRange( 20000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityMedium()
A2GDispatcher:SetDefenseRadius( 100000 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
-- Setup the squadron Sq34.
A2GDispatcher:SetSquadron( "Sq34", AIRBASE.Caucasus.Vaziani, { "Defender Sq34" }, 10 )
-- This will setup the squadron Sq34 for CAS from Vaziani.
-- Attack speed between 1000 and 1500 km/h.
-- Attack altitude between 4000 and 6000 meters.
A2GDispatcher:SetSquadronCas( "Sq34", 1000, 1500, 4000, 6000 )
-- Start from airbase hot.
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Sq34" )
-- For every 2 targets, there will be one plane spawned, so we give a 0.5 value.
A2GDispatcher:SetSquadronOverhead( "Sq34", 0.5 )
-- Setup the squadron Sq25.
A2GDispatcher:SetSquadron( "Sq25", AIRBASE.Caucasus.Soganlug, { "Defender Sq25" }, 10 )
-- This will setup the squadron Sq34 for CAS from Vaziani.
-- No additional altitude and speed parameters are given, so the defaults are assigned.
-- Default speed between 50% and 75% of the maximum speed of the units in the group.
-- Default altitude is between 1000 and 1500 meters.
A2GDispatcher:SetSquadronCas( "Sq25" )
-- Start from airbase hot.
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Sq25" )
-- For every 2 targets, there will be one plane spawned, so we give a 0.5 value.
A2GDispatcher:SetSquadronOverhead( "Sq25", 0.25 )
@@ -0,0 +1,45 @@
--- Detect and attack a set of enemy units using helicopters.
-- Name: AID-A2G-001 - Detection and Attack Helicopters
-- Author: FlightControl
-- Date Created: 02 Nov 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "Recce" } )
DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
Detection:SetFriendliesRange( 20000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityMedium()
A2GDispatcher:SetDefenseRadius( 250000 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
local CASPatrolZone = ZONE:New( "CASPatrolZone" )
-- Setup the squadron Sq25.
A2GDispatcher:SetSquadron( "Sq25", AIRBASE.Caucasus.Beslan, { "Defender" }, 10 )
-- This will setup the squadron Sq34 for CAS from Beslan.
-- No additional altitude and speed parameters are given, so the defaults are assigned.
-- Default speed between 50% and 75% of the maximum speed of the units in the group.
-- Default altitude is between 1000 and 1500 meters.
A2GDispatcher:SetSquadronCas( "Sq25" )
-- Start from airbase hot.
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Sq25" )
-- For every 2 targets, there will be one plane spawned.
A2GDispatcher:SetSquadronOverhead( "Sq25", 0.5 )
@@ -0,0 +1,45 @@
--- Detect and attack a set of enemy units using helicopters.
--
-- Author: FlightControl
-- Date Created: 23 Jan 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "Recce" } )
DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
Detection:SetFriendliesRange( 20000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityMedium()
A2GDispatcher:SetDefenseRadius( 250000 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
local CASPatrolZone = ZONE:New( "CASPatrolZone" )
-- Setup the squadron Sq25.
A2GDispatcher:SetSquadron( "Sq26", AIRBASE.Caucasus.Nalchik, { "Defender" }, 10 )
-- This will setup the squadron Sq34 for CAS from Beslan.
-- No additional altitude and speed parameters are given, so the defaults are assigned.
-- Default speed between 50% and 75% of the maximum speed of the units in the group.
-- Default altitude is between 1000 and 1500 meters.
A2GDispatcher:SetSquadronCas( "Sq26" )
-- Start from airbase hot.
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Sq26" )
-- For every 2 targets, there will be one plane spawned.
A2GDispatcher:SetSquadronOverhead( "Sq26", 0.20 )
@@ -0,0 +1,43 @@
--- Detect and attack a set of enemy units using helicopters.
-- Name: AID-A2G-001 - Detection and Attack Helicopters
-- Author: FlightControl
-- Date Created: 02 Nov 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "Recce" } )
DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityMedium()
A2GDispatcher:SetDefenseRadius( 100000 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
local CASPatrolZone = ZONE:New( "CASPatrolZone" )
-- Setup the squadron Sq34.
A2GDispatcher:SetSquadron( "Sq34", AIRBASE.Caucasus.Vaziani, { "Defender" }, 10 )
-- This will setup the squadron Sq34 for patrol and CAS from Vaziani.
A2GDispatcher:SetSquadronCasPatrol( "Sq34", CASPatrolZone, 1500, 2500, 600, 800, 800, 1200 )
-- Maximum 6 units for patrol, with a spawn interval between 30 and 60 seconds.
A2GDispatcher:SetSquadronCasPatrolInterval( "Sq34", 2, 30, 60 )
-- Start from airbase hot.
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Sq34" )
-- For every 4 targets, there will be one plane spawned.
A2GDispatcher:SetSquadronOverhead( "Sq34", 0.25 )
@@ -0,0 +1,40 @@
-- Date Created: 09 Mar 2019
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "Recce" } )
DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityMedium()
A2GDispatcher:SetDefenseRadius( 100000 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
local CASPatrolZone = ZONE:New( "CASPatrolZone" )
-- Setup the squadron Sq34.
A2GDispatcher:SetSquadron( "Sq34", AIRBASE.Caucasus.Vaziani, { "Defender" }, 10 )
-- This will setup the squadron Sq34 for patrol and CAS from Vaziani.
A2GDispatcher:SetSquadronCasPatrol( "Sq34", CASPatrolZone, 1500, 2500, 600, 800, 800, 1200 )
-- Maximum 6 units for patrol, with a spawn interval between 30 and 60 seconds.
--A2GDispatcher:SetSquadronCasPatrolInterval( "Sq34", 2, 30, 60 )
-- Start from airbase hot.
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Sq34" )
-- For every 4 targets, there will be one plane spawned.
A2GDispatcher:SetSquadronOverhead( "Sq34", 0.25 )
@@ -0,0 +1,47 @@
--- Detect and attack a set of enemy units using helicopters.
-- Name: AID-A2G-001 - Detection and Attack Helicopters
-- Author: FlightControl
-- Date Created: 02 Nov 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "Recce" } )
DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityMedium()
A2GDispatcher:SetDefenseRadius( 100000 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
local CASPatrolZone = ZONE:New( "CASPatrolZone" )
-- Setup the squadron Sq34 at Kutaisi, using template Defender for 10 units.
A2GDispatcher:SetSquadron( "Sq34", AIRBASE.Caucasus.Kutaisi, { "Defender" }, 10 )
-- This will setup the squadron Sq34 for patrol and CAS.
A2GDispatcher:SetSquadronCasPatrol( "Sq34", CASPatrolZone, 1500, 2500, 600, 800, 800, 1200 )
-- Maximum 2 units for patrol, with a spawn interval between 30 and 60 seconds.
A2GDispatcher:SetSquadronCasPatrolInterval( "Sq34", 2, 30, 60 )
-- Start from airbase hot.
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Sq34" )
-- For every 4 targets, there will be one plane spawned.
A2GDispatcher:SetSquadronOverhead( "Sq34", 0.25 )
-- Make planes visible before start ...
A2GDispatcher:SetSquadronVisible( "Sq34" )
@@ -0,0 +1,44 @@
-- Date Created: 09 Mar 2019
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "Recce" } )
DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityMedium()
A2GDispatcher:SetDefenseRadius( 100000 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
local CASPatrolZone = ZONE:New( "CASPatrolZone" )
-- Setup the squadron Sq34.
A2GDispatcher:SetSquadron( "Sq34", AIRBASE.Caucasus.Vaziani, { "Defender" }, 10 )
-- This will setup the squadron Sq34 for patrol and CAS from Vaziani.
A2GDispatcher:SetSquadronCasPatrol( "Sq34", CASPatrolZone, 1500, 2500, 600, 800, 800, 1200 )
-- Maximum 6 units for patrol, with a spawn interval between 30 and 60 seconds.
--A2GDispatcher:SetSquadronCasPatrolInterval( "Sq34", 2, 30, 60 )
-- Start from airbase hot.
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Sq34" )
-- For every 4 targets, there will be one plane spawned.
A2GDispatcher:SetSquadronOverhead( "Sq34", 0.25 )
A2GDispatcher:SetDefaultTanker( "Tanker" )
A2GDispatcher:SetDefaultFuelThreshold( 0.9 )
@@ -0,0 +1,36 @@
--- Detect and attack a set of enemy units using helicopters.
-- Author: FlightControl
-- Date Created: 27 Jan 2019
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } )
DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityMedium()
A2GDispatcher:SetDefenseRadius( 100000 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Maykop BAI", "BAI", { "CCCP KA-50 BAI" }, 10 )
A2GDispatcher:SetSquadronBai( "Maykop BAI", 120, 250, 1000, 1500 )
A2GDispatcher:SetSquadronTakeoffFromParkingCold( "Maykop BAI" )
A2GDispatcher:SetSquadronOverhead( "Maykop BAI", 0.25 )
-- Wait for each helicopter to spawn about 4 minutes from cold start.
-- So the FARP has 4 spots, that means every 60 seconds one helo.
-- Otherwise the FARP will clutter.
-- This will result in helicopters not guided properly by the dispatcher.
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop BAI", 60 )
@@ -0,0 +1,61 @@
--- Detect and attack a set of enemy units using helicopters.
--
-- Author: FlightControl
-- Date Created: 23 Jan 2018
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "Recce" } )
DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 20000 )
Detection:SetFriendliesRange( 20000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityHigh()
A2GDispatcher:SetDefenseRadius( 200000 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
-- Setup the squadron Sq34.
A2GDispatcher:SetSquadron( "Sq34", AIRBASE.Caucasus.Vaziani, { "Defender Sq34" }, 10 )
-- This will setup the squadron Sq34 for SEAD from Vaziani.
-- Attack speed between 1000 and 1500 km/h.
-- Attack altitude between 4000 and 6000 meters.
A2GDispatcher:SetSquadronSead( "Sq34", 600, 800, 4500, 6000 )
-- Start from airbase hot.
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Sq34" )
-- For every 2 targets, there will be one plane spawned, so we give a 0.5 value.
A2GDispatcher:SetSquadronOverhead( "Sq34", 0.5 )
-- Setup the squadron Sq25.
A2GDispatcher:SetSquadron( "Sq25", AIRBASE.Caucasus.Soganlug, { "Defender Sq25" }, 10 )
-- This will setup the squadron Sq34 for CAS from Vaziani.
-- No additional altitude and speed parameters are given, so the defaults are assigned.
-- Default speed between 50% and 75% of the maximum speed of the units in the group.
-- Default altitude is between 1000 and 1500 meters.
A2GDispatcher:SetSquadronCas( "Sq25" )
-- Start from airbase hot.
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Sq25" )
-- For every 2 targets, there will be one plane spawned, so we give a 0.5 value.
A2GDispatcher:SetSquadronOverhead( "Sq25", 0.25 )
@@ -0,0 +1,46 @@
--- Detect and attack a set of enemy units using helicopters.
-- Name: AID-A2G-001 - Detection and Attack Helicopters
-- Author: FlightControl
-- Date Created: 02 Nov 2018
local DetectionZones = SET_ZONE:New():FilterPrefixes( { "Detection Zone " } ):FilterOnce()
Detection = DETECTION_ZONES:New( DetectionZones, coalition.side.BLUE )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityHigh()
A2GDispatcher:SetDefenseRadius( 200000 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T" }, 10 )
A2GDispatcher:SetSquadronSead( "Maykop SEAD", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop SEAD" )
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.2 )
A2GDispatcher:SetSquadron( "Maykop CAS", "CAS", { "CCCP KA-50" }, 10 )
A2GDispatcher:SetSquadronCas( "Maykop CAS", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop CAS" )
A2GDispatcher:SetSquadronOverhead( "Maykop CAS", 0.25 )
A2GDispatcher:SetSquadron( "Maykop BAI", "BAI", { "CCCP KA-50" }, 10 )
A2GDispatcher:SetSquadronBai( "Maykop BAI", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop BAI" )
A2GDispatcher:SetSquadronOverhead( "Maykop BAI", 0.25 )
-- We set for each squadron a takeoff interval, as each helicopter will launch from a FARP.
-- This to prevent helicopters to clutter.
-- Each helicopter group is taking off the FARP in hot start.
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop SEAD", 60 )
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop CAS", 60 )
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop BAI", 60 )
@@ -0,0 +1,48 @@
--- Detect and attack a set of enemy units using helicopters.
-- Name: AID-A2G-001 - Detection and Attack Helicopters
-- Author: FlightControl
-- Date Created: 02 Nov 2018
local DetectionZones = SET_ZONE:New():FilterPrefixes( { "Detection Zone " } ):FilterOnce()
Detection = DETECTION_ZONES:New( DetectionZones, coalition.side.BLUE )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityHigh()
A2GDispatcher:SetDefenseRadius( 200000 )
A2GDispatcher:SetDefenseLimit( 1 )
A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T" }, 10 )
A2GDispatcher:SetSquadronSead( "Maykop SEAD", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop SEAD" )
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.2 )
A2GDispatcher:SetSquadron( "Maykop CAS", "CAS", { "CCCP KA-50" }, 10 )
A2GDispatcher:SetSquadronCas( "Maykop CAS", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop CAS" )
A2GDispatcher:SetSquadronOverhead( "Maykop CAS", 0.25 )
A2GDispatcher:SetSquadron( "Maykop BAI", "BAI", { "CCCP KA-50" }, 10 )
A2GDispatcher:SetSquadronBai( "Maykop BAI", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop BAI" )
A2GDispatcher:SetSquadronOverhead( "Maykop BAI", 0.25 )
-- We set for each squadron a takeoff interval, as each helicopter will launch from a FARP.
-- This to prevent helicopters to clutter.
-- Each helicopter group is taking off the FARP in hot start.
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop SEAD", 60 )
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop CAS", 60 )
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop BAI", 60 )
@@ -0,0 +1,60 @@
--- Sound check using patrol and engage for helicopters.
-- Author: FlightControl
-- Date Created: 14 Sep 2019
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "US Recce" } )
DetectionSetGroup:FilterStart()
CCGroup = GROUP:FindByName( "HQ" )
CC = COMMANDCENTER:New( CCGroup, "HQ" )
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
A2GDispatcher:SetCommandCenter( CC )
A2GDispatcher:SetTacticalMenu( "Dispatchers", "A2G Tactical Situation" )
-- Add defense coordinates.
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
A2GDispatcher:SetDefenseReactivityHigh()
A2GDispatcher:SetDefenseRadius( 100000 )
A2GDispatcher:SetTacticalDisplay( false )
local PatrolZone = ZONE:New( "PatrolZone" )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Maykop SEAD", "SEAD", { "US KA-50" }, 10 )
A2GDispatcher:SetSquadronSeadPatrol( "Maykop SEAD", PatrolZone, 300, 500, 50, 80, 250, 300 )
A2GDispatcher:SetSquadronPatrolInterval( "Maykop SEAD", 2, 30, 60, 1, "SEAD" )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop SEAD" )
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.25 )
A2GDispatcher:SetSquadronRadioFrequency( "Maykop SEAD", 124 )
A2GDispatcher:SetSquadron( "Maykop CAS", "CAS", { "US KA-50" }, 10 )
A2GDispatcher:SetSquadronCasPatrol( "Maykop CAS", PatrolZone, 600, 700, 50, 80, 250, 300 )
A2GDispatcher:SetSquadronPatrolInterval( "Maykop CAS", 2, 30, 60, 1, "CAS" )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop CAS" )
A2GDispatcher:SetSquadronOverhead( "Maykop CAS", 0.25 )
A2GDispatcher:SetSquadronRadioFrequency( "Maykop CAS", 126 )
A2GDispatcher:SetSquadron( "Maykop BAI", "BAI", { "US KA-50" }, 10 )
A2GDispatcher:SetSquadronBaiPatrol( "Maykop BAI", PatrolZone, 800, 900, 50, 80, 250, 300 )
A2GDispatcher:SetSquadronPatrolInterval( "Maykop BAI", 2, 30, 60, 1, "BAI" )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop BAI" )
A2GDispatcher:SetSquadronOverhead( "Maykop BAI", 0.25 )
A2GDispatcher:SetSquadronRadioFrequency( "Maykop BAI", 128 )
-- We set for each squadron a takeoff interval, as each helicopter will launch from a FARP.
-- This to prevent helicopters to clutter.
-- Each helicopter group is taking off the FARP in hot start.
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop SEAD", 60 )
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop CAS", 60 )
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop BAI", 60 )
@@ -0,0 +1,28 @@
Recce_Blue = SET_GROUP:New():FilterPrefixes( "RECCE" ):FilterStart()
Detection_Blue = DETECTION_AREAS:New( Recce_Blue, 3000 )
A2G_Blue = AI_A2G_DISPATCHER:New(Detection_Blue)
A2G_Blue:SetTacticalDisplay( true ) -- set on using true as a parameter
DefenseCoordinate = GROUP:FindByName( "COMMAND" ):GetCoordinate()
A2G_Blue:AddDefenseCoordinate( "Defense Point", DefenseCoordinate )
A2G_Blue:SetDefenseRadius( 200000 ) -- in meters
A2G_Blue:SetDefenseReactivityHigh() -- we engage almost immediately
A2G_Blue:SetSquadron( "SQ-1", AIRBASE.Caucasus.Gudauta, { "A2G-DEFENSE-AH-64D-ROCKETS", "A2G-DEFENSE-AH-64D-HELLFIRES" }, 20 )
A2G_Blue:SetSquadronBai( "SQ-1", 200, 280, 160, 500 )
A2G_Blue:SetSquadronTakeoffInAir( "SQ-1", 1000 ) -- altitude in meters when spawning in the air.
A2G_Blue:SetSquadronLandingNearAirbase( "SQ-1" )
A2G_Blue:SetSquadronOverhead( "SQ-1", 0.25 )
A2G_Blue:SetSquadron( "SQ-2", AIRBASE.Caucasus.Gudauta, { "A2G-DEFENSE-AH-SU-25T-SEAD" }, 6 )
A2G_Blue:SetSquadronSead( "SQ-2", 600, 900, 1000, 2000 )
A2G_Blue:SetSquadronTakeoffInAir( "SQ-2", 2000 ) -- altitude in meters when spawning in the air.
A2G_Blue:SetSquadronLandingNearAirbase( "SQ-2" )
A2G_Blue:SetSquadronOverhead( "SQ-2", 0.5 )
@@ -0,0 +1,28 @@
Recce_Blue = SET_GROUP:New():FilterPrefixes( "RECCE" ):FilterStart()
Detection_Blue = DETECTION_AREAS:New( Recce_Blue, 3000 )
A2G_Blue = AI_A2G_DISPATCHER:New(Detection_Blue)
A2G_Blue:SetTacticalDisplay( true ) -- set on using true as a parameter
DefenseCoordinate = GROUP:FindByName( "COMMAND" ):GetCoordinate()
A2G_Blue:AddDefenseCoordinate( "Defense Point", DefenseCoordinate )
A2G_Blue:SetDefenseRadius( 200000 ) -- in meters
A2G_Blue:SetDefenseReactivityHigh() -- we engage almost immediately
A2G_Blue:SetSquadron( "SQ-1", AIRBASE.Caucasus.Gudauta, { "A2G-DEFENSE-AH-64D-ROCKETS", "A2G-DEFENSE-AH-64D-HELLFIRES" }, 20 )
A2G_Blue:SetSquadronBai( "SQ-1", 200, 280, 160, 500 )
A2G_Blue:SetSquadronTakeoffInAir( "SQ-1", 1000 ) -- altitude in meters when spawning in the air.
A2G_Blue:SetSquadronLandingNearAirbase( "SQ-1" )
A2G_Blue:SetSquadronOverhead( "SQ-1", 0.25 )
A2G_Blue:SetSquadron( "SQ-2", AIRBASE.Caucasus.Gudauta, { "A2G-DEFENSE-AH-SU-25T-SEAD" }, 6 )
A2G_Blue:SetSquadronSead( "SQ-2", 600, 900, 1000, 2000 )
A2G_Blue:SetSquadronTakeoffInAir( "SQ-2", 2000 ) -- altitude in meters when spawning in the air.
A2G_Blue:SetSquadronLandingNearAirbase( "SQ-2" )
A2G_Blue:SetSquadronOverhead( "SQ-2", 0.5 )
@@ -0,0 +1,35 @@
Recce_Blue = SET_GROUP:New():FilterPrefixes( "RECCE" ):FilterStart()
Detection_Blue = DETECTION_AREAS:New( Recce_Blue, 3000 )
A2G_Blue = AI_A2G_DISPATCHER:New(Detection_Blue)
A2G_Blue:SetTacticalDisplay( true ) -- set on using true as a parameter
A2G_Blue:AddDefenseCoordinate( "Command", GROUP:FindByName( "COMMAND" ):GetCoordinate() )
A2G_Blue:AddDefenseCoordinate( "Home", GROUP:FindByName( "HOME" ):GetCoordinate() )
A2G_Blue:SetDefenseRadius( 200000 ) -- in meters
A2G_Blue:SetDefenseReactivityHigh() -- we engage almost immediately
A2G_Blue:SetSquadron( "SQ-1", AIRBASE.Caucasus.Senaki_Kolkhi, { "A2G-DEFENSE-HELO-001", "A2G-DEFENSE-HELO-002", "A2G-DEFENSE-HELO-003" }, 20 )
A2G_Blue:SetSquadronBai( "SQ-1", 200, 280, 160, 500 )
A2G_Blue:SetSquadronTakeoffInAir( "SQ-1", 1000 ) -- altitude in meters when spawning in the air.
A2G_Blue:SetSquadronLandingNearAirbase( "SQ-1" )
A2G_Blue:SetSquadronOverhead( "SQ-1", 0.25 )
A2G_Blue:SetSquadron( "SQ-2", AIRBASE.Caucasus.Gudauta, { "A2G-DEFENSE-SU-25T-SEAD" }, 10 )
A2G_Blue:SetSquadronSead( "SQ-2", 600, 900, 1000, 2000 )
A2G_Blue:SetSquadronTakeoffFromParkingHot( "SQ-2" ) -- altitude in meters when spawning in the air.
A2G_Blue:SetSquadronLandingAtRunway( "SQ-2" )
A2G_Blue:SetSquadronOverhead( "SQ-2", 0.5 )
A2G_Blue:SetSquadron( "SQ-3", AIRBASE.Caucasus.Kobuleti, { "A2G-DEFENSE-AJS37-CAS" }, 6 )
A2G_Blue:SetSquadronBai( "SQ-3", 600, 900, 1000, 2000 )
A2G_Blue:SetSquadronTakeoffFromParkingHot( "SQ-3" ) -- altitude in meters when spawning in the air.
A2G_Blue:SetSquadronLandingAtRunway( "SQ-3" )
A2G_Blue:SetSquadronOverhead( "SQ-3", 0.5 )
A2G_Blue:SetSquadronBaiPatrol( "SQ-3", ZONE:New( "PatrolZone" ), 2000, 3000, 600, 800, 1000, 1400 )
A2G_Blue:SetSquadronPatrolInterval( "SQ-3", 4, 30, 60, 1, "BAI" )
@@ -0,0 +1,44 @@
Recce_Blue = SET_GROUP:New():FilterPrefixes( "RECCE" ):FilterStart()
Detection_Blue = DETECTION_AREAS:New( Recce_Blue, 3000 )
A2G_Blue = AI_A2G_DISPATCHER:New(Detection_Blue)
A2G_Blue:SetTacticalDisplay( true ) -- set on using true as a parameter
A2G_Blue:AddDefenseCoordinate( "Command", GROUP:FindByName( "COMMAND" ):GetCoordinate() )
A2G_Blue:AddDefenseCoordinate( "Home", GROUP:FindByName( "HOME" ):GetCoordinate() )
A2G_Blue:SetDefenseRadius( 350000 ) -- in meters
A2G_Blue:SetDefenseReactivityMedium() -- we engage almost immediately
A2G_Blue:SetSquadron( "SQ-1", AIRBASE.Caucasus.Senaki_Kolkhi, { "A2G-DEFENSE-HELO-001", "A2G-DEFENSE-HELO-002", "A2G-DEFENSE-HELO-003" }, 20 )
A2G_Blue:SetSquadronBai( "SQ-1", 200, 280, 160, 500 )
A2G_Blue:SetSquadronTakeoffInAir( "SQ-1", 1000 ) -- altitude in meters when spawning in the air.
A2G_Blue:SetSquadronLandingNearAirbase( "SQ-1" )
A2G_Blue:SetSquadronOverhead( "SQ-1", 0.5 )
A2G_Blue:SetSquadronGrouping( "SQ-1", 4 )
A2G_Blue:SetSquadron( "SQ-HELO", AIRBASE.Caucasus.Sukhumi_Babushara, { "A2G-DEFENSE-HELO-004", "A2G-DEFENSE-HELO-005", "A2G-DEFENSE-HELO-006" }, 20 )
A2G_Blue:SetSquadronBai( "SQ-HELO", 200, 280, 1500, 2000 )
A2G_Blue:SetSquadronTakeoffInAir( "SQ-HELO", 1000 ) -- altitude in meters when spawning in the air.
A2G_Blue:SetSquadronLandingNearAirbase( "SQ-HELO" )
A2G_Blue:SetSquadronOverhead( "SQ-HELO", 0.75 )
A2G_Blue:SetSquadronGrouping( "SQ-HELO", 4 )
A2G_Blue:SetSquadron( "SQ-2", AIRBASE.Caucasus.Gudauta, { "A2G-DEFENSE-SU-25T-SEAD" }, 10 )
A2G_Blue:SetSquadronSead( "SQ-2", 700, 1100, 2500, 4000 )
A2G_Blue:SetSquadronTakeoffFromParkingHot( "SQ-2" ) -- altitude in meters when spawning in the air.
A2G_Blue:SetSquadronLandingAtRunway( "SQ-2" )
A2G_Blue:SetSquadronOverhead( "SQ-2", 0.5 )
A2G_Blue:SetSquadron( "SQ-AIR", AIRBASE.Caucasus.Kobuleti, { "A2G-DEFENSE-A-10C-CAS" }, 6 )
A2G_Blue:SetSquadronBai( "SQ-AIR", 600, 900, 1000, 2000 )
A2G_Blue:SetSquadronTakeoffFromParkingHot( "SQ-AIR" ) -- altitude in meters when spawning in the air.
A2G_Blue:SetSquadronLandingAtRunway( "SQ-AIR" )
A2G_Blue:SetSquadronOverhead( "SQ-AIR", 0.75 )
A2G_Blue:SetSquadronBaiPatrol( "SQ-AIR", ZONE:New( "PatrolZone" ), 2000, 3000, 600, 800, 1000, 1400 )
A2G_Blue:SetSquadronPatrolInterval( "SQ-AIR", 4, 30, 60, 1, "BAI" )
A2G_Blue:SetSquadronGrouping( "SQ-AIR", 4 )
@@ -0,0 +1,56 @@
Recce_Blue = SET_GROUP:New():FilterPrefixes( "RECCE" ):FilterStart()
Detection_Blue = DETECTION_AREAS:New( Recce_Blue, 3000 )
A2G_Blue = AI_A2G_DISPATCHER:New(Detection_Blue)
A2G_Blue:SetTacticalDisplay( true ) -- set on using true as a parameter
A2G_Blue:AddDefenseCoordinate( "Command", GROUP:FindByName( "COMMAND" ):GetCoordinate() )
A2G_Blue:AddDefenseCoordinate( "Home", GROUP:FindByName( "HOME" ):GetCoordinate() )
A2G_Blue:SetDefenseRadius( 350000 ) -- in meters
A2G_Blue:SetDefenseReactivityMedium() -- we engage almost immediately
A2G_Blue:SetSquadron( "SQ-HELO-BAI-1", AIRBASE.Caucasus.Senaki_Kolkhi, { "A2G-DEFENSE-HELO-001", "A2G-DEFENSE-HELO-002", "A2G-DEFENSE-HELO-003" }, 20 )
A2G_Blue:SetSquadronBai( "SQ-HELO-BAI-1", 200, 280, 160, 500 )
A2G_Blue:SetSquadronTakeoffInAir( "SQ-HELO-BAI-1", 1000 ) -- altitude in meters when spawning in the air.
A2G_Blue:SetSquadronLandingNearAirbase( "SQ-HELO-BAI-1" )
A2G_Blue:SetSquadronOverhead( "SQ-HELO-BAI-1", 0.5 )
A2G_Blue:SetSquadronGrouping( "SQ-HELO-BAI-1", 4 )
A2G_Blue:SetSquadron( "SQ-HELO-BAI-2", AIRBASE.Caucasus.Sukhumi_Babushara, { "A2G-DEFENSE-HELO-004", "A2G-DEFENSE-HELO-005", "A2G-DEFENSE-HELO-006" }, 20 )
A2G_Blue:SetSquadronBai( "SQ-HELO-BAI-2", 200, 280, 1500, 2000 )
A2G_Blue:SetSquadronTakeoffInAir( "SQ-HELO-BAI-2", 1000 ) -- altitude in meters when spawning in the air.
A2G_Blue:SetSquadronLandingNearAirbase( "SQ-HELO-BAI-2" )
A2G_Blue:SetSquadronOverhead( "SQ-HELO-BAI-2", 0.75 )
A2G_Blue:SetSquadronGrouping( "SQ-HELO-BAI-2", 4 )
A2G_Blue:SetSquadron( "SQ-SEAD", AIRBASE.Caucasus.Gudauta, { "A2G-DEFENSE-SU-25T-SEAD" }, 10 )
A2G_Blue:SetSquadronSead( "SQ-SEAD", 700, 1100, 2500, 4000 )
A2G_Blue:SetSquadronTakeoffFromParkingHot( "SQ-SEAD" ) -- altitude in meters when spawning in the air.
A2G_Blue:SetSquadronLandingAtRunway( "SQ-SEAD" )
A2G_Blue:SetSquadronOverhead( "SQ-SEAD", 1 )
A2G_Blue:SetSquadronGrouping( "SQ-SEAD", 2 )
A2G_Blue:SetSquadron( "SQ-AIR-BAI", AIRBASE.Caucasus.Kobuleti, { "A2G-DEFENSE-A-10C" }, 6 )
A2G_Blue:SetSquadronBai( "SQ-AIR-BAI", 600, 900, 1000, 2000 )
A2G_Blue:SetSquadronTakeoffFromParkingHot( "SQ-AIR-BAI" ) -- altitude in meters when spawning in the air.
A2G_Blue:SetSquadronLandingAtRunway( "SQ-AIR-BAI" )
A2G_Blue:SetSquadronOverhead( "SQ-AIR-BAI", 0.75 )
A2G_Blue:SetSquadronBaiPatrol( "SQ-AIR-BAI", ZONE:New( "PatrolZone" ), 2000, 3000, 600, 800, 1000, 1400 )
A2G_Blue:SetSquadronPatrolInterval( "SQ-AIR-BAI", 4, 30, 60, 1, "BAI" )
A2G_Blue:SetSquadronGrouping( "SQ-AIR-BAI", 4 )
-- A2G task dispatcher
Command_Blue = COMMANDCENTER:New( GROUP:FindByName( "NATO HQ" ), "NATO HQ" )
Mission_Blue = MISSION:New( Command_Blue, "Invasion", "High", "Eliminate 5 targets", coalition.side.BLUE )
Players_Blue = SET_GROUP:New():FilterPrefixes( { "NATO Player" } ):FilterStart()
A2G_Task_Blue = TASK_A2G_DISPATCHER:New( Mission_Blue, Players_Blue, Detection_Blue )