# Tactical AI Filter Alliance

Grammar — Tactical AI Filter - include only alliance in filter
FlagsNative | Action

Sets the specified AI Filter to only include either enemy or allied units. Use this and the other “Tactical AI Filter” actions to set up an AI Filter, which can then be used in a “Tactical AI Filter - Run” function to filter a unit group.

# Arguments

Returns — void

native void AISetFilterAlliance(aifilter filter, int want);

Category: AI Advanced / Filters / Actions

# Examples

campaigns/liberty.sc2campaignbase.sc2data/TriggerLibs/Tactical/TactCampAI.galaxy:243

    //
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterLifePerMarker(filter, damage*0.5, mark);
    AISetFilterLifeSortReference(filter, damage, damage*c_distanceFromDamage); 

campaigns/liberty.sc2campaignbase.sc2data/TriggerLibs/Tactical/TactCampAI.galaxy:438

    //
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr("-;Missile,Self,Stasis,Dead,Hidden,Invulnerable"));
    AISetFilterLifePerMarker(filter, damage, mark);

campaigns/liberty.sc2campaignbase.sc2data/TriggerLibs/Tactical/TactCampAI.galaxy:560

    filter = AIFilter(player);
    AISetFilterBits(filter, UnitFilterStr(AIAbilityStr(player, c_AB_ConsumeDNA, c_fieldFilters)));
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterRange(filter, aiUnit, AIAbilityFixed(player, c_AB_ConsumeDNA, c_fieldRange0));
    AISetFilterLifeSortReference(filter, damage, damage*c_distanceFromDamage);

campaigns/liberty.sc2campaignbase.sc2data/TriggerLibs/Tactical/TactCampAI.galaxy:660

    //  Only target buildings.
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr("Structure;Construction,Missile,Self,Stasis,Dead,Hidden,Invulnerable"));
    AISetFilterRange(filter, aiUnit, AIAbilityFixed(player, c_AB_PlasmaBlast, c_fieldRange0));

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh03a.sc2map/MapScript.galaxy:465

    }

    AISetFilterAlliance(lv_snipeFilter, c_playerGroupEnemy);
    AISetFilterBits(lv_snipeFilter, libNtve_gf_ConvertTargetFilterStringToUnitFilter(CatalogFieldValueGet(c_gameCatalogAbil, "Snipe", "TargetFilters[" + IntToString(0) + "]", lp_owner)));
    AISetFilterRange(lv_snipeFilter, lp_ghost, (StringToFixed(CatalogFieldValueGet(c_gameCatalogAbil, "Snipe", "Range[" + IntToString(0) + "]", lp_owner)) + 1.0));

campaigns/liberty.sc2campaign/base.sc2maps/maps/campaign/ttosh03a.sc2mapMapScript.galaxy:465

    }

    AISetFilterAlliance(lv_snipeFilter, c_playerGroupEnemy);
    AISetFilterBits(lv_snipeFilter, libNtve_gf_ConvertTargetFilterStringToUnitFilter(CatalogFieldValueGet(c_gameCatalogAbil, "Snipe", "TargetFilters[" + IntToString(0) + "]", lp_owner)));
    AISetFilterRange(lv_snipeFilter, lp_ghost, (StringToFixed(CatalogFieldValueGet(c_gameCatalogAbil, "Snipe", "Range[" + IntToString(0) + "]", lp_owner)) + 1.0));

campaigns/swarm.sc2campaignbase.sc2data/TriggerLibs/Tactical/TactCampAI.galaxy:243

    //
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterLifePerMarker(filter, damage*0.5, mark);
    AISetFilterLifeSortReference(filter, damage, damage*c_distanceFromDamage); 

campaigns/swarm.sc2campaignbase.sc2data/TriggerLibs/Tactical/TactCampAI.galaxy:438

    //
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr("-;Missile,Self,Stasis,Dead,Hidden,Invulnerable"));
    AISetFilterLifePerMarker(filter, damage, mark);

