From 92bc0389d3ec6dc0713c6f1ce2873831fc623412 Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 4 Aug 2026 18:21:53 +0200 Subject: [PATCH] Asset count --- Moose Development/Moose/Ops/Cohort.lua | 25 ++++++++++++++++++++ Moose Development/Moose/Ops/Commander.lua | 16 +++++++++++++ Moose Development/Moose/Ops/Intelligence.lua | 2 -- Moose Development/Moose/Ops/Legion.lua | 17 +++++++++++++ 4 files changed, 58 insertions(+), 2 deletions(-) diff --git a/Moose Development/Moose/Ops/Cohort.lua b/Moose Development/Moose/Ops/Cohort.lua index 8e0e1e834..50dae606e 100644 --- a/Moose Development/Moose/Ops/Cohort.lua +++ b/Moose Development/Moose/Ops/Cohort.lua @@ -1102,6 +1102,31 @@ function COHORT:CountAssets(InStock, MissionTypes, Attributes) return N end +--- Count available assets in legion warehouse stock. Spawned, requested and reserved assets are not counted. +-- @param #COHORT self +-- @param #table MissionTypes (Optional) Count only assest that can perform certain mission type(s). Default is all types. +-- @param #table Attributes (Optional) Count only assest that have a certain attribute(s), e.g. `WAREHOUSE.Attribute.AIR_BOMBER`. +-- @return #number Number of assets. +function COHORT:CountAvailableAssets(MissionTypes, Attributes) + + local N=0 + for _,_asset in pairs(self.assets) do + local asset=_asset --Functional.Warehouse#WAREHOUSE.Assetitem + + if not (asset.spawned or asset.requested or asset.isReserved) then + + if MissionTypes==nil or AUFTRAG.CheckMissionCapability(MissionTypes, self.missiontypes) then + if Attributes==nil or self:CheckAttribute(Attributes) then + N=N+1 --This is in stock. + end + end + end + end + + return N +end + + --- Get OPSGROUPs. -- @param #COHORT self -- @param #table MissionTypes (Optional) Count only assest that can perform certain mission type(s). Default is all types. diff --git a/Moose Development/Moose/Ops/Commander.lua b/Moose Development/Moose/Ops/Commander.lua index 3db6f3bab..5c7468f77 100644 --- a/Moose Development/Moose/Ops/Commander.lua +++ b/Moose Development/Moose/Ops/Commander.lua @@ -2112,6 +2112,22 @@ function COMMANDER:CountAssets(InStock, MissionTypes, Attributes) return N end +--- Count available assets of all assigned legions, which are in stock. Spawned and reserved assets are not counted. +-- @param #COMMANDER self +-- @param #table MissionTypes (Optional) Count only assest that can perform certain mission type(s). Default is all types. +-- @param #table Attributes (Optional) Count only assest that have a certain attribute(s), e.g. `WAREHOUSE.Attribute.AIR_BOMBER`. +-- @return #number Amount of asset groups. +function COMMANDER:CountAvailableAssets(MissionTypes, Attributes) + + local N=0 + for _,_legion in pairs(self.legions) do + local legion=_legion --Ops.Legion#LEGION + N=N+legion:CountAvailableAssets(MissionTypes, Attributes) + end + + return N +end + --- Count assets of all assigned legions. -- @param #COMMANDER self -- @param #table MissionTypes (Optional) Count only missions of these types. Default is all types. diff --git a/Moose Development/Moose/Ops/Intelligence.lua b/Moose Development/Moose/Ops/Intelligence.lua index 4467ad1b1..dc21335b2 100644 --- a/Moose Development/Moose/Ops/Intelligence.lua +++ b/Moose Development/Moose/Ops/Intelligence.lua @@ -856,8 +856,6 @@ end function INTEL:SetAgentAuto(switch) if switch==nil then switch=true - else - switch=false end self.update_detectionset=switch return self diff --git a/Moose Development/Moose/Ops/Legion.lua b/Moose Development/Moose/Ops/Legion.lua index bafbc4781..b5410083a 100644 --- a/Moose Development/Moose/Ops/Legion.lua +++ b/Moose Development/Moose/Ops/Legion.lua @@ -2098,6 +2098,23 @@ function LEGION:CountAssets(InStock, MissionTypes, Attributes) return N end +--- Count total number of available assets in the legion stock. +-- @param #LEGION self +-- @param #table MissionTypes (Optional) Count only assest that can perform certain mission type(s). Default is all types. +-- @param #table Attributes (Optional) Count only assest that have a certain attribute(s), e.g. `GROUP.Attribute.AIR_BOMBER`. +-- @return #number Amount of asset groups in stock. +function LEGION:CountAvailableAssets(MissionTypes, Attributes) + + local N=0 + + for _,_cohort in pairs(self.cohorts) do + local cohort=_cohort --Ops.Cohort#COHORT + N=N+cohort:CountAvailableAssets(MissionTypes,Attributes) + end + + return N +end + --- Get OPSGROUPs that are spawned and alive. -- @param #LEGION self -- @param #table MissionTypes (Optional) Get only assest that can perform certain mission type(s). Default is all types.