mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-08-15 10:47:21 +00:00
CAP
AI_A2A_PATROL - Added CAP coordinates option. AI_A2A_DISPATCHER - Added CAP coordinates option.
This commit is contained in:
parent
6973e8c028
commit
183c05bcf5
@ -1902,12 +1902,14 @@ do -- AI_A2A_DISPATCHER
|
|||||||
--- Set race track pattern as default when any squadron is performing CAP.
|
--- Set race track pattern as default when any squadron is performing CAP.
|
||||||
-- @param #AI_A2A_DISPATCHER self
|
-- @param #AI_A2A_DISPATCHER self
|
||||||
-- @param #number LeglengthMin Min length of the race track leg in meters. Default 10,000 m.
|
-- @param #number LeglengthMin Min length of the race track leg in meters. Default 10,000 m.
|
||||||
-- @param #number HeadingMin Min heading of the race track in degrees. Default 0 deg, i.e. from South to North.
|
-- @param #number LeglengthMax Max length of the race track leg in meters. Default 15,000 m.
|
||||||
-- @param #number HeadingMax Max heading of the race track in degrees. Default 180 deg, i.e. from North to South.
|
-- @param #number HeadingMin Min heading of the race track in degrees. Default 0 deg, i.e. counter clockwise from South to North.
|
||||||
|
-- @param #number HeadingMax Max heading of the race track in degrees. Default 180 deg, i.e. counter clockwise from North to South.
|
||||||
-- @param #number DurationMin (Optional) Min duration in seconds before switching the orbit position. Default is keep same orbit until RTB or engage.
|
-- @param #number DurationMin (Optional) Min duration in seconds before switching the orbit position. Default is keep same orbit until RTB or engage.
|
||||||
-- @param #number DurationMax (Optional) Max duration in seconds before switching the orbit position. Default is keep same orbit until RTB or engage.
|
-- @param #number DurationMax (Optional) Max duration in seconds before switching the orbit position. Default is keep same orbit until RTB or engage.
|
||||||
|
-- @param #table CapCoordinates Table of coordinates of first race track point. Second point is determined by leg length and heading.
|
||||||
-- @return #AI_A2A_DISPATCHER self
|
-- @return #AI_A2A_DISPATCHER self
|
||||||
function AI_A2A_DISPATCHER:SetDefaultCapRacetrack(LeglengthMin, LeglengthMax, HeadingMin, HeadingMax, DurationMin, DurationMax)
|
function AI_A2A_DISPATCHER:SetDefaultCapRacetrack(LeglengthMin, LeglengthMax, HeadingMin, HeadingMax, DurationMin, DurationMax, CapCoordinates)
|
||||||
|
|
||||||
self.DefenderDefault.Racetrack=true
|
self.DefenderDefault.Racetrack=true
|
||||||
self.DefenderDefault.RacetrackLengthMin=LeglengthMin
|
self.DefenderDefault.RacetrackLengthMin=LeglengthMin
|
||||||
@ -1916,6 +1918,7 @@ do -- AI_A2A_DISPATCHER
|
|||||||
self.DefenderDefault.RacetrackHeadingMax=HeadingMax
|
self.DefenderDefault.RacetrackHeadingMax=HeadingMax
|
||||||
self.DefenderDefault.RacetrackDurationMin=DurationMin
|
self.DefenderDefault.RacetrackDurationMin=DurationMin
|
||||||
self.DefenderDefault.RacetrackDurationMax=DurationMax
|
self.DefenderDefault.RacetrackDurationMax=DurationMax
|
||||||
|
self.DefenderDefault.RacetrackCoordinates=CapCoordinates
|
||||||
|
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
@ -1924,12 +1927,14 @@ do -- AI_A2A_DISPATCHER
|
|||||||
-- @param #AI_A2A_DISPATCHER self
|
-- @param #AI_A2A_DISPATCHER self
|
||||||
-- @param #string SquadronName Name of the squadron.
|
-- @param #string SquadronName Name of the squadron.
|
||||||
-- @param #number LeglengthMin Min length of the race track leg in meters. Default 10,000 m.
|
-- @param #number LeglengthMin Min length of the race track leg in meters. Default 10,000 m.
|
||||||
|
-- @param #number LeglengthMax Max length of the race track leg in meters. Default 15,000 m.
|
||||||
-- @param #number HeadingMin Min heading of the race track in degrees. Default 0 deg, i.e. from South to North.
|
-- @param #number HeadingMin Min heading of the race track in degrees. Default 0 deg, i.e. from South to North.
|
||||||
-- @param #number HeadingMax Max heading of the race track in degrees. Default 180 deg, i.e. from North to South.
|
-- @param #number HeadingMax Max heading of the race track in degrees. Default 180 deg, i.e. from North to South.
|
||||||
-- @param #number DurationMin (Optional) Min duration in seconds before switching the orbit position. Default is keep same orbit until RTB or engage.
|
-- @param #number DurationMin (Optional) Min duration in seconds before switching the orbit position. Default is keep same orbit until RTB or engage.
|
||||||
-- @param #number DurationMax (Optional) Max duration in seconds before switching the orbit position. Default is keep same orbit until RTB or engage.
|
-- @param #number DurationMax (Optional) Max duration in seconds before switching the orbit position. Default is keep same orbit until RTB or engage.
|
||||||
|
-- @param #table CapCoordinates Table of coordinates of first race track point. Second point is determined by leg length and heading.
|
||||||
-- @return #AI_A2A_DISPATCHER self
|
-- @return #AI_A2A_DISPATCHER self
|
||||||
function AI_A2A_DISPATCHER:SetSquadronCapRacetrack(SquadronName, LeglengthMin, LeglengthMax, HeadingMin, HeadingMax, DurationMin, DurationMax)
|
function AI_A2A_DISPATCHER:SetSquadronCapRacetrack(SquadronName, LeglengthMin, LeglengthMax, HeadingMin, HeadingMax, DurationMin, DurationMax, CapCoordinates)
|
||||||
|
|
||||||
local DefenderSquadron = self:GetSquadron( SquadronName )
|
local DefenderSquadron = self:GetSquadron( SquadronName )
|
||||||
|
|
||||||
@ -1941,6 +1946,7 @@ do -- AI_A2A_DISPATCHER
|
|||||||
DefenderSquadron.RacetrackHeadingMax=HeadingMax
|
DefenderSquadron.RacetrackHeadingMax=HeadingMax
|
||||||
DefenderSquadron.RacetrackDurationMin=DurationMin
|
DefenderSquadron.RacetrackDurationMin=DurationMin
|
||||||
DefenderSquadron.RacetrackDurationMax=DurationMax
|
DefenderSquadron.RacetrackDurationMax=DurationMax
|
||||||
|
DefenderSquadron.RacetrackCoordinates=CapCoordinates
|
||||||
end
|
end
|
||||||
|
|
||||||
return self
|
return self
|
||||||
@ -3008,7 +3014,8 @@ do -- AI_A2A_DISPATCHER
|
|||||||
DefenderSquadron.RacetrackHeadingMin or self.DefenderDefault.RacetrackHeadingMin,
|
DefenderSquadron.RacetrackHeadingMin or self.DefenderDefault.RacetrackHeadingMin,
|
||||||
DefenderSquadron.RacetrackHeadingMax or self.DefenderDefault.RacetrackHeadingMax,
|
DefenderSquadron.RacetrackHeadingMax or self.DefenderDefault.RacetrackHeadingMax,
|
||||||
DefenderSquadron.RacetrackDurationMin or self.DefenderDefault.RacetrackDurationMin,
|
DefenderSquadron.RacetrackDurationMin or self.DefenderDefault.RacetrackDurationMin,
|
||||||
DefenderSquadron.RacetrackDurationMax or self.DefenderDefault.RacetrackDurationMax)
|
DefenderSquadron.RacetrackDurationMax or self.DefenderDefault.RacetrackDurationMax,
|
||||||
|
DefenderSquadron.RacetrackCoordinates or self.DefenderDefault.RacetrackCoordinates)
|
||||||
end
|
end
|
||||||
Fsm:Start()
|
Fsm:Start()
|
||||||
|
|
||||||
@ -3366,7 +3373,7 @@ do -- AI_A2A_DISPATCHER
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local Report = REPORT:New( "Tactical Overview" )
|
local Report = REPORT:New( "Tactical Overviews" )
|
||||||
|
|
||||||
local DefenderGroupCount = 0
|
local DefenderGroupCount = 0
|
||||||
|
|
||||||
|
|||||||
@ -263,10 +263,11 @@ end
|
|||||||
-- @param #number LegMax Max length of the race track leg in meters. Default 15,000 m.
|
-- @param #number LegMax Max length of the race track leg in meters. Default 15,000 m.
|
||||||
-- @param #number HeadingMin Min heading of the race track in degrees. Default 0 deg, i.e. from South to North.
|
-- @param #number HeadingMin Min heading of the race track in degrees. Default 0 deg, i.e. from South to North.
|
||||||
-- @param #number HeadingMax Max heading of the race track in degrees. Default 180 deg, i.e. from South to North.
|
-- @param #number HeadingMax Max heading of the race track in degrees. Default 180 deg, i.e. from South to North.
|
||||||
-- @param #number duration (Optional) Min duration before switching the orbit position. Default is keep same orbit until RTB or engage.
|
-- @param #number DurationMin (Optional) Min duration before switching the orbit position. Default is keep same orbit until RTB or engage.
|
||||||
-- @param #number duration (Optional) Max duration before switching the orbit position. Default is keep same orbit until RTB or engage.
|
-- @param #number DurationMax (Optional) Max duration before switching the orbit position. Default is keep same orbit until RTB or engage.
|
||||||
|
-- @param #table CapCoordinates Table of coordinates of first race track point. Second point is determined by leg length and heading.
|
||||||
-- @return #AI_A2A_PATROL self
|
-- @return #AI_A2A_PATROL self
|
||||||
function AI_A2A_PATROL:SetRaceTrackPattern(LegMin, LegMax, HeadingMin, HeadingMax, DurationMin, DurationMax)
|
function AI_A2A_PATROL:SetRaceTrackPattern(LegMin, LegMax, HeadingMin, HeadingMax, DurationMin, DurationMax, CapCoordinates)
|
||||||
self:F2({leglength, duration})
|
self:F2({leglength, duration})
|
||||||
|
|
||||||
self.racetrack=true
|
self.racetrack=true
|
||||||
@ -280,6 +281,9 @@ function AI_A2A_PATROL:SetRaceTrackPattern(LegMin, LegMax, HeadingMin, HeadingMa
|
|||||||
if self.racetrackdurationmax and not self.racetrackdurationmin then
|
if self.racetrackdurationmax and not self.racetrackdurationmin then
|
||||||
self.racetrackdurationmin=self.racetrackdurationmax
|
self.racetrackdurationmin=self.racetrackdurationmax
|
||||||
end
|
end
|
||||||
|
|
||||||
|
self.racetrackcapcoordinates=CapCoordinates
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -365,8 +369,14 @@ function AI_A2A_PATROL:onafterRoute( AIPatrol, From, Event, To )
|
|||||||
duration=math.random(self.racetrackdurationmin, self.racetrackdurationmax)
|
duration=math.random(self.racetrackdurationmin, self.racetrackdurationmax)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- CAP coordinate.
|
||||||
|
local c0=self.PatrolZone:GetRandomCoordinate()
|
||||||
|
if self.racetrackcapcoordinates and #self.racetrackcapcoordinates>0 then
|
||||||
|
c0=self.racetrackcapcoordinates[math.random(#self.racetrackcapcoordinates)]
|
||||||
|
end
|
||||||
|
|
||||||
-- Race track points.
|
-- Race track points.
|
||||||
local c1=self.PatrolZone:GetRandomCoordinate():SetAltitude(altitude) --Core.Point#COORDINATE
|
local c1=c0:SetAltitude(altitude) --Core.Point#COORDINATE
|
||||||
local c2=c1:Translate(leg, heading):SetAltitude(altitude)
|
local c2=c1:Translate(leg, heading):SetAltitude(altitude)
|
||||||
|
|
||||||
-- Debug:
|
-- Debug:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user