campaigns/swarm.sc2campaignbase.sc2data/TriggerLibs/Tactical/TactCampAI.galaxy:560

    filter = AIFilter(player);
    AISetFilterBits(filter, UnitFilterStr(AIAbilityStr(player, c_AB_ConsumeDNA, c_fieldFilters)));
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterRange(filter, aiUnit, AIAbilityFixed(player, c_AB_ConsumeDNA, c_fieldRange0));
    AISetFilterLifeSortReference(filter, damage, damage*c_distanceFromDamage);

campaigns/swarm.sc2campaignbase.sc2data/TriggerLibs/Tactical/TactCampAI.galaxy:660

    //  Only target buildings.
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr("Structure;Construction,Missile,Self,Stasis,Dead,Hidden,Invulnerable"));
    AISetFilterRange(filter, aiUnit, AIAbilityFixed(player, c_AB_PlasmaBlast, c_fieldRange0));

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactProtAI.galaxy:810


    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr(AIAbilityStr(player, c_AB_Feedback, c_fieldTargetFiltersAB)));
    AISetFilterRange(filter, aiUnit, AIAbilityFixed(player, c_AB_Feedback, c_fieldRange0) + 1);

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactProtAI.galaxy:1562


    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBehaviorCount(filter, c_noBehaviorMin, c_noBehaviorMax, c_BF_Disintegration);
    AISetFilterMarker(filter, c_noMarkersMin, c_noMarkersMax, mark);

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactTerrAI.galaxy:48


    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr(AIAbilityStr(player, c_AB_250mmStrikeCannons, c_fieldTargetFiltersAB)));
    AISetFilterRange(filter, aiUnit, AIAbilityFixed(player, c_AB_250mmStrikeCannons, c_fieldRange0));

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactTerrAI.galaxy:214


    filterAI = AIFilter(player);
    AISetFilterAlliance(filterAI, c_playerGroupEnemy);
    AISetFilterBits(filterAI, UnitFilterStr(AIAbilityStr(player, c_AB_Snipe, c_fieldTargetFiltersAB)));
    AISetFilterRange(filterAI, aiUnit, AIAbilityFixed(player, c_AB_Snipe, c_fieldRange0) + 1);

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactTerrAI.galaxy:274


    filterAI = AIFilter(player);
    AISetFilterAlliance(filterAI, c_playerGroupEnemy);
    AISetFilterBits(filterAI, UnitFilterStr(AIAbilityStr(player, c_AB_SteadyTargeting, c_fieldTargetFiltersAB)));
    AISetFilterRange(filterAI, aiUnit, AIAbilityFixed(player, c_AB_SteadyTargeting, c_fieldRange0) + 1);

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactTerrAI.galaxy:459

    //
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr("-;Missile,Self,Stasis,Dead,Hidden,Invulnerable"));
    AISetFilterLifePerMarker(filter, damage, mark);

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactTerrAI.galaxy:1167

    targetGroup = AIFindUnits(player, null, UnitGetPosition(aiUnit), AIEffectFixed(player, c_EF_D8ChargeDmg, c_fieldAreaRadius2), c_noMaxCount);

    AISetFilterAlliance(filter, c_playerGroupAlly);
    AISetFilterMarker(filter, c_noMarkersMin, c_noMarkersMax, mark);
    AISetFilterSelf(filter, aiUnit);

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactTerrAI.galaxy:1187

    targetGroup = AIFindUnits(player, null, UnitGetPosition(aiUnit), AIEffectFixed(player, c_EF_KD8ChargeDmg, c_fieldAreaRadius0), c_noMaxCount);

    AISetFilterAlliance(filter, c_playerGroupAlly);
    AISetFilterMarker(filter, c_noMarkersMin, c_noMarkersMax, mark);
    AISetFilterSelf(filter, aiUnit);

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactTerrAI.galaxy:1233

    filter = AIFilter(player);
    AISetFilterBits(filter, UnitFilterStr(AIAbilityStr(player, c_AB_SeekerMissile, c_fieldTargetFiltersAB)));
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    damage = AIEffectFixed(player, c_EF_SeekerDamage, c_fieldAmount);
    AISetFilterLife(filter, damage*c_minDamageFraction, c_noMax);

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:33


    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupAlly);
    AISetFilterMarker(filter, c_noMarkersMin, c_noMarkersMax, mark);
    AISetFilterLifeLost(filter, AIEffectFixed(player, c_EF_Transfusion, c_fieldEffectChange0) - 20, c_noMax);

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:479


    groundAirFilter = AIFilter(player);
    AISetFilterAlliance(groundAirFilter, c_playerGroupEnemy);
    AISetFilterPlane(groundAirFilter, c_planeGround);
    enemyGroundCount = UnitGroupCount(AIGetFilterGroup(groundAirFilter, scanGroup), c_unitCountAlive);

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:489

    //
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr(AIAbilityStr(player, c_AB_NeuralParasite, c_fieldTargetFiltersAB)));
    AISetFilterRange(filter, aiUnit, AIAbilityFixed(player, c_AB_NeuralParasite, c_fieldRange0) + 1);

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:595

    //
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr(AIWeaponStr(player, c_WE_InfestedTerran, c_fieldTargetFilters)));
    AISetFilterRange(filter, aiUnit, AIAbilityFixed(player, c_AB_InfestedTerrans, c_fieldRange0) + 1);

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:928

    
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterPlane(filter, c_planeGround);
    AISetFilterCanAttackAlly(filter, c_groundAlliesNearby, false);

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:963


    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBehaviorCount(filter, c_noBehaviorMin, c_noBehaviorMax, c_BF_Contaminate);
    AISetFilterMarker(filter, c_noMarkersMin, c_noMarkersMax, mark);

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:1035


    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterLife(filter, minVitality, c_noMax);
    AISetFilterBehaviorCount(filter, c_noBehaviorMin, c_noBehaviorMax, c_BF_Corruption);

