mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2026-08-22 06:45:20 +00:00
AUFTRAG
- Updated AWACS mission type to support anchor at a unit
This commit is contained in:
@@ -676,7 +676,7 @@ AUFTRAG.Category={
|
|||||||
|
|
||||||
--- AUFTRAG class version.
|
--- AUFTRAG class version.
|
||||||
-- @field #string version
|
-- @field #string version
|
||||||
AUFTRAG.version="1.4.1"
|
AUFTRAG.version="1.4.2"
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
-- TODO list
|
-- TODO list
|
||||||
@@ -1366,7 +1366,7 @@ end
|
|||||||
|
|
||||||
--- **[AIR]** Create a AWACS mission.
|
--- **[AIR]** Create a AWACS mission.
|
||||||
-- @param #AUFTRAG self
|
-- @param #AUFTRAG self
|
||||||
-- @param Core.Point#COORDINATE Coordinate Where to orbit. Altitude is also taken from the coordinate.
|
-- @param Core.Point#COORDINATE Coordinate Where to orbit. Altitude is also taken from the coordinate. Can also be a UNIT object, *e.g.* a carrier.
|
||||||
-- @param #number Altitude (Optional) Orbit altitude in feet. Default is y component of `Coordinate`.
|
-- @param #number Altitude (Optional) Orbit altitude in feet. Default is y component of `Coordinate`.
|
||||||
-- @param #number Speed (Optional) Orbit speed in knots. Default 350 kts.
|
-- @param #number Speed (Optional) Orbit speed in knots. Default 350 kts.
|
||||||
-- @param #number Heading (Optional) Heading of race-track pattern in degrees. Default 270 (East to West).
|
-- @param #number Heading (Optional) Heading of race-track pattern in degrees. Default 270 (East to West).
|
||||||
@@ -1375,7 +1375,20 @@ end
|
|||||||
function AUFTRAG:NewAWACS(Coordinate, Altitude, Speed, Heading, Leg)
|
function AUFTRAG:NewAWACS(Coordinate, Altitude, Speed, Heading, Leg)
|
||||||
|
|
||||||
-- Create ORBIT first.
|
-- Create ORBIT first.
|
||||||
local mission=AUFTRAG:NewORBIT_RACETRACK(Coordinate, Altitude, Speed, Heading, Leg)
|
local mission=nil --Ops.Auftrag#AUFTRAG
|
||||||
|
|
||||||
|
if BASE:IsInstanceOf("COORDINATE") then
|
||||||
|
-- Racetrack at a given coordinate
|
||||||
|
mission=AUFTRAG:NewORBIT_RACETRACK(Coordinate, Altitude, Speed, Heading, Leg)
|
||||||
|
elseif BASE:IsInstanceOf("UNIT") then
|
||||||
|
-- Racetrack wrt a given (moving) unit (e.g. a carrier)
|
||||||
|
local OffsetVec2={r=6, phi=180}
|
||||||
|
mission=AUFTRAG:NewORBIT_GROUP(Coordinate, Altitude, Speed, Leg, Heading, OffsetVec2)
|
||||||
|
else
|
||||||
|
-- Error!
|
||||||
|
BASE:E("ERROR in AUFTRAG:NewAWACS: You must pass a COORDINATE or UNIT object!")
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
-- Mission type AWACS.
|
-- Mission type AWACS.
|
||||||
mission.type=AUFTRAG.Type.AWACS
|
mission.type=AUFTRAG.Type.AWACS
|
||||||
@@ -1394,7 +1407,51 @@ function AUFTRAG:NewAWACS(Coordinate, Altitude, Speed, Heading, Leg)
|
|||||||
return mission
|
return mission
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- **[AIRPANE]** Create a RECOVERY TANKER mission.
|
||||||
|
-- @param #AUFTRAG self
|
||||||
|
-- @param Wrapper.Unit#UNIT Carrier The carrier unit.
|
||||||
|
-- @param #number Altitude (Optional) Orbit altitude in feet. Default is 6,000 ft.
|
||||||
|
-- @param #number Speed (Optional) Orbit speed in knots. Default 250 KIAS.
|
||||||
|
-- @param #number Leg (Optional) Length of race-track in NM. Default 14 NM.
|
||||||
|
-- @param #number RelHeading (Optional) Relative heading [0, 360) of race-track pattern in degrees wrt heading of the carrier. Default is heading of the carrier.
|
||||||
|
-- @param #number OffsetDist (Optional) Relative distance of the first race-track point wrt to the carrier. Default 6 NM.
|
||||||
|
-- @param #number OffsetAngle (Optional) Relative angle of the first race-track point wrt. to the carrier. Default 180 (behind the boat).
|
||||||
|
-- @param #number UpdateDistance (Optional) Threshold distance in NM before orbit pattern is updated. Default 5 NM.
|
||||||
|
-- @return #AUFTRAG self
|
||||||
|
function AUFTRAG:NewRECOVERYTANKER(Carrier, Altitude, Speed, Leg, RelHeading, OffsetDist, OffsetAngle, UpdateDistance)
|
||||||
|
|
||||||
|
-- Six NM astern.
|
||||||
|
local OffsetVec2={r=OffsetDist or 6, phi=OffsetAngle or 180}
|
||||||
|
|
||||||
|
-- Default leg.
|
||||||
|
Leg=Leg or 14
|
||||||
|
|
||||||
|
-- Default Speed.
|
||||||
|
Speed=Speed or 250
|
||||||
|
|
||||||
|
local Heading=nil
|
||||||
|
if RelHeading then
|
||||||
|
Heading=-math.abs(RelHeading)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Create orbit mission.
|
||||||
|
local mission=AUFTRAG:NewORBIT_GROUP(Carrier, Altitude, Speed, Leg, Heading, OffsetVec2, UpdateDistance)
|
||||||
|
|
||||||
|
-- Set the type.
|
||||||
|
mission.type=AUFTRAG.Type.RECOVERYTANKER
|
||||||
|
|
||||||
|
-- Mission options:
|
||||||
|
mission.missionTask=ENUMS.MissionTask.REFUELING
|
||||||
|
mission.missionFraction=0.9
|
||||||
|
mission.optionROE=ENUMS.ROE.WeaponHold
|
||||||
|
mission.optionROT=ENUMS.ROT.NoReaction
|
||||||
|
|
||||||
|
mission.categories={AUFTRAG.Category.AIRPLANE}
|
||||||
|
|
||||||
|
mission.DCStask=mission:GetDCSMissionTask()
|
||||||
|
|
||||||
|
return mission
|
||||||
|
end
|
||||||
|
|
||||||
--- **[AIR]** Create an INTERCEPT mission.
|
--- **[AIR]** Create an INTERCEPT mission.
|
||||||
-- @param #AUFTRAG self
|
-- @param #AUFTRAG self
|
||||||
@@ -2049,53 +2106,6 @@ function AUFTRAG:NewRESCUEHELO(Carrier)
|
|||||||
return mission
|
return mission
|
||||||
end
|
end
|
||||||
|
|
||||||
--- **[AIRPANE]** Create a RECOVERY TANKER mission.
|
|
||||||
-- @param #AUFTRAG self
|
|
||||||
-- @param Wrapper.Unit#UNIT Carrier The carrier unit.
|
|
||||||
-- @param #number Altitude (Optional) Orbit altitude in feet. Default is 6,000 ft.
|
|
||||||
-- @param #number Speed (Optional) Orbit speed in knots. Default 250 KIAS.
|
|
||||||
-- @param #number Leg (Optional) Length of race-track in NM. Default 14 NM.
|
|
||||||
-- @param #number RelHeading (Optional) Relative heading [0, 360) of race-track pattern in degrees wrt heading of the carrier. Default is heading of the carrier.
|
|
||||||
-- @param #number OffsetDist (Optional) Relative distance of the first race-track point wrt to the carrier. Default 6 NM.
|
|
||||||
-- @param #number OffsetAngle (Optional) Relative angle of the first race-track point wrt. to the carrier. Default 180 (behind the boat).
|
|
||||||
-- @param #number UpdateDistance (Optional) Threshold distance in NM before orbit pattern is updated. Default 5 NM.
|
|
||||||
-- @return #AUFTRAG self
|
|
||||||
function AUFTRAG:NewRECOVERYTANKER(Carrier, Altitude, Speed, Leg, RelHeading, OffsetDist, OffsetAngle, UpdateDistance)
|
|
||||||
|
|
||||||
-- Six NM astern.
|
|
||||||
local OffsetVec2={r=OffsetDist or 6, phi=OffsetAngle or 180}
|
|
||||||
|
|
||||||
-- Default leg.
|
|
||||||
Leg=Leg or 14
|
|
||||||
|
|
||||||
-- Default Speed.
|
|
||||||
Speed=Speed or 250
|
|
||||||
|
|
||||||
local Heading=nil
|
|
||||||
if RelHeading then
|
|
||||||
Heading=-math.abs(RelHeading)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Create orbit mission.
|
|
||||||
local mission=AUFTRAG:NewORBIT_GROUP(Carrier, Altitude, Speed, Leg, Heading, OffsetVec2, UpdateDistance)
|
|
||||||
|
|
||||||
-- Set the type.
|
|
||||||
mission.type=AUFTRAG.Type.RECOVERYTANKER
|
|
||||||
|
|
||||||
-- Mission options:
|
|
||||||
mission.missionTask=ENUMS.MissionTask.REFUELING
|
|
||||||
mission.missionFraction=0.9
|
|
||||||
mission.optionROE=ENUMS.ROE.WeaponHold
|
|
||||||
mission.optionROT=ENUMS.ROT.NoReaction
|
|
||||||
|
|
||||||
mission.categories={AUFTRAG.Category.AIRPLANE}
|
|
||||||
|
|
||||||
mission.DCStask=mission:GetDCSMissionTask()
|
|
||||||
|
|
||||||
return mission
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
--- **[AIR ROTARY, GROUND]** Create a TROOP TRANSPORT mission.
|
--- **[AIR ROTARY, GROUND]** Create a TROOP TRANSPORT mission.
|
||||||
-- @param #AUFTRAG self
|
-- @param #AUFTRAG self
|
||||||
-- @param Core.Set#SET_GROUP TransportGroupSet The set group(s) to be transported.
|
-- @param Core.Set#SET_GROUP TransportGroupSet The set group(s) to be transported.
|
||||||
|
|||||||
@@ -217,7 +217,7 @@ FLIGHTGROUP.Players={}
|
|||||||
|
|
||||||
--- FLIGHTGROUP class version.
|
--- FLIGHTGROUP class version.
|
||||||
-- @field #string version
|
-- @field #string version
|
||||||
FLIGHTGROUP.version="1.0.3"
|
FLIGHTGROUP.version="1.0.4"
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
-- TODO list
|
-- TODO list
|
||||||
@@ -1354,8 +1354,10 @@ function FLIGHTGROUP:Status()
|
|||||||
-- If mission, check if DCS task needs to be updated.
|
-- If mission, check if DCS task needs to be updated.
|
||||||
if mission and mission.updateDCSTask then
|
if mission and mission.updateDCSTask then
|
||||||
|
|
||||||
|
local mtype=mission:GetType()
|
||||||
|
|
||||||
-- Orbit missions might need updates.
|
-- Orbit missions might need updates.
|
||||||
if (mission:GetType()==AUFTRAG.Type.ORBIT or mission:GetType()==AUFTRAG.Type.RECOVERYTANKER or mission:GetType()==AUFTRAG.Type.CAP) and mission.orbitVec2 then
|
if (mtype==AUFTRAG.Type.ORBIT or mtype==AUFTRAG.Type.RECOVERYTANKER or mtype==AUFTRAG.Type.CAP or mtype==AUFTRAG.Type.AWACS) and mission.orbitVec2 then
|
||||||
|
|
||||||
-- Get 2D vector of orbit target.
|
-- Get 2D vector of orbit target.
|
||||||
local vec2=mission:GetTargetVec2()
|
local vec2=mission:GetTargetVec2()
|
||||||
|
|||||||
Reference in New Issue
Block a user