diff --git a/.metadata/.lock b/.metadata/.lock new file mode 100644 index 0000000..e69de29 diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version new file mode 100644 index 0000000..25cb955 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version new file mode 100644 index 0000000..6b2aaa7 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/1.tree b/.metadata/.plugins/org.eclipse.core.resources/.root/1.tree new file mode 100644 index 0000000..984bfda Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.root/1.tree differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources new file mode 100644 index 0000000..c6f84fb Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources differ diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..dffc6b5 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +version=1 diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs new file mode 100644 index 0000000..98d8634 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=\r\n\r\n diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.dltk.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.dltk.ui.prefs new file mode 100644 index 0000000..238fe2b --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.dltk.ui.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +sourceHoverBackgroundColor=255,255,225 +sourceHoverBackgroundColor.SystemDefault=true +useAnnotationsPrefPage=true +useQuickDiffPrefPage=true diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs new file mode 100644 index 0000000..e6297f6 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs @@ -0,0 +1,5 @@ +PROBLEMS_FILTERS_MIGRATE=true +eclipse.preferences.version=1 +platformState=1645898269583 +quickStart=false +tipsAndTricks=true diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs new file mode 100644 index 0000000..08076f2 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +showIntro=false diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs new file mode 100644 index 0000000..699e6a2 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs @@ -0,0 +1,2 @@ +//org.eclipse.ui.commands/state/org.eclipse.ui.navigator.resources.nested.changeProjectPresentation/org.eclipse.ui.commands.radioState=false +eclipse.preferences.version=1 diff --git a/.metadata/.plugins/org.eclipse.dltk.core/Containers.dat b/.metadata/.plugins/org.eclipse.dltk.core/Containers.dat new file mode 100644 index 0000000..9c82273 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.dltk.core/Containers.dat differ diff --git a/.metadata/.plugins/org.eclipse.dltk.ui/dialog_settings.xml b/.metadata/.plugins/org.eclipse.dltk.ui/dialog_settings.xml new file mode 100644 index 0000000..a7b2b49 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.dltk.ui/dialog_settings.xml @@ -0,0 +1,10 @@ + +
+
+ + + + + +
+
diff --git a/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi b/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi new file mode 100644 index 0000000..7e6da53 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi @@ -0,0 +1,1396 @@ + + + + activeSchemeId:org.eclipse.ui.defaultAcceleratorConfiguration + ModelMigrationProcessor.001 + + + + + + + + topLevel + + + + + persp.actionSet:org.eclipse.ui.cheatsheets.actionSet + persp.actionSet:org.eclipse.search.searchActionSet + persp.actionSet:org.eclipse.ui.edit.text.actionSet.annotationNavigation + persp.actionSet:org.eclipse.ui.edit.text.actionSet.navigation + persp.actionSet:org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo + persp.actionSet:org.eclipse.ui.externaltools.ExternalToolsSet + persp.actionSet:org.eclipse.ui.actionSet.keyBindings + persp.actionSet:org.eclipse.ui.actionSet.openFiles + persp.newWizSC:org.eclipse.ui.wizards.new.folder + persp.newWizSC:org.eclipse.ui.wizards.new.file + persp.viewSC:org.eclipse.ui.navigator.ProjectExplorer + persp.viewSC:org.eclipse.ui.views.BookmarkView + persp.viewSC:org.eclipse.ui.views.ContentOutline + persp.viewSC:org.eclipse.ui.views.PropertySheet + persp.viewSC:org.eclipse.ui.views.ProblemView + persp.viewSC:org.eclipse.ui.views.ProgressView + persp.viewSC:org.eclipse.ui.views.TaskList + persp.actionSet:org.eclipse.ui.NavigateActionSet + persp.newWizSC:org.eclipse.ldt.wizard + persp.newWizSC:org.eclipse.ldt.wizard.file + persp.newWizSC:org.eclipse.ldt.wizard.docfile + persp.perspSC:org.eclipse.debug.ui.DebugPerspective + persp.actionSet:org.eclipse.debug.ui.launchActionSet + + + + active + + View + categoryTag:Dynamic Languages + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:Lua + + + + + + + + persp.actionSet:org.eclipse.ui.cheatsheets.actionSet + persp.actionSet:org.eclipse.search.searchActionSet + persp.actionSet:org.eclipse.ui.edit.text.actionSet.annotationNavigation + persp.actionSet:org.eclipse.ui.edit.text.actionSet.navigation + persp.actionSet:org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo + persp.actionSet:org.eclipse.ui.externaltools.ExternalToolsSet + persp.actionSet:org.eclipse.ui.actionSet.keyBindings + persp.actionSet:org.eclipse.ui.actionSet.openFiles + persp.viewSC:org.eclipse.ui.views.ProgressView + persp.viewSC:org.eclipse.ui.texteditor.TemplatesView + persp.actionSet:org.eclipse.debug.ui.launchActionSet + persp.actionSet:org.eclipse.debug.ui.debugActionSet + persp.actionSet:org.eclipse.ui.NavigateActionSet + persp.viewSC:org.eclipse.debug.ui.DebugView + persp.viewSC:org.eclipse.debug.ui.VariableView + persp.viewSC:org.eclipse.debug.ui.BreakpointView + persp.viewSC:org.eclipse.debug.ui.ExpressionView + persp.viewSC:org.eclipse.ui.views.ContentOutline + persp.viewSC:org.eclipse.ui.console.ConsoleView + persp.viewSC:org.eclipse.ui.views.ProblemView + persp.viewSC:org.eclipse.ui.navigator.ProjectExplorer + persp.actionSet:org.eclipse.debug.ui.breakpointActionSet + persp.viewSC:org.eclipse.pde.runtime.LogView + persp.actionSet:org.eclipse.dltk.debug.ui.ScriptDebugActionSet + persp.viewSC:org.eclipse.dltk.debug.ui.ScriptDisplayView + + + org.eclipse.e4.primaryNavigationStack + + View + categoryTag:Debug + + + View + categoryTag:General + + + View + categoryTag:Dynamic Languages + + + + + + + org.eclipse.e4.secondaryNavigationStack + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:Debug + + + View + categoryTag:Dynamic Languages + + + + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:Debug + + + View + categoryTag:General + + + View + categoryTag:General + + + + + + + + + View + categoryTag:Help + + + View + categoryTag:General + + + View + categoryTag:Help + + + + + + org.eclipse.e4.primaryDataStack + EditorStack + + + + + + + View + categoryTag:Dynamic Languages + active + activeOnClose + + ViewMenu + menuContribution:menu + + + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + + + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + + + + + View + categoryTag:General + + + + + View + categoryTag:Lua + + + + + View + categoryTag:Help + + + + + View + categoryTag:General + + + + + View + categoryTag:Help + + + + + View + categoryTag:Debug + + + + + View + categoryTag:General + + + + + View + categoryTag:Debug + + + + + View + categoryTag:General + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:General + + + + + View + categoryTag:Dynamic Languages + + + + toolbarSeparator + + + + Draggable + + + + toolbarSeparator + + + + Draggable + + + toolbarSeparator + + + + Draggable + + + Draggable + + + Draggable + + + toolbarSeparator + + + + Draggable + + + + toolbarSeparator + + + + toolbarSeparator + + + + Draggable + + + stretch + SHOW_RESTORE_MENU + + + Draggable + HIDEABLE + SHOW_RESTORE_MENU + + + + + stretch + + + Draggable + + + Draggable + + + + + + + + + + platform:win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + platform:win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Editor + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Dynamic Languages + + + + + View + categoryTag:Dynamic Languages + + + + + View + categoryTag:Dynamic Languages + + + + + View + categoryTag:Dynamic Languages + + + + + View + categoryTag:Dynamic Languages + + + + + View + categoryTag:Dynamic Languages + + + + + View + categoryTag:Help + + + + + View + categoryTag:Lua + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:Team + + + + + View + categoryTag:Team + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:Help + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + glue + move_after:PerspectiveSpacer + SHOW_RESTORE_MENU + + + move_after:Spacer Glue + HIDEABLE + SHOW_RESTORE_MENU + + + glue + move_after:SearchField + SHOW_RESTORE_MENU + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml new file mode 100644 index 0000000..5ca0b77 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml @@ -0,0 +1,3 @@ + +
+
diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml new file mode 100644 index 0000000..851c296 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml @@ -0,0 +1,15 @@ + +
+
+ + + + + + + + + + +
+
diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml b/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml new file mode 100644 index 0000000..0c59452 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.metadata/version.ini b/.metadata/version.ini new file mode 100644 index 0000000..55b108f --- /dev/null +++ b/.metadata/version.ini @@ -0,0 +1,3 @@ +#Sat Nov 16 11:11:18 CST 2024 +org.eclipse.core.runtime=2 +org.eclipse.platform=4.8.0.v20180308-0630 diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.0.6.miz b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.0.6.miz index cf48cba..5466cb8 100644 Binary files a/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.0.6.miz and b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.0.6.miz differ diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.0.8.miz b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.0.8.miz new file mode 100644 index 0000000..fb814a5 Binary files /dev/null and b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.0.8.miz differ diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.0.9.miz b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.0.9.miz new file mode 100644 index 0000000..14d4af1 Binary files /dev/null and b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.0.9.miz differ diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_CTLD.lua b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_CTLD.lua index b1ff22b..8fa3334 100644 --- a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_CTLD.lua +++ b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_CTLD.lua @@ -25,7 +25,7 @@ red_ctld.hoverautoloading = true -- Crates in CrateDistance in a LOAD zone will red_ctld.smokedistance = 10000 -- Smoke or flares can be request for zones this far away (in meters). red_ctld.movetroopstowpzone = true -- Troops and vehicles will move to the nearest MOVE zone... red_ctld.movetroopsdistance = 5000 -- .. but only if this far away (in meters) -red_ctld.suppressmessages = true -- Set to true if you want to script your own messages. +red_ctld.suppressmessages = false -- Set to true if you want to script your own messages. red_ctld.repairtime = 300 -- Number of seconds it takes to repair a unit. red_ctld.buildtime = 300 -- Number of seconds it takes to build a unit. Set to zero or nil to build instantly. red_ctld.cratecountry = country.id.GERMANY -- ID of crates. Will default to country.id.RUSSIA for RED coalition setups. @@ -63,7 +63,7 @@ blue_ctld.hoverautoloading = true -- Crates in CrateDistance in a LOAD zone will blue_ctld.smokedistance = 10000 -- Smoke or flares can be request for zones this far away (in meters). blue_ctld.movetroopstowpzone = true -- Troops and vehicles will move to the nearest MOVE zone... blue_ctld.movetroopsdistance = 5000 -- .. but only if this far away (in meters) -blue_ctld.suppressmessages = true -- Set to true if you want to script your own messages. +blue_ctld.suppressmessages = false -- Set to true if you want to script your own messages. blue_ctld.repairtime = 300 -- Number of seconds it takes to repair a unit. blue_ctld.buildtime = 300 -- Number of seconds it takes to build a unit. Set to zero or nil to build instantly. blue_ctld.cratecountry = country.id.GERMANY -- ID of crates. Will default to country.id.RUSSIA for RED coalition setups. @@ -114,8 +114,8 @@ blue_ctld.EngineerSearch = 2000 -- Search radius for engineers. --]] -- Custom Capabilities -blue_ctld:SetUnitCapabilities("UH-1H", true, true, 1, 10, 15, 4000) -red_ctld:SetUnitCapabilities("UH-1H", true, true, 1, 10, 15, 4000) +blue_ctld:SetUnitCapabilities("UH-1H", true, true, 1, 10, 15, 6000) +red_ctld:SetUnitCapabilities("UH-1H", true, true, 1, 10, 15, 6000) diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_InsurgentSandstorm.lua b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_InsurgentSandstorm.lua index f81fb0a..dfd5846 100644 --- a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_InsurgentSandstorm.lua +++ b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_InsurgentSandstorm.lua @@ -1,6 +1,7 @@ +local TAC_DISPLAY = true -- Set to false to disable Tacview display for AI flights (default = false) - --Build Command Center and Mission for Blue +--Build Command Center and Mission for Blue US_CC = COMMANDCENTER:New( GROUP:FindByName( "BLUEHQ" ), "USA HQ" ) US_Mission = MISSION:New( US_CC, "Insurgent Sandstorm", "Primary", "Clear the front lines of enemy activity.", coalition.side.BLUE) US_Score = SCORING:New( "Insurgent Sandstorm - Blue" ) @@ -22,8 +23,8 @@ RU_Score:SetMessagesScore(false) -- How many red/blue aircraft are in the air by default. -local RedA2ADefaultOverhead = 2 -local BlueA2ADefaultOverhead = 2 +local RedA2ADefaultOverhead = 1.5 +local BlueA2ADefaultOverhead = 1 PlayerClients = SET_PLAYER:New():FilterStart() @@ -92,37 +93,28 @@ local RED_AA_ZONES = { } - +--[[] -- Schedule RED AA spawns using the calculated frequencies -RED_SA08 = SPAWN:New("SA08") +RED_SA08 = SPAWN:New("RED EWR SA08") :InitRandomizeZones(RED_AA_ZONES) :InitLimit(5, 5) :SpawnScheduled(1, 0.5) -- There are 18 units in this group. Need space for each one in the numbers. So if I want 3 SA10s i'm just rounding up to 60. -RED_SA10 = SPAWN:New("RED-AA-SA10-1") +RED_SA10 = SPAWN:New("RED EWR AA-SA10-1") :InitRandomizeZones(RED_AA_ZONES) :InitLimit(60, 60) :SpawnScheduled(1, 0.5) -- There are 12 units in this group. Need space for each one in the numbers. So if I want 4 SA11s i'm just rounding up to 48 -RED_SA11 = SPAWN:New("RED-AA-SA112-1") +RED_SA11 = SPAWN:New("RED EWR AA SA112-1") :InitRandomizeZones(RED_AA_ZONES) :InitLimit(48, 48) :SpawnScheduled(1, 0.5) -- Setup AI A2A Dispatchers --Red - -CCCPBorderZone = ZONE_POLYGON:New( "RED BORDER", GROUP:FindByName( "RED BORDER" ) ) -RedA2ADispatcher = AI_A2A_GCICAP:New( { "RED EWR" }, { "FIGHTER SWEEP RED" }, { "RED BORDER" }, CCCPBorderZone ) -RedA2ADispatcher:SetDefaultLandingAtEngineShutdown() -RedA2ADispatcher:SetDefaultTakeoffFromParkingHot() -RedA2ADispatcher:SetBorderZone( CCCPBorderZone ) -RedA2ADispatcher:SetTacticalDisplay(false) -RedA2ADispatcher:SetDefaultFuelThreshold( 0.20 ) -RedA2ADispatcher:SetRefreshTimeInterval( 300 ) -RedA2ADispatcher:SetDefaultOverhead(RedA2ADefaultOverhead) +--]] --Blue BLUEBorderZone = ZONE_POLYGON:New( "BLUE BORDER", GROUP:FindByName( "BLUE BORDER" ) ) @@ -130,33 +122,47 @@ BLUEA2ADispatcher = AI_A2A_GCICAP:New( { "BLUE EWR" }, { "FIGHTER SWEEP BLUE" }, BLUEA2ADispatcher:SetDefaultLandingAtEngineShutdown() BLUEA2ADispatcher:SetDefaultTakeoffFromParkingHot() BLUEA2ADispatcher:SetBorderZone( BLUEBorderZone ) -BLUEA2ADispatcher:SetTacticalDisplay(false) +BLUEA2ADispatcher:SetTacticalDisplay(TAC_DISPLAY) BLUEA2ADispatcher:SetDefaultFuelThreshold( 0.20 ) BLUEA2ADispatcher:SetRefreshTimeInterval( 300 ) BLUEA2ADispatcher:SetDefaultOverhead(BlueA2ADefaultOverhead) ---Red -DwyerBorderZone = ZONE_POLYGON:New( "DwyerBorderZone", GROUP:FindByName( "DwyerBorderZone" ) ) -DwyerBorderZone = AI_A2A_GCICAP:New( { "RED EWR" }, { "DwyerBorderCAP" }, { "DwyerBorderZone" }, DwyerBorderZone ) -DwyerBorderZone:SetDefaultLandingAtEngineShutdown() -DwyerBorderZone:SetDefaultTakeoffFromParkingHot() -DwyerBorderZone:SetBorderZone( BLUEBorderZone ) -DwyerBorderZone:SetTacticalDisplay(false) -DwyerBorderZone:SetDefaultFuelThreshold( 0.20 ) -DwyerBorderZone:SetRefreshTimeInterval( 300 ) -DwyerBorderZone:SetDefaultOverhead(BlueA2ADefaultOverhead) +CCCPBorderZone = ZONE_POLYGON:New( "RED BORDER", GROUP:FindByName( "RED BORDER" ) ) +RedA2ADispatcher = AI_A2A_GCICAP:New( { "RED EWR" }, { "FIGHTER SWEEP RED" }, { "RED BORDER" }, CCCPBorderZone ) +RedA2ADispatcher:SetDefaultLandingAtEngineShutdown() +RedA2ADispatcher:SetDefaultTakeoffFromParkingHot() +RedA2ADispatcher:SetBorderZone( CCCPBorderZone ) +RedA2ADispatcher:SetTacticalDisplay(TAC_DISPLAY) +RedA2ADispatcher:SetDefaultFuelThreshold( 0.20 ) +RedA2ADispatcher:SetRefreshTimeInterval( 300 ) +RedA2ADispatcher:SetDefaultOverhead(RedA2ADefaultOverhead) + + +DwyerBorderZone = ZONE_POLYGON:New( "DwyerBorderZone", GROUP:FindByName( "DwyerBorderZone" ) ) +DwyerDispatcher = AI_A2A_GCICAP:New( { "RED EWR" }, { "DwyerBorderCAP" }, { "DwyerBorderZone" }, DwyerBorderZone ) +DwyerDispatcher:SetDefaultLandingAtEngineShutdown() +DwyerDispatcher:SetDefaultTakeoffFromParkingHot() +DwyerDispatcher:SetBorderZone( DwyerBorderZone ) +DwyerDispatcher:SetTacticalDisplay(TAC_DISPLAY) +DwyerDispatcher:SetDefaultFuelThreshold( 0.20 ) +DwyerDispatcher:SetRefreshTimeInterval( 300 ) +DwyerDispatcher:SetDefaultOverhead(BlueA2ADefaultOverhead) + ---Red BostZone = ZONE_POLYGON:New( "BostBorderZone", GROUP:FindByName( "BostBorderZone" ) ) -BostZone = AI_A2A_GCICAP:New( { "RED EWR" }, { "BostBorderCAP" }, { "BostBorderZone" }, BostBorderZone ) -BostZone:SetDefaultLandingAtEngineShutdown() -BostZone:SetDefaultTakeoffFromParkingHot() -BostZone:SetBorderZone( BLUEBorderZone ) -BostZone:SetTacticalDisplay(false) -BostZone:SetDefaultFuelThreshold( 0.20 ) -BostZone:SetRefreshTimeInterval( 300 ) -BostZone:SetDefaultOverhead(BlueA2ADefaultOverhead) +BostDispatcher = AI_A2A_GCICAP:New( { "RED EWR" }, { "BostBorderCAP" }, { "BostBorderZone" }, BostZone ) +BostDispatcher:SetDefaultLandingAtEngineShutdown() +BostDispatcher:SetDefaultTakeoffFromParkingHot() +BostDispatcher:SetBorderZone(BostZone) +BostDispatcher:SetTacticalDisplay(TAC_DISPLAY) +BostDispatcher:SetDefaultFuelThreshold( 0.20 ) +BostDispatcher:SetRefreshTimeInterval( 300 ) +BostDispatcher:SetDefaultOverhead(BlueA2ADefaultOverhead) + + Blue_Drone = SPAWN:New("BLUE DRONE") :InitLimit(1, 25) :SpawnScheduled(600, 0.5) + + diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_InsurgentSandstorm_Awacs.lua b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_InsurgentSandstorm_Awacs.lua index 5037fed..d28719f 100644 --- a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_InsurgentSandstorm_Awacs.lua +++ b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_InsurgentSandstorm_Awacs.lua @@ -1,109 +1,73 @@ --- Debugging flag -local DEBUG = true +-- Define the event handler class for Red AWACS +RedAwacsEventHandler = EVENTHANDLER:New() --- Define AWACS and its escorts -local awacsGroupName = "BLUE EWR AWACS" -local escortGroup1Name = "BlueAWACS_Escort_Group1" - --- Configuration parameters -local patrolAltMin = 5000 -local patrolAltMax = 8000 -local escortFollowDistance = 1000 -local respawnCheckInterval = 10 -local maxEscortSpawns = 10 -- maximum number of escort spawns - might take this out. - --- Function to print debug messages if DEBUG is enabled -local function DebugMessage(message) - if DEBUG and message then - env.info("[AWACS DEBUG] " .. tostring(message)) - end +-- Handle the Birth event for Red AWACS +function RedAwacsEventHandler:OnEventBirth(EventData) + if EventData.IniDCSGroupName == "RED EWR AWACS" then + MESSAGE:New("AWACS has spawned!", 15):ToRed() + + end end --- Function to send a message to all players -local function Announce(message, soundFile) - if message then - MESSAGE:New(message, 15):ToAll() - end - if soundFile then - --local sound = SOUND:New(soundFile) - --sound:ToAll() - end +-- Handle the Dead event for Red AWACS +function RedAwacsEventHandler:OnEventDead(EventData) + if EventData.IniDCSGroupName == "RED EWR AWACS" then + MESSAGE:New("AWACS has been destroyed!", 15):ToRed() + + end end --- Define the patrol zone -local patrolZone = ZONE:New("AWACS_PatrolZone") -if patrolZone then - DebugMessage("Patrol zone created: " .. patrolZone:GetName()) -else - DebugMessage("ERROR: Patrol zone 'AWACS_PatrolZone' not found. Check the mission editor.") - return -- Exit if the patrol zone is not defined +-- Handle the Hit event for Red AWACS +function RedAwacsEventHandler:OnEventHit(EventData) + if EventData.IniDCSGroupName == "RED EWR AWACS" then + MESSAGE:New("AWACS is under attack!", 15):ToRed() + + end end +-- Create the Red AWACS spawn object +Red_Awacs = SPAWN:New("RED EWR AWACS") + :InitLimit(1, 99) + :SpawnScheduled(300, 0.5) +-- Add the event handler to the Red AWACS group +RedAwacsEventHandler:HandleEvent(EVENTS.Birth) +RedAwacsEventHandler:HandleEvent(EVENTS.Dead) +RedAwacsEventHandler:HandleEvent(EVENTS.Hit) --- Define the AWACS spawn -local awacsSpawn = SPAWN:New(awacsGroupName):InitLimit(1, 0) +-- Define the event handler class for Blue AWACS +BlueAwacsEventHandler = EVENTHANDLER:New() --- Function to spawn and attach escorts to AWACS -function spawnEscort(escortGroupName, awacsGroup) - if not escortGroupName or not awacsGroup then - DebugMessage("ERROR: Invalid escort group name or AWACS group.") - return - end - - DebugMessage("Spawning escort: " .. escortGroupName) - Announce("Spawning escort for AWACS.", "escort_spawn.ogg") - - local escortSpawn = SPAWN:New(escortGroupName):InitLimit(1, maxEscortSpawns) - - escortSpawn:OnSpawnGroup(function(escortGroup) - if not escortGroup then - DebugMessage("ERROR: Escort group failed to spawn.") - return - end - - DebugMessage("Escort spawned: " .. escortGroup:GetName()) - - -- Set the escort group to follow the AWACS - SCHEDULER:New(nil, function() - if awacsGroup:IsAlive() and escortGroup:IsAlive() then - escortGroup:TaskFollow(awacsGroup, escortFollowDistance) - DebugMessage("Escort assigned to follow AWACS.") - else - DebugMessage("AWACS or escort is not alive.") - end - end, {}, 3, respawnCheckInterval) - end):Spawn() +-- Handle the Birth event for Blue AWACS +function BlueAwacsEventHandler:OnEventBirth(EventData) + if EventData.IniDCSGroupName == "BLUE EWR AWACS" then + MESSAGE:New("AWACS has spawned!", 15):ToBlue() + + end end --- Start AWACS in a patrol pattern within the patrol zone -awacsSpawn:InitRepeatOnEngineShutDown() - :OnSpawnGroup(function(awacsGroup) - if not awacsGroup then - DebugMessage("ERROR: AWACS group failed to spawn.") - return - end +-- Handle the Dead event for Blue AWACS +function BlueAwacsEventHandler:OnEventDead(EventData) + if EventData.IniDCSGroupName == "BLUE EWR AWACS" then + MESSAGE:New("AWACS has been destroyed!", 15):ToBlue() + + end +end - DebugMessage("AWACS spawned: " .. awacsGroup:GetName()) - Announce("AWACS is now airborne and patrolling.", "awacs_spawn.ogg") +-- Handle the Hit event for Blue AWACS +function BlueAwacsEventHandler:OnEventHit(EventData) + if EventData.IniDCSGroupName == "BLUE EWR AWACS" then + MESSAGE:New("AWACS is under attack!", 15):ToBlue() + + end +end - -- Create a patrol task for the AWACS in the defined zone - local patrolTask = AI_PATROL_ZONE:New(patrolZone, patrolAltMin, patrolAltMax) - patrolTask:SetControllable(awacsGroup) - patrolTask:__Start(1) - DebugMessage("Patrol task assigned to AWACS.") +-- Create the Blue AWACS spawn object +Blue_Awacs = SPAWN:New("BLUE EWR AWACS") + :InitLimit(1, 99) + :SpawnScheduled(300, 0.5) - -- Spawn and manage escorts - spawnEscort(escortGroup1Name, awacsGroup) - end) - :Spawn() - --- Create a scheduled task to check if AWACS is alive and respawn if destroyed -SCHEDULER:New(nil, function() - local awacsGroup = awacsSpawn:GetLastAliveGroup() - if not awacsGroup or not awacsGroup:IsAlive() then - DebugMessage("AWACS destroyed. Respawning...") - Announce("AWACS has been destroyed! Respawning...", "awacs_destroyed.ogg") - awacsSpawn:Spawn() - end -end, {}, 0, respawnCheckInterval) +-- Add the event handler to the Blue AWACS group +BlueAwacsEventHandler:HandleEvent(EVENTS.Birth) +BlueAwacsEventHandler:HandleEvent(EVENTS.Dead) +BlueAwacsEventHandler:HandleEvent(EVENTS.Hit) \ No newline at end of file diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_Tanker.lua b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_Tanker.lua new file mode 100644 index 0000000..1d72917 --- /dev/null +++ b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_Tanker.lua @@ -0,0 +1,55 @@ +-- Define the event handler class for Blue TANKER +BlueTankerEventHandler = EVENTHANDLER:New() + +-- Handle the Birth event for Blue TANKER +function BlueTankerEventHandler:OnEventBirth(EventData) + if EventData.IniDCSGroupName == "TANKER 135" then + MESSAGE:New("TANKER has spawned!", 15):ToBlue() + elseif EventData.IniDCSGroupName == "TANKER 135 MPRS" then + MESSAGE:New("TANKER 135 MPRS has spawned!", 15):ToBlue() + end +end + +-- Handle the Dead event for Blue TANKER +function BlueTankerEventHandler:OnEventDead(EventData) + if EventData.IniDCSGroupName == "TANKER 135" then + MESSAGE:New("TANKER has been destroyed!", 15):ToBlue() + elseif EventData.IniDCSGroupName == "TANKER 135 MPRS" then + MESSAGE:New("TANKER 135 MPRS has been destroyed!", 15):ToBlue() + end +end + +-- Handle the Hit event for Blue TANKER +function BlueTankerEventHandler:OnEventHit(EventData) + if EventData.IniDCSGroupName == "TANKER 135" then + MESSAGE:New("TANKER is under attack!", 15):ToBlue() + elseif EventData.IniDCSGroupName == "TANKER 135 MPRS" then + MESSAGE:New("TANKER 135 MPRS is under attack!", 15):ToBlue() + end +end + +-- Create the Blue TANKER spawn objects +Blue_Tanker = SPAWN:New("TANKER 135") + :InitLimit(1, 99) + +Blue_Tanker_MPRS = SPAWN:New("TANKER 135 MPRS") + :InitLimit(1, 99) + +-- Function to spawn the tankers +function SpawnTanker() + Blue_Tanker:Spawn() +end + +function SpawnTankerMPRS() + Blue_Tanker_MPRS:Spawn() +end + +-- Create a mission menu for requesting the tankers +MenuCoalitionBlue = MENU_COALITION:New(coalition.side.BLUE, "Request TANKER") +MenuCoalitionBlueTanker = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Launch TANKER 135", MenuCoalitionBlue, SpawnTanker) +MenuCoalitionBlueTankerMPRS = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Launch TANKER 135 MPRS", MenuCoalitionBlue, SpawnTankerMPRS) + +-- Add the event handler to the Blue TANKER group +BlueTankerEventHandler:HandleEvent(EVENTS.Birth) +BlueTankerEventHandler:HandleEvent(EVENTS.Dead) +BlueTankerEventHandler:HandleEvent(EVENTS.Hit) \ No newline at end of file