Filter

Unary Filters

Unary filters are predicate functions that return boolean values.

These functions can be used as predicates for functions that take a unit predicate/filter parameter (e.g. BWAPI.Unit.getClosestUnit(), BWAPI.Game.getUnitsInRadius()). They can also be used as convenience functions to access values that may usually take multiple function calls to access.

UnitType delegate boolean filters

static BWAPI.Filter.IsTransport(unit) → bool

Equivalent to unit:getType():spaceProvided() > 0 and u:getType() ~= BWAPI.UnitTypes.Terran_Bunker

static BWAPI.Filter.CanProduce(unit) → bool

Equivalent to unit:getType():canProduce()

static BWAPI.Filter.CanAttack(unit) → bool

Equivalent to unit:getType():canAttack()

static BWAPI.Filter.CanMove(unit) → bool

Equivalent to unit:getType():canMove()

static BWAPI.Filter.IsFlyer(unit) → bool

Equivalent to unit:getType():isFlyer()

static BWAPI.Filter.RegeneratesHP(unit) → bool

Equivalent to unit:getType():regeneratesHP()

static BWAPI.Filter.IsSpellcaster(unit) → bool

Equivalent to unit:getType():isSpellcaster()

static BWAPI.Filter.HasPermanentCloak(unit) → bool

Equivalent to unit:getType():hasPermanentCloak()

static BWAPI.Filter.IsOrganic(unit) → bool

Equivalent to unit:getType():isOrganic()

static BWAPI.Filter.IsMechanical(unit) → bool

Equivalent to unit:getType():isMechanical()

static BWAPI.Filter.IsRobotic(unit) → bool

Equivalent to unit:getType():isRobotic()

static BWAPI.Filter.IsDetector(unit) → bool

Equivalent to unit:getType():isDetector()

static BWAPI.Filter.IsResourceContainer(unit) → bool

Equivalent to unit:getType():isResourceContainer()

static BWAPI.Filter.IsResourceDepot(unit) → bool

Equivalent to unit:getType():isResourceDepot()

static BWAPI.Filter.IsRefinery(unit) → bool

Equivalent to unit:getType():isRefinery()

static BWAPI.Filter.IsWorker(unit) → bool

Equivalent to unit:getType():isWorker()

static BWAPI.Filter.RequiresPsi(unit) → bool

Equivalent to unit:getType():requiresPsi()

static BWAPI.Filter.RequiresCreep(unit) → bool

Equivalent to unit:getType():requiresCreep()

static BWAPI.Filter.IsBurrowable(unit) → bool

Equivalent to unit:getType():isBurrowable()

static BWAPI.Filter.IsCloakable(unit) → bool

Equivalent to unit:getType():isCloakable()

static BWAPI.Filter.IsBuilding(unit) → bool

Equivalent to unit:getType():isBuilding()

static BWAPI.Filter.IsAddon(unit) → bool

Equivalent to unit:getType():isAddon()

static BWAPI.Filter.IsFlyingBuilding(unit) → bool

Equivalent to unit:getType():isFlyingBuilding()

static BWAPI.Filter.IsNeutral(unit) → bool

Equivalent to unit:getType():isNeutral()

static BWAPI.Filter.IsHero(unit) → bool

Equivalent to unit:getType():isHero()

static BWAPI.Filter.IsPowerup(unit) → bool

Equivalent to unit:getType():isPowerup()

static BWAPI.Filter.IsBeacon(unit) → bool

Equivalent to unit:getType():isBeacon()

static BWAPI.Filter.IsFlagBeacon(unit) → bool

Equivalent to unit:getType():isFlagBeacon()

static BWAPI.Filter.IsSpecialBuilding(unit) → bool

Equivalent to unit:getType():isSpecialBuilding()

static BWAPI.Filter.IsSpell(unit) → bool

Equivalent to unit:getType():isSpell()

static BWAPI.Filter.ProducesLarva(unit) → bool

Equivalent to unit:getType():producesLarva()

static BWAPI.Filter.IsMineralField(unit) → bool

Equivalent to unit:getType():isMineralField()

static BWAPI.Filter.IsCritter(unit) → bool

Equivalent to unit:getType():isCritter()

static BWAPI.Filter.CanBuildAddon(unit) → bool

