Next step of folder restructure

This commit is contained in:
kaltokri
2024-01-01 22:40:31 +01:00
parent b95cb6fd83
commit ccbc7dc549
898 changed files with 17060 additions and 258791 deletions

View File

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

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,57 @@
-------------------------------------------------------------------------
-- MTS-400 - MANTIS - Auto-mode huge set-up example
-------------------------------------------------------------------------
-- Documentation
--
-- MANTIS: https://flightcontrol-master.github.io/MOOSE_DOCS_DEVELOP/Documentation/Functional.Mantis.html
--
-------------------------------------------------------------------------
-- Observe a set of SAM sites being attacked by F18 SEAD
-------------------------------------------------------------------------
-- Date: 11 Nov 2021
--- Set up SHORAD
local redsamset = SET_GROUP:New():FilterCoalitions("red"):FilterPrefixes({"SAM-SA","EWR"}):FilterStart()
local redshorad = SHORAD:New("SHORAD-RED","SHORAD",redsamset,25000,600,"red",true) -- Functional.Shorad#SHORAD
redshorad:SetDefenseLimits(80,95)
--- Borders
local israelborder = ZONE_POLYGON:New("Israel",GROUP:FindByName("Israel Border"))
local syriaborder = ZONE_POLYGON:New("Syria",GROUP:FindByName("Syria Border"))
--- MANTIS
local RedMantis = MANTIS:New("SyMantis","SAM-SA","EWR",nil,"red")
RedMantis:AddZones({syriaborder},{israelborder}) --accept and reject zones
RedMantis:AddShorad(redshorad,600)
RedMantis:__Start(5)
function RedMantis:OnAfterSeadSuppressionPlanned(From, Event, To, Group, Name, SuppressionStartTime, SuppressionEndTime)
MESSAGE:New("SAM Suppression planned! "..Name.. " is planning to shut down.",10):ToAll()
BASE:I("SAM Suppression planned! "..Name.. " is planning to shut down.")
end
function RedMantis:OnAfterSeadSuppressionStart(From, Event, To, Group, Name)
MESSAGE:New("SAM Suppressed! "..Name.. " is suppressed.",10):ToAll()
BASE:I("SAM Suppressed! "..Name.. "is suppressed!" )
end
function RedMantis:OnAfterRedState(From,Event,To,Group)
local Name = Group:GetName()
MESSAGE:New("SAM "..Name.. " switched to RED",10):ToAll()
BASE:I("SAM "..Name.. " switched to RED" )
end
function RedMantis:OnAfterGreenState(From,Event,To,Group)
local Name = Group:GetName()
MESSAGE:New("SAM "..Name.. " switched to GREEN",10):ToAll()
BASE:I("SAM "..Name.. " switched to GREEN" )
end
--- get some SEAD flights
function GetBlueCAS()
local BlueCAS = SPAWN:New("Aerial-2"):Spawn()
local BlueCAS2 = SPAWN:New("Aerial-3"):Spawn()
end
local bluetimer = TIMER:New(GetBlueCAS)
bluetimer:Start(20)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,66 @@
-------------------------------------------------------------------------
-- MTS-410 - MANTIS - Automode and Zones
-------------------------------------------------------------------------
-- Documentation
--
-- MANTIS: https://flightcontrol-master.github.io/MOOSE_DOCS_DEVELOP/Documentation/Functional.Mantis.html
--
-------------------------------------------------------------------------
-- Observe a set of SAM sites being attacked by F16 SEAD. Red SAMs will
-- go active once the F16s have passed the red border and the DMZ.
-- The SAM network and the SHORAD are managed by MANTIS.
-------------------------------------------------------------------------
-- Date: 13 Nov 2021
-- Borders
local blueborder = ZONE_POLYGON:New("BlueBorder",GROUP:FindByName("Blue Border"))
local redborder = ZONE_POLYGON:New("RedBorder",GROUP:FindByName("Red Border"))
local dmz = ZONE:New("DMZ")
-- MANTIS
local RedMantis = MANTIS:New("RedMantis","Red SAM","Red EWR",nil,"red",nil,nil,true)
RedMantis:SetDetectInterval(30)
RedMantis:AddZones({redborder},{blueborder,dmz}) --accept and reject zones
RedMantis:SetSAMRange(90)
RedMantis.verbose = false
RedMantis:Debug(false)
RedMantis:__Start(5)
function RedMantis:OnAfterSeadSuppressionPlanned(From, Event, To, Group, Name, SuppressionStartTime, SuppressionEndTime)
MESSAGE:New("SAM Suppression planned! "..Name.. " is planning to shut down.",10):ToAll()
env.info("SAM Suppression planned! "..Name.. " is planning to shut down.")
end
function RedMantis:OnAfterSeadSuppressionStart(From, Event, To, Group, Name)
MESSAGE:New("SAM Suppressed! "..Name.. " is suppressed.",10):ToAll()
env.info("SAM Suppressed! "..Name.. "is suppressed!" )
end
function RedMantis:OnAfterRedState(From,Event,To,Group)
local Name = Group:GetName()
MESSAGE:New("SAM "..Name.. " switched to RED",10):ToAll()
env.info("SAM "..Name.. " switched to RED" )
end
function RedMantis:OnAfterGreenState(From,Event,To,Group)
local Name = Group:GetName()
MESSAGE:New("SAM "..Name.. " switched to GREEN",10):ToAll()
env.info("SAM "..Name.. " switched to GREEN" )
end
function RedMantis:OnAfterShoradActivated(From,Event,To,Name,Radius,Ontime)
MESSAGE:New("SHORAD for "..Name.. " going online!",10):ToAll()
env.info("SHORAD for "..Name.. " going online!" )
end
-- get some blue attackers
function GetBlueSEAD()
local BlueCAS = SPAWN:New("F16 Flight")
:InitCleanUp(30)
:InitLimit(3,0)
:InitDelayOff()
:SpawnScheduled(30,0.5)
end
local bluetimer = TIMER:New(GetBlueSEAD)
bluetimer:Start(20)

File diff suppressed because it is too large Load Diff