diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.1.miz b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.1.miz index cf6c224..7374101 100644 Binary files a/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.1.miz and b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.1.miz differ diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.2.miz b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.2.miz new file mode 100644 index 0000000..7800bb0 Binary files /dev/null and b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.2.miz differ diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_CTLD.lua b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_CTLD.lua index 8fa3334..58039f3 100644 --- a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_CTLD.lua +++ b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_CTLD.lua @@ -113,12 +113,6 @@ blue_ctld.EngineerSearch = 2000 -- Search radius for engineers. ["CH-47Fbl1"] = {type="CH-47Fbl1", crates=true, troops=true, cratelimit = 4, trooplimit = 31, length = 20, cargoweightlimit = 8000}, --]] --- Custom Capabilities -blue_ctld:SetUnitCapabilities("UH-1H", true, true, 1, 10, 15, 6000) -red_ctld:SetUnitCapabilities("UH-1H", true, true, 1, 10, 15, 6000) - - - -- Start the CTLD Instances red_ctld:Start(5) blue_ctld:Start(5) @@ -143,27 +137,27 @@ red_ctld:AddTroopsCargo("Anti-Air (4)",{"Red-AA"},CTLD_CARGO.Enum.TROOPS, 4, 80, blue_ctld:AddTroopsCargo("Anti-Air(4)",{"Blue-AA"},CTLD_CARGO.Enum.TROOPS, 4, 80, 10) -- Add Engineers -red_ctld:AddTroopsCargo("Engineer Team (3)",{"Red-Eng"},CTLD_CARGO.Enum.ENGINEERS, 3, 80) -blue_ctld:AddTroopsCargo("Engineer Team (3)",{"Blue-Eng"},CTLD_CARGO.Enum.ENGINEERS, 3, 80) +--red_ctld:AddTroopsCargo("Engineer Team (3)",{"Red-Eng"},CTLD_CARGO.Enum.ENGINEERS, 3, 80) +--blue_ctld:AddTroopsCargo("Engineer Team (3)",{"Blue-Eng"},CTLD_CARGO.Enum.ENGINEERS, 3, 80) -- Add Ammo Trucks -red_ctld:AddCratesCargo("Ammo Truck",{"Red-Ammo"},CTLD_CARGO.Enum.VEHICLE, 2, 2775, 10) -blue_ctld:AddCratesCargo("Ammo Truck",{"Blue-Ammo"},CTLD_CARGO.Enum.VEHICLE, 2, 2775, 10) +red_ctld:AddCratesCargo("Ammo Truck",{"Red-Ammo"},CTLD_CARGO.Enum.VEHICLE, 2, 500, 10) +blue_ctld:AddCratesCargo("Ammo Truck",{"Blue-Ammo"},CTLD_CARGO.Enum.VEHICLE, 2, 500, 10) -- Add JTACs --red_ctld:AddCratesCargo("JTAC",{"Red-JTAC"},CTLD_CARGO.Enum.VEHICLE, 1, 2775, 10) -- no soup for you commie bitches! -blue_ctld:AddCratesCargo("JTAC",{"Blue-JTAC"},CTLD_CARGO.Enum.VEHICLE, 1, 2775, 10) +blue_ctld:AddCratesCargo("JTAC",{"Blue-JTAC"},CTLD_CARGO.Enum.VEHICLE, 1, 500, 10) -- Add HUMVEE -blue_ctld:AddCratesCargo("HUMVEE",{"Blue-HUMVEE"},CTLD_CARGO.Enum.VEHICLE, 1, 3000, 25) +blue_ctld:AddCratesCargo("HUMVEE",{"Blue-HUMVEE"},CTLD_CARGO.Enum.VEHICLE, 1, 500, 25) -- Add Tanks -red_ctld:AddCratesCargo("T-90 (20000kg)",{"Red-T90"},CTLD_CARGO.Enum.VEHICLE, 1, 95000, 25) -blue_ctld:AddCratesCargo("M1A2 (20000kg)",{"Blue-M1A2"},CTLD_CARGO.Enum.VEHICLE, 1, 95000, 25) +red_ctld:AddCratesCargo("T-90",{"Red-T90"},CTLD_CARGO.Enum.VEHICLE, 1, 8500, 25) +blue_ctld:AddCratesCargo("M1A2",{"Blue-M1A2"},CTLD_CARGO.Enum.VEHICLE, 1, 8500, 25) -- Add FOBs -red_ctld:AddCratesCargo("Forward Ops Base (500kg)",{"Red-FOB"},CTLD_CARGO.Enum.FOB, 4, 500, 8) -blue_ctld:AddCratesCargo("Forward Ops Base (500kg)",{"Blue-FOB"},CTLD_CARGO.Enum.FOB, 4, 500, 8) +red_ctld:AddCratesCargo("Forward Ops Base",{"Red-FOB"},CTLD_CARGO.Enum.FOB, 4, 500, 8) +blue_ctld:AddCratesCargo("Forward Ops Base",{"Blue-FOB"},CTLD_CARGO.Enum.FOB, 4, 500, 8) -- AA Crates red_ctld:AddCratesCargo("SA-8",{"SA8"},CTLD_CARGO.Enum.CRATE, 4, 500, 10) diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_DroneOps.lua b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_DroneOps.lua new file mode 100644 index 0000000..95fe0d3 --- /dev/null +++ b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_DroneOps.lua @@ -0,0 +1,90 @@ +-- Define the red and blue zones + + + +local redZones = { + ZONE:New("FrontLine1"), + ZONE:New("FrontLine2"), + ZONE:New("FrontLine3"), + ZONE:New("FrontLine4"), + ZONE:New("FrontLine5"), + ZONE:New("FrontLine6"), + ZONE:New("FrontLine7"), + ZONE:New("FrontLine8") +} + +local blueZones = { + ZONE:New("FrontLine9"), + ZONE:New("FrontLine10"), + ZONE:New("FrontLine11"), + ZONE:New("FrontLine12"), + ZONE:New("FrontLine13"), + ZONE:New("FrontLine14"), + ZONE:New("FrontLine15"), + ZONE:New("FrontLine16") +} + +-- Combine the redZones and blueZones tables into one table +local combinedZones = {} +for _, zone in ipairs(redZones) do + table.insert(combinedZones, zone) +end +for _, zone in ipairs(blueZones) do + table.insert(combinedZones, zone) +end + +-- Create a detection area using the Blue_Drone group and the combined zones +local droneDetection = DETECTION_UNITS:New(Blue_Drone) +droneDetection:SetAcceptZones(combinedZones) +droneDetection:Start() + +-- Function to present target options to the player +local function RequestTargetOptions() + if not droneDetection then + MESSAGE:New("Drone detection is not initialized", 10):ToAll() + return + end + + local detectedTargets = droneDetection:GetDetectedSet() + if not detectedTargets or #detectedTargets == 0 then + MESSAGE:New("No targets detected", 10):ToAll() + return + end + MESSAGE:New("Targets Detected, use menu again to select.", 10):ToAll() + local targetMenu = MENU_COALITION:New(coalition.side.BLUE, "Select Target", nil) + + for i, target in ipairs(detectedTargets) do + local targetName = target:GetName() + MENU_COALITION_COMMAND:New(coalition.side.BLUE, targetName, targetMenu, function() + PresentActionOptions(target) + end) + end +end + +-- Function to present action options for a selected target +local function PresentActionOptions(target) + local actionMenu = MENU_COALITION:New(coalition.side.BLUE, "Select Action for " .. target:GetName(), nil) + + MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Smoke (Red)", actionMenu, function() + target:SmokeTarget(SMOKECOLOR.Red) + end) + MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Smoke (Green)", actionMenu, function() + target:SmokeTarget(SMOKECOLOR.Green) + end) + MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Lase (Code 1688)", actionMenu, function() + target:LaseTarget(1688) + end) + MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Flare (Red)", actionMenu, function() + target:FlareTarget(FLARECOLOR.Red) + end) + MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Flare (Green)", actionMenu, function() + target:FlareTarget(FLARECOLOR.Green) + end) +end + +-- Create the main mission menu +missionMenu = MENU_MISSION:New("Mission Menu") + +-- Create the Drone Menu for the player to interact with the drone +local DroneMenu = MENU_COALITION:New(coalition.side.BLUE, "Drone Ops", missionMenu) +MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Request Target Options", DroneMenu, RequestTargetOptions) \ No newline at end of file diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_DynamicGroundBattle.lua b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_DynamicGroundBattle.lua index 1636f34..51c4580 100644 --- a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_DynamicGroundBattle.lua +++ b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_DynamicGroundBattle.lua @@ -139,16 +139,20 @@ local redZones = { ZONE:New("FrontLine3"), ZONE:New("FrontLine4"), ZONE:New("FrontLine5"), - ZONE:New("FrontLine6") + ZONE:New("FrontLine6"), + ZONE:New("FrontLine7"), + ZONE:New("FrontLine8") } local blueZones = { - ZONE:New("FrontLine7"), - ZONE:New("FrontLine8"), ZONE:New("FrontLine9"), ZONE:New("FrontLine10"), ZONE:New("FrontLine11"), - ZONE:New("FrontLine12") + ZONE:New("FrontLine12"), + ZONE:New("FrontLine13"), + ZONE:New("FrontLine14"), + ZONE:New("FrontLine15"), + ZONE:New("FrontLine16") } -- Define warehouses for each side. These warehouses will be used to calculate the spawn frequency of ground units. @@ -317,15 +321,19 @@ function ZONE_CAPTURE_COALITION:OnEnterGuarded(From, Event, To) -- Draw zone DARK BLUE for guarded self:UndrawZone() self:DrawZone(-1, {0, 0, 0.5}, 2) -- Draw the zone on the map for 30 seconds, dark blue color, and thickness 2 - US_CC:MessageTypeToCoalition(string.format("%s is under protection of the USA", self:GetZoneName()), MESSAGE.Type.Information) - RU_CC:MessageTypeToCoalition(string.format("%s is under protection of the USA", self:GetZoneName()), MESSAGE.Type.Information) + if ENABLE_CAPTURE_ZONE_MESSAGES then + US_CC:MessageTypeToCoalition(string.format("%s is under protection of the USA", self:GetZoneName()), MESSAGE.Type.Information) + RU_CC:MessageTypeToCoalition(string.format("%s is under protection of the USA", self:GetZoneName()), MESSAGE.Type.Information) + end else self:Smoke(SMOKECOLOR.Red) -- Draw zone DARK RED for guarded self:UndrawZone() self:DrawZone(-1, {0.5, 0, 0}, 2) -- Draw the zone on the map for 30 seconds, dark red color, and thickness 2 - RU_CC:MessageTypeToCoalition(string.format("%s is under protection of Russia", self:GetZoneName()), MESSAGE.Type.Information) - US_CC:MessageTypeToCoalition(string.format("%s is under protection of Russia", self:GetZoneName()), MESSAGE.Type.Information) + if ENABLE_CAPTURE_ZONE_MESSAGES then + RU_CC:MessageTypeToCoalition(string.format("%s is under protection of Russia", self:GetZoneName()), MESSAGE.Type.Information) + US_CC:MessageTypeToCoalition(string.format("%s is under protection of Russia", self:GetZoneName()), MESSAGE.Type.Information) + end end end end @@ -340,8 +348,10 @@ function ZONE_CAPTURE_COALITION:OnEnterEmpty(From, Event, To) self:Smoke(SMOKECOLOR.Green) self:UndrawZone() self:DrawZone(-1, {0, 1, 0}, 2) -- Draw the zone on the map for 30 seconds, green color, and thickness 2 - US_CC:MessageTypeToCoalition(string.format("%s is now empty", self:GetZoneName()), MESSAGE.Type.Information) - RU_CC:MessageTypeToCoalition(string.format("%s is now empty", self:GetZoneName()), MESSAGE.Type.Information) + if ENABLE_CAPTURE_ZONE_MESSAGES then + US_CC:MessageTypeToCoalition(string.format("%s is now empty", self:GetZoneName()), MESSAGE.Type.Information) + RU_CC:MessageTypeToCoalition(string.format("%s is now empty", self:GetZoneName()), MESSAGE.Type.Information) + end end end @@ -358,14 +368,18 @@ function ZONE_CAPTURE_COALITION:OnEnterAttacked(From, Event, To) -- Draw the zone orange for contested self:UndrawZone() self:DrawZone(-1, {1, 0.5, 0}, 2) -- Draw the zone on the map for 30 seconds, orange color, and thickness 2 - US_CC:MessageTypeToCoalition(string.format("%s is under attack by Russia", self:GetZoneName()), MESSAGE.Type.Information) - RU_CC:MessageTypeToCoalition(string.format("%s is attacking the USA", self:GetZoneName()), MESSAGE.Type.Information) + if ENABLE_CAPTURE_ZONE_MESSAGES then + US_CC:MessageTypeToCoalition(string.format("%s is under attack by Russia", self:GetZoneName()), MESSAGE.Type.Information) + RU_CC:MessageTypeToCoalition(string.format("%s is attacking the USA", self:GetZoneName()), MESSAGE.Type.Information) + end else self:Smoke(SMOKECOLOR.Red) self:UndrawZone() self:DrawZone(-1, {1, 0.5, 0}, 2) -- Draw the zone on the map for 30 seconds, orange color, and thickness 2 - RU_CC:MessageTypeToCoalition(string.format("%s is under attack by the USA", self:GetZoneName()), MESSAGE.Type.Information) - US_CC:MessageTypeToCoalition(string.format("%s is attacking Russia", self:GetZoneName()), MESSAGE.Type.Information) + if ENABLE_CAPTURE_ZONE_MESSAGES then + RU_CC:MessageTypeToCoalition(string.format("%s is under attack by the USA", self:GetZoneName()), MESSAGE.Type.Information) + US_CC:MessageTypeToCoalition(string.format("%s is attacking Russia", self:GetZoneName()), MESSAGE.Type.Information) + end end end end @@ -380,8 +394,10 @@ function ZONE_CAPTURE_COALITION:OnEnterNeutral(From, Event, To) self:Smoke(SMOKECOLOR.Green) self:UndrawZone() self:DrawZone(-1, {0, 1, 0}, 2) -- Draw the zone on the map for 30 seconds, green color, and thickness 2 - US_CC:MessageTypeToCoalition(string.format("%s is now neutral", self:GetZoneName()), MESSAGE.Type.Information) - RU_CC:MessageTypeToCoalition(string.format("%s is now neutral", self:GetZoneName()), MESSAGE.Type.Information) + if ENABLE_CAPTURE_ZONE_MESSAGES then + US_CC:MessageTypeToCoalition(string.format("%s is now neutral", self:GetZoneName()), MESSAGE.Type.Information) + RU_CC:MessageTypeToCoalition(string.format("%s is now neutral", self:GetZoneName()), MESSAGE.Type.Information) + end end end @@ -897,10 +913,16 @@ local function checkWinCondition() SOUND:New("MotherRussia.ogg"):ToAll() return true end - return false - end - +end + +-- Function to toggle capture zone messages +local function ToggleCaptureZoneMessages() + ENABLE_CAPTURE_ZONE_MESSAGES = not ENABLE_CAPTURE_ZONE_MESSAGES + local status = ENABLE_CAPTURE_ZONE_MESSAGES and "enabled" or "disabled" + MESSAGE:New("Capture zone messages are now " .. status, 15):ToAll() +end + -- Timer function to periodically check the win condition local function monitorWinCondition() if not checkWinCondition() then @@ -918,8 +940,17 @@ SCHEDULER:New(nil, MonitorWarehouses, {}, 0, 120) -- Scheduler to assign tasks to groups periodically SCHEDULER:New(nil, AssignTasksToGroups, {}, 0, ASSIGN_TASKS_SCHED) -- Check every 600 seconds (10 minutes) - Adjust as needed --- Create a mission menu -local missionMenu = MENU_MISSION:New("Warehouse Monitoring") --- Add a menu item to run the MonitorWarehouses function + MENU_MISSION_COMMAND:New("Check Warehouse Status", missionMenu, MonitorWarehouses) + +-- Add a menu item to toggle capture zone messages under the sub menu +MENU_MISSION_COMMAND:New("Toggle Capture Zone Messages", missionMenu, ToggleCaptureZoneMessages) + + + + + + + + diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_InsurgentSandstorm.lua b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_InsurgentSandstorm.lua index dfc7854..84cbacc 100644 --- a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_InsurgentSandstorm.lua +++ b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_InsurgentSandstorm.lua @@ -95,6 +95,10 @@ local RED_AA_ZONES = { -- Schedule RED AA spawns using the calculated frequencies +-- Must allow enough room for an entire group to spawn. If the group only has 1 unit and you put 5, 5 will spawn, +-- but if the group has 5 units, and you put 5, only 1 will spawn..if you only put 4, it will never spawn. +-- If you put 10, 2 of them will spawn, etc etc. + RED_SA08 = SPAWN:New("RED EWR SA08") :InitRandomizeZones(RED_AA_ZONES) :InitLimit(5, 5) @@ -112,23 +116,18 @@ RED_SA11 = SPAWN:New("RED EWR AA SA112-1") :InitLimit(48, 48) :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 +-- There are 11 units in this group. Need space for each one in the numbers. So if I want 4 SA11s i'm just rounding up to 44 RED_SA06 = SPAWN:New("RED EWR SA6") :InitRandomizeZones(RED_AA_ZONES) - :InitLimit(48, 48) + :InitLimit(44, 44) :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_SA02 = SPAWN:New("RED EWR SA2") :InitRandomizeZones(RED_AA_ZONES) - :InitLimit(48, 48) + :InitLimit(90, 90) :SpawnScheduled(1, 0.5) --- Setup AI A2A Dispatchers ---Red - - ---Blue +-- Setup Air Dispatchers for RED and BLUE BLUEBorderZone = ZONE_POLYGON:New( "BLUE BORDER", GROUP:FindByName( "BLUE BORDER" ) ) BLUEA2ADispatcher = AI_A2A_GCICAP:New( { "BLUE EWR" }, { "FIGHTER SWEEP BLUE" }, { "BLUE BORDER" }, BLUEBorderZone ) BLUEA2ADispatcher:SetDefaultLandingAtEngineShutdown() @@ -171,10 +170,11 @@ BostDispatcher:SetDefaultFuelThreshold( 0.20 ) BostDispatcher:SetRefreshTimeInterval( 300 ) BostDispatcher:SetDefaultOverhead(BlueA2ADefaultOverhead) - - +-- 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 Blue_Drone = SPAWN:New("BLUE DRONE") - :InitLimit(1, 25) - :SpawnScheduled(600, 0.5) + :InitLimit(1, 99) + :SpawnScheduled(1, 0.5) + -- Create the main mission menu. +missionMenu = MENU_MISSION:New("Mission Menu") diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_Intel.lua b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_Intel.lua index 013c4dd..a28d90f 100644 --- a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_Intel.lua +++ b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_Intel.lua @@ -69,7 +69,7 @@ function Blue_IntelSoundSettingOn() Blue_Intel_Sound_Setting = true end -local INTELMenu = MENU_COALITION:New(coalition.side.BLUE,"INTEL HQ") +local INTELMenu = MENU_COALITION:New(coalition.side.BLUE,"INTEL HQ", missionMenu) MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Display Messages (ON)", INTELMenu, Blue_IntelMessageSettingOn) MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Display Messages (OFF)", INTELMenu, Blue_IntelMessageSettingOff) MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Disable Morse Code Sound", INTELMenu, Blue_IntelSoundSettingOff) @@ -135,8 +135,11 @@ function Red_IntelSoundSettingOn() Red_Intel_Sound_Setting = true end -local RedINTELMenu = MENU_COALITION:New(coalition.side.RED,"INTEL HQ") -MENU_COALITION_COMMAND:New(coalition.side.RED, "Dispaly Messages (ON)",RedINTELMenu,Red_IntelMessageSettingOn) -MENU_COALITION_COMMAND:New(coalition.side.RED, "Dispaly Messages (OFF)",RedINTELMenu,Red_IntelMessageSettingOff) +-- Create the "INTEL HQ" submenu under "Tanker & Other Settings" +local RedINTELMenu = MENU_COALITION:New(coalition.side.RED, "INTEL HQ", missionMenu) + +-- Add menu items to the "INTEL HQ" submenu +MENU_COALITION_COMMAND:New(coalition.side.RED, "Display Messages (ON)", RedINTELMenu, Red_IntelMessageSettingOn) +MENU_COALITION_COMMAND:New(coalition.side.RED, "Display Messages (OFF)", RedINTELMenu, Red_IntelMessageSettingOff) MENU_COALITION_COMMAND:New(coalition.side.RED, "Disable Morse Code Sound", RedINTELMenu, Red_IntelSoundSettingOff) -MENU_COALITION_COMMAND:New(coalition.side.RED, "Enable Morse Code Sound", RedINTELMenu, Red_IntelSoundSettingOn) +MENU_COALITION_COMMAND:New(coalition.side.RED, "Enable Morse Code Sound", RedINTELMenu, Red_IntelSoundSettingOn) \ No newline at end of file diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_Tanker.lua b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_Tanker.lua index 1d72917..c7fd286 100644 --- a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_Tanker.lua +++ b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_Tanker.lua @@ -45,7 +45,7 @@ function SpawnTankerMPRS() end -- Create a mission menu for requesting the tankers -MenuCoalitionBlue = MENU_COALITION:New(coalition.side.BLUE, "Request TANKER") +MenuCoalitionBlue = MENU_COALITION:New(coalition.side.BLUE, "Request TANKER", missionMenu) 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)