This commit is contained in:
Frank
2020-02-25 23:57:12 +01:00
parent e67d5a6c9f
commit 173e68676c
4 changed files with 31 additions and 27 deletions
+1 -1
View File
@@ -1545,7 +1545,7 @@ function SPAWN:SpawnAtAirbase( SpawnAirbase, Takeoff, TakeoffAltitude, TerminalT
-- Get airbase ID and category.
local AirbaseID = SpawnAirbase:GetID()
local AirbaseCategory = SpawnAirbase:GetDesc().category
local AirbaseCategory = SpawnAirbase:GetAirbaseCategory()
self:F( { AirbaseCategory = AirbaseCategory } )
-- Set airdromeId.
+1 -2
View File
@@ -74,8 +74,7 @@ __Moose.Include( 'Scripts/Moose/Ops/RecoveryTanker.lua' )
__Moose.Include( 'Scripts/Moose/Ops/RescueHelo.lua' )
__Moose.Include( 'Scripts/Moose/Ops/ATIS.lua' )
__Moose.Include( 'Scripts/Moose/Ops/FlightGroup.lua' )
__Moose.Include( 'Scripts/Moose/Ops/TankerGroup.lua' )
__Moose.Include( 'Scripts/Moose/Ops/AwacsGroup.lua' )
__Moose.Include( 'Scripts/Moose/Ops/Auftrag.lua' )
__Moose.Include( 'Scripts/Moose/Ops/FlightControl.lua' )
__Moose.Include( 'Scripts/Moose/Ops/Squadron.lua' )
__Moose.Include( 'Scripts/Moose/Ops/AirWing.lua' )
+16 -11
View File
@@ -27,9 +27,9 @@
-- @field #number Tstop Mission stop time in seconds.
-- @field #number duration Mission duration in seconds.
-- @field #table DCStask DCS task structure.
-- @field Core.Point#COORDINATE waypointcoord Coordinate of the waypoint task.
-- @field Core.Point#COORDINATE waypointcoord Coordinate of the waypoint task.
-- @field #number waypointindex Waypoint number at which the task is executed.
-- @field Ops.FlightGroup#AUFTRAG.Task waypointtask Waypoint task.
-- @field #number waypointindex Waypoint number at which the task is executed.
-- @field #number marker F10 map marker ID.
-- @field Core.Point#COORDINATE coordOrbit Coordinate where to orbit.
-- @field #number speedOrbit Orbit speed in m/s.
@@ -158,6 +158,10 @@ function AUFTRAG:New(Type)
self.type=Type
self.auftragsnummer=_AUFTRAGSNR
self.status=AUFTRAG.Status.SCHEDULED
self.name=string.format("Auftrag #%d", self.auftragsnummer)
self.lid=string.format("Auftrag #%d %s | ", self.auftragsnummer, self.type)
self:AddTransition("*", "Start", "*") -- Mission has started.
self:AddTransition("*", "Update", "*") -- Mission is updated with latest data.
@@ -183,7 +187,7 @@ function AUFTRAG:NewORBIT(OrbitCoordinate, OrbitSpeed, Heading, Leg)
auftrag.heading=Heading or 270
auftrag.leg=UTILS.NMToMeters(Leg or 10)
mission.DCStask=self:GetDCSMissionTask()
auftrag.DCStask=auftrag:GetDCSMissionTask()
return auftrag
end
@@ -214,7 +218,7 @@ function AUFTRAG:NewCAP(OrbitCoordinate, OrbitSpeed, Heading, Leg, ZoneCAP, Targ
mission.zoneEngage=ZoneCAP or ZONE_RADIUS:New("CAP Zone", OrbitCoordinate:GetVec2(), mission.leg)
mission.typeTargets=TargetTypes or {"Air"}
mission.DCStask=self:GetDCSMissionTask()
mission.DCStask=mission:GetDCSMissionTask()
return mission
end
@@ -245,7 +249,7 @@ function AUFTRAG:NewCAS(OrbitCoordinate, OrbitSpeed, Heading, Leg, ZoneCAS, Targ
mission.zoneEngage=ZoneCAS or ZONE_RADIUS:New("CAS Zone", OrbitCoordinate:GetVec2(), Leg)
mission.typeTargets=TargetTypes or {"Helicopters", "Ground Units", "Light armed ships"}
mission.DCStask=self:GetDCSMissionTask()
mission.DCStask=mission:GetDCSMissionTask()
return mission
end
@@ -264,7 +268,7 @@ function AUFTRAG:NewSTRIKE(TargetCoordinate, Altitude)
mission.coordTarget=TargetCoordinate
mission.altitude=UTILS.FeetToMeters(Altitude or 1000)
mission.DCStask=self:GetDCSMissionTask()
mission.DCStask=mission:GetDCSMissionTask()
return mission
end
@@ -285,7 +289,7 @@ function AUFTRAG:NewINTERCEPT(TargetGroupSet)
mission.groupsetTargets=TargetGroupSet
mission.groupsetTargets:FilterDeads():FilterCrashes()
mission.DCStask=self:GetDCSMissionTask()
mission.DCStask=mission:GetDCSMissionTask()
return mission
end
@@ -306,7 +310,7 @@ function AUFTRAG:NewBAI(TargetGroupSet)
mission.groupsetTargets=TargetGroupSet
mission.groupsetTargets:FilterDeads():FilterCrashes()
mission.DCStask=self:GetDCSMissionTask()
mission.DCStask=mission:GetDCSMissionTask()
return mission
end
@@ -319,7 +323,7 @@ end
-- @param #AUFTRAG self
-- @param #string ClockStart Time the mission is started, e.g. "05:00" for 5 am. If specified as a #number, it will be relative (in seconds) to the current mission time. Default is 5 seconds after mission was added.
-- @param #string ClockStop (Optional) Time the mission is stopped, e.g. "13:00" for 1 pm. If mission could not be started at that time, it will be removed from the queue. If specified as a #number it will be relative (in seconds) to the current mission time.
-- @param #AUFTRAG self
-- @return #AUFTRAG self
function AUFTRAG:SetMissionTime(ClockStart, ClockStop)
-- Current mission time.
@@ -354,7 +358,7 @@ end
--- Set mission priority.
-- @param #AUFTRAG self
-- @param #number Prio Priority 1=high, 100=low. Default 50
-- @param #AUFTRAG self
-- @return #AUFTRAG self
function AUFTRAG:SetPriority(Prio)
self.prio=Prio or 50
return self
@@ -363,9 +367,10 @@ end
--- Set mission name.
-- @param #AUFTRAG self
-- @param #string Name Name of the mission.
-- @param #AUFTRAG self
-- @return #AUFTRAG self
function AUFTRAG:SetName(Name)
self.name=Name or string.format("Auftragsnummer %d", self.auftragsnummer)
return self
end
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+13 -13
View File
@@ -667,7 +667,7 @@ end
-- @return #FLIGHTGROUP self
function FLIGHTGROUP:AddMission(Mission, WaypointCoordinate, WaypointIndex)
Mission.waypointcoordinate=WaypointCoordinate
Mission.waypointcoord=WaypointCoordinate
Mission.waypointindex=WaypointIndex
-- Add mission to queue.
@@ -1348,8 +1348,8 @@ function FLIGHTGROUP:onafterFlightStatus(From, Event, To)
-- Current status.
local text=string.format("Missions=%d Current: %s", #self.missionqueue, mymission)
for i,_mission in pairs(self.missionqueue) do
local mission=_mission --#FLIGHTGROUP.Mission
text=text..string.format("\n[%d] %s %s status=%s, targets=%d", i, tostring(mission.name), mission.type, tostring(mission.status), self:CountMissionTargets(mission))
local mission=_mission --Ops.Auftrag#AUFTRAG
text=text..string.format("\n[%d] %s %s status=%s, targets=%d", i, tostring(mission.name), mission.type, tostring(mission.status), mission:CountMissionTargets())
end
self:I(self.lid..text)
@@ -3029,7 +3029,7 @@ function FLIGHTGROUP:onafterMissionStart(From, Event, To, Mission)
self.currentmission.Tstarted=timer.getAbsTime()
-- Set mission status.
self.currentmission.status=FLIGHTGROUP.MissionStatus.EXECUTING
self.currentmission.status=AUFTRAG.Status.EXECUTING
-- Route flight to mission zone.
self:RouteToMission(Mission, 5)
@@ -3046,7 +3046,7 @@ function FLIGHTGROUP:onafterMissionDone(From, Event, To, Mission)
-- TODO: evaluate mission success or failure! complicated!
Mission.status=FLIGHTGROUP.MissionStatus.ACCOMPLISHED
Mission.status=AUFTRAG.Status.ACCOMPLISHED
local airwing=self:GetAirWing()
if airwing then
@@ -3063,7 +3063,7 @@ end
-- @param #string From From state.
-- @param #string Event Event.
-- @param #string To To state.
-- @param #FLIGHTGROUP.Mission Mission
-- @param Ops.Auftrag#AUFTRAG Mission
function FLIGHTGROUP:onafterMissionUpdate(From, Event, To, Mission)
if Mission.groupsetTarget then
@@ -3075,7 +3075,7 @@ end
--- Get next mission.
-- @param #FLIGHTGROUP self
-- @return #FLIGHTGROUP.Mission Next mission or *nil*.
-- @return Ops.Auftrag#AUFTRAG Next mission or *nil*.
function FLIGHTGROUP:_GetNextMission()
-- Number of missions.
@@ -3088,8 +3088,8 @@ function FLIGHTGROUP:_GetNextMission()
-- Sort results table wrt times they have already been engaged.
local function _sort(a, b)
local taskA=a --#FLIGHTGROUP.Mission
local taskB=b --#FLIGHTGROUP.Mission
local taskA=a --Ops.Auftrag#AUFTRAG
local taskB=b --Ops.Auftrag#AUFTRAG
return (taskA.Tstart<taskB.Tstart) or (taskA.Tstart==taskB.Tstart and taskA.prio<taskB.prio)
end
table.sort(self.missionqueue, _sort)
@@ -3099,8 +3099,8 @@ function FLIGHTGROUP:_GetNextMission()
-- Look for first task that is not accomplished.
for _,_mission in pairs(self.missionqueue) do
local mission=_mission --#FLIGHTGROUP.Mission
if mission.status==FLIGHTGROUP.MissionStatus.SCHEDULED and time>=mission.Tstart then
local mission=_mission --Ops.Auftrag#AUFTRAG
if mission.status==AUFTRAG.Status.SCHEDULED and time>=mission.Tstart then
return mission
end
end
@@ -3110,7 +3110,7 @@ end
--- Route group to mission.
-- @param #FLIGHTGROUP self
-- @param #FLIGHTGROUP.Mission mission The mission table.
-- @param Ops.Auftrag#AUFTRAG mission The mission table.
-- @param #number delay Delay in seconds.
function FLIGHTGROUP:RouteToMission(mission, delay)
@@ -3752,7 +3752,7 @@ function FLIGHTGROUP:AddWaypointAir(coordinate, wpnumber, speed, updateroute)
-- Shift all mission waypoints after the inserted waypoint.
for _,_mission in pairs(self.missionqueue) do
local mission=_mission --#FLIGHTGROUP.Mission
if mission.status==FLIGHTGROUP.MissionStatus.SCHEDULED and mission.waypoint>=wpnumber then
if mission.status==AUFTRAG.Status.SCHEDULED and mission.waypoint>=wpnumber then
mission.waypointindex=mission.waypointindex+1
end
end