mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
OPS
- Fixed AUFTRAG :Repeat() - Fixed bug in BRIGADE - Improved cargo bay calculation in POSITIONABLE (includes rel. fuel) - Changed carrier event names in OPSGROUP - New class F10MENU (not sure about it)
This commit is contained in:
@@ -849,7 +849,8 @@ function ARMYGROUP:onbeforeUpdateRoute(From, Event, To, n, N, Speed, Formation)
|
||||
self:E(self.lid.."Update route denied. Group is STOPPED!")
|
||||
return false
|
||||
elseif self:IsHolding() then
|
||||
self:E(self.lid.."Update route denied. Group is holding position! Use Cruise()")
|
||||
self:T(self.lid.."Update route denied. Group is holding position!")
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
@@ -46,6 +46,8 @@
|
||||
-- @field #number Tstart Mission start time in abs. seconds.
|
||||
-- @field #number Tstop Mission stop time in abs. seconds.
|
||||
-- @field #number duration Mission duration in seconds.
|
||||
-- @field #number durationExe Mission execution time in seconds.
|
||||
-- @field #number Texecuting Mission time stamp (abs) when it started to execute. Is #nil on start.
|
||||
-- @field #number Tpush Mission push/execute time in abs. seconds.
|
||||
-- @field Wrapper.Marker#MARKER marker F10 map marker.
|
||||
-- @field #boolean markerOn If true, display marker on F10 map with the AUFTRAG status.
|
||||
@@ -2703,7 +2705,7 @@ function AUFTRAG:AddOpsGroup(OpsGroup)
|
||||
return self
|
||||
end
|
||||
|
||||
--- Remove an Ops group from the mission.
|
||||
--- Remove an Ops group from the mission.
|
||||
-- @param #AUFTRAG self
|
||||
-- @param Ops.OpsGroup#OPSGROUP OpsGroup The OPSGROUP object.
|
||||
-- @return #AUFTRAG self
|
||||
@@ -3061,9 +3063,18 @@ function AUFTRAG:onafterStatus(From, Event, To)
|
||||
self:Cancel()
|
||||
|
||||
elseif self.durationExe and self.Texecuting and Tnow-self.Texecuting>self.durationExe then
|
||||
|
||||
-- Backup repeat values
|
||||
local Nrepeat=self.Nrepeat
|
||||
local NrepeatS=self.NrepeatSuccess
|
||||
local NrepeatF=self.NrepeatFailure
|
||||
|
||||
-- Cancel mission if stop time passed.
|
||||
self:Cancel()
|
||||
|
||||
self.Nrepeat=Nrepeat
|
||||
self.NrepeatSuccess=NrepeatS
|
||||
self.NrepeatFailure=NrepeatF
|
||||
|
||||
elseif (Ntargets0>0 and Ntargets==0) then
|
||||
|
||||
@@ -3811,6 +3822,9 @@ function AUFTRAG:onafterDone(From, Event, To)
|
||||
-- Set time stamp.
|
||||
self.Tover=timer.getAbsTime()
|
||||
|
||||
-- Not executing any more.
|
||||
self.Texecuting=nil
|
||||
|
||||
-- Set status for CHIEF, COMMANDER and LEGIONs
|
||||
self.statusChief=AUFTRAG.Status.DONE
|
||||
self.statusCommander=AUFTRAG.Status.DONE
|
||||
@@ -3983,7 +3997,7 @@ function AUFTRAG:onafterRepeat(From, Event, To)
|
||||
end
|
||||
|
||||
else
|
||||
self:E(self.lid.."ERROR: Mission can only be repeated by a CHIEF, WINGCOMMANDER or AIRWING! Stopping AUFTRAG")
|
||||
self:E(self.lid.."ERROR: Mission can only be repeated by a CHIEF, COMMANDER or LEGION! Stopping AUFTRAG")
|
||||
self:Stop()
|
||||
return
|
||||
end
|
||||
@@ -3992,7 +4006,9 @@ function AUFTRAG:onafterRepeat(From, Event, To)
|
||||
-- No mission assets.
|
||||
self.assets={}
|
||||
|
||||
for _,_groupdata in pairs(self.groupdata) do
|
||||
|
||||
-- Remove OPS groups. This also removes the mission from the OPSGROUP mission queue.
|
||||
for groupname,_groupdata in pairs(self.groupdata) do
|
||||
local groupdata=_groupdata --#AUFTRAG.GroupData
|
||||
local opsgroup=groupdata.opsgroup
|
||||
if opsgroup then
|
||||
|
||||
@@ -384,7 +384,7 @@ function BRIGADE:onafterStatus(From, Event, To)
|
||||
local mission=_mission --Ops.Auftrag#AUFTRAG
|
||||
|
||||
local prio=string.format("%d/%s", mission.prio, tostring(mission.importance)) ; if mission.urgent then prio=prio.." (!)" end
|
||||
local assets=string.format("%d/%d", mission:CountOpsGroups(), mission.nassets)
|
||||
local assets=string.format("%d/%d", mission:CountOpsGroups(), mission.Nassets or 0)
|
||||
local target=string.format("%d/%d Damage=%.1f", mission:CountMissionTargets(), mission:GetTargetInitialNumber(), mission:GetTargetDamage())
|
||||
|
||||
text=text..string.format("\n[%d] %s %s: Status=%s, Prio=%s, Assets=%s, Targets=%s", i, mission.name, mission.type, mission.status, prio, assets, target)
|
||||
|
||||
@@ -940,6 +940,9 @@ function NAVYGROUP:onbeforeUpdateRoute(From, Event, To, n, Speed, Depth)
|
||||
elseif self:IsStopped() then
|
||||
self:E(self.lid.."Update route denied. Group is STOPPED!")
|
||||
return false
|
||||
elseif self:IsHolding() then
|
||||
self:T(self.lid.."Update route denied. Group is holding position!")
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
@@ -684,12 +684,13 @@ function OPSGROUP:New(group)
|
||||
self:AddTransition("*", "Pickup", "*") -- Carrier and is on route to pick up cargo.
|
||||
self:AddTransition("*", "Loading", "*") -- Carrier is loading cargo.
|
||||
self:AddTransition("*", "Load", "*") -- Carrier loads cargo into carrier.
|
||||
self:AddTransition("*", "Loaded", "*") -- Carrier loaded all assigned/possible cargo into carrier.
|
||||
self:AddTransition("*", "Loaded", "*") -- Carrier loaded cargo into carrier.
|
||||
self:AddTransition("*", "LoadingDone", "*") -- Carrier loaded all assigned/possible cargo into carrier.
|
||||
self:AddTransition("*", "Transport", "*") -- Carrier is transporting cargo.
|
||||
self:AddTransition("*", "Unloading", "*") -- Carrier is unloading the cargo.
|
||||
self:AddTransition("*", "Unload", "*") -- Carrier unload a cargo group.
|
||||
self:AddTransition("*", "Unloaded", "*") -- Carrier unloaded all its current cargo.
|
||||
self:AddTransition("*", "UnloadingDone", "*") -- Carrier is unloading the cargo.
|
||||
self:AddTransition("*", "Unload", "*") -- Carrier unloads a cargo group.
|
||||
self:AddTransition("*", "Unloaded", "*") -- Carrier unloaded a cargo group.
|
||||
self:AddTransition("*", "UnloadingDone", "*") -- Carrier unloaded all its current cargo.
|
||||
self:AddTransition("*", "Delivered", "*") -- Carrier delivered ALL cargo of the transport assignment.
|
||||
|
||||
self:AddTransition("*", "TransportCancel", "*") -- Cancel (current) transport.
|
||||
@@ -904,7 +905,7 @@ end
|
||||
|
||||
--- Set default cruise altitude.
|
||||
-- @param #OPSGROUP self
|
||||
-- @param #number Altitude Altitude in feet. Default is 10,000 ft for airplanes and 1,000 feet for helicopters.
|
||||
-- @param #number Altitude Altitude in feet. Default is 10,000 ft for airplanes and 1,500 feet for helicopters.
|
||||
-- @return #OPSGROUP self
|
||||
function OPSGROUP:SetDefaultAltitude(Altitude)
|
||||
if Altitude then
|
||||
@@ -912,7 +913,7 @@ function OPSGROUP:SetDefaultAltitude(Altitude)
|
||||
else
|
||||
if self:IsFlightgroup() then
|
||||
if self.isHelo then
|
||||
self.altitudeCruise=UTILS.FeetToMeters(1000)
|
||||
self.altitudeCruise=UTILS.FeetToMeters(1500)
|
||||
else
|
||||
self.altitudeCruise=UTILS.FeetToMeters(10000)
|
||||
end
|
||||
@@ -6235,7 +6236,7 @@ function OPSGROUP:_CheckCargoTransport()
|
||||
-- Boarding finished ==> Transport cargo.
|
||||
if gotcargo and self.cargoTransport:_CheckRequiredCargos(self.cargoTZC) and not boarding then
|
||||
self:T(self.lid.."Boarding finished ==> Loaded")
|
||||
self:Loaded()
|
||||
self:LoadingDone()
|
||||
else
|
||||
-- No cargo and no one is boarding ==> check again if we can make anyone board.
|
||||
self:Loading()
|
||||
@@ -7301,6 +7302,9 @@ function OPSGROUP:onafterLoad(From, Event, To, CargoGroup, Carrier)
|
||||
-- Trigger embarked event for cargo group.
|
||||
CargoGroup:Embarked(self, carrier)
|
||||
|
||||
-- Trigger Loaded event.
|
||||
self:Loaded(CargoGroup)
|
||||
|
||||
-- Trigger "Loaded" event for current cargo transport.
|
||||
if self.cargoTransport then
|
||||
CargoGroup:_DelMyLift(self.cargoTransport)
|
||||
@@ -7315,15 +7319,15 @@ function OPSGROUP:onafterLoad(From, Event, To, CargoGroup, Carrier)
|
||||
|
||||
end
|
||||
|
||||
--- On after "Loaded" event. Carrier has loaded all (possible) cargo at the pickup zone.
|
||||
--- On after "LoadingDone" event. Carrier has loaded all (possible) cargo at the pickup zone.
|
||||
-- @param #OPSGROUP self
|
||||
-- @param #string From From state.
|
||||
-- @param #string Event Event.
|
||||
-- @param #string To To state.
|
||||
function OPSGROUP:onafterLoaded(From, Event, To)
|
||||
function OPSGROUP:onafterLoadingDone(From, Event, To)
|
||||
|
||||
-- Debug info.
|
||||
self:T(self.lid.."Carrier Loaded ==> Transport")
|
||||
self:T(self.lid.."Carrier Loading Done ==> Transport")
|
||||
|
||||
-- Order group to transport.
|
||||
self:__Transport(1)
|
||||
|
||||
Reference in New Issue
Block a user