# Get Best Target Point On Group
Grammar — Returns the best location to place and AOE attack on the group with the specified parameters (group, minHits, damageBase, minScore, radius, from, range, bonusAttribute)
Flags —Native
|Function
Returns the best location to place an AOE attack on a group of units with the specified parameters.
# Arguments
unitgroup
— Groupint
— Min Hitsint
— Damage Basefixed
— Min Scorefixed
— Radiuspoint
— Fromfixed
— Rangeint
— Bonus Attribute
Returns — point
native point AIBestTargetPoint(
unitgroup group,
int minHits,
int damageBase,
fixed minScore,
fixed radius,
point from,
fixed range,
int bonusAttri,
);
# Related
Category: AI Advanced / Tactical / Functions
- [F] —
bool
— Same Command — ( AISameCommand ) - [F] —
unit
— Last Attacker — ( AILastAttacker ) - [F] —
int
— Last Attack — ( AILastAttack ) - [F] —
bool
— Get Wants To Move Status — ( AIControlWantsToMove ) - [F] —
bool
— Is Ignored By Wave — ( AIIsIgnoredByWave ) - [F] —
bool
— Is In Combat — ( AIUnitIsInCombat ) - [F] —
point
— Get Cloaked Attacker — ( AIGetCloakedAttacker ) - [F] —
point
— Get Best Target Point On Group — ( AIBestTargetPoint ) - [F] —
unitgroup
— Find Units — ( AIFindUnits ) - [F] —
unit
— Get Default Combat Priority — ( AIDefaultCombatPriority ) - [F] —
bool
— Combat Diff Flag Special High Priority — ( AICombatDiffFlagCatSpecialHighPrio ) - [F] —
bool
— Combat Diff Flag Splash High Priority — ( AICombatDiffFlagCatSplashHighPrio ) - [F] —
bool
— Combat Diff Flag Timed Low Priority — ( AICombatDiffFlagCatTimedLowPrio ) - [F] —
bool
— Combat Diff Flag Workers Normal Priority — ( AICombatDiffFlagCatWorkersNormalPrio ) - [F] —
bool
— Combat Diff Flag Sort Buildings Priority — ( AICombatDiffFlagCatSortBuildingsPrio ) - [F] —
bool
— Combat Diff Flag Healers — ( AICombatDiffFlagTieBreakHealers ) - [F] —
bool
— Combat Diff Flag Low Health — ( AICombatDiffFlagTieBreakLowHP ) - [F] —
bool
— Combat Diff Flag Bonus Damage — ( AICombatDiffFlagTieBreakBonusDamage ) - [F] —
bool
— Combat Diff Flag Injured — ( AICombatDiffFlagTieBreakInjured ) - [F] —
bool
— Combat Diff Flag Detector — ( AICombatDiffFlagTieBreakDetector ) - [F] —
bool
— Combat Diff Flag Siege Range — ( AICombatDiffFlagTieBreakRange ) - [F] —
bool
— Does Unit Have Tactical Disabled — ( AIIsTacticalDisabled )
# Examples
# campaigns/liberty.sc2campaign
// L69
AIBestTargetPoint(
AIEffectGroup(player, c_EF_OdinBarrageArea, scanGroup),
3, // min hits
200, // damage base
3.0, // min score
barrageRadius,
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_OdinBarrage, c_fieldRange0)+3,
c_unitAttributeNone
)
// L375
AIBestTargetPoint(
AIEffectGroup(player, c_EF_OmegaStormArea, scanGroup),
3, // min hits
40, // damage base
3.0, // min score
AIEffectFixed(player, c_EF_OmegaStormArea, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_QoBOmegaStorm, c_fieldRange0),
c_unitAttributeNone
)
// L467
AIBestTargetPoint(
statisGroup,
5, // min hits
40, // damage base
3.5, // score
AIEffectFixed(player, c_EF_BioStatis, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
range,
c_unitAttributeNone
)
// L69
AIBestTargetPoint(
AIEffectGroup(player, c_EF_OdinBarrageArea, scanGroup),
3, // min hits
200, // damage base
3.0, // min score
barrageRadius,
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_OdinBarrage, c_fieldRange0)+3,
c_unitAttributeNone
)
// L375
AIBestTargetPoint(
AIEffectGroup(player, c_EF_OmegaStormArea, scanGroup),
3, // min hits
40, // damage base
3.0, // min score
AIEffectFixed(player, c_EF_OmegaStormArea, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_QoBOmegaStorm, c_fieldRange0),
c_unitAttributeNone
)
// L467
AIBestTargetPoint(
statisGroup,
5, // min hits
40, // damage base
3.5, // score
AIEffectFixed(player, c_EF_BioStatis, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
range,
c_unitAttributeNone
)
// L852
AIBestTargetPoint(
enemyGroup,
2, // min hits
20, // damage base
1.5, // min score
AIEffectFixed(player, c_EF_QueenMPEnsnareArea, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_QueenMPEnsnare, c_fieldRange0)+3,
c_unitAttributeNone
)
# mods/core.sc2mod
// L134
AIBestTargetPoint(
rangeEnemyGroup,
6, // min hits
1, // damage base
6.0, // min score
c_forceFieldRadius,
UnitGetPosition(aiUnit),
c_forceFieldRange,
c_unitAttributeNone
)
// L570
AIBestTargetPoint(
meleeEnemyGroup,
4, // min hits
1, // damage base
3.5, // min score
c_mtwRadius,
UnitGetPosition(aiUnit),
c_mtwRange,
c_unitAttributeNone
)
// L687
AIBestTargetPoint(
vortexGroup,
5, // min hits
250, // damage base
4.5, // score
AIEffectFixed(player, c_EF_VortexArea, c_fieldAreaRadius0) + 1.0,
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_Vortex, c_fieldRange0),
c_unitAttributeMassive
)
// L1738
AIBestTargetPoint(
targetGroup,
3, // min hits
100, // damage base
2.0, // min score
AIEffectFixed(player, c_EF_PurificationNovaArea, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
10,
c_unitAttributeNone
)
// L1795
AIBestTargetPoint(
targetGroup,
3, // min hits
100, // damage base
2.0, // min score
AIEffectFixed(player, c_EF_PurificationNovaArea, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
5,
c_unitAttributeNone
)
# mods/core.sc2mod
// L123
AIBestTargetPoint(
AIEffectGroup(player, c_EF_BombardmentArea, scanGroup),
3, // min hits
150, // damage base
3.0, // min score
barrageRadius,
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_Bombardment, c_fieldRange0)+3,
c_unitAttributeNone
)
// L1355
AIBestTargetPoint(
AIWeaponGroup(player, c_WE_AutoTurret, scanGroup),
2, // min hits
40, // damage base
minScore, // min score
AIWeaponFixed(player, c_WE_AutoTurret, c_fieldRange),
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_AutoTurret, c_fieldRange0),
c_unitAttributeNone
)
// L1809
AIBestTargetPoint(
targetGroupGround,
minHits, // min hits
80, // damage base
minScore, // min score
AIEffectFixed(player, c_EF_LiberatorAGSearch, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
10,
c_unitAttributeNone
)
# mods/core.sc2mod
// L222
AIBestTargetPoint(
AIEffectGroup(player, c_EF_ViperCloudSearch, rangedGroup),
5, // min hits
10, // damage base
4.5, // min score
AIEffectFixed(player, c_EF_ViperCloudSearch, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_ViperBlindingCloud, c_fieldRange0)+3,
c_unitAttributeNone
)
// L314
AIBestTargetPoint(
airGroup,
1, // min hits
50, // damage base
0.5, // min score
AIEffectFixed(player, c_EF_ParasticBombArea, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_ParasiticBomb, c_fieldRange0)+3,
c_unitAttributeNone
)
// L537
AIBestTargetPoint(
AIEffectGroup(player, c_EF_FungalGrowthSearch, enemyGroup),
5, // min hits
30, // damage base
3.5, // min score
AIEffectFixed(player, c_EF_FungalGrowthSearch, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
AIUnitFixed(player, c_ZU_Infestor, c_fieldSightRange),
c_unitAttributeNone
)
# mods/novastoryassets.sc2mod
// L720
AIBestTargetPoint(lv_nearbyValidUnits, 0, 200, 0.0, 5.0, UnitGetPosition(lp_rocketBarrageUnit), 14.0, 0)
// L1118
AIBestTargetPoint(lv_nearbyValidUnits, 0, 250, 0.0, 2.5, UnitGetPosition(lp_xanthos), 10.0, 0)
// L720
AIBestTargetPoint(lv_nearbyValidUnits, 0, 200, 0.0, 5.0, UnitGetPosition(lp_rocketBarrageUnit), 14.0, 0)
// L1118
AIBestTargetPoint(lv_nearbyValidUnits, 0, 250, 0.0, 2.5, UnitGetPosition(lp_xanthos), 10.0, 0)
# mods/starcoop/starcoop.sc2mod
// L1958
AIBestTargetPoint(UnitGroupFilterAlliance(lp_nearByUnits, lp_owner, c_unitAllianceEnemy, 0), 3, lv_abilityDamage, lv_score, lv_abilityAoE, UnitGetPosition(lp_aIUnit), lv_abilityRange, c_unitAttributeNone)
// L1996
AIBestTargetPoint(UnitGroupFilterAlliance(lp_nearByUnits, lp_owner, c_unitAllianceEnemy, 0), 1, lv_abilityDamage, lv_score, lv_abilityAoE, UnitGetPosition(lp_aIUnit), lv_abilityRange, c_unitAttributeNone)
// L2118
AIBestTargetPoint(lv_enemiesNearby, 4, FixedToInt(lv_abilityDamage), lv_score, lv_abilityAoE, UnitGetPosition(lp_aIUnit), lv_abilityRange, c_unitAttributeNone)
// L2218
AIBestTargetPoint(UnitGroupFilterAlliance(lp_nearByUnits, lp_owner, c_unitAllianceEnemy, 0), 2, lv_abilityDamage, lv_score, lv_abilityAoE, UnitGetPosition(lp_aIUnit), lv_abilityRange, c_unitAttributeNone)
// L2285
AIBestTargetPoint(UnitGroupFilterAlliance(lp_nearByUnits, lp_owner, c_unitAllianceEnemy, 0), 3, lv_abilityDamage, lv_score, lv_abilityAoE, UnitGetPosition(lp_aIUnit), lv_abilityRange, c_unitAttributeNone)
// L2405
AIBestTargetPoint(lv_enemiesNearby, 4, lv_abilityDamage, lv_score, lv_abilityRadius, UnitGetPosition(lp_aIUnit), lv_abilityRange, c_unitAttributeStructure)
// L2444
AIBestTargetPoint(lv_canidates, 3, lv_abilityDamage, lv_score, lv_abilityRadius, UnitGetPosition(lp_aIUnit), lv_abilityRange, c_unitAttributeNone)
# mods/starcoop/starcoop.sc2mod
// L36
AIBestTargetPoint(
plagueGroup,
5, // min hits
300, // base damage
4.5, // score
AIEffectFixed(player, c_EF_PlagueArea, c_fieldAreaRadius0) + 1.0,
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_Plague, c_fieldRange0),
c_unitAttributeNone
)
// L83
AIBestTargetPoint(
AIEffectGroup(player, c_EF_DefilerDarkSwarm, nearbyAlliedUnits),
5, // min hits
10, // damage base
4.5, // min score
AIEffectFixed(player, c_EF_DefilerDarkSwarm, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_DefilerDarkSwarm, c_fieldRange0)+3,
c_unitAttributeNone
)
// L228
AIBestTargetPoint(
enemyGroup,
2, // min hits
20, // damage base
1.5, // min score
AIEffectFixed(player, c_EF_QueenMPEnsnareArea, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_QueenMPEnsnare, c_fieldRange0)+3,
c_unitAttributeNone
)
// L419
AIBestTargetPoint(
AIEffectGroup(player, c_EF_OdinBarrageArea, scanGroup),
3, // min hits
200, // damage base
3.0, // min score
barrageRadius,
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_OdinBarrage, c_fieldRange0)+3,
c_unitAttributeNone
)
// L731
AIBestTargetPoint(
AIEffectGroup(player, c_EF_OmegaStormArea, scanGroup),
3, // min hits
40, // damage base
3.0, // min score
AIEffectFixed(player, c_EF_OmegaStormArea, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_QoBOmegaStorm, c_fieldRange0),
c_unitAttributeNone
)
// L823
AIBestTargetPoint(
statisGroup,
5, // min hits
40, // damage base
3.5, // score
AIEffectFixed(player, c_EF_BioStatis, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
range,
c_unitAttributeNone
)
// L1205
AIBestTargetPoint(
AIEffectGroup(player, c_EF_PsiStormArea, scanGroup),
1, // min hits
40, // damage base
3.0, // min score
barrageRadius,
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_HybridPsiStorm, c_fieldRange0)+3,
c_unitAttributeNone
)
// L1487
AIBestTargetPoint(
AIEffectGroup(player, c_EF_OdinBarrageArea, scanGroup),
3, // min hits
200, // damage base
3.0, // min score
barrageRadius,
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_OdinMKIIBarrage, c_fieldRange0)+3,
c_unitAttributeNone
)
# mods/starcoop/starcoop.sc2mod
// L136
AIBestTargetPoint(
rangeEnemyGroup,
6, // min hits
1, // damage base
6.0, // min score
c_forceFieldRadius,
UnitGetPosition(aiUnit),
c_forceFieldRange,
c_unitAttributeNone
)
// L552
AIBestTargetPoint(
meleeEnemyGroup,
4, // min hits
1, // damage base
3.5, // min score
c_mtwRadius,
UnitGetPosition(aiUnit),
c_mtwRange,
c_unitAttributeNone
)
// L665
AIBestTargetPoint(
vortexGroup,
5, // min hits
250, // damage base
4.5, // score
AIEffectFixed(player, c_EF_VortexArea, c_fieldAreaRadius0) + 1.0,
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_Vortex, c_fieldRange0),
c_unitAttributeMassive
)
// L1727
AIBestTargetPoint(
targetGroup,
3, // min hits
100, // damage base
2.0, // min score
AIEffectFixed(player, c_EF_PurificationNovaArea, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
10,
c_unitAttributeNone
)
// L1784
AIBestTargetPoint(
targetGroup,
3, // min hits
100, // damage base
2.0, // min score
AIEffectFixed(player, c_EF_PurificationNovaArea, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
5,
c_unitAttributeNone
)
# mods/starcoop/starcoop.sc2mod
// L126
AIBestTargetPoint(
AIEffectGroup(player, c_EF_BombardmentArea, scanGroup),
3, // min hits
150, // damage base
3.0, // min score
barrageRadius,
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_Bombardment, c_fieldRange0)+3,
c_unitAttributeNone
)
// L1327
AIBestTargetPoint(
AIWeaponGroup(player, c_WE_AutoTurret, scanGroup),
2, // min hits
40, // damage base
minScore, // min score
AIWeaponFixed(player, c_WE_AutoTurret, c_fieldRange),
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_AutoTurret, c_fieldRange0),
c_unitAttributeNone
)
// L1763
AIBestTargetPoint(
targetGroupGround,
minHits, // min hits
80, // damage base
minScore, // min score
AIEffectFixed(player, c_EF_LiberatorAGSearch, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
10,
c_unitAttributeNone
)
# mods/starcoop/starcoop.sc2mod
// L260
AIBestTargetPoint(
AIEffectGroup(player, c_EF_ViperDisablingCloudSearch, rangedGroup),
5, // min hits
10, // damage base
4.5, // min score
AIEffectFixed(player, c_EF_ViperDisablingCloudSearch, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_ViperDisablingCloud, c_fieldRange0)+3,
c_unitAttributeNone
)
// L299
AIBestTargetPoint(
AIEffectGroup(player, c_EF_ViperCloudSearch, rangedGroup),
5, // min hits
10, // damage base
4.5, // min score
AIEffectFixed(player, c_EF_ViperCloudSearch, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_ViperBlindingCloud, c_fieldRange0)+3,
c_unitAttributeNone
)
// L386
AIBestTargetPoint(
airGroup,
1, // min hits
50, // damage base
0.5, // min score
AIEffectFixed(player, c_EF_ParasticBombArea, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
AIAbilityFixed(player, c_AB_ParasiticBomb, c_fieldRange0)+3,
c_unitAttributeNone
)
// L748
AIBestTargetPoint(
AIEffectGroup(player, c_EF_FungalGrowthSearch, enemyGroup),
5, // min hits
30, // damage base
3.5, // min score
AIEffectFixed(player, c_EF_FungalGrowthSearch, c_fieldAreaRadius0),
UnitGetPosition(aiUnit),
AIUnitFixed(player, c_ZU_Infestor, c_fieldSightRange),
c_unitAttributeNone
)