This commit is contained in:
Frank
2020-07-23 00:24:59 +02:00
parent ec809085b4
commit 98971736f8
8 changed files with 375 additions and 327 deletions

View File

@@ -740,19 +740,6 @@ function AIRWING:onafterStart(From, Event, To)
-- Info.
self:I(self.lid..string.format("Starting AIRWING v%s", AIRWING.version))
-- Menu.
if false then
-- Add F10 radio menu.
self:_SetMenuCoalition()
for _,_squadron in pairs(self.squadrons) do
local squadron=_squadron --Ops.Squadron#SQUADRON
self:_AddSquadonMenu(squadron)
end
end
end
--- Update status.
@@ -2162,140 +2149,6 @@ function AIRWING:GetMissionFromRequest(Request)
return self:GetMissionFromRequestID(Request.uid)
end
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Menu Functions
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--- Patrol carrier.
-- @param #AIRWING self
-- @return #AIRWING self
function AIRWING:_SetMenuCoalition()
-- Get coalition.
local Coalition=self:GetCoalition()
-- Init menu table.
self.menu=self.menu or {}
-- Init menu coalition table.
self.menu[Coalition]=self.menu[Coalition] or {}
-- Shortcut.
local menu=self.menu[Coalition]
if self.menusingle then
-- F10/Skipper/...
if not menu.AIRWING then
menu.AIRWING=MENU_COALITION:New(Coalition, "AIRWING")
end
else
-- F10/Skipper/<Carrier Alias>/...
if not menu.Root then
menu.Root=MENU_COALITION:New(Coalition, "AIRWING")
end
menu.AIRWING=MENU_COALITION:New(Coalition, self.alias, menu.Root)
end
-------------------
-- Squadron Menu --
-------------------
menu.Squadron={}
menu.Squadron.Main= MENU_COALITION:New(Coalition, "Squadrons", menu.AIRWING)
menu.Warehouse={}
menu.Warehouse.Main = MENU_COALITION:New(Coalition, "Warehouse", menu.AIRWING)
menu.Warehouse.Reports = MENU_COALITION_COMMAND:New(Coalition, "Reports On/Off", menu.Warehouse.Main, self.WarehouseReportsToggle, self)
menu.Warehouse.Assets = MENU_COALITION_COMMAND:New(Coalition, "Report Assets", menu.Warehouse.Main, self.ReportWarehouseStock, self)
menu.ReportSquadrons = MENU_COALITION_COMMAND:New(Coalition, "Report Squadrons", menu.AIRWING, self.ReportSquadrons, self)
end
--- Report squadron status.
-- @param #AIRWING self
function AIRWING:ReportSquadrons()
local text="Squadron Report:"
for i,_squadron in pairs(self.squadrons) do
local squadron=_squadron
local name=squadron.name
local nspawned=0
local nstock=0
for _,_asset in pairs(squadron.assets) do
local asset=_asset --Functional.Warehouse#WAREHOUSE.Assetitem
local n=asset.nunits
if asset.spawned then
nspawned=nspawned+n
else
nstock=nstock+n
end
end
text=string.format("\n%s: AC on duty=%d, in stock=%d", name, nspawned, nstock)
end
self:I(self.lid..text)
MESSAGE:New(text, 10, "AIRWING", true):ToCoalition(self:GetCoalition())
end
--- Add sub menu for this intruder.
-- @param #AIRWING self
-- @param Ops.Squadron#SQUADRON squadron The squadron data.
function AIRWING:_AddSquadonMenu(squadron)
local Coalition=self:GetCoalition()
local root=self.menu[Coalition].Squadron.Main
local menu=MENU_COALITION:New(Coalition, squadron.name, root)
MENU_COALITION_COMMAND:New(Coalition, "Report", menu, self._ReportSq, self, squadron)
MENU_COALITION_COMMAND:New(Coalition, "Launch CAP", menu, self._LaunchCAP, self, squadron)
-- Set menu.
squadron.menu=menu
end
--- Report squadron status.
-- @param #AIRWING self
-- @param Ops.Squadron#SQUADRON squadron The squadron object.
function AIRWING:_ReportSq(squadron)
local text=string.format("%s: %s assets:", squadron.name, tostring(squadron.categoryname))
for i,_asset in pairs(squadron.assets) do
local asset=_asset --Functional.Warehouse#WAREHOUSE.Assetitem
text=text..string.format("%d.) ")
end
end
--- Warehouse reports on/off.
-- @param #AIRWING self
function AIRWING:WarehouseReportsToggle()
self.Report=not self.Report
MESSAGE:New(string.format("Warehouse reports are now %s", tostring(self.Report)), 10, "AIRWING", true):ToCoalition(self:GetCoalition())
end
--- Report warehouse stock.
-- @param #AIRWING self
function AIRWING:ReportWarehouseStock()
local text=self:_GetStockAssetsText(false)
MESSAGE:New(text, 10, "AIRWING", true):ToCoalition(self:GetCoalition())
end
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------