mirror of
https://github.com/FlightControl-Master/MOOSE_MISSIONS.git
synced 2025-08-15 10:37:46 +00:00
Next step of folder restructure
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
--
|
||||
-- #MANTIS
|
||||
-- Moose derived Modular, Automatic and Network capable Targeting and Interception System.
|
||||
-- Controls a network of SAM sites. Use detection to switch on the AA site closest to the enemy.
|
||||
-- Leverage evasiveness from @{Functional.Sead#SEAD}.
|
||||
-- Leverage attack range setup added by DCS in 11/20.
|
||||
-- @usage
|
||||
-- Set up your SAM sites in the mission editor. Name the groups with common prefix like "Red SAM".
|
||||
-- Set up your EWR system in the mission editor. Name the groups with common prefix like "Red EWR". Can be e.g. AWACS or a combination of AWACS and Search Radars like e.g. EWR 1L13 etc.
|
||||
-- [optional] Set up your HQ. Can be any group, e.g. a command vehicle.
|
||||
--
|
||||
-- Start up your MANTIS
|
||||
--
|
||||
myredmantis = MANTIS:New("myredmantis","Red SAM","Red EWR",nil,"red",false)
|
||||
|
||||
myredmantis:Start()
|
||||
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
-------------------------------------------------------------------------
|
||||
-- MTS-100 - MANTIS - Autorelocate HQ and EWR
|
||||
-------------------------------------------------------------------------
|
||||
-- Documentation
|
||||
--
|
||||
-- MANTIS: https://flightcontrol-master.github.io/MOOSE_DOCS/Documentation/Functional.Mantis.html
|
||||
--
|
||||
-- Note: As of Dec/20, MANTIS is WIP. Needs a recent build of Moose.lua > 16 Dec 20
|
||||
-- for CONTROLLABLE:RelocateGroundRandomInRadius() to be available
|
||||
-- https://flightcontrol-master.github.io/MOOSE_DOCS/Documentation/CONTROLLABLE.RelocateGroundRandomInRadius.html
|
||||
-------------------------------------------------------------------------
|
||||
-- Observe a set of SAM sites being attacked by F18 SEAD, A10 and Helicopters.
|
||||
-- HQ and EWR will randomly relocate between 30 and 60 mins
|
||||
-- The SA 11 Radar will only relocate if not detected units are in range
|
||||
-------------------------------------------------------------------------
|
||||
-- Date: 17 Dec 2020
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
myredmantis = MANTIS:New("myredmantis","Red SAM","Red EWR","Red HQ","red",false)
|
||||
myredmantis:SetAutoRelocate(true, true) -- make HQ and EWR relocatable, if they are actually mobile in DCS!
|
||||
myredmantis:Debug(true)
|
||||
myredmantis.verbose = true
|
||||
myredmantis:Start()
|
||||
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
-------------------------------------------------------------------------
|
||||
-- MTS-100 - MANTIS - Autorelocate HQ and EWR
|
||||
-------------------------------------------------------------------------
|
||||
-- Documentation
|
||||
--
|
||||
-- MANTIS: https://flightcontrol-master.github.io/MOOSE_DOCS/Documentation/Functional.Mantis.html
|
||||
--
|
||||
-- Note: As of Dec/20, MANTIS is WIP. Needs a recent build of Moose.lua > 16 Dec 20
|
||||
-- for CONTROLLABLE:RelocateGroundRandomInRadius() to be available
|
||||
-- https://flightcontrol-master.github.io/MOOSE_DOCS/Documentation/CONTROLLABLE.RelocateGroundRandomInRadius.html
|
||||
-------------------------------------------------------------------------
|
||||
-- Observe a set of Blue SAM sites being attacked by Red SEAD and Helicopters
|
||||
-- HQ and EWR will randomly relocate between 30 and 60 mins
|
||||
-- The Radar will only relocate if not detected units are in range
|
||||
-------------------------------------------------------------------------
|
||||
-- Date: 26 Dec 2020
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
myredmantis = MANTIS:New("mybluemantis","Blue SAM","Blue EWR","Blue HQ","blue",false)
|
||||
myredmantis:SetAutoRelocate(true, true) -- make HQ and EWR relocatable, if they are actually mobile in DCS!
|
||||
myredmantis:Debug(false)
|
||||
myredmantis.verbose = true
|
||||
myredmantis:Start()
|
||||
Binary file not shown.
@@ -0,0 +1,37 @@
|
||||
-------------------------------------------------------------------------
|
||||
-- MTS-110 - Mantis Link to A2A-Dispatcher
|
||||
-------------------------------------------------------------------------
|
||||
-- Documentation
|
||||
--
|
||||
-- MANTIS: https://flightcontrol-master.github.io/MOOSE_DOCS/Documentation/Functional.Mantis.html
|
||||
--
|
||||
-------------------------------------------------------------------------
|
||||
-- Observe a set of SAM sites being attacked by F18 SEAD, A10 and Helicopters.
|
||||
-- HQ and EWR will randomly relocate between 30 and 60 mins
|
||||
-- SU-27 GCICAP Flights will start from Pashkovsky to help the SAMs
|
||||
--
|
||||
-- NOTE - This demo requires the Master version of Moose and will not work with the Develop version!
|
||||
--
|
||||
-------------------------------------------------------------------------
|
||||
-- Date: 17 Dec 2020
|
||||
-- Last Update: Feb 2023
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
myredmantis = MANTIS:New("myredmantis","Red SAM","Red EWR","Red HQ","red",false)
|
||||
myredmantis:Debug(false)
|
||||
myredmantis:Start()
|
||||
|
||||
-- link in AI_A2A_Dispatcher
|
||||
|
||||
Red_GCI = AI_A2A_DISPATCHER:New(myredmantis.Detection) -- use existing detection object
|
||||
|
||||
Red_GCI:SetTacticalDisplay(true)
|
||||
Red_GCI:SetDefaultLandingAtRunway()
|
||||
Red_GCI:SetDefaultTakeoffInAir()
|
||||
Red_GCI:SetDisengageRadius(125000)
|
||||
Red_GCI:SetDefaultOverhead(0.4)
|
||||
Red_GCI:SetDefaultGrouping(2)
|
||||
Red_GCI:SetGciRadius(125000)
|
||||
Red_GCI:SetSquadron("Russian Tigers Sq1",AIRBASE.Caucasus.Krasnodar_Pashkovsky,"Red Interceptor",10)
|
||||
Red_GCI:SetSquadronGci("Russian Tigers Sq1",900,1800)
|
||||
Red_GCI:Start() -- never forget to use Start()!!
|
||||
Binary file not shown.
@@ -0,0 +1,71 @@
|
||||
-------------------------------------------------------------------------
|
||||
-- MTS-200 - MANTIS - Advanced Mode
|
||||
-------------------------------------------------------------------------
|
||||
-- Documentation
|
||||
--
|
||||
-- MANTIS: https://flightcontrol-master.github.io/MOOSE_DOCS/Documentation/Functional.Mantis.html
|
||||
--
|
||||
-- Note: As of Dec/20, MANTIS is WIP. Needs a recent build of Moose.lua > 17 Dec 20
|
||||
-- for CONTROLLABLE:RelocateGroundRandomInRadius() to be available
|
||||
-- https://flightcontrol-master.github.io/MOOSE_DOCS/Documentation/CONTROLLABLE.RelocateGroundRandomInRadius.html
|
||||
-------------------------------------------------------------------------
|
||||
-- Observe a set of SAM sites being attacked by F18 SEAD, A10 and Helicopters.
|
||||
-- HQ and EWR will be destroyed after 10 and 15 mins, respectively
|
||||
-- Detection will slow down accordingly, if both units are dead, all SAM sites go to RED state
|
||||
-- Set up of a new HQ and EWR will recover MANTIS
|
||||
-------------------------------------------------------------------------
|
||||
-- Date: 21 Dec 2020
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
myredmantis = MANTIS:New("myredmantis","Red SAM","Red EWR","Red HQ","red",true)
|
||||
--myredmantis:SetAutoRelocate(true, true) -- make HQ and EWR relocatable, if they are actually mobile in DCS!
|
||||
myredmantis:SetAdvancedMode(true, 100) -- switch on advanced mode - detection will slow down or die if HQ and EWR die
|
||||
myredmantis:Debug(false)
|
||||
myredmantis.verbose = true -- watch DCS.log
|
||||
myredmantis:Start()
|
||||
|
||||
function destroy(objectname)
|
||||
local text = "Destroying "..objectname
|
||||
m=MESSAGE:New(text,30,"Info"):ToAll()
|
||||
local grp = GROUP:FindByName(objectname)
|
||||
grp:Destroy()
|
||||
end
|
||||
|
||||
function createhq()
|
||||
newhq = SPAWN
|
||||
:New("Red HQ-1")
|
||||
:InitDelayOff()
|
||||
:OnSpawnGroup(
|
||||
function (group)
|
||||
myredmantis:SetCommandCenter(group)
|
||||
end
|
||||
)
|
||||
:Spawn()
|
||||
local text = "Creating new HQ!"
|
||||
m=MESSAGE:New(text,30,"Info"):ToAll()
|
||||
end
|
||||
|
||||
function createewr()
|
||||
newewr = SPAWN
|
||||
:New("Red EWR-1")
|
||||
:InitDelayOff()
|
||||
:Spawn()
|
||||
local text = "Creating new EWR!"
|
||||
m=MESSAGE:New(text,30,"Info"):ToAll()
|
||||
end
|
||||
|
||||
hqtimer = TIMER:New(destroy,"Red HQ")
|
||||
ewrtimer = TIMER:New(destroy,"Red EWR")
|
||||
awacstimer = TIMER:New(destroy,"Red EWR Awacs")
|
||||
|
||||
nhqtimer = TIMER:New(createhq)
|
||||
newrtimer = TIMER:New(createewr)
|
||||
|
||||
-- slow down
|
||||
hqtimer:Start(300) -- 5 min
|
||||
ewrtimer:Start(360) -- 6 min
|
||||
awacstimer:Start(420) -- 7 min
|
||||
|
||||
--speed up
|
||||
nhqtimer:Start(600) -- 10 min
|
||||
newrtimer:Start(660) -- 11 min
|
||||
Binary file not shown.
@@ -0,0 +1,90 @@
|
||||
-------------------------------------------------------------------------
|
||||
-- MTS-210 - MANTIS - Advanced Mode plus AWACS
|
||||
-------------------------------------------------------------------------
|
||||
-- Documentation
|
||||
--
|
||||
-- MANTIS: https://flightcontrol-master.github.io/MOOSE_DOCS/Documentation/Functional.Mantis.html
|
||||
--
|
||||
-- Note: As of Dec/20, MANTIS is WIP. Needs a recent build of Moose.lua > 20 Dec 20
|
||||
-- for CONTROLLABLE:RelocateGroundRandomInRadius() to be available
|
||||
-- https://flightcontrol-master.github.io/MOOSE_DOCS/Documentation/CONTROLLABLE.RelocateGroundRandomInRadius.html
|
||||
-------------------------------------------------------------------------
|
||||
-- Observe a set of SAM sites being attacked by F18 SEAD, A10 and Helicopters.
|
||||
-- HQ, Awacs and EWR will be destroyed after 5, 6, 7 mins, respectively
|
||||
-- Detection will slow down accordingly, if both units are dead, all SAM sites go to RED state
|
||||
-- Set up of a new HQ and EWR will recover MANTIS from min 10 onwards
|
||||
-------------------------------------------------------------------------
|
||||
-- Date: 27 Dec 2020
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
myredmantis = MANTIS:New("myredmantis","Red SAM","Red EWR","Red HQ","red",true,"Red Awacs")
|
||||
myredmantis:SetAutoRelocate(true, true) -- make HQ and EWR relocatable, if they are actually mobile in DCS!
|
||||
myredmantis:SetAdvancedMode(true, 100) -- switch on advanced mode - detection will slow down or die if HQ and EWR die
|
||||
myredmantis:SetSAMRange(85)
|
||||
myredmantis:SetSAMRadius(30000)
|
||||
myredmantis:Debug(false)
|
||||
myredmantis.verbose = true -- watch DCS.log
|
||||
myredmantis:Start()
|
||||
|
||||
|
||||
function destroy(objectname)
|
||||
local text = "Destroying "..objectname
|
||||
m=MESSAGE:New(text,30,"Info"):ToAll()
|
||||
local grp = GROUP:FindByName(objectname)
|
||||
grp:Destroy()
|
||||
end
|
||||
|
||||
function createhq()
|
||||
newhq = SPAWN
|
||||
:New("Red HQ-1")
|
||||
:InitDelayOff()
|
||||
:OnSpawnGroup(
|
||||
function (group)
|
||||
myredmantis:SetCommandCenter(group)
|
||||
end
|
||||
)
|
||||
:Spawn()
|
||||
local text = "Creating new HQ!"
|
||||
m=MESSAGE:New(text,30,"Info"):ToAll()
|
||||
end
|
||||
|
||||
function createewr()
|
||||
newewr = SPAWN
|
||||
:New("Red EWR-1")
|
||||
:InitDelayOff()
|
||||
:Spawn()
|
||||
local text = "Creating new EWR!"
|
||||
m=MESSAGE:New(text,30,"Info"):ToAll()
|
||||
end
|
||||
|
||||
function createawacs()
|
||||
newewr = SPAWN
|
||||
:New("Red Awacs 1")
|
||||
:InitDelayOff()
|
||||
:OnSpawnGroup(
|
||||
function (grp)
|
||||
local name = grp:GetName()
|
||||
myredmantis:SetAwacs(name)
|
||||
end
|
||||
)
|
||||
:Spawn()
|
||||
local text = "Creating new AWACS!"
|
||||
m=MESSAGE:New(text,30,"Info"):ToAll()
|
||||
end
|
||||
|
||||
hqtimer = TIMER:New(destroy,"Red HQ")
|
||||
ewrtimer = TIMER:New(destroy,"Red EWR")
|
||||
awacstimer = TIMER:New(destroy,"Red Awacs")
|
||||
|
||||
nhqtimer = TIMER:New(createhq)
|
||||
newrtimer = TIMER:New(createewr)
|
||||
newAtimer = TIMER:New(createawacs)
|
||||
-- slow down
|
||||
hqtimer:Start(300) -- 5 min
|
||||
ewrtimer:Start(360) -- 6 min
|
||||
awacstimer:Start(420) -- 7 min
|
||||
|
||||
--speed up
|
||||
nhqtimer:Start(600) -- 10 min
|
||||
newrtimer:Start(660) -- 11 min
|
||||
newAtimer:Start(720) -- 12 min
|
||||
Binary file not shown.
@@ -0,0 +1,71 @@
|
||||
-------------------------------------------------------------------------
|
||||
-- MTS-300 - MANTIS - Advanced Mode Complex Example
|
||||
-------------------------------------------------------------------------
|
||||
-- Documentation
|
||||
--
|
||||
-- MANTIS: https://flightcontrol-master.github.io/MOOSE_DOCS/Documentation/Functional.Mantis.html
|
||||
--
|
||||
-------------------------------------------------------------------------
|
||||
-- Observe a set of SAM sites being attacked by F18 SEAD and A10Cs.
|
||||
-- HQ will be destroyed after 10 mins.
|
||||
-- Watch the long an short range MANTIS in action, with the SA10 also using SHORAD for defense.
|
||||
-------------------------------------------------------------------------
|
||||
-- Date: 14 July 2021
|
||||
|
||||
-- Set up SHORAD
|
||||
local redsamset = SET_GROUP:New():FilterCoalitions("red"):FilterPrefixes({"Red AAA","Red SA11","Red EWR"}):FilterStart()
|
||||
local myredshorad = SHORAD:New("Gudata Shorad","Red Shorad",redsamset,12000,600,"red",false) -- Functional.Shorad#SHORAD
|
||||
myredshorad:SetDefenseLimits(80,95)
|
||||
|
||||
-- Short/Mid-Range SAM sites
|
||||
local myredmantis = MANTIS:New("Gudauta AAA","Red AAA","Red EWR",nil,"red",true,"Red AWACS",false)
|
||||
myredmantis:SetSAMRadius(25000)
|
||||
myredmantis:SetSAMRange(85)
|
||||
myredmantis:SetDetectInterval(20)
|
||||
myredmantis:Start()
|
||||
|
||||
-- Long-range SAM site, also linked to SHORAD
|
||||
local myredsa10 = MANTIS:New("Gudauta SA10","Red SA11","Red EWR","Red HQ","red",true,"Red AWACS",false)
|
||||
myredsa10:SetSAMRadius(UTILS.NMToMeters(40))
|
||||
myredsa10:SetSAMRange(90)
|
||||
myredsa10:SetDetectInterval(20)
|
||||
myredsa10:AddShorad(myredshorad,720)
|
||||
myredsa10:SetAdvancedMode(true,90)
|
||||
myredsa10:SetAutoRelocate(true,false)
|
||||
--myredsa10:Debug(true)
|
||||
myredsa10:Start()
|
||||
|
||||
-- Using some "OnAfter..." events to shape the mission
|
||||
function myredsa10:OnAfterShoradActivated(From, Event, To, Name, Radius, Ontime)
|
||||
-- show some info
|
||||
local m = MESSAGE:New(string.format("Mantis switched on Shorad for %s | Radius %d | OnTime %d", Name, Radius, Ontime),10,"Info"):ToAll()
|
||||
end
|
||||
|
||||
function myredsa10:OnAfterAdvStateChange(From, Event, To, Oldstate, Newstate, Interval)
|
||||
-- show some info
|
||||
local state = { [1] = "GREEN", [2] = "AMBER", [3] = "RED" }
|
||||
local oldstate = state[Oldstate+1]
|
||||
local newstate = state[Newstate+1]
|
||||
local m = MESSAGE:New(string.format("Mantis switched Advanced from from %s to %s interval %dsec", oldstate, newstate, Interval),10,"Info"):ToAll()
|
||||
end
|
||||
|
||||
function myredsa10:OnAfterRedState(From, Event, To, Group)
|
||||
-- show some info
|
||||
local SamName = Group:GetName()
|
||||
local m = MESSAGE:New(string.format("Mantis switched %s to RED state!", SamName),10,"Info"):ToAll()
|
||||
end
|
||||
|
||||
function myredsa10:OnAfterGreenState(From, Event, To, Group)
|
||||
-- show some info
|
||||
local SamName = Group:GetName()
|
||||
local m = MESSAGE:New(string.format("Mantis switched %s to GREEN state!", SamName),10,"Info"):ToAll()
|
||||
end
|
||||
|
||||
-- Destroy HQ after 5 mins
|
||||
function TerminateHQ()
|
||||
local group = GROUP:FindByName("Red HQ")
|
||||
group:Destroy()
|
||||
end
|
||||
|
||||
local desthqtimer = TIMER:New(TerminateHQ)
|
||||
desthqtimer:Start(600)
|
||||
Binary file not shown.
Reference in New Issue
Block a user