diff --git a/Script/Library/RadioMessages.lua b/Script/Library/RadioMessages.lua index 7065d22..9f3df69 100644 --- a/Script/Library/RadioMessages.lua +++ b/Script/Library/RadioMessages.lua @@ -70,6 +70,20 @@ Library.radioMessages = { pilotWarningMANPADS = { "MANPADS launch! Flare, flare, flare!", "Flight, MANPADS in the air. Dump flares, now!", "Coming from the ground, MANPADS hot!", "Go defensive, MANPADS off your nose! Flare, flare!", "MANPADS just came up from the deck, break hard and pop everything!" }, pilotWarningSAMLaunch = { "Spike! SAM just launched, break!", "SAM up! Defensive now!", "Launch! SAM, coming fast, pump chaff, go cold!", "SAM in the air, break hard!", "SAM fired, visual smoke! Extend, extend!" }, + pilotWingmanEngageBandits = { + "Copy, engaging now.", + "Tally one, pressing.", + "Roger, comitting.", + "Confirm, going after him.", + "Affirm, moving in on bandits." + }, + pilotWingmanEngageNoTarget = { + "Negative tally, unable engage.", + "Cannot comply, blind on target.", + "No joy on targets, cannot proceed.", + "Negative contact, unable to commit.", + "That's a no, not seeing any targets." + }, pilotWingmanOrbit = { "Wilco, holding here.", "Copy, orbiting now.", @@ -201,6 +215,13 @@ Library.radioMessages = { "Command, pass coordinates for objective $1.", "Command, confirm grid on objective $1." }, + playerFlightEngageBandits = { + "Flight, engage bandits.", + "Flight, you're cleared hot bandits.", + "Flight, commit on bandits when ready.", + "Flight, engage bandits, your discretion.", + "Flight, you're free to engage bandits." + }, playerFlightOrbit = { "Flight, orbit my position.", "Flight, set up an orbit on me.", @@ -208,7 +229,7 @@ Library.radioMessages = { "Flight, anchor on my current pos.", "Flight, orbit overhead" }, - playerFlightRejoin = + playerFlightRejoin = { "Flight, rejoin my side", "Flight, push it up, rejoin formation.", diff --git a/Script/The Universal Mission/SupportWingmen.lua b/Script/The Universal Mission/SupportWingmen.lua index 54d24aa..2d791f2 100644 --- a/Script/The Universal Mission/SupportWingmen.lua +++ b/Script/The Universal Mission/SupportWingmen.lua @@ -9,6 +9,7 @@ do TUM.supportWingmen.orderID = { ORBIT = 1, REJOIN = 2, + ENGAGE_BANDITS = 3, } local wingmenGroupID = nil @@ -21,6 +22,8 @@ do TUM.radio.playForAll("playerFlightOrbit", nil, player:getCallsign(), false) elseif orderID == TUM.supportWingmen.orderID.REJOIN then TUM.radio.playForAll("playerFlightRejoin", nil, player:getCallsign(), false) + elseif orderID == TUM.supportWingmen.orderID.ENGAGE_BANDITS then + TUM.radio.playForAll("playerFlightEngageBandits", nil, player:getCallsign(), false) end if not wingmenGroupID then return end @@ -55,6 +58,22 @@ do } } TUM.radio.playForAll("pilotWingmanRejoin", nil, wingmanCallsign, true) + elseif orderID == TUM.supportWingmen.orderID.ENGAGE_BANDITS then + local banditGroups = coalition.getGroups(TUM.settings.getEnemyCoalition(), Group.Category.AIRPLANE) + if not banditGroups or #banditGroups == 0 then + TUM.radio.playForAll("pilotWingmanEngageNoTarget", nil, wingmanCallsign, true) + return + end + -- TODO: sort by nearest + local targetGroup = banditGroups[1] + + taskTable = { + id = "AttackGroup", + params = { + groupId = DCSEx.dcs.getObjectIDAsNumber(targetGroup), + } + } + TUM.radio.playForAll("pilotWingmanEngageBandits", nil, wingmanCallsign, true) end if not taskTable then return end @@ -109,6 +128,8 @@ do if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return end -- No wingmen in multiplayer local rootPath = missionCommands.addSubMenu("Flight") + + missionCommands.addCommand("Engage bandits", rootPath, doWingmenOrder, TUM.supportWingmen.orderID.ENGAGE_BANDITS) missionCommands.addCommand("Orbit", rootPath, doWingmenOrder, TUM.supportWingmen.orderID.ORBIT) missionCommands.addCommand("Rejoin", rootPath, doWingmenOrder, TUM.supportWingmen.orderID.REJOIN) end