mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Merge pull request #519 from FlightControl-Master/517-Fix-designate-failing-on-empty-set
Fixed #517 - When detected set is empty, script fails when lasing is activated.
This commit is contained in:
commit
4d52c0ce3e
@ -1611,29 +1611,33 @@ function SET_UNIT:ForEachUnitPerThreatLevel( FromThreatLevel, ToThreatLevel, Ite
|
|||||||
|
|
||||||
local ThreatLevelSet = {}
|
local ThreatLevelSet = {}
|
||||||
|
|
||||||
for UnitName, UnitObject in pairs( self.Set ) do
|
if self:Count() ~= 0 then
|
||||||
local Unit = UnitObject -- Wrapper.Unit#UNIT
|
for UnitName, UnitObject in pairs( self.Set ) do
|
||||||
|
local Unit = UnitObject -- Wrapper.Unit#UNIT
|
||||||
local ThreatLevel = Unit:GetThreatLevel()
|
|
||||||
ThreatLevelSet[ThreatLevel] = ThreatLevelSet[ThreatLevel] or {}
|
local ThreatLevel = Unit:GetThreatLevel()
|
||||||
ThreatLevelSet[ThreatLevel].Set = ThreatLevelSet[ThreatLevel].Set or {}
|
ThreatLevelSet[ThreatLevel] = ThreatLevelSet[ThreatLevel] or {}
|
||||||
ThreatLevelSet[ThreatLevel].Set[UnitName] = UnitObject
|
ThreatLevelSet[ThreatLevel].Set = ThreatLevelSet[ThreatLevel].Set or {}
|
||||||
self:E( { ThreatLevel = ThreatLevel, ThreatLevelSet = ThreatLevelSet[ThreatLevel].Set } )
|
ThreatLevelSet[ThreatLevel].Set[UnitName] = UnitObject
|
||||||
end
|
self:E( { ThreatLevel = ThreatLevel, ThreatLevelSet = ThreatLevelSet[ThreatLevel].Set } )
|
||||||
|
end
|
||||||
local ThreatLevelIncrement = FromThreatLevel <= ToThreatLevel and 1 or -1
|
|
||||||
|
local ThreatLevelIncrement = FromThreatLevel <= ToThreatLevel and 1 or -1
|
||||||
for ThreatLevel = FromThreatLevel, ToThreatLevel, ThreatLevelIncrement do
|
|
||||||
self:E( { ThreatLevel = ThreatLevel } )
|
for ThreatLevel = FromThreatLevel, ToThreatLevel, ThreatLevelIncrement do
|
||||||
local ThreatLevelItem = ThreatLevelSet[ThreatLevel]
|
self:E( { ThreatLevel = ThreatLevel } )
|
||||||
if ThreatLevelItem then
|
local ThreatLevelItem = ThreatLevelSet[ThreatLevel]
|
||||||
self:ForEach( IteratorFunction, arg, ThreatLevelItem.Set )
|
if ThreatLevelItem then
|
||||||
|
self:ForEach( IteratorFunction, arg, ThreatLevelItem.Set )
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- Iterate the SET_UNIT and call an iterator function for each **alive** UNIT presence completely in a @{Zone}, providing the UNIT and optional parameters to the called function.
|
--- Iterate the SET_UNIT and call an iterator function for each **alive** UNIT presence completely in a @{Zone}, providing the UNIT and optional parameters to the called function.
|
||||||
-- @param #SET_UNIT self
|
-- @param #SET_UNIT self
|
||||||
-- @param Core.Zone#ZONE ZoneObject The Zone to be tested for.
|
-- @param Core.Zone#ZONE ZoneObject The Zone to be tested for.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user