Added "engage bandits" wingman command

This commit is contained in:
Ambroise Garel 2025-07-23 23:22:57 +02:00
parent d259f8f94c
commit d05f460f1f
2 changed files with 43 additions and 1 deletions

View File

@ -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.",

View File

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