mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Tuning A2A AI dispatcher to work with new sound speech system.
This commit is contained in:
parent
b309c25619
commit
8c54b7298d
@ -3100,31 +3100,31 @@ do -- AI_A2A_DISPATCHER
|
|||||||
|
|
||||||
self:SetDefenderTask( SquadronName, DefenderCAP, "CAP", Fsm )
|
self:SetDefenderTask( SquadronName, DefenderCAP, "CAP", Fsm )
|
||||||
|
|
||||||
function Fsm:onafterTakeoff( Defender, From, Event, To )
|
function Fsm:onafterTakeoff( DefenderGroup, From, Event, To )
|
||||||
self:F({"CAP Birth", Defender:GetName()})
|
self:F({"CAP Birth", DefenderGroup:GetName()})
|
||||||
--self:GetParent(self).onafterBirth( self, Defender, From, Event, To )
|
--self:GetParent(self).onafterBirth( self, Defender, From, Event, To )
|
||||||
|
|
||||||
local DefenderName = Defender:GetCallsign()
|
local DefenderName = DefenderGroup:GetCallsign()
|
||||||
local Dispatcher = Fsm:GetDispatcher() -- #AI_A2A_DISPATCHER
|
local Dispatcher = Fsm:GetDispatcher() -- #AI_A2A_DISPATCHER
|
||||||
local Squadron = Dispatcher:GetSquadronFromDefender( Defender )
|
local Squadron = Dispatcher:GetSquadronFromDefender( DefenderGroup )
|
||||||
|
|
||||||
if Squadron then
|
if Squadron then
|
||||||
Dispatcher:MessageToPlayers( "Squadron " .. Squadron.Name .. ", " .. DefenderName .. " airborne. Starting Patrol." )
|
Dispatcher:MessageToPlayers( DefenderName .. " Wheels up.", DefenderGroup )
|
||||||
Fsm:__Patrol( 2 ) -- Start Patrolling
|
Fsm:__Patrol( 2 ) -- Start Patrolling
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function Fsm:onafterRTB( Defender, From, Event, To )
|
function Fsm:onafterRTB( DefenderGroup, From, Event, To )
|
||||||
|
|
||||||
self:F({"CAP RTB", Defender:GetName()})
|
self:F({"CAP RTB", DefenderGroup:GetName()})
|
||||||
|
|
||||||
self:GetParent(self).onafterRTB( self, Defender, From, Event, To )
|
self:GetParent(self).onafterRTB( self, DefenderGroup, From, Event, To )
|
||||||
|
|
||||||
local DefenderName = Defender:GetCallsign()
|
local DefenderName = DefenderGroup:GetCallsign()
|
||||||
local Dispatcher = self:GetDispatcher() -- #AI_A2A_DISPATCHER
|
local Dispatcher = self:GetDispatcher() -- #AI_A2A_DISPATCHER
|
||||||
local Squadron = Dispatcher:GetSquadronFromDefender( Defender )
|
local Squadron = Dispatcher:GetSquadronFromDefender( DefenderGroup )
|
||||||
Dispatcher:MessageToPlayers( "Squadron " .. Squadron.Name .. ", " .. DefenderName .. " returning." )
|
Dispatcher:MessageToPlayers( DefenderName .. " returning to base.", DefenderGroup )
|
||||||
Dispatcher:ClearDefenderTaskTarget( Defender )
|
Dispatcher:ClearDefenderTaskTarget( DefenderGroup )
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #AI_A2A_DISPATCHER self
|
--- @param #AI_A2A_DISPATCHER self
|
||||||
@ -3295,30 +3295,30 @@ do -- AI_A2A_DISPATCHER
|
|||||||
self:SetDefenderTask( ClosestDefenderSquadronName, DefenderGCI, "GCI", Fsm, AttackerDetection )
|
self:SetDefenderTask( ClosestDefenderSquadronName, DefenderGCI, "GCI", Fsm, AttackerDetection )
|
||||||
|
|
||||||
|
|
||||||
function Fsm:onafterTakeoff( Defender, From, Event, To )
|
function Fsm:onafterTakeoff( DefenderGroup, From, Event, To )
|
||||||
self:F({"GCI Birth", Defender:GetName()})
|
self:F({"GCI Birth", DefenderGroup:GetName()})
|
||||||
--self:GetParent(self).onafterBirth( self, Defender, From, Event, To )
|
--self:GetParent(self).onafterBirth( self, Defender, From, Event, To )
|
||||||
|
|
||||||
local DefenderName = Defender:GetCallsign()
|
local DefenderName = DefenderGroup:GetCallsign()
|
||||||
local Dispatcher = Fsm:GetDispatcher() -- #AI_A2A_DISPATCHER
|
local Dispatcher = Fsm:GetDispatcher() -- #AI_A2A_DISPATCHER
|
||||||
local Squadron = Dispatcher:GetSquadronFromDefender( Defender )
|
local Squadron = Dispatcher:GetSquadronFromDefender( DefenderGroup )
|
||||||
local DefenderTarget = Dispatcher:GetDefenderTaskTarget( Defender )
|
local DefenderTarget = Dispatcher:GetDefenderTaskTarget( DefenderGroup )
|
||||||
|
|
||||||
if DefenderTarget then
|
if DefenderTarget then
|
||||||
Dispatcher:MessageToPlayers( "Squadron " .. Squadron.Name .. ", " .. DefenderName .. " airborne. Engaging target!" )
|
Dispatcher:MessageToPlayers( DefenderName .. " wheels up.", DefenderGroup )
|
||||||
Fsm:__Engage( 2, DefenderTarget.Set ) -- Engage on the TargetSetUnit
|
Fsm:__Engage( 2, DefenderTarget.Set ) -- Engage on the TargetSetUnit
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function Fsm:onafterRTB( Defender, From, Event, To )
|
function Fsm:onafterRTB( DefenderGroup, From, Event, To )
|
||||||
self:F({"GCI RTB", Defender:GetName()})
|
self:F({"GCI RTB", DefenderGroup:GetName()})
|
||||||
self:GetParent(self).onafterRTB( self, Defender, From, Event, To )
|
self:GetParent(self).onafterRTB( self, DefenderGroup, From, Event, To )
|
||||||
|
|
||||||
local DefenderName = Defender:GetCallsign()
|
local DefenderName = DefenderGroup:GetCallsign()
|
||||||
local Dispatcher = self:GetDispatcher() -- #AI_A2A_DISPATCHER
|
local Dispatcher = self:GetDispatcher() -- #AI_A2A_DISPATCHER
|
||||||
local Squadron = Dispatcher:GetSquadronFromDefender( Defender )
|
local Squadron = Dispatcher:GetSquadronFromDefender( DefenderGroup )
|
||||||
Dispatcher:MessageToPlayers( "Squadron " .. Squadron.Name .. ", " .. DefenderName .. " returning." )
|
Dispatcher:MessageToPlayers( DefenderName .. " returning to base.", DefenderGroup )
|
||||||
Dispatcher:ClearDefenderTaskTarget( Defender )
|
Dispatcher:ClearDefenderTaskTarget( DefenderGroup )
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #AI_A2A_DISPATCHER self
|
--- @param #AI_A2A_DISPATCHER self
|
||||||
@ -3335,24 +3335,24 @@ do -- AI_A2A_DISPATCHER
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- @param #AI_A2A_DISPATCHER self
|
--- @param #AI_A2A_DISPATCHER self
|
||||||
function Fsm:onafterHome( Defender, From, Event, To, Action )
|
function Fsm:onafterHome( DefenderGroup, From, Event, To, Action )
|
||||||
self:F({"GCI Home", Defender:GetName()})
|
self:F({"GCI Home", DefenderGroup:GetName()})
|
||||||
self:GetParent(self).onafterHome( self, Defender, From, Event, To )
|
self:GetParent(self).onafterHome( self, DefenderGroup, From, Event, To )
|
||||||
|
|
||||||
local DefenderName = Defender:GetCallsign()
|
local DefenderName = DefenderGroup:GetCallsign()
|
||||||
local Dispatcher = self:GetDispatcher() -- #AI_A2A_DISPATCHER
|
local Dispatcher = self:GetDispatcher() -- #AI_A2A_DISPATCHER
|
||||||
local Squadron = Dispatcher:GetSquadronFromDefender( Defender )
|
local Squadron = Dispatcher:GetSquadronFromDefender( DefenderGroup )
|
||||||
|
|
||||||
Dispatcher:MessageToPlayers( "Squadron " .. Squadron.Name .. ", " .. DefenderName .. " landing." )
|
Dispatcher:MessageToPlayers( "Squadron " .. Squadron.Name .. ", " .. DefenderName .. " landing at base.", DefenderGroup )
|
||||||
|
|
||||||
if Action and Action == "Destroy" then
|
if Action and Action == "Destroy" then
|
||||||
Dispatcher:RemoveDefenderFromSquadron( Squadron, Defender )
|
Dispatcher:RemoveDefenderFromSquadron( Squadron, DefenderGroup )
|
||||||
Defender:Destroy()
|
DefenderGroup:Destroy()
|
||||||
end
|
end
|
||||||
|
|
||||||
if Dispatcher:GetSquadronLanding( Squadron.Name ) == AI_A2A_DISPATCHER.Landing.NearAirbase then
|
if Dispatcher:GetSquadronLanding( Squadron.Name ) == AI_A2A_DISPATCHER.Landing.NearAirbase then
|
||||||
Dispatcher:RemoveDefenderFromSquadron( Squadron, Defender )
|
Dispatcher:RemoveDefenderFromSquadron( Squadron, DefenderGroup )
|
||||||
Defender:Destroy()
|
DefenderGroup:Destroy()
|
||||||
Dispatcher:ParkDefender( Squadron )
|
Dispatcher:ParkDefender( Squadron )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -312,11 +312,13 @@ do -- DETECTION MANAGER
|
|||||||
-- Here we handle the transmission of the voice over.
|
-- Here we handle the transmission of the voice over.
|
||||||
-- If for a certain reason the Defender does not exist, we use the coordinate of the airbase to send the message from.
|
-- If for a certain reason the Defender does not exist, we use the coordinate of the airbase to send the message from.
|
||||||
local RadioQueue = self.RadioQueue -- Core.RadioQueue#RADIOQUEUE
|
local RadioQueue = self.RadioQueue -- Core.RadioQueue#RADIOQUEUE
|
||||||
|
if RadioQueue then
|
||||||
local DefenderUnit = DefenderGroup:GetUnit(1)
|
local DefenderUnit = DefenderGroup:GetUnit(1)
|
||||||
if DefenderUnit and DefenderUnit:IsAlive() then
|
if DefenderUnit and DefenderUnit:IsAlive() then
|
||||||
RadioQueue:SetSenderUnitName( DefenderUnit:GetName() )
|
RadioQueue:SetSenderUnitName( DefenderUnit:GetName() )
|
||||||
end
|
end
|
||||||
RadioQueue:Speak( Message )
|
RadioQueue:Speak( Message )
|
||||||
|
end
|
||||||
|
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user