MOOSE demonstration missions [skip ci]

This commit is contained in:
FlightControl-User 2019-01-29 20:22:09 +00:00
parent 73a32d03ae
commit 7e2ab52bbc
362 changed files with 307 additions and 13 deletions

View File

@ -39,3 +39,10 @@ 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 )

View File

@ -43,3 +43,10 @@ A2GDispatcher:SetSquadronBaiPatrol( "Maykop BAI", PatrolZone, 800, 900, 50, 80,
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 )

View File

@ -35,9 +35,16 @@ A2GDispatcher:SetTacticalDisplay( true )
local PatrolZone = ZONE:New( "PatrolZone" )
-- Setup the squadrons.
-- 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", 4, 30, 60, 1 )
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 )

View File

@ -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 )

View File

@ -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 )

View File

@ -28,4 +28,4 @@ A2GDispatcher:SetTacticalDisplay( true )
A2GDispatcher:SetSquadron( "Sq34", "FARP CAS", { "Defender" }, 10 )
A2GDispatcher:SetSquadronCas( "Sq34", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Sq34" )
A2GDispatcher:SetSquadronOverhead( "Sq34", 0.25 )
A2GDispatcher:SetSquadronOverhead( "Sq34", 0.75 )

View File

@ -12,6 +12,7 @@ DetectionSetGroup:FilterStart()
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
Detection:SetFriendliesRange( 20000 )
-- Setup the A2A dispatcher, and initialize it.
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
@ -28,16 +29,33 @@ A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
-- Setup the squadron Sq34.
A2GDispatcher:SetSquadron( "Sq34", AIRBASE.Caucasus.Vaziani, { "Defender" }, 10 )
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( "Sq34" )
A2GDispatcher:SetSquadronCas( "Sq25" )
-- Start from airbase hot.
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Sq34" )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Sq25" )
-- For every 4 targets, there will be one plane spawned.
A2GDispatcher:SetSquadronOverhead( "Sq34", 0.25 )
-- For every 2 targets, there will be one plane spawned, so we give a 0.5 value.
A2GDispatcher:SetSquadronOverhead( "Sq25", 0.25 )

View File

@ -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 )

View File

@ -1,7 +1,6 @@
--- 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
-- 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.
@ -25,7 +24,13 @@ A2GDispatcher:SetTacticalDisplay( true )
-- Setup the squadrons.
A2GDispatcher:SetSquadron( "Maykop BAI", "BAI", { "CCCP KA-50" }, 10 )
A2GDispatcher:SetSquadronBai( "Maykop BAI", 120, 250 )
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop BAI" )
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 )

View File

@ -0,0 +1,62 @@
--- 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:SetEngageRadius( 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 )

Some files were not shown because too many files have changed in this diff Show More