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.
|
||||
-- @param #AI_A2A_DISPATCHER self
|
||||
-- @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 HeadingMax Max heading of the race track in degrees. Default 180 deg, i.e. from North to South.
|
||||
-- @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. 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 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
|
||||
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.RacetrackLengthMin=LeglengthMin
|
||||
@ -1916,6 +1918,7 @@ do -- AI_A2A_DISPATCHER
|
||||
self.DefenderDefault.RacetrackHeadingMax=HeadingMax
|
||||
self.DefenderDefault.RacetrackDurationMin=DurationMin
|
||||
self.DefenderDefault.RacetrackDurationMax=DurationMax
|
||||
self.DefenderDefault.RacetrackCoordinates=CapCoordinates
|
||||
|
||||
return self
|
||||
end
|
||||
@ -1924,12 +1927,14 @@ do -- AI_A2A_DISPATCHER
|
||||
-- @param #AI_A2A_DISPATCHER self
|
||||
-- @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 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 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 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
|
||||
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 )
|
||||
|
||||
@ -1941,6 +1946,7 @@ do -- AI_A2A_DISPATCHER
|
||||
DefenderSquadron.RacetrackHeadingMax=HeadingMax
|
||||
DefenderSquadron.RacetrackDurationMin=DurationMin
|
||||
DefenderSquadron.RacetrackDurationMax=DurationMax
|
||||
DefenderSquadron.RacetrackCoordinates=CapCoordinates
|
||||
end
|
||||
|
||||
return self
|
||||
@ -3008,7 +3014,8 @@ do -- AI_A2A_DISPATCHER
|
||||
DefenderSquadron.RacetrackHeadingMin or self.DefenderDefault.RacetrackHeadingMin,
|
||||
DefenderSquadron.RacetrackHeadingMax or self.DefenderDefault.RacetrackHeadingMax,
|
||||
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
|
||||
Fsm:Start()
|
||||
|
||||
@ -3366,7 +3373,7 @@ do -- AI_A2A_DISPATCHER
|
||||
end
|
||||
end
|
||||
|
||||
local Report = REPORT:New( "Tactical Overview" )
|
||||
local Report = REPORT:New( "Tactical Overviews" )
|
||||
|
||||
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 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 duration (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 DurationMin (Optional) Min 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
|
||||
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.racetrack=true
|
||||
@ -280,6 +281,9 @@ function AI_A2A_PATROL:SetRaceTrackPattern(LegMin, LegMax, HeadingMin, HeadingMa
|
||||
if self.racetrackdurationmax and not self.racetrackdurationmin then
|
||||
self.racetrackdurationmin=self.racetrackdurationmax
|
||||
end
|
||||
|
||||
self.racetrackcapcoordinates=CapCoordinates
|
||||
|
||||
end
|
||||
|
||||
|
||||
@ -365,8 +369,14 @@ function AI_A2A_PATROL:onafterRoute( AIPatrol, From, Event, To )
|
||||
duration=math.random(self.racetrackdurationmin, self.racetrackdurationmax)
|
||||
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.
|
||||
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)
|
||||
|
||||
-- Debug:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user