Merge branch 'develop' into FF/Ops

This commit is contained in:
Frank
2022-03-26 22:38:20 +01:00
8 changed files with 140 additions and 14 deletions
+76 -1
View File
@@ -418,6 +418,7 @@ AUFTRAG.Type={
BARRAGE="Barrage",
ARMORATTACK="Armor Attack",
CASENHANCED="CAS Enhanced",
HOVER="Hover",
}
--- Mission status of an assigned group.
@@ -440,6 +441,7 @@ AUFTRAG.SpecialTask={
ARMOREDGUARD="ArmoredGuard",
BARRAGE="Barrage",
ARMORATTACK="AmorAttack",
HOVER="Hover",
}
--- Mission status.
@@ -560,7 +562,7 @@ AUFTRAG.Category={
--- AUFTRAG class version.
-- @field #string version
AUFTRAG.version="0.8.4"
AUFTRAG.version="0.8.5"
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- TODO list
@@ -913,6 +915,44 @@ function AUFTRAG:NewANTISHIP(Target, Altitude)
return mission
end
--- **[AIR/HELICOPTER]** Create an HOVER mission.
-- @param #AUFTRAG self
-- @param Core.Point#COORDINATE Coordinate Where to hover.
-- @param #number Altitude Hover altitude in feet AGL. Default is 50 feet above ground.
-- @param #number Time Time in seconds to hold the hover. Default 300 seconds.
-- @param #number Speed Speed in knots to fly to the target coordinate. Default 150kn.
-- @param #number MissionAlt Altitide to fly towards the mission in feet AGL. Default 1000ft.
-- @return #AUFTRAG self
function AUFTRAG:NewHOVER(Coordinate, Altitude, Time, Speed, MissionAlt)
local mission=AUFTRAG:New(AUFTRAG.Type.HOVER)
-- Altitude.
if Altitude then
mission.hoverAltitude=Coordinate:GetLandHeight()+UTILS.FeetToMeters(Altitude)
else
mission.hoverAltitude=Coordinate:GetLandHeight()+UTILS.FeetToMeters(50)
end
mission:_TargetFromObject(Coordinate)
mission.hoverSpeed = 0.1 -- the DCS Task itself will shortly be build with this so MPS
mission.hoverTime = Time or 300
mission.missionSpeed = UTILS.KnotsToMps(Speed or 150)
-- Mission options:
mission.missionAltitude=mission.MissionAlt or UTILS.FeetToMeters(1000)
mission.missionFraction=0.9
mission.optionROE=ENUMS.ROE.ReturnFire
mission.optionROT=ENUMS.ROT.PassiveDefense
mission.categories={AUFTRAG.Category.AIRCRAFT}
mission.DCStask=mission:GetDCSMissionTask()
return mission
end
--- **[AIR]** Create an ORBIT mission, which can be either a circular orbit or a race-track pattern.
-- @param #AUFTRAG self
-- @param Core.Point#COORDINATE Coordinate Where to orbit.
@@ -5110,7 +5150,40 @@ function AUFTRAG:GetDCSMissionTask(TaskControllable)
DCStask.params=param
table.insert(DCStasks, DCStask)
elseif self.type==AUFTRAG.Type.HOVER then
---------------------
-- HOVER Mission --
---------------------
local DCStask={}
DCStask.id=AUFTRAG.SpecialTask.HOVER
local param={}
param.hoverAltitude=self.hoverAltitude
param.hoverTime = self.hoverTime
param.missionSpeed = self.missionSpeed
param.missionAltitude = self.missionAltitude
DCStask.params=param
--[[ Task script.
local DCSScript = {}
local altitude = self.hoverAltitude
DCSScript[#DCSScript+1] = 'local group = ...'
DCSScript[#DCSScript+1] = 'local helo = GROUP:Find(group)'
DCSScript[#DCSScript+1] = 'helo:SetSpeed(0.1,true)'
DCSScript[#DCSScript+1] = string.format('helo:SetAltitude(UTILS.FeetToMeters(%d),true,"BARO")',altitude) -- Call the function, e.g. myfunction.(warehouse,mygroup)
-- Create task.
local DCSTask=CONTROLLABLE.TaskWrappedAction(self, CONTROLLABLE.CommandDoScript(self, table.concat(DCSScript)))
--]]
table.insert(DCStasks, DCStask)
elseif self.type==AUFTRAG.Type.ONGUARD or self.type==AUFTRAG.Type.ARMOREDGUARD then
----------------------
@@ -5248,6 +5321,8 @@ function AUFTRAG:GetMissionTaskforMissionType(MissionType)
mtask=ENUMS.MissionTask.TRANSPORT
elseif MissionType==AUFTRAG.Type.ARMORATTACK then
mtask=ENUMS.MissionTask.NOTHING
elseif MissionType==AUFTRAG.Type.HOVER then
mtask=ENUMS.MissionTask.NOTHING
end
return mtask