mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-08-15 10:47:21 +00:00
AWACS 0.1.27
* Added options for NoMissileCals and PlayerCapAssignment * Added documentation on options
This commit is contained in:
parent
feddda2948
commit
9f287d0d7f
@ -108,6 +108,8 @@ do
|
|||||||
-- @field #number ReassignmentPause Wait this many seconds before re-assignment of a player
|
-- @field #number ReassignmentPause Wait this many seconds before re-assignment of a player
|
||||||
-- @field #boolean NoGroupTags Set to true if you don't want group tags.
|
-- @field #boolean NoGroupTags Set to true if you don't want group tags.
|
||||||
-- @field #boolean SuppressScreenOutput Set to true to suppress all screen output.
|
-- @field #boolean SuppressScreenOutput Set to true to suppress all screen output.
|
||||||
|
-- @field #boolean NoMissileCalls Suppress missile callouts
|
||||||
|
-- @field #boolean PlayerCapAssigment Assign players to CAP tasks when they are logged on
|
||||||
-- @field #number GoogleTTSPadding
|
-- @field #number GoogleTTSPadding
|
||||||
-- @field #number WindowsTTSPadding
|
-- @field #number WindowsTTSPadding
|
||||||
-- @extends Core.Fsm#FSM
|
-- @extends Core.Fsm#FSM
|
||||||
@ -271,7 +273,7 @@ do
|
|||||||
-- Tac Distance = 45
|
-- Tac Distance = 45
|
||||||
-- Meld Distance = 35
|
-- Meld Distance = 35
|
||||||
-- Threat Distance = 25
|
-- Threat Distance = 25
|
||||||
-- Merge Distance = 3
|
-- Merge Distance = 5
|
||||||
--
|
--
|
||||||
-- ## 8 Bespoke Player CallSigns
|
-- ## 8 Bespoke Player CallSigns
|
||||||
--
|
--
|
||||||
@ -303,8 +305,11 @@ do
|
|||||||
-- * @{#AWACS.SetAICAPDetails}() : Set AI CAP details.
|
-- * @{#AWACS.SetAICAPDetails}() : Set AI CAP details.
|
||||||
-- * @{#AWACS.SetEscort}() : Set number of escorting planes for AWACS.
|
-- * @{#AWACS.SetEscort}() : Set number of escorting planes for AWACS.
|
||||||
-- * @{#AWACS.AddCAPAirWing}() : Add an additional @{Ops.Airwing#AIRWING} for CAP flights.
|
-- * @{#AWACS.AddCAPAirWing}() : Add an additional @{Ops.Airwing#AIRWING} for CAP flights.
|
||||||
|
-- * @{#AWACS.ZipLip}() : Do not show messages on screen, no extra calls for player guidance, use short callsigns, no group tags.
|
||||||
--
|
--
|
||||||
-- Further options (set before starting your AWACS instance, but after `:New()`)
|
-- ## 9.1 Single Options
|
||||||
|
--
|
||||||
|
-- Further single options (set before starting your AWACS instance, but after `:New()`)
|
||||||
--
|
--
|
||||||
-- testawacs.PlayerGuidance = true -- allow missile warning call-outs.
|
-- testawacs.PlayerGuidance = true -- allow missile warning call-outs.
|
||||||
-- testawacs.NoGroupTags = false -- use group tags like Alpha, Bravo .. etc in call outs.
|
-- testawacs.NoGroupTags = false -- use group tags like Alpha, Bravo .. etc in call outs.
|
||||||
@ -313,11 +318,34 @@ do
|
|||||||
-- testawacs.MenuStrict = true -- Players need to check-in to see the menu; check-in still require to use the menu.
|
-- testawacs.MenuStrict = true -- Players need to check-in to see the menu; check-in still require to use the menu.
|
||||||
-- testawacs.maxassigndistance = 100 -- Don't assign targets further out than this, in NM.
|
-- testawacs.maxassigndistance = 100 -- Don't assign targets further out than this, in NM.
|
||||||
-- testawacs.debug = false -- set to true to produce more log output.
|
-- testawacs.debug = false -- set to true to produce more log output.
|
||||||
|
-- testawacs.NoMissileCalls = true -- suppress missile callouts
|
||||||
|
-- testawacs.PlayerCapAssigment = true -- no task assignment for players
|
||||||
|
-- testawacs.invisible = false -- set AWACS to be invisible to hostiles
|
||||||
|
-- testawacs.immortal = false -- set AWACS to be immortal
|
||||||
-- -- By default, the radio queue is checked every 10 secs. This is altered by the calculated length of the sentence to speak
|
-- -- By default, the radio queue is checked every 10 secs. This is altered by the calculated length of the sentence to speak
|
||||||
-- -- over the radio. Google and Windows speech speed is different. Use the below to fine-tune the setup in case of overlapping
|
-- -- over the radio. Google and Windows speech speed is different. Use the below to fine-tune the setup in case of overlapping
|
||||||
-- -- messages or too long pauses
|
-- -- messages or too long pauses
|
||||||
-- testawacs.GoogleTTSPadding = 1
|
-- testawacs.GoogleTTSPadding = 1 -- seconds
|
||||||
-- testawacs.WindowsTTSPadding = 2.5
|
-- testawacs.WindowsTTSPadding = 2.5 -- seconds
|
||||||
|
--
|
||||||
|
-- ## 9.2 Bespoke random voices for AI CAP (Google TTS only)
|
||||||
|
--
|
||||||
|
-- Currently there are 10 voices defined which are randomly assigned to the AI CAP flights:
|
||||||
|
--
|
||||||
|
-- Defaults are:
|
||||||
|
--
|
||||||
|
-- testawacs.CapVoices = {
|
||||||
|
-- [1] = "de-DE-Wavenet-A",
|
||||||
|
-- [2] = "de-DE-Wavenet-B",
|
||||||
|
-- [3] = "fr-FR-Wavenet-A",
|
||||||
|
-- [4] = "fr-FR-Wavenet-B",
|
||||||
|
-- [5] = "en-GB-Wavenet-A",
|
||||||
|
-- [6] = "en-GB-Wavenet-B",
|
||||||
|
-- [7] = "en-GB-Wavenet-D",
|
||||||
|
-- [8] = "en-AU-Wavenet-B",
|
||||||
|
-- [9] = "en-US-Wavenet-J",
|
||||||
|
-- [10] = "en-US-Wavenet-H",
|
||||||
|
-- }
|
||||||
--
|
--
|
||||||
-- ## 10 Discussion
|
-- ## 10 Discussion
|
||||||
--
|
--
|
||||||
@ -329,7 +357,7 @@ do
|
|||||||
-- @field #AWACS
|
-- @field #AWACS
|
||||||
AWACS = {
|
AWACS = {
|
||||||
ClassName = "AWACS", -- #string
|
ClassName = "AWACS", -- #string
|
||||||
version = "beta 0.1.26", -- #string
|
version = "beta 0.1.27", -- #string
|
||||||
lid = "", -- #string
|
lid = "", -- #string
|
||||||
coalition = coalition.side.BLUE, -- #number
|
coalition = coalition.side.BLUE, -- #number
|
||||||
coalitiontxt = "blue", -- #string
|
coalitiontxt = "blue", -- #string
|
||||||
@ -405,8 +433,10 @@ AWACS = {
|
|||||||
ReassignmentPause = 180,
|
ReassignmentPause = 180,
|
||||||
NoGroupTags = false,
|
NoGroupTags = false,
|
||||||
SuppressScreenOutput = false,
|
SuppressScreenOutput = false,
|
||||||
|
NoMissileCalls = true,
|
||||||
GoogleTTSPadding = 1,
|
GoogleTTSPadding = 1,
|
||||||
WindowsTTSPadding = 2.5,
|
WindowsTTSPadding = 2.5,
|
||||||
|
PlayerCapAssigment = true,
|
||||||
}
|
}
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -667,10 +697,10 @@ AWACS.TaskStatus = {
|
|||||||
--@field #boolean FromAI
|
--@field #boolean FromAI
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
-- TODO-List 0.1.26
|
-- TODO-List 0.1.27
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
--
|
--
|
||||||
-- DEBUG - WIP - Player tasking, VID
|
-- DONE - WIP - Player tasking, VID
|
||||||
-- TODO - Localization (sensible?)
|
-- TODO - Localization (sensible?)
|
||||||
-- TODO - (LOW) LotATC
|
-- TODO - (LOW) LotATC
|
||||||
-- TODO - SW Optimization
|
-- TODO - SW Optimization
|
||||||
@ -866,6 +896,8 @@ function AWACS:New(Name,AirWing,Coalition,AirbaseName,AwacsOrbit,OpsZone,Station
|
|||||||
self.DeclareRadius = 5 -- NM
|
self.DeclareRadius = 5 -- NM
|
||||||
self.MenuStrict = true
|
self.MenuStrict = true
|
||||||
self.maxassigndistance = 100 --nm
|
self.maxassigndistance = 100 --nm
|
||||||
|
self.NoMissileCalls = true
|
||||||
|
self.PlayerCapAssigment = true
|
||||||
|
|
||||||
-- managed groups
|
-- managed groups
|
||||||
self.ManagedGrps = {} -- #table of #AWACS.ManagedGroup entries
|
self.ManagedGrps = {} -- #table of #AWACS.ManagedGroup entries
|
||||||
@ -1169,6 +1201,7 @@ function AWACS:ZipLip()
|
|||||||
self.PlayerGuidance = false
|
self.PlayerGuidance = false
|
||||||
self.callsignshort = true
|
self.callsignshort = true
|
||||||
self.NoGroupTags = true
|
self.NoGroupTags = true
|
||||||
|
self.NoMissileCalls = true
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -1247,7 +1280,7 @@ function AWACS:_EventHandler(EventData)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if Event.id == EVENTS.Shot and self.PlayerGuidance then
|
if Event.id == EVENTS.Shot and self.PlayerGuidance and not self.NoMissileCalls then
|
||||||
if Event.IniCoalition ~= self.coalition then
|
if Event.IniCoalition ~= self.coalition then
|
||||||
self:T("Shot from: " .. Event.IniGroupName)
|
self:T("Shot from: " .. Event.IniGroupName)
|
||||||
--self:T(UTILS.OneLineSerialize(Event))
|
--self:T(UTILS.OneLineSerialize(Event))
|
||||||
@ -5425,7 +5458,7 @@ function AWACS:onafterStatus(From, Event, To)
|
|||||||
local AI, Humans = self:_GetIdlePilots()
|
local AI, Humans = self:_GetIdlePilots()
|
||||||
-- assign Pilot if there are targets and available Pilots, prefer Humans to AI
|
-- assign Pilot if there are targets and available Pilots, prefer Humans to AI
|
||||||
-- TODO - Implemented AI First, Humans laters - need to work out how to loop the targets to assign a pilot
|
-- TODO - Implemented AI First, Humans laters - need to work out how to loop the targets to assign a pilot
|
||||||
if outcome and #Humans > 0 then
|
if outcome and #Humans > 0 and self.PlayerCapAssigment then
|
||||||
-- add a task for AI
|
-- add a task for AI
|
||||||
self:_AssignPilotToTarget(Humans,targets)
|
self:_AssignPilotToTarget(Humans,targets)
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user