Equivalent to unit:getType():canBuildAddon()

Unit boolean filters

static BWAPI.Filter.IsFlying(unit) → bool

Equivalent to unit:isFlying()

static BWAPI.Filter.Exists(unit) → bool

Equivalent to unit:exists()

static BWAPI.Filter.IsAttacking(unit) → bool

Equivalent to unit:isAttacking()

static BWAPI.Filter.IsBeingConstructed(unit) → bool

Equivalent to unit:isBeingConstructed()

static BWAPI.Filter.IsBeingGathered(unit) → bool

Equivalent to unit:isBeingGathered()

static BWAPI.Filter.IsBeingHealed(unit) → bool

Equivalent to unit:isBeingHealed()

static BWAPI.Filter.IsBlind(unit) → bool

Equivalent to unit:isBlind()

static BWAPI.Filter.IsBraking(unit) → bool

Equivalent to unit:isBraking()

static BWAPI.Filter.IsBurrowed(unit) → bool

Equivalent to unit:isBurrowed()

static BWAPI.Filter.IsCarryingGas(unit) → bool

Equivalent to unit:isCarryingGas()

static BWAPI.Filter.IsCarryingMinerals(unit) → bool

Equivalent to unit:isCarryingMinerals()

static BWAPI.Filter.IsCarryingSomething(unit) → bool

Equivalent to unit:isCarryingMinerals() or unit:isCarryingGas()

static BWAPI.Filter.IsCloaked(unit) → bool

Equivalent to unit:isCloaked()

static BWAPI.Filter.IsCompleted(unit) → bool

Equivalent to unit:isCompleted()

static BWAPI.Filter.IsConstructing(unit) → bool

Equivalent to unit:isConstructing()

static BWAPI.Filter.IsDefenseMatrixed(unit) → bool

Equivalent to unit:isDefenseMatrixed()

static BWAPI.Filter.IsDetected(unit) → bool

Equivalent to unit:isDetected()

static BWAPI.Filter.IsEnsnared(unit) → bool

Equivalent to unit:isEnsnared()

static BWAPI.Filter.IsFollowing(unit) → bool

Equivalent to unit:isFollowing()

static BWAPI.Filter.IsGatheringGas(unit) → bool

Equivalent to unit:isGatheringGas()

static BWAPI.Filter.IsGatheringMinerals(unit) → bool

Equivalent to unit:isGatheringMinerals()

static BWAPI.Filter.IsHallucination(unit) → bool

Equivalent to unit:isHallucination()

static BWAPI.Filter.IsHoldingPosition(unit) → bool

Equivalent to unit:isHoldingPosition()

static BWAPI.Filter.IsIdle(unit) → bool

Equivalent to unit:isIdle()

static BWAPI.Filter.IsInterruptible(unit) → bool

Equivalent to unit:isInterruptible()

static BWAPI.Filter.IsInvincible(unit) → bool

Equivalent to unit:isInvincible()

static BWAPI.Filter.IsIrradiated(unit) → bool

Equivalent to unit:isIrradiated()

static BWAPI.Filter.IsLifted(unit) → bool

Equivalent to unit:isLifted()

static BWAPI.Filter.IsLoaded(unit) → bool

Equivalent to unit:isLoaded()

static BWAPI.Filter.IsLockedDown(unit) → bool

Equivalent to unit:isLockedDown()

static BWAPI.Filter.IsMaelstrommed(unit) → bool

Equivalent to unit:isMaelstrommed()

static BWAPI.Filter.IsMorphing(unit) → bool

Equivalent to unit:isMorphing()

static BWAPI.Filter.IsMoving(unit) → bool

Equivalent to unit:isMoving()

static BWAPI.Filter.IsParasited(unit) → bool

Equivalent to unit:isParasited()

static BWAPI.Filter.IsPatrolling(unit) → bool

Equivalent to unit:isPatrolling()

static BWAPI.Filter.IsPlagued(unit) → bool

Equivalent to unit:isPlagued()

static BWAPI.Filter.IsRepairing(unit) → bool

Equivalent to unit:isRepairing()

static BWAPI.Filter.IsResearching(unit) → bool

Equivalent to unit:isResearching()

static BWAPI.Filter.IsSieged(unit) → bool

Equivalent to unit:isSieged()