mods/core.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:1066


    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr(AIAbilityStr(player, c_AB_LeechResources, c_fieldTargetFiltersAB)));
    enemyGroup = AIGetFilterGroup (filter, scanGroup);

mods/starcoop/starcoop.sc2modbase.sc2data/LibCOMU.galaxy:1983


    // Implementation
    AISetFilterAlliance(lv_enemyNearbyFilter, c_playerGroupEnemy);
    AISetFilterBits(lv_enemyNearbyFilter, UnitFilter((1 << c_targetFilterVisible), 0, (1 << c_targetFilterAir) | (1 << c_targetFilterStructure) | (1 << c_targetFilterMissile) | (1 << c_targetFilterBuried), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)) | (1 << (c_targetFilterHallucination - 32)) | (1 << (c_targetFilterInvulnerable - 32))));
    lv_enemyUnitsNearby = AIGetFilterGroup(lv_enemyNearbyFilter, lp_nearByUnits);

mods/starcoop/starcoop.sc2modbase.sc2data/LibCOMU.galaxy:2020


    // Implementation
    AISetFilterAlliance(lv_enemyNearbyFilter, c_playerGroupEnemy);
    lv_enemiesNearby = AIGetFilterGroup(lv_enemyNearbyFilter, lp_nearByUnits);
    if ((UnitGetCooldown(lp_aIUnit, "MutatorAmonDehakaHeal") <= 0.0) && ((UnitGetPropertyFixed(lp_aIUnit, c_unitPropLifeMax, c_unitPropCurrent) - UnitGetPropertyFixed(lp_aIUnit, c_unitPropLife, c_unitPropCurrent)) > 150.0)) {

mods/starcoop/starcoop.sc2modbase.sc2data/LibCOMU.galaxy:2038

    if ((UnitOrderHasAbil(lp_aIUnit, "MutatorAmonDehakaDrag") == false) && (UnitAbilityGetCooldown(lp_aIUnit, "MutatorAmonDehakaDrag", "Drag") <= 0.0)) {
        lv_abilityRange = StringToFixed(CatalogFieldValueGet(c_gameCatalogAbil, "MutatorAmonDehakaDrag", "Range[" + IntToString(0) + "]", lp_owner));
        AISetFilterAlliance(lv_canidatesFilter, c_playerGroupEnemy);
        AISetFilterBits(lv_canidatesFilter, UnitFilter((1 << c_targetFilterVisible), 0, (1 << c_targetFilterStructure) | (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)) | (1 << (c_targetFilterHallucination - 32)) | (1 << (c_targetFilterInvulnerable - 32)) | (1 << (c_targetFilterSummoned - 32))));
        AISetFilterRange(lv_canidatesFilter, lp_aIUnit, lv_abilityRange);

mods/starcoop/starcoop.sc2modbase.sc2data/LibCOMU.galaxy:2102


    // Implementation
    AISetFilterAlliance(lv_enemyNearbyFilter, c_playerGroupEnemy);
    lv_enemiesNearby = AIGetFilterGroup(lv_enemyNearbyFilter, lp_nearByUnits);
    if ((UnitGroupCount(lp_nearByUnits, c_unitCountAlive) <= 0)) {

mods/starcoop/starcoop.sc2modbase.sc2data/LibCOMU.galaxy:2134

        lv_autoAttackDamage = CatalogFieldValueGetAsInt(c_gameCatalogEffect, "MutatorAmonNovaWeaponImprovedCanisterRifleCloaked", "Amount", lp_owner);
        AISetFilterLife(lv_targetFilter2, lv_autoAttackDamage, 524287.0);
        AISetFilterAlliance(lv_targetFilter2, c_playerGroupEnemy);
        AISetFilterBits(lv_targetFilter2, UnitFilter((1 << c_targetFilterVisible), 0, (1 << c_targetFilterStructure) | (1 << c_targetFilterMissile) | (1 << c_targetFilterBuried), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)) | (1 << (c_targetFilterHallucination - 32)) | (1 << (c_targetFilterInvulnerable - 32))));
        AISetFilterRange(lv_targetFilter2, lp_aIUnit, lv_abilityRange);

