diff --git a/Moose Development/Moose/AI/AI_A2A_Dispatcher.lua b/Moose Development/Moose/AI/AI_A2A_Dispatcher.lua index 13b92ec50..a74d02d62 100644 --- a/Moose Development/Moose/AI/AI_A2A_Dispatcher.lua +++ b/Moose Development/Moose/AI/AI_A2A_Dispatcher.lua @@ -427,7 +427,7 @@ do -- AI_A2A_DISPATCHER -- * @{#AI_A2A_DISPATCHER.SetSquadronTakeoffFromParkingHot}() will spawn new aircraft in with running engines at a parking spot at the airfield. -- * @{#AI_A2A_DISPATCHER.SetSquadronTakeoffFromRunway}() will spawn new aircraft at the runway at the airfield. -- - -- **The default landing method is to spawn new aircraft directly in the air.** + -- **The default take-off method is to spawn new aircraft directly in the air.** -- -- Use these methods to fine-tune for specific airfields that are known to create bottlenecks, or have reduced airbase efficiency. -- The more and the longer aircraft need to taxi at an airfield, the more risk there is that: diff --git a/Moose Development/Moose/Core/Beacon.lua b/Moose Development/Moose/Core/Beacon.lua index 3f255e0e0..eee6503df 100644 --- a/Moose Development/Moose/Core/Beacon.lua +++ b/Moose Development/Moose/Core/Beacon.lua @@ -245,6 +245,32 @@ function BEACON:ActivateICLS(Channel, Callsign, Duration) return self end +--- Activates a LINK4 BEACON. The unit the BEACON is attached to should be an aircraft carrier supporting this system. +-- @param #BEACON self +-- @param #number Frequency LINK4 FRequency in MHz, eg 336. +-- @param #string Morse The ID that is going to be coded in Morse and broadcasted by the beacon. +-- @param #number Duration How long will the beacon last in seconds. Omit for forever. +-- @return #BEACON self +function BEACON:ActivateLink4(Frequency, Morse, Duration) + self:F({Frequency=Frequency, Morse=Morse, Duration=Duration}) + + -- Attached unit. + local UnitID=self.Positionable:GetID() + + -- Debug + self:T2({"LINK4 BEACON started!"}) + + -- Start beacon. + self.Positionable:CommandActivateLink4(Frequency,UnitID,Morse) + + -- Stop sheduler + if Duration then -- Schedule the stop of the BEACON if asked by the MD + self.Positionable:CommandDeactivateLink4(Duration) + end + + return self +end + --- DEPRECATED: Please use @{BEACON:ActivateTACAN}() instead. -- Activates a TACAN BEACON on an Aircraft. -- @param #BEACON self diff --git a/Moose Development/Moose/Ops/Awacs.lua b/Moose Development/Moose/Ops/Awacs.lua index 93a29dcca..9b9c14acb 100644 --- a/Moose Development/Moose/Ops/Awacs.lua +++ b/Moose Development/Moose/Ops/Awacs.lua @@ -252,7 +252,7 @@ do -- testawacs:SetAwacsDetails(CALLSIGN.AWACS.Wizard) -- -- And start as GCI using a group name "Blue EWR" as main EWR station -- testawacs:SetAsGCI(GROUP:FindByName("Blue EWR"),2) --- -- Set Custom Callsigns for use with TTS +-- -- Set Custom CAP Flight Callsigns for use with TTS -- testawacs:SetCustomCallsigns({ -- Devil = 'Bengal', -- Snake = 'Winder', @@ -866,7 +866,7 @@ function AWACS:New(Name,AirWing,Coalition,AirbaseName,AwacsOrbit,OpsZone,Station self.OrbitZone = ZONE:New(AwacsOrbit) -- Core.Zone#ZONE end self.BorderZone = nil - self.CallSign = CALLSIGN.AWACS.Darkstar -- #number + self.CallSign = CALLSIGN.AWACS.Magic -- #number self.CallSignNo = 1 -- #number self.NoHelos = true self.AIRequested = 0 @@ -1276,10 +1276,19 @@ function AWACS:ZipLip() return self end ---- [User] Replace ME callsigns with user-defined callsigns for use with TTS and on-screen messaging +--- [User] For CAP flights: Replace ME callsigns with user-defined callsigns for use with TTS and on-screen messaging -- @param #AWACS self --- @param #table table with DCS callsigns as keys and replacements as values +-- @param #table translationTable with DCS callsigns as keys and replacements as values -- @return #AWACS self +-- @usage +-- -- Set Custom CAP Flight Callsigns for use with TTS +-- testawacs:SetCustomCallsigns({ +-- Devil = 'Bengal', +-- Snake = 'Winder', +-- Colt = 'Camelot', +-- Enfield = 'Victory', +-- Uzi = 'Evil Eye' +-- }) function AWACS:SetCustomCallsigns(translationTable) self.callsignTranslations = translationTable end @@ -1615,6 +1624,26 @@ function AWACS:SetAwacsDetails(CallSign,CallSignNo,Angels,Speed,Heading,Leg) return self end +--- [User] Set AWACS custom callsigns for TTS +-- @param #AWACS self +-- @param #table CallsignTable Table of custom callsigns to use with TTS +-- @return #AWACS self +-- @usage +-- You can overwrite the standard AWACS callsign for TTS usage with your own naming, e.g. like so: +-- testawacs:SetCustomAWACSCallSign({ +-- [1]="Overlord", -- Overlord +-- [2]="Bookshelf", -- Magic +-- [3]="Wizard", -- Wizard +-- [4]="Focus", -- Focus +-- [5]="Darkstar", -- Darkstar +-- }) +-- The default callsign used in AWACS is "Magic". With the above change, the AWACS will call itself "Bookshelf" over TTS instead. +function AWACS:SetCustomAWACSCallSign(CallsignTable) + self:T(self.lid.."SetCustomAWACSCallSign") + self.CallSignClear = CallsignTable + return self +end + --- [User] Add a radar GROUP object to the INTEL detection SET_GROUP -- @param #AWACS self -- @param Wrapper.Group#GROUP Group The GROUP to be added. Can be passed as SET_GROUP. diff --git a/Moose Development/Moose/Wrapper/Controllable.lua b/Moose Development/Moose/Wrapper/Controllable.lua index 9cf3fc341..0fc60f6cd 100644 --- a/Moose Development/Moose/Wrapper/Controllable.lua +++ b/Moose Development/Moose/Wrapper/Controllable.lua @@ -681,7 +681,7 @@ end --- Activate ICLS system of the CONTROLLABLE. The controllable should be an aircraft carrier! -- @param #CONTROLLABLE self -- @param #number Channel ICLS channel. --- @param #number UnitID The ID of the unit the ICLS system is attached to. Useful if more units are in one group. +-- @param #number UnitID The DCS UNIT ID of the unit the ICLS system is attached to. Useful if more units are in one group. -- @param #string Callsign Morse code identification callsign. -- @param #number Delay (Optional) Delay in seconds before the ICLS is deactivated. -- @return #CONTROLLABLE self @@ -707,6 +707,33 @@ function CONTROLLABLE:CommandActivateICLS(Channel, UnitID, Callsign, Delay) return self end +--- Activate LINK4 system of the CONTROLLABLE. The controllable should be an aircraft carrier! +-- @param #CONTROLLABLE self +-- @param #number Frequency Link4 Frequency in MHz, e.g. 336 +-- @param #number UnitID The DCS UNIT ID of the unit the LINK4 system is attached to. Useful if more units are in one group. +-- @param #string Callsign Morse code identification callsign. +-- @param #number Delay (Optional) Delay in seconds before the LINK4 is deactivated. +-- @return #CONTROLLABLE self +function CONTROLLABLE:CommandActivateLink4(Frequency, UnitID, Callsign, Delay) + + -- Command to activate Link4 system. + local CommandActivateLink4= { + id = "ActivateLink4", + params= { + ["frequency "] = Frequency*1000, + ["unitId"] = UnitID, + ["name"] = Callsign, + } + } + + if Delay and Delay>0 then + SCHEDULER:New(nil, self.CommandActivateLink4, {self}, Delay) + else + self:SetCommand(CommandActivateLink4) + end + + return self +end --- Deactivate the active beacon of the CONTROLLABLE. -- @param #CONTROLLABLE self @@ -718,7 +745,7 @@ function CONTROLLABLE:CommandDeactivateBeacon(Delay) local CommandDeactivateBeacon={id='DeactivateBeacon', params={}} if Delay and Delay>0 then - SCHEDULER:New(nil, self.CommandActivateBeacon, {self}, Delay) + SCHEDULER:New(nil, self.CommandDeactivateBeacon, {self}, Delay) else self:SetCommand(CommandDeactivateBeacon) end @@ -726,6 +753,24 @@ function CONTROLLABLE:CommandDeactivateBeacon(Delay) return self end +--- Deactivate the active Link4 of the CONTROLLABLE. +-- @param #CONTROLLABLE self +-- @param #number Delay (Optional) Delay in seconds before the Link4 is deactivated. +-- @return #CONTROLLABLE self +function CONTROLLABLE:CommandDeactivateLink4(Delay) + + -- Command to deactivate + local CommandDeactivateLink4={id='DeactivateLink4', params={}} + + if Delay and Delay>0 then + SCHEDULER:New(nil, self.CommandDeactivateLink4, {self}, Delay) + else + self:SetCommand(CommandDeactivateLink4) + end + + return self +end + --- Deactivate the ICLS of the CONTROLLABLE. -- @param #CONTROLLABLE self -- @param #number Delay (Optional) Delay in seconds before the ICLS is deactivated.