mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2026-08-11 19:58:22 +00:00
Ops
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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' )
|
||||
|
||||
@@ -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
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user