mods/starcoop/starcoop.sc2modbase.sc2data/LibCOMU.galaxy:2177


    // Implementation
    AISetFilterAlliance(lv_enemyNearbyFilter, c_playerGroupEnemy);
    lv_enemiesNearby = AIGetFilterGroup(lv_enemyNearbyFilter, lp_nearByUnits);
    if ((UnitGroupCount(lv_enemiesNearby, c_unitCountAlive) <= 0)) {

mods/starcoop/starcoop.sc2modbase.sc2data/LibCOMU.galaxy:2184


    if ((PlayerGetCooldown(UnitGetOwner(lp_aIUnit), "MutatorAmonZagaraBanelingBarrage") <= 0.0)) {
        AISetFilterAlliance(lv_targetFilter2, c_playerGroupEnemy);
        AISetFilterPlane(lv_targetFilter2, c_planeGround);
        AISetFilterBits(lv_targetFilter2, UnitFilter((1 << c_targetFilterVisible), 0, (1 << c_targetFilterStructure) | (1 << c_targetFilterMissile) | (1 << c_targetFilterBuried), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)) | (1 << (c_targetFilterHallucination - 32)) | (1 << (c_targetFilterInvulnerable - 32))));

mods/starcoop/starcoop.sc2modbase.sc2data/LibCOMU.galaxy:2268


    // Implementation
    AISetFilterAlliance(lv_enemyNearbyFilter, c_playerGroupEnemy);
    lv_enemiesNearby = AIGetFilterGroup(lv_enemyNearbyFilter, lp_nearByUnits);
    if ((UnitAbilityGetCooldown(lp_aIUnit, "MutatorAmonArtanisAstralWind", "Abil/MutatorAmonArtanisAstralWind") <= 0.0) && ((UnitGetPropertyFixed(lp_aIUnit, c_unitPropShieldsMax, c_unitPropCurrent) - UnitGetPropertyFixed(lp_aIUnit, c_unitPropShields, c_unitPropCurrent)) > 150.0)) {

mods/starcoop/starcoop.sc2modbase.sc2data/LibCOMU.galaxy:2315


    // Implementation
    AISetFilterAlliance(lv_enemyNearbyFilter, c_playerGroupEnemy);
    AISetFilterBits(lv_enemyNearbyFilter, UnitFilter((1 << c_targetFilterVisible), 0, (1 << c_targetFilterStructure) | (1 << c_targetFilterMissile) | (1 << c_targetFilterBuried), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32)) | (1 << (c_targetFilterHallucination - 32)) | (1 << (c_targetFilterInvulnerable - 32))));
    lv_enemyUnitsNearby = AIGetFilterGroup(lv_enemyNearbyFilter, lp_nearByUnits);