static BWAPI.Filter.IsStartingAttack(unit) → bool

Equivalent to unit:isStartingAttack()

static BWAPI.Filter.IsStasised(unit) → bool

Equivalent to unit:isStasised()

static BWAPI.Filter.IsStimmed(unit) → bool

Equivalent to unit:isStimmed()

static BWAPI.Filter.IsStuck(unit) → bool

Equivalent to unit:isStuck()

static BWAPI.Filter.IsTraining(unit) → bool

Equivalent to unit:isTraining()

static BWAPI.Filter.IsUnderAttack(unit) → bool

Equivalent to unit:isUnderAttack()

static BWAPI.Filter.IsUnderDarkSwarm(unit) → bool

Equivalent to unit:isUnderDarkSwarm()

static BWAPI.Filter.IsUnderDisruptionWeb(unit) → bool

Equivalent to unit:isUnderDisruptionWeb()

static BWAPI.Filter.IsUnderStorm(unit) → bool

Equivalent to unit:isUnderStorm()

static BWAPI.Filter.IsPowered(unit) → bool

Equivalent to unit:isPowered()

static BWAPI.Filter.IsVisible(unit) → bool

Equivalent to unit:isVisible()

Comparison Filters

Comparison filters are functions that return a value.

These can either be used as convenience functions to access values that usually take multiple function calls to get, or can be used with BWAPI.Lowest()/BWAPI.Highest() to create a ‘best’ function to be used with BWAPI.Game.getBestUnit() (as long as the returned value from the comparison filter can be compared using less than/greater than).

static BWAPI.Filter.HP(unit) → int

Equivalent to unit:getHitPoints()

static BWAPI.Filter.MaxHP(unit) → int

Equivalent to unit:getType():maxHitPoints()

static BWAPI.Filter.HP_Percent(unit) → int

Equivalent to math.floor(unit:getHitPoints() / unit:getType():maxHitPoints() * 100) if unit:getType():maxHitPoints() ~= 0, or 0 otherwise.

static BWAPI.Filter.Shields(unit) → int

Equivalent to unit:getShields()

static BWAPI.Filter.MaxShields(unit) → int

Equivalent to unit:getType():maxShields()

static BWAPI.Filter.Shields_Percent(unit) → int

Equivalent to math.floor(unit:getShields() / unit:getType():maxShields() * 100) if unit:getType():maxShields() ~= 0, or 0 otherwise.

static BWAPI.Filter.Energy(unit) → int

Equivalent to unit:getEnergy()

static BWAPI.Filter.MaxEnergy(unit) → int

Equivalent to unit:getPlayer():maxEnergy(unit:getType())

static BWAPI.Filter.Energy_Percent(unit) → int

Equivalent to math.floor(unit:getEnergy() / unit:getPlayer():maxEnergy(unit:getType()) * 100) if unit:getPlayer():maxEnergy(unit:getType()) ~= 0, or 0 otherwise.

static BWAPI.Filter.Armor(unit) → int

Equivalent to unit:getPlayer():armor(unit:getType())

static BWAPI.Filter.ArmorUpgrade(unit) → UpgradeType

Equivalent to unit:getType():armorUpgrade()

static BWAPI.Filter.MineralPrice(unit) → int

Equivalent to unit:getType():mineralPrice()

static BWAPI.Filter.GasPrice(unit) → int

Equivalent to unit:getType():gasPrice()

static BWAPI.Filter.BuildTime(unit) → int

Equivalent to unit:getType():buildTime()

static BWAPI.Filter.SupplyRequired(unit) → int

Equivalent to unit:getType():supplyRequired()

static BWAPI.Filter.SupplyProvided(unit) → int

Equivalent to unit:getType():supplyProvided()

static BWAPI.Filter.SpaceRequired(unit) → int

Equivalent to unit:getType():spaceRequired()

static BWAPI.Filter.SpaceRemaining(unit) → int

Equivalent to unit:spaceRemaining()

static BWAPI.Filter.SpaceProvided(unit) → int

Equivalent to unit:getType():spaceProvided()

static BWAPI.Filter.BuildScore(unit) → int

Equivalent to unit:getType():buildScore()

static BWAPI.Filter.DestroyScore(unit) → int

Equivalent to unit:getType():destroyScore()

static BWAPI.Filter.TopSpeed(unit) → double

Equivalent to unit:getPlayer():topSpeed(unit:getType())

static BWAPI.Filter.SightRange(unit) → int

Equivalent to unit:getPlayer():sightRange(unit:getType())

static BWAPI.Filter.MaxWeaponCooldown(unit) → int

Equivalent to unit:getPlayer():weaponDamageCooldown(unit:getType())

static BWAPI.Filter.SizeType(unit) → UnitSizeType

Equivalent to unit:getType():size()

static BWAPI.Filter.GroundWeapon(unit) → WeaponType

Equivalent to unit:getType():groundWeapon()

static BWAPI.Filter.AirWeapon(unit) → WeaponType

Equivalent to unit:getType():airWeapon()

static BWAPI.Filter.GetType(unit) → UnitType

Equivalent to unit:getType()

static BWAPI.Filter.GetRace(unit) → Race

Equivalent to unit:getType():getRace()

static BWAPI.Filter.GetPlayer(unit) → Player

Equivalent to unit:getPlayer()

static BWAPI.Filter.Resources(unit) → int

Equivalent to unit:getResources()

static BWAPI.Filter.ResourceGroup(unit) → int

Equivalent to unit:getResourceGroup()

static BWAPI.Filter.AcidSporeCount(unit) → int

Equivalent to unit:getAcidSporeCount()

static BWAPI.Filter.InterceptorCount(unit) → int

Equivalent to unit:getInterceptorCount()

static BWAPI.Filter.ScarabCount(unit) → int

Equivalent to unit:getScarabCount()

static BWAPI.Filter.SpiderMineCount(unit) → int

Equivalent to unit:getSpiderMineCount()

static BWAPI.Filter.WeaponCooldown(unit) → int

Equivalent to unit:getGroundWeaponCooldown()

static BWAPI.Filter.SpellCooldown(unit) → int

Equivalent to unit:getSpellCooldown()

static BWAPI.Filter.DefenseMatrixPoints(unit) → int

Equivalent to unit:getDefenseMatrixPoints()

static BWAPI.Filter.DefenseMatrixTime(unit) → int

Equivalent to unit:getDefenseMatrixTimer()

static BWAPI.Filter.EnsnareTime(unit) → int

Equivalent to unit:getEnsnareTimer()

static BWAPI.Filter.IrradiateTime(unit) → int

Equivalent to unit:getIrradiateTimer()

static BWAPI.Filter.LockdownTime(unit) → int

Equivalent to unit:getLockdownTimer()

static BWAPI.Filter.MaelstromTime(unit) → int

Equivalent to unit:getMaelstromTimer()

static BWAPI.Filter.OrderTime(unit) → int

Equivalent to unit:getOrderTimer()

static BWAPI.Filter.PlagueTimer(unit) → int

Equivalent to unit:getPlagueTimer()

static BWAPI.Filter.RemoveTime(unit) → int

Equivalent to unit:getRemoveTimer()

static BWAPI.Filter.StasisTime(unit) → int

Equivalent to unit:getStasisTimer()

static BWAPI.Filter.StimTime(unit) → int

Equivalent to unit:getStimTimer()

static BWAPI.Filter.BuildType(unit) → UnitType

Equivalent to unit:getBuildType()

static BWAPI.Filter.RemainingBuildTime(unit) → int

Equivalent to unit:getRemainingBuildTime()

static BWAPI.Filter.RemainingTrainTime(unit) → int

Equivalent to unit:getRemainingTrainTime()

static BWAPI.Filter.Target(unit) → Unit

Equivalent to unit:getTarget()

static BWAPI.Filter.CurrentOrder(unit) → Order

Equivalent to unit:getOrder()

static BWAPI.Filter.SecondaryOrder(unit) → Order

Equivalent to unit:getSecondaryOrder()

static BWAPI.Filter.OrderTarget(unit) → Unit

Equivalent to unit:getOrderTarget()

static BWAPI.Filter.GetLeft(unit) → int

Equivalent to unit:getLeft()

static BWAPI.Filter.GetTop(unit) → int

Equivalent to unit:getTop()

static BWAPI.Filter.GetRight(unit) → int

Equivalent to unit:getRight()

static BWAPI.Filter.GetBottom(unit) → int

Equivalent to unit:getBottom()