GroupEnumUnitsInRange
- Parameters
-
whichGroup group
The group to be modified.
x real
X map coordinate.
y real
Y map coordinate.
radius real
Radius in map units.
filter boolexpr
A filter function that is run for each considered unit.
- comment
-
Clears a group and then adds units within given radius of map coordinates to it.
- note
-
Does not consider locust units. Locust units cannot be spatially enumerated.
- note
-
Within the filter function, the considered unit can be accessed with
GetFilterUnit
. - note
-
The filter function must return true (a truthy value in Lua) in order to add the unit to the group.
- note
-
If the filter function is
null
(nil
in Lua), all considered units will be added to the group. - note
-
The units are added consecutively to the group between filter runs, not in bulk after all filter runs were processed.
- note
-
In terms of running the filter function, units are processed in a certain order. The playing field is divided into sectors of 256x256, i.e., {[minX=0, minY=0, maxX=256, maxY=256], [minX=256, minY=0, maxX=512, maxY=256], [minX=0, minY=256, maxX=256, maxY=512], [minX=256, minY=256, maxX=512, maxY=512], ...}. The game keeps track what units are in what sector and the order in which they were added. The filters run from bottom to top sectors as an outer loop and from left to right sectors as an inner loop. Within each sector, the units are processed in reverse order in which they were added to the sector.
- note
-
The origin of the unit must be within the area of the circle to be considered. The collision size of the unit does not matter.
- note
-
Hidden units are not enumerated with this function.
- note
- patch
-
1.00
- Source
- common.j (suggest an edit or discuss on Github)
- return type
-
nothing
- Source code
-
native GroupEnumUnitsInRange takes group whichGroup, real x, real y, real radius, boolexpr filter returns nothing