mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Ops
This commit is contained in:
parent
cee443e28d
commit
9838e1af19
@ -508,7 +508,6 @@ function AUFTRAG:New(Type)
|
||||
self:AddTransition("*", "GroupDead", "*")
|
||||
self:AddTransition("*", "AssetDead", "*")
|
||||
|
||||
|
||||
-- Init status update.
|
||||
self:__Status(-1)
|
||||
|
||||
@ -1767,7 +1766,7 @@ function AUFTRAG:onafterStatus(From, Event, To)
|
||||
|
||||
-- Check if mission is not OVER yet.
|
||||
if self:IsNotOver() then
|
||||
|
||||
|
||||
if self:CheckGroupsDone() then
|
||||
|
||||
-- All groups have reported MISSON DONE.
|
||||
@ -1873,7 +1872,8 @@ function AUFTRAG:Evaluate()
|
||||
text=text..string.format("Targets = %d/%d\n", self.Ntargets, Ntargets)
|
||||
text=text..string.format("Damage = %.1f %%\n", targetdamage)
|
||||
text=text..string.format("Success Cond = %s\n", tostring(successCondition))
|
||||
text=text..string.format("Failure Cond = %s", tostring(failureCondition))
|
||||
text=text..string.format("Failure Cond = %s\n", tostring(failureCondition))
|
||||
text=text..string.format("Failed = %s", tostring(failed))
|
||||
self:I(self.lid..text)
|
||||
|
||||
if failed then
|
||||
@ -2372,8 +2372,6 @@ function AUFTRAG:onafterRepeat(From, Event, To)
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
--- On after "Stop" event. Remove mission from AIRWING and FLIGHTGROUP mission queues.
|
||||
-- @param #AUFTRAG self
|
||||
-- @param #string From From state.
|
||||
|
||||
@ -721,7 +721,7 @@ function FLIGHTGROUP:onafterStatus(From, Event, To)
|
||||
end
|
||||
|
||||
-- Element status.
|
||||
if self.verbose>1 or true then
|
||||
if self.verbose>1 then
|
||||
local text="Elements:"
|
||||
for i,_element in pairs(self.elements) do
|
||||
local element=_element --#FLIGHTGROUP.Element
|
||||
@ -970,7 +970,7 @@ function FLIGHTGROUP:OnEventBirth(EventData)
|
||||
end
|
||||
|
||||
-- Set element to spawned state.
|
||||
self:I(self.lid..string.format("EVENT: Element %s born at airbase %s==> spawned", element.name, self.homebase and self.homebase:GetName() or "unknown"))
|
||||
self:T(self.lid..string.format("EVENT: Element %s born at airbase %s==> spawned", element.name, self.homebase and self.homebase:GetName() or "unknown"))
|
||||
self:ElementSpawned(element)
|
||||
|
||||
end
|
||||
@ -1145,7 +1145,7 @@ function FLIGHTGROUP:OnEventUnitLost(EventData)
|
||||
|
||||
-- Check that this is the right group.
|
||||
if EventData and EventData.IniGroup and EventData.IniUnit and EventData.IniGroupName and EventData.IniGroupName==self.groupname then
|
||||
self:I(self.lid..string.format("EVENT: Unit %s lost!", EventData.IniUnitName))
|
||||
self:T(self.lid..string.format("EVENT: Unit %s lost!", EventData.IniUnitName))
|
||||
|
||||
local unit=EventData.IniUnit
|
||||
local group=EventData.IniGroup
|
||||
@ -1155,7 +1155,7 @@ function FLIGHTGROUP:OnEventUnitLost(EventData)
|
||||
local element=self:GetElementByName(unitname)
|
||||
|
||||
if element then
|
||||
self:T3(self.lid..string.format("EVENT: Element %s crashed ==> dead", element.name))
|
||||
self:I(self.lid..string.format("EVENT: Element %s unit lost ==> dead", element.name))
|
||||
self:ElementDead(element)
|
||||
end
|
||||
|
||||
@ -1276,7 +1276,7 @@ function FLIGHTGROUP:onafterElementTaxiing(From, Event, To, Element)
|
||||
local TerminalID=Element.parking and tostring(Element.parking.TerminalID) or "N/A"
|
||||
|
||||
-- Debug info.
|
||||
self:I(self.lid..string.format("Element taxiing %s. Parking spot %s is now free", Element.name, TerminalID))
|
||||
self:T(self.lid..string.format("Element taxiing %s. Parking spot %s is now free", Element.name, TerminalID))
|
||||
|
||||
-- Set parking spot to free. Also for FC.
|
||||
self:_SetElementParkingFree(Element)
|
||||
@ -1293,7 +1293,7 @@ end
|
||||
-- @param #FLIGHTGROUP.Element Element The flight group element.
|
||||
-- @param Wrapper.Airbase#AIRBASE airbase The airbase if applicable or nil.
|
||||
function FLIGHTGROUP:onafterElementTakeoff(From, Event, To, Element, airbase)
|
||||
self:I(self.lid..string.format("Element takeoff %s at %s airbase.", Element.name, airbase and airbase:GetName() or "unknown"))
|
||||
self:T(self.lid..string.format("Element takeoff %s at %s airbase.", Element.name, airbase and airbase:GetName() or "unknown"))
|
||||
|
||||
-- Helos with skids just take off without taxiing!
|
||||
if Element.parking then
|
||||
@ -1434,7 +1434,7 @@ end
|
||||
-- @param #string Event Event.
|
||||
-- @param #string To To state.
|
||||
function FLIGHTGROUP:onafterParking(From, Event, To)
|
||||
self:I(self.lid..string.format("Flight is parking"))
|
||||
self:T(self.lid..string.format("Flight is parking"))
|
||||
|
||||
local airbase=self:GetClosestAirbase() --self.group:GetCoordinate():GetClosestAirbase()
|
||||
|
||||
@ -1690,7 +1690,7 @@ function FLIGHTGROUP:onafterUpdateRoute(From, Event, To, n)
|
||||
n=n or self.currentwp+1
|
||||
|
||||
-- Update waypoint tasks, i.e. inject WP tasks into waypoint table.
|
||||
self:_UpdateWaypointTasks()
|
||||
self:_UpdateWaypointTasks(n)
|
||||
|
||||
-- Waypoints.
|
||||
local wp={}
|
||||
@ -1710,7 +1710,7 @@ function FLIGHTGROUP:onafterUpdateRoute(From, Event, To, n)
|
||||
-- Debug info.
|
||||
local hb=self.homebase and self.homebase:GetName() or "unknown"
|
||||
local db=self.destbase and self.destbase:GetName() or "unknown"
|
||||
self:I(self.lid..string.format("Updating route for WP #%d-%d homebase=%s destination=%s", n, #wp, hb, db))
|
||||
self:T(self.lid..string.format("Updating route for WP #%d-%d homebase=%s destination=%s", n, #wp, hb, db))
|
||||
|
||||
|
||||
if #wp>1 then
|
||||
@ -1905,7 +1905,8 @@ end
|
||||
-- @param #number SpeedLand Landing speed in knots. Default 170 kts.
|
||||
function FLIGHTGROUP:onafterRTB(From, Event, To, airbase, SpeedTo, SpeedHold, SpeedLand)
|
||||
|
||||
self:I(self.lid..string.format("RTB: event=%s: %s --> %s to %s", Event, From, To, airbase:GetName()))
|
||||
-- Debug info.
|
||||
self:T(self.lid..string.format("RTB: event=%s: %s --> %s to %s", Event, From, To, airbase:GetName()))
|
||||
|
||||
-- Set the destination base.
|
||||
self.destbase=airbase
|
||||
@ -3043,7 +3044,8 @@ function FLIGHTGROUP:_SetElementParkingAt(Element, Spot)
|
||||
|
||||
if Spot then
|
||||
|
||||
self:I(self.lid..string.format("Element %s is parking on spot %d", Element.name, Spot.TerminalID))
|
||||
-- Debug info.
|
||||
self:T(self.lid..string.format("Element %s is parking on spot %d", Element.name, Spot.TerminalID))
|
||||
|
||||
if self.flightcontrol then
|
||||
|
||||
|
||||
@ -314,6 +314,18 @@ end
|
||||
-- Status
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
--- Update status.
|
||||
-- @param #NAVYGROUP self
|
||||
function NAVYGROUP:onbeforeStatus(From, Event, To)
|
||||
|
||||
if self:IsDead() or self:IsStopped() or self:IsAlive()==nil then
|
||||
self:I(self.lid..string.format("Onbefore Status ==> false"))
|
||||
return false
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
--- Update status.
|
||||
-- @param #NAVYGROUP self
|
||||
function NAVYGROUP:onafterStatus(From, Event, To)
|
||||
@ -482,16 +494,16 @@ end
|
||||
function NAVYGROUP:onafterUpdateRoute(From, Event, To, n, Speed, Depth)
|
||||
|
||||
-- Update route from this waypoint number onwards.
|
||||
n=n or self:GetWaypointIndexNext(true)
|
||||
n=n or self:GetWaypointIndexNext(self.adinfinitum)
|
||||
|
||||
-- Debug info.
|
||||
self:T(self.lid..string.format("FF Update route n=%d", n))
|
||||
|
||||
-- Update waypoint tasks, i.e. inject WP tasks into waypoint table.
|
||||
self:_UpdateWaypointTasks()
|
||||
self:_UpdateWaypointTasks(n)
|
||||
|
||||
-- Waypoints.
|
||||
local waypoints={}
|
||||
|
||||
-- Speed.
|
||||
--local speed=Speed and UTILS.KnotsToKmph(Speed) or self.speedCruise
|
||||
|
||||
-- Depth for submarines.
|
||||
local depth=Depth or 0
|
||||
@ -736,7 +748,6 @@ end
|
||||
-- @param #string From From state.
|
||||
-- @param #string Event Event.
|
||||
-- @param #string To To state.
|
||||
-- @param #number Depth Dive depth in meters.
|
||||
function NAVYGROUP:onafterSurface(From, Event, To)
|
||||
|
||||
self.depth=0
|
||||
@ -926,7 +937,7 @@ function NAVYGROUP:_InitGroup()
|
||||
element.status=OPSGROUP.ElementStatus.INUTERO
|
||||
table.insert(self.elements, element)
|
||||
|
||||
self:GetAmmoUnit(unit, true)
|
||||
self:GetAmmoUnit(unit, false)
|
||||
|
||||
if unit:IsAlive() then
|
||||
self:ElementSpawned(element)
|
||||
@ -1145,7 +1156,7 @@ function NAVYGROUP:_CheckTurnsIntoWind()
|
||||
end
|
||||
|
||||
-- Debug output.
|
||||
self:I(self.lid..text)
|
||||
self:T(self.lid..text)
|
||||
|
||||
|
||||
-- Loop over all slots.
|
||||
|
||||
@ -1483,7 +1483,7 @@ function OPSGROUP:onbeforeMissionStart(From, Event, To, Mission)
|
||||
self:I(self.lid..string.format("Starting mission %s, FSM=%s, LateActivated=%s, UnControlled=%s", tostring(Mission.name), self:GetState(), tostring(self:IsLateActivated()), tostring(self:IsUncontrolled())))
|
||||
|
||||
-- Delay for route to mission. Group needs to be activated and controlled.
|
||||
local delay=1
|
||||
local delay=0
|
||||
|
||||
-- Check if group is spawned.
|
||||
if self:IsInUtero() then
|
||||
@ -1491,7 +1491,7 @@ function OPSGROUP:onbeforeMissionStart(From, Event, To, Mission)
|
||||
-- Activate group if it is late activated.
|
||||
if self:IsLateActivated() then
|
||||
self:Activate(delay)
|
||||
delay=delay+1
|
||||
--delay=delay+1
|
||||
end
|
||||
|
||||
end
|
||||
@ -1515,7 +1515,7 @@ function OPSGROUP:onafterMissionStart(From, Event, To, Mission)
|
||||
-- Debug output.
|
||||
local text=string.format("Starting %s Mission %s, target %s", Mission.type, tostring(Mission.name), Mission:GetTargetName())
|
||||
self:T(self.lid..text)
|
||||
MESSAGE:New(text, 30, self.groupname):ToAllIf(true)
|
||||
MESSAGE:New(text, 30, self.groupname):ToAllIf(self.Debug)
|
||||
|
||||
-- Set current mission.
|
||||
self.currentmission=Mission.auftragsnummer
|
||||
@ -1524,7 +1524,7 @@ function OPSGROUP:onafterMissionStart(From, Event, To, Mission)
|
||||
Mission:SetGroupStatus(self, AUFTRAG.GroupStatus.STARTED)
|
||||
|
||||
-- Set mission status to STARTED.
|
||||
Mission:Started()
|
||||
Mission:__Started(3)
|
||||
|
||||
-- Route group to mission zone.
|
||||
self:RouteToMission(Mission, 3)
|
||||
@ -1541,7 +1541,7 @@ function OPSGROUP:onafterMissionExecute(From, Event, To, Mission)
|
||||
|
||||
local text=string.format("Executing %s Mission %s, target %s", Mission.type, tostring(Mission.name), Mission:GetTargetName())
|
||||
self:T(self.lid..text)
|
||||
MESSAGE:New(text, 30, self.groupname):ToAllIf(true)
|
||||
MESSAGE:New(text, 30, self.groupname):ToAllIf(self.Debug)
|
||||
|
||||
-- Set group mission status to EXECUTING.
|
||||
Mission:SetGroupStatus(self, AUFTRAG.GroupStatus.EXECUTING)
|
||||
@ -1658,7 +1658,7 @@ function OPSGROUP:onafterMissionDone(From, Event, To, Mission)
|
||||
-- Debug info.
|
||||
local text=string.format("Mission %s DONE!", Mission.name)
|
||||
self:I(self.lid..text)
|
||||
MESSAGE:New(text, 30, self.groupname):ToAllIf(true)
|
||||
MESSAGE:New(text, 30, self.groupname):ToAllIf(self.Debug)
|
||||
|
||||
-- Set group status.
|
||||
Mission:SetGroupStatus(self, AUFTRAG.GroupStatus.DONE)
|
||||
@ -2189,17 +2189,18 @@ end
|
||||
|
||||
--- Initialize Mission Editor waypoints.
|
||||
-- @param #OPSGROUP self
|
||||
function OPSGROUP:_UpdateWaypointTasks()
|
||||
-- @param #number n Waypoint
|
||||
function OPSGROUP:_UpdateWaypointTasks(n)
|
||||
|
||||
local waypoints=self.waypoints
|
||||
local nwaypoints=#waypoints
|
||||
|
||||
for i,wp in pairs(waypoints) do
|
||||
|
||||
if i>self.currentwp or nwaypoints==1 then
|
||||
if i>=n or nwaypoints==1 then
|
||||
|
||||
-- Debug info.
|
||||
self:I(self.lid..string.format("Updating waypoint task for waypoint %d/%d. Last waypoint passed %d", i, nwaypoints, self.currentwp))
|
||||
self:T(self.lid..string.format("Updating waypoint task for waypoint %d/%d. Last waypoint passed %d", i, nwaypoints, self.currentwp))
|
||||
|
||||
-- Tasks of this waypoint
|
||||
local taskswp={}
|
||||
@ -2212,6 +2213,7 @@ function OPSGROUP:_UpdateWaypointTasks()
|
||||
wp.task=self.group:TaskCombo(taskswp)
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user