mods/starcoop/starcoop.sc2modbase.sc2data/LibCOMU.galaxy:2388


    // Implementation
    AISetFilterAlliance(lv_enemyNearbyFilter, c_playerGroupEnemy);
    lv_enemiesNearby = AIGetFilterGroup(lv_enemyNearbyFilter, lp_nearByUnits);
    if ((UnitGroupCount(lv_enemiesNearby, c_unitCountAlive) <= 0)) {

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactCampAI.galaxy:599

    //
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterLifePerMarker(filter, damage*0.5, mark);
    AISetFilterLifeSortReference(filter, damage, damage*c_distanceFromDamage); 

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactCampAI.galaxy:794

    //
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr("-;Missile,Self,Stasis,Dead,Hidden,Invulnerable"));
    AISetFilterLifePerMarker(filter, damage, mark);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactCampAI.galaxy:916

    filter = AIFilter(player);
    AISetFilterBits(filter, UnitFilterStr(AIAbilityStr(player, c_AB_ConsumeDNA, c_fieldFilters)));
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterRange(filter, aiUnit, AIAbilityFixed(player, c_AB_ConsumeDNA, c_fieldRange0));
    AISetFilterLifeSortReference(filter, damage, damage*c_distanceFromDamage);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactCampAI.galaxy:991

    filter = AIFilter(player);
    AISetFilterBits(filter, UnitFilterStr(AIAbilityStr(player, c_AB_ConsumeDNA, c_fieldTargetFiltersAB)));
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterRange(filter, aiUnit, (AIAbilityFixed(player, c_AB_ConsumeDNA, c_fieldRange0))-1);
    AISetFilterLifeSortReference(filter, damage, damage*c_distanceFromDamage);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactCampAI.galaxy:1104


    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr("-;Construction,Missile,Self,Stasis,Dead,Hidden,Invulnerable"));
    AISetFilterRange(filter, aiUnit, AIAbilityFixed(player, "HybridDominatorVoidPlasmaBlast", c_fieldRange0));

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactCampAI.galaxy:1384

	
	filter = AIFilter(player);
	AISetFilterAlliance(filter, c_playerGroupEnemy);
	AISetFilterBits(filter, UnitFilterStr("Structure;Construction,Missile,Self,Stasis,Dead,Hidden,Invulnerable"));
	AISetFilterRange(filter, aiUnit, AIAbilityFixed(player, c_AB_HybridPhaseShift, c_fieldRange0));

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactCampAI.galaxy:1654


    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupAlly);
    AISetFilterMarker(filter, c_noMarkersMin, c_noMarkersMax, mark);
    AISetFilterLifeLost(filter, AIEffectFixed(player, c_EF_Transfusion, c_fieldEffectChange0) - 20, c_noMax);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactProtAI.galaxy:1556


    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBehaviorCount(filter, c_noBehaviorMin, c_noBehaviorMax, c_BF_Disintegration);
    AISetFilterMarker(filter, c_noMarkersMin, c_noMarkersMax, mark);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactTerrAI.galaxy:53


    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr(AIAbilityStr(player, c_AB_250mmStrikeCannons, c_fieldTargetFiltersAB)));
    AISetFilterRange(filter, aiUnit, AIAbilityFixed(player, c_AB_250mmStrikeCannons, c_fieldRange0));

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactTerrAI.galaxy:216


    filterAI = AIFilter(player);
    AISetFilterAlliance(filterAI, c_playerGroupEnemy);
    AISetFilterBits(filterAI, UnitFilterStr("Biological,Visible;Heroic,Self,Structure,Destructible,Stasis,Dead,Hidden,Invulnerable"));
    AISetFilterRange(filterAI, aiUnit, AIAbilityFixed(player, c_AB_Snipe, c_fieldRange0) + 1);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactTerrAI.galaxy:266


    filterAI = AIFilter(player);
    AISetFilterAlliance(filterAI, c_playerGroupEnemy);
    AISetFilterBits(filterAI, UnitFilterStr(AIAbilityStr(player, c_AB_SteadyTargeting, c_fieldTargetFiltersAB)));
    AISetFilterRange(filterAI, aiUnit, AIAbilityFixed(player, c_AB_SteadyTargeting, c_fieldRange0) + 1);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactTerrAI.galaxy:439

    //
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr("-;Heroic,Missile,Stasis,Item,Dead,Hidden,Invulnerable"));
    AISetFilterLifePerMarker(filter, damage, mark);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactTerrAI.galaxy:1140

    targetGroup = AIFindUnits(player, null, UnitGetPosition(aiUnit), AIEffectFixed(player, c_EF_D8ChargeDmg, c_fieldAreaRadius2), c_noMaxCount);

    AISetFilterAlliance(filter, c_playerGroupAlly);
    AISetFilterMarker(filter, c_noMarkersMin, c_noMarkersMax, mark);
    AISetFilterSelf(filter, aiUnit);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactTerrAI.galaxy:1160

    targetGroup = AIFindUnits(player, null, UnitGetPosition(aiUnit), AIEffectFixed(player, c_EF_KD8ChargeDmg, c_fieldAreaRadius0), c_noMaxCount);

    AISetFilterAlliance(filter, c_playerGroupAlly);
    AISetFilterMarker(filter, c_noMarkersMin, c_noMarkersMax, mark);
    AISetFilterSelf(filter, aiUnit);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactTerrAI.galaxy:1205

    filter = AIFilter(player);
    AISetFilterBits(filter, UnitFilterStr(AIAbilityStr(player, c_AB_SeekerMissile, c_fieldTargetFiltersAB)));
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    damage = AIEffectFixed(player, c_EF_SeekerDamage, c_fieldAmount);
    AISetFilterLife(filter, damage*c_minDamageFraction, c_noMax);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:31


    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupAlly);
    AISetFilterMarker(filter, c_noMarkersMin, c_noMarkersMax, mark);
    AISetFilterLifeLost(filter, AIEffectFixed(player, c_EF_Transfusion, c_fieldEffectChange0) - 20, c_noMax);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:423

    filter = AIFilter(player);
    AISetFilterSelf(filter, aiUnit);
    AISetFilterAlliance(filter, c_playerGroupAlly);
    AISetFilterLife(filter, c_aiConsumptionTargetMinLife, c_noMax);
    AISetFilterLifeSortReference(filter, c_aiConsumptionTargetMinLife, c_aiConsumptionTargetMinLife*c_distanceFromDamage); 

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:690


    groundAirFilter = AIFilter(player);
    AISetFilterAlliance(groundAirFilter, c_playerGroupEnemy);
    AISetFilterPlane(groundAirFilter, c_planeGround);
    enemyGroundCount = UnitGroupCount(AIGetFilterGroup(groundAirFilter, scanGroup), c_unitCountAlive);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:700

    //
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr(AIAbilityStr(player, c_AB_NeuralParasite, c_fieldTargetFiltersAB)));
    AISetFilterRange(filter, aiUnit, AIAbilityFixed(player, c_AB_NeuralParasite, c_fieldRange0) + 1);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:806

    //
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr(AIWeaponStr(player, c_WE_InfestedTerran, c_fieldTargetFilters)));
    AISetFilterRange(filter, aiUnit, AIAbilityFixed(player, c_AB_InfestedTerrans, c_fieldRange0) + 1);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:1137

    
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterPlane(filter, c_planeGround);
    AISetFilterCanAttackAlly(filter, c_groundAlliesNearby, false);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:1172


    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBehaviorCount(filter, c_noBehaviorMin, c_noBehaviorMax, c_BF_Contaminate);
    AISetFilterMarker(filter, c_noMarkersMin, c_noMarkersMax, mark);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:1244


    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterLife(filter, minVitality, c_noMax);
    AISetFilterBehaviorCount(filter, c_noBehaviorMin, c_noBehaviorMax, c_BF_Corruption);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:1275


    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, UnitFilterStr(AIAbilityStr(player, c_AB_LeechResources, c_fieldTargetFiltersAB)));
    enemyGroup = AIGetFilterGroup (filter, scanGroup);

mods/starcoop/starcoop.sc2modbase.sc2data/TriggerLibs/Tactical/TactZergAI.galaxy:1617

    filter = AIFilter(player);
    AISetFilterPlane(filter, c_planeGround);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterRange(filter, aiUnit, AIWeaponFixed(player, c_WE_LurkerMP, c_fieldRange0) - 1);    
    validTargets = AIGetFilterGroup(filter, scanGroup);

mods/warcoop/warclassicsystem.sc2modbase.sc2data/TriggerLibs/Tactical/TacticalAIWar3.galaxy:154

static aifilter AIWar3SpellDamageFilter(int player, unit aiUnit, marker mark, fixed maxlife, unitfilter uf, fixed range, fixed damage){
    aifilter filter=AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
    AISetFilterBits(filter, uf);
    AISetFilterRange(filter, aiUnit, range+3);

mods/warcoop/warclassicsystem.sc2modbase.sc2data/TriggerLibs/Tactical/TacticalAIWar3.galaxy:360

	// }
	filter = AIFilter(player);
	AISetFilterAlliance(filter, c_playerGroupAlly);
	AISetFilterLifeLost(filter, amount, c_noMax);
	group = AIGetFilterGroup(filter, group);

mods/warcoop/warclassicsystem.sc2modbase.sc2data/TriggerLibs/Tactical/TacticalAIWar3.galaxy:436

	AIWeaponGroup(player, weapon, scanGroup);
    filter = AIFilter(player);
    AISetFilterAlliance(filter, c_playerGroupEnemy);
	AISetFilterBehaviorCount(filter,0,0,"ThreatClearer");

mods/warcoop/warclassicsystem.sc2modbase.sc2data/TriggerLibs/WarClassicTactical.galaxy:225

    }

    AISetFilterAlliance(lv_enemyNearbyFilter, c_playerGroupEnemy);
    AISetFilterMelee(lv_enemyNearbyFilter, false);
    lv_enemiesNearby = AIGetFilterGroup(lv_enemyNearbyFilter, lp_nearByUnits);

mods/warcoop/warclassicsystem.sc2modbase.sc2data/TriggerLibs/WarClassicTactical.galaxy:290

    }

    AISetFilterAlliance(lv_enemyNearbyFilter, c_playerGroupEnemy);
    AISetFilterMelee(lv_enemyNearbyFilter, false);
    lv_enemiesNearby = AIGetFilterGroup(lv_enemyNearbyFilter, lp_nearByUnits);

mods/warcoop/warclassicsystem.sc2modbase.sc2data/TriggerLibs/WarClassicTactical.galaxy:352

    AISetFilterRange(lv_rangeFilter, lp_aIUnit, lv_radius);
    lv_unitsInRange = AIGetFilterGroup(lv_rangeFilter, lp_nearByUnits);
    AISetFilterAlliance(lv_enemyNearbyFilter, c_playerGroupEnemy);
    AISetFilterBits(lv_enemyNearbyFilter, libNtve_gf_ConvertTargetFilterStringToUnitFilter(CatalogFieldValueGet(c_gameCatalogEffect, (((lp_abil) + "@Search")), "SearchFilters", lp_owner)));
    lv_enemiesNearby = AIGetFilterGroup(lv_enemyNearbyFilter, lv_unitsInRange);

mods/warcoop/warclassicsystem.sc2modbase.sc2data/TriggerLibs/WarClassicTactical.galaxy:355

    AISetFilterBits(lv_enemyNearbyFilter, libNtve_gf_ConvertTargetFilterStringToUnitFilter(CatalogFieldValueGet(c_gameCatalogEffect, (((lp_abil) + "@Search")), "SearchFilters", lp_owner)));
    lv_enemiesNearby = AIGetFilterGroup(lv_enemyNearbyFilter, lv_unitsInRange);
    AISetFilterAlliance(lv_friendNearbyFilter, c_playerGroupAlly);
    lv_friendNearby = AIGetFilterGroup(lv_friendNearbyFilter, lv_unitsInRange);
    if ((libGAwT_gf_HeroInDanger(lp_aIUnit) == true)) {

mods/warcoop/warclassicsystem.sc2modbase.sc2data/TriggerLibs/WarClassicTactical.galaxy:557

    lv_unitsInRange = AIGetFilterGroup(lv_rangeUnitFilter, lp_nearByUnits);
    lv_rangeUnitFilter = AIFilter(lp_owner);
    AISetFilterAlliance(lv_rangeUnitFilter, c_playerGroupAlly);
    AISetFilterLife(lv_rangeUnitFilter, libGAwT_gv_c_noMin, 100.0);
    lv_unitsInRangeFriend = AIGetFilterGroup(lv_rangeUnitFilter, lv_unitsInRange);

mods/warcoop/warclassicsystem.sc2modbase.sc2data/TriggerLibs/WarClassicTactical.galaxy:567


    lv_rangeUnitFilter = AIFilter(lp_owner);
    AISetFilterAlliance(lv_rangeUnitFilter, c_playerGroupAlly);
    AISetFilterAlliance(lv_rangeUnitFilter, c_playerGroupAlly);
    AISetFilterLifeLost(lv_rangeUnitFilter, lv_heal, libGAwT_gv_c_noMax);

mods/warcoop/warclassicsystem.sc2modbase.sc2data/TriggerLibs/WarClassicTactical.galaxy:568

    lv_rangeUnitFilter = AIFilter(lp_owner);
    AISetFilterAlliance(lv_rangeUnitFilter, c_playerGroupAlly);
    AISetFilterAlliance(lv_rangeUnitFilter, c_playerGroupAlly);
    AISetFilterLifeLost(lv_rangeUnitFilter, lv_heal, libGAwT_gv_c_noMax);
    lv_unitsInRangeFriend = AIGetFilterGroup(lv_rangeUnitFilter, lv_unitsInRange);

mods/warcoop/warclassicsystem.sc2modbase.sc2data/TriggerLibs/WarClassicTactical.galaxy:589

    lv_damage = libGAwT_gf_AIAbilAccumlatedAmount(lp_owner, lp_aIUnit, lp_abil, lv_level, "Damage");
    AISetFilterInCombat(lv_rangeUnitFilter, true);
    AISetFilterAlliance(lv_rangeUnitFilter, c_playerGroupEnemy);
    lv_unitsInRangeEnemyHeroes = AIGetFilterGroup(lv_rangeUnitFilter, UnitGroupFilter(null, c_playerAny, lv_unitsInRange, UnitFilter(0, (1 << (c_targetFilterHeroUnit - 32)), (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0));
    lv_orderFinal = AIUnitGroupGetValidOrder(lv_unitsInRangeEnemyHeroes, lv_order, lp_aIUnit, true);