Difference between revisions of "Conditions and actions"
(→Basics) |
|||
(13 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | |||
− | |||
== Basics == | == Basics == | ||
Line 16: | Line 14: | ||
|valign="top" |1.||{{C}} colspan="2"|'''Get all the entities''' of the <code>target type</code>. | |valign="top" |1.||{{C}} colspan="2"|'''Get all the entities''' of the <code>target type</code>. | ||
|- | |- | ||
− | |valign="top" |2.||{{C}} colspan="2"|'''Remove all entities not matching''' the <code>target filters</code>. If there is not a single entity left the node is considered invalid. | + | |valign="top" |2.||{{C}} colspan="2"|'''Remove all entities not matching''' the <code>target filters</code>. If there is not a single entity left the node is considered invalid except for counting conditions that check the target count. |
|- | |- | ||
|valign="top" rowspan="2"|3.||{{C}} colspan="2"|'''Select the best remaining entity''' according to the <code>target selector</code>. The <code>any</code> and <code>all</code> selectors are special cases where all remaining entities are selected instead. | |valign="top" rowspan="2"|3.||{{C}} colspan="2"|'''Select the best remaining entity''' according to the <code>target selector</code>. The <code>any</code> and <code>all</code> selectors are special cases where all remaining entities are selected instead. | ||
|- | |- | ||
| | | | ||
− | |valign="top"|The | + | |valign="top"|The <code>all</code> selector can only be used for moving, fleeing, tagging and untagging.<br>The <code>any</code> selector cannot be used for action nodes. |
|- | |- | ||
|valign="top" rowspan="3"|4. | |valign="top" rowspan="3"|4. | ||
Line 28: | Line 26: | ||
|- | |- | ||
|valign="top"|<code>Any</code> selector: Check if the condition is valid for at least one of the remaining entities. | |valign="top"|<code>Any</code> selector: Check if the condition is valid for at least one of the remaining entities. | ||
− | |valign="top"|When moving or fleeing the | + | |valign="top"|When moving or fleeing the <code>all</code> selector results in moving to or fleeing from the {{Tooltip|average position|There are thoughts of using the weighted average position instead.}}[https://forum.gladiabots.com/viewtopic.php?f=2&t=950] of all remaining entities. |
|- | |- | ||
|valign="top"|<code>All</code> selector: Check if the condition is valid for all of the remaining entities. | |valign="top"|<code>All</code> selector: Check if the condition is valid for all of the remaining entities. | ||
− | |valign="top"|When tagging or untagging the | + | |valign="top"|When tagging or untagging the <code>all</code> selector results in tagging or untagging all remaining entities. |
|} | |} | ||
{{Information|Condition nodes: Checking the condition is the very last step after filtering and selecting took place.}} | {{Information|Condition nodes: Checking the condition is the very last step after filtering and selecting took place.}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Target filters == | == Target filters == | ||
Line 74: | Line 54: | ||
{|class="wikitable" | {|class="wikitable" | ||
− | |{{dark}}| ||{{dark}}|[[File:Targets_Self.png]] Myself | + | |{{dark}} colspan="2"|Selectors||{{dark}}|[[File:Targets_Self.png]] Myself |
|{{dark}}|[[File:Targets_Ally.png]] Ally||{{dark}}|[[File:Targets_Enemy.png]] Enemy | |{{dark}}|[[File:Targets_Ally.png]] Ally||{{dark}}|[[File:Targets_Enemy.png]] Enemy | ||
|{{dark}}|[[File:Targets_Allybase.png]] Ally base||{{dark}}|[[File:Targets_Enemybase.png]] Enemy base | |{{dark}}|[[File:Targets_Allybase.png]] Ally base||{{dark}}|[[File:Targets_Enemybase.png]] Enemy base | ||
Line 80: | Line 60: | ||
|- | |- | ||
|{{dark}}|Distance from me | |{{dark}}|Distance from me | ||
− | [[File:Selectors_ClosestToMe.png]]{{Tooltip| |Closest to me}} [[File:Selectors_FurthestFromMe.png]]{{Tooltip| |Furthest from me}} | + | |{{dark}}|[[File:Selectors_ClosestToMe.png]]{{Tooltip| |Closest to me}} [[File:Selectors_FurthestFromMe.png]]{{Tooltip| |Furthest from me}} |
|{{I}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | |{{I}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
|- | |- | ||
|{{dark}}|Distance from arena borders | |{{dark}}|Distance from arena borders | ||
− | [[File:Selectors_ClosestToArenaBorders.png]]{{Tooltip| |Closest to arena borders}} [[File:Selectors_FurthestFromArenaBorders.png]]{{Tooltip| |Furthest from arena borders}} | + | |{{dark}}|[[File:Selectors_ClosestToArenaBorders.png]]{{Tooltip| |Closest to arena borders}} [[File:Selectors_FurthestFromArenaBorders.png]]{{Tooltip| |Furthest from arena borders}} |
|{{I}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | |{{I}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
|- | |- | ||
|{{dark}}|Health | |{{dark}}|Health | ||
− | [[File:Selectors_WeakestHealth.png]]{{Tooltip| |Weakest health}} [[File:Selectors_WeakestHealthRatio.png]]{{Tooltip| |Weakest health ratio}} [[File:Selectors_StrongestHealth.png]]{{Tooltip| |Strongest health}} [[File:Selectors_StrongestHealthRatio.png]]{{Tooltip| |Strongest health ratio}} | + | |{{dark}}|[[File:Selectors_WeakestHealth.png]]{{Tooltip| |Weakest health}} [[File:Selectors_WeakestHealthRatio.png]]{{Tooltip| |Weakest health ratio}} [[File:Selectors_StrongestHealth.png]]{{Tooltip| |Strongest health}} [[File:Selectors_StrongestHealthRatio.png]]{{Tooltip| |Strongest health ratio}} |
|{{I}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | |{{I}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
|- | |- | ||
|{{dark}}|Shield | |{{dark}}|Shield | ||
− | [[File:Selectors_WeakestShield.png]]{{Tooltip| |Weakest shield}} [[File:Selectors_WeakestShieldRatio.png]]{{Tooltip| |Weakest shield ratio}} [[File:Selectors_StrongestShield.png]]{{Tooltip| |Strongest shield}} [[File:Selectors_StrongestShieldRatio.png]]{{Tooltip| |Strongest shield ratio}} | + | |{{dark}}|[[File:Selectors_WeakestShield.png]]{{Tooltip| |Weakest shield}} [[File:Selectors_WeakestShieldRatio.png]]{{Tooltip| |Weakest shield ratio}} [[File:Selectors_StrongestShield.png]]{{Tooltip| |Strongest shield}} [[File:Selectors_StrongestShieldRatio.png]]{{Tooltip| |Strongest shield ratio}} |
|{{I}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | |{{I}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
|- | |- | ||
|{{dark}}|Health plus shield | |{{dark}}|Health plus shield | ||
− | [[File:Selectors_WeakestHealthPlusShield.png]]{{Tooltip| |Weakest health plus shield}} [[File:Selectors_StrongestHealthPlusShield.png]]{{Tooltip| |Strongest health plus shield}} | + | |{{dark}}|[[File:Selectors_WeakestHealthPlusShield.png]]{{Tooltip| |Weakest health plus shield}} [[File:Selectors_StrongestHealthPlusShield.png]]{{Tooltip| |Strongest health plus shield}} |
|{{I}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | |{{I}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
|- | |- | ||
|{{dark}}|Misc | |{{dark}}|Misc | ||
− | [[File:Selectors_Any.png]]{{Tooltip| |Any}} [[File:Selectors_All.png]]{{Tooltip| |All}} | + | |{{dark}}|[[File:Selectors_Any.png]]{{Tooltip| |Any}} [[File:Selectors_All.png]]{{Tooltip| |All}} |
|{{I}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | |{{I}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
|- | |- | ||
|} | |} | ||
+ | |||
+ | === Weakest/strongest and weakest/strongest ratio === | ||
+ | |||
+ | If a Sniper has 2700 of 3000 shield remaining (90%) and a Machine gun has 3900 of 5000 shield remaining (78%) weakest shield would select the Sniper (2700 < 3900), weakest shield ratio would select the Machine gun (78% < 90%). | ||
=== Entity selection process in case of identical attributes === | === Entity selection process in case of identical attributes === | ||
− | The entity selection process sorts the remaining entities using the following comparison rules and keeps the first one | + | The entity selection process sorts the remaining entities using the following comparison rules and keeps the first one. |
{|class="wikitable" | {|class="wikitable" | ||
Line 114: | Line 98: | ||
|'''Closest to me''' | |'''Closest to me''' | ||
# Closest to self first | # Closest to self first | ||
+ | # In case of equality: Lowest distance from center of the map first. | ||
+ | # In case of equality: Lowest distance from horizontal axis first. | ||
+ | # In case of equality: Lowest distance from vertical axis first. | ||
# In case of equality: Lowest [[Maps#Instantiation_order|instantiation order]] first. | # In case of equality: Lowest [[Maps#Instantiation_order|instantiation order]] first. | ||
|'''Furthest from me''' | |'''Furthest from me''' | ||
# Furthest from self first | # Furthest from self first | ||
+ | # In case of equality: Lowest distance from center of the map first. | ||
+ | # In case of equality: Lowest distance from horizontal axis first. | ||
+ | # In case of equality: Lowest distance from vertical axis first. | ||
# In case of equality: Lowest [[Maps#Instantiation_order|instantiation order]] first. | # In case of equality: Lowest [[Maps#Instantiation_order|instantiation order]] first. | ||
|- | |- | ||
|'''Closest to arena borders''' | |'''Closest to arena borders''' | ||
# Closest to arena borders first | # Closest to arena borders first | ||
− | # In case of equality: | + | # In case of equality: Lowest distance from center of the map first. |
+ | # In case of equality: Lowest distance from horizontal axis first. | ||
+ | # In case of equality: Lowest distance from vertical axis first. | ||
+ | # In case of equality: Lowest [[Maps#Instantiation_order|instantiation order]] first. | ||
|'''Furthest from arena borders''' | |'''Furthest from arena borders''' | ||
# Furthest from arena borders first | # Furthest from arena borders first | ||
− | # In case of equality: | + | # In case of equality: Lowest distance from center of the map first. |
+ | # In case of equality: Lowest distance from horizontal axis first. | ||
+ | # In case of equality: Lowest distance from vertical axis first. | ||
+ | # In case of equality: Lowest [[Maps#Instantiation_order|instantiation order]] first. | ||
|- | |- | ||
!Weakest!!Strongest | !Weakest!!Strongest | ||
Line 173: | Line 169: | ||
|} | |} | ||
− | == | + | == Actions == |
− | + | The following target types are valid for the different actions. | |
− | + | {|class="wikitable" | |
− | + | |{{dark}} colspan="2"|Actions||{{dark}}|[[File:Targets_Self.png]] Myself | |
− | + | |{{dark}}|[[File:Targets_Ally.png]] Ally||{{dark}}|[[File:Targets_Enemy.png]] Enemy | |
− | + | |{{dark}}|[[File:Targets_Allybase.png]] Ally base||{{dark}}|[[File:Targets_Enemybase.png]] Enemy base | |
+ | |{{dark}}|[[File:Targets_Resource.png]] Resource | ||
+ | |- | ||
+ | |{{dark}} rowspan="2"|Move | ||
+ | |{{dark}}|[[File:Actions_move.png]]{{Tooltip| |Move toward}} [[File:Actions_flee.png]]{{Tooltip| |Flee from}} | ||
+ | |{{I}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Actions_Idle.png]]{{Tooltip| |Flee from}} | ||
+ | |{{I}}||{{I}}||{{I}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|Attack | ||
+ | |{{dark}}|[[File:Actions_attack.png]]{{Tooltip| |Attack}} | ||
+ | |{{I}}||{{I}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}} rowspan="3"|Resource | ||
+ | |{{dark}}|[[File:Actions_grab.png]]{{Tooltip| |Catch}} | ||
+ | |{{I}}||{{I}}||{{I}}||{{I}}||{{I}}||{{X}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Actions_score.png]]{{Tooltip| |Secure resource to}} | ||
+ | |{{I}}||{{I}}||{{I}}||{{X}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Actions_DropResource.png]]{{Tooltip| |Drop resource}} | ||
+ | |{{I}}||{{I}}||{{I}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}} rowspan="3"|Tag | ||
+ | |{{dark}}|[[File:Actions_ExclusiveBotTag1.png]]{{Tooltip| |Tag 1}} [[File:Actions_ExclusiveBotTag2.png]]{{Tooltip| |Tag 2}} [[File:Actions_ExclusiveBotTag3.png]]{{Tooltip| |Tag 3}} [[File:Actions_ExclusiveBotTag4.png]]{{Tooltip| |Tag 4}} [[File:Actions_ExclusiveBotTag5.png]]{{Tooltip| |Tag 5}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Actions_BotTag1.png]]{{Tooltip| |Add tag 1}} [[File:Actions_BotTag2.png]]{{Tooltip| |Add tag 2}} [[File:Actions_BotTag3.png]]{{Tooltip| |Add tag 3}} [[File:Actions_BotTag4.png]]{{Tooltip| |Add tag 4}} [[File:Actions_BotTag5.png]]{{Tooltip| |Add tag 5}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Actions_BotUntag1.png]]{{Tooltip| |Untag 1}} [[File:Actions_BotUntag2.png]]{{Tooltip| |Untag 2}} [[File:Actions_BotUntag3.png]]{{Tooltip| |Untag 3}} [[File:Actions_BotUntag4.png]]{{Tooltip| |Untag 4}} [[File:Actions_BotUntag5.png]]{{Tooltip| |Untag 5}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
+ | |- | ||
+ | |{{dark}} rowspan="3"|Team tag | ||
+ | |{{dark}}|[[File:Actions_ExclusiveTeamTagA.png]]{{Tooltip| |Team tag A}} [[File:Actions_ExclusiveTeamTagB.png]]{{Tooltip| |Team tag B}} [[File:Actions_ExclusiveTeamTagC.png]]{{Tooltip| |Team tag C}} [[File:Actions_ExclusiveTeamTagD.png]]{{Tooltip| |Team tag D}} [[File:Actions_ExclusiveTeamTagE.png]]{{Tooltip| |Team tag E}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Actions_TeamTagA.png]]{{Tooltip| |Add team tag A}} [[File:Actions_TeamTagB.png]]{{Tooltip| |Add team tag B}} [[File:Actions_TeamTagC.png]]{{Tooltip| |Add team tag C}} [[File:Actions_TeamTagD.png]]{{Tooltip| |Add team tag D}} [[File:Actions_TeamTagE.png]]{{Tooltip| |Add team tag E}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Actions_TeamUntagA.png]]{{Tooltip| |Team untag A}} [[File:Actions_TeamUntagB.png]]{{Tooltip| |Team untag B}} [[File:Actions_TeamUntagC.png]]{{Tooltip| |Team untag C}} [[File:Actions_TeamUntagD.png]]{{Tooltip| |Team untag D}} [[File:Actions_TeamUntagE.png]]{{Tooltip| |Team untag E}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
+ | |- | ||
+ | |} | ||
− | + | == Conditions and filters == | |
− | + | ||
− | + | The following filters are valid for the different target types. They are used for both: Conditions and filters. | |
− | + | {|class="wikitable" | |
− | -- | + | |{{dark}} colspan="2"|Filters||{{dark}}|[[File:Targets_Self.png]] Myself |
+ | |{{dark}}|[[File:Targets_Ally.png]] Ally||{{dark}}|[[File:Targets_Enemy.png]] Enemy | ||
+ | |{{dark}}|[[File:Targets_Allybase.png]] Ally base||{{dark}}|[[File:Targets_Enemybase.png]] Enemy base | ||
+ | |{{dark}}|[[File:Targets_Resource.png]] Resource | ||
+ | |- | ||
+ | |{{dark}} rowspan="7"|Counting | ||
+ | |{{dark}}|[[File:Conditions_Counting_Exists.png]]{{Tooltip| |Exists}} | ||
+ | |{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Conditions_Counting_X1.png]]{{Tooltip| |Equals 1}} [[File:Conditions_Counting_X2.png]]{{Tooltip| |Equals 2}} [[File:Conditions_Counting_X3.png]]{{Tooltip| |Equals 3}} [[File:Conditions_Counting_X4.png]]{{Tooltip| |Equals 4}} [[File:Conditions_Counting_X5.png]]{{Tooltip| |Equals 5}} | ||
+ | |{{I}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Conditions_Counting_X6.png]]{{Tooltip| |Equals 6}} [[File:Conditions_Counting_X7.png]]{{Tooltip| |Equals 7}} [[File:Conditions_Counting_X8.png]]{{Tooltip| |Equals 8}} [[File:Conditions_Counting_X9.png]]{{Tooltip| |Equals 9}} [[File:Conditions_Counting_X10.png]]{{Tooltip| |Equals 10}} | ||
+ | |{{I}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Conditions_Counting_GE1.png]]{{Tooltip| |Greater equal 1}} [[File:Conditions_Counting_GE2.png]]{{Tooltip| |Greater equal 2}} [[File:Conditions_Counting_GE3.png]]{{Tooltip| |Greater equal 3}} [[File:Conditions_Counting_GE4.png]]{{Tooltip| |Greater equal 4}} [[File:Conditions_Counting_GE5.png]]{{Tooltip| |Greater equal 5}} | ||
+ | |{{I}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Conditions_Counting_GE6.png]]{{Tooltip| |Greater equal 6}} [[File:Conditions_Counting_GE7.png]]{{Tooltip| |Greater equal 7}} [[File:Conditions_Counting_GE8.png]]{{Tooltip| |Greater equal 8}} [[File:Conditions_Counting_GE9.png]]{{Tooltip| |Greater equal 9}} [[File:Conditions_Counting_GE10.png]]{{Tooltip| |Greater equal 10}} | ||
+ | |{{I}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Conditions_Counting_LE1.png]]{{Tooltip| |Less equal 1}} [[File:Conditions_Counting_LE2.png]]{{Tooltip| |Less equal 2}} [[File:Conditions_Counting_LE3.png]]{{Tooltip| |Less equal 3}} [[File:Conditions_Counting_LE4.png]]{{Tooltip| |Less equal 4}} [[File:Conditions_Counting_LE5.png]]{{Tooltip| |Less equal 5}} | ||
+ | |{{I}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Conditions_Counting_LE6.png]]{{Tooltip| |Less equal 6}} [[File:Conditions_Counting_LE7.png]]{{Tooltip| |Less equal 7}} [[File:Conditions_Counting_LE8.png]]{{Tooltip| |Less equal 8}} [[File:Conditions_Counting_LE9.png]]{{Tooltip| |Less equal 9}} [[File:Conditions_Counting_LE10.png]]{{Tooltip| |Less equal 10}} | ||
+ | |{{I}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}} | ||
+ | |- | ||
+ | |{{dark}}|Distance from me | ||
+ | |{{dark}}|[[File:Conditions_DistanceFromMe_ShortRange.png]]{{Tooltip| |At short range from me}} [[File:Conditions_DistanceFromMe_MediumRange.png]]{{Tooltip| |At medium range from me}} [[File:Conditions_DistanceFromMe_LongRange.png]]{{Tooltip| |At long range from me}} [[File:Conditions_DistanceFromMe_OutOfRange.png]]{{Tooltip| |Out of range from me}} | ||
+ | |{{I}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
+ | |- | ||
+ | |{{dark}}|Distance from arena borders | ||
+ | |{{dark}}|[[File:Conditions_DistanceFromArenaBorders_ShortRange.png]]{{Tooltip| |At short range from arena borders}} [[File:Conditions_DistanceFromArenaBorders_MediumRange.png]]{{Tooltip| |At medium range from arena borders}} [[File:Conditions_DistanceFromArenaBorders_LongRange.png]]{{Tooltip| |At long range from arena borders}} [[File:Conditions_DistanceFromArenaBorders_OutOfRange.png]]{{Tooltip| |Out of range from arena borders}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
+ | |- | ||
+ | |{{dark}}|Resource | ||
+ | |{{dark}}|[[File:Conditions_Resource_CarriesResource.png]]{{Tooltip| |Carrying resource}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|Health | ||
+ | |{{dark}}|[[File:Conditions_Health_health0to25pct.png]]{{Tooltip| |Health is 0 to 25 percents}} [[File:Conditions_Health_health25to50pct.png]]{{Tooltip| |Health is 25 to 50 percents}} [[File:Conditions_Health_health50to75pct.png]]{{Tooltip| |Health is 50 to 75 percents}} [[File:Conditions_Health_health75to100pct.png]]{{Tooltip| |Health is 75 to 100 percents}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|Target health compared to mine | ||
+ | |{{dark}}|[[File:Conditions_Health_LowerHealth.png]]{{Tooltip| |With lower health}} [[File:Conditions_Health_SameHealth.png]]{{Tooltip| |With same health}} [[File:Conditions_Health_HigherHealth.png]]{{Tooltip| |With higher health}} | ||
+ | |{{I}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|Shield | ||
+ | |{{dark}}|[[File:Conditions_Shield_armor0to25pct.png]]{{Tooltip| |Shield is 0 to 25 percents}} [[File:Conditions_Shield_armor25to50pct.png]]{{Tooltip| |Shield is 25 to 50 percents}} [[File:Conditions_Shield_armor50to75pct.png]]{{Tooltip| |Shield is 50 to 75 percents}} [[File:Conditions_Shield_armor75to100pct.png]]{{Tooltip| |Shield is 75 to 100 percents}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|Target shield compared to mine | ||
+ | |{{dark}}|[[File:Conditions_Shield_LowerShield.png]]{{Tooltip| |With lower shield}} [[File:Conditions_Shield_SameShield.png]]{{Tooltip| |With same shield}} [[File:Conditions_Shield_HigherShield.png]]{{Tooltip| |With higher shield}} | ||
+ | |{{I}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|Target health plus shield compared to mine | ||
+ | |{{dark}}|[[File:Conditions_Health+Shield_LowerHealthPlusShield.png]]{{Tooltip| |With lower health plus shield}} [[File:Conditions_Health+Shield_SameHealthPlusShield.png]]{{Tooltip| |With same health plus shield}} [[File:Conditions_Health+Shield_HigherHealthPlusShield.png]]{{Tooltip| |With higher health plus shield}} | ||
+ | |{{I}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}} rowspan="2"|My current action | ||
+ | |{{dark}}|[[File:Conditions_Attack_SelfAttacking.png]]{{Tooltip| |Attacked by me}} | ||
+ | |{{I}}||{{I}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Conditions_Move_SelfFleeingFrom.png]]{{Tooltip| |I am fleeing from}} [[File:Conditions_Move_SelfMovingTo.png]]{{Tooltip| |I am moving to}} | ||
+ | |{{I}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
+ | |- | ||
+ | |{{dark}} rowspan="9"|Target current action | ||
+ | |{{dark}}|[[File:Conditions_Attack_AttackingSelf.png]]{{Tooltip| |Attacking me}} [[File:Conditions_Attack_AttackingAlly.png]]{{Tooltip| |Attacking an ally}} | ||
+ | |{{I}}||{{I}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Conditions_Attack_AttackingEnemy.png]]{{Tooltip| |Attacking an enemy}} | ||
+ | |{{X}}||{{X}}||{{I}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Conditions_Move_Fleeing.png]]{{Tooltip| |Fleeing}} | ||
+ | |{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Conditions_Move_FleeingFromSelf.png]]{{Tooltip| |Fleeing from me}} | ||
+ | |{{I}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Conditions_Move_FleeingFromAlly.png]]{{Tooltip| |Fleeing from an ally}} [[File:Conditions_Move_FleeingFromEnemy.png]]{{Tooltip| |Fleeing from an enemy}} [[File:Conditions_Move_FleeingFromResource.png]]{{Tooltip| |Fleeing from a resource}} [[File:Conditions_Move_FleeingFromAllyBase.png]]{{Tooltip| |Fleeing from an ally base}} [[File:Conditions_Move_FleeingFromEnemyBase.png]]{{Tooltip| |Fleeing from an enemy base}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Conditions_Move_Moving.png]]{{Tooltip| |Moving}} | ||
+ | |{{H|Conditions only}}||{{H|Conditions only}}||{{H|Conditions only}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Conditions_Move_MovingToSelf.png]]{{Tooltip| |Moving to me}} | ||
+ | |{{I}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Conditions_Move_MovingToAlly.png]]{{Tooltip| |Moving to an ally}} [[File:Conditions_Move_MovingToEnemy.png]]{{Tooltip| |Moving to an enemy}} [[File:Conditions_Move_MovingToResource.png]]{{Tooltip| |Moving to a resource}} [[File:Conditions_Move_MovingToAllyBase.png]]{{Tooltip| |Moving to an ally base}} [[File:Conditions_Move_MovingToEnemyBase.png]]{{Tooltip| |Moving to an enemy base}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Actions_Idle.png]]{{Tooltip| |Idle}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}} rowspan="2"|{{Tooltip|Ally current action on target|In this filter category filters are connected with '''''AND'''''.}} | ||
+ | |{{dark}}|[[File:Conditions_Attack_AllyAttacking.png]]{{Tooltip| |Attacked by an ally}} | ||
+ | |{{I}}||{{I}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Conditions_Move_AllyFleeingFrom.png]]{{Tooltip| |An ally is fleeing from}} [[File:Conditions_Move_AllyMovingTo.png]]{{Tooltip| |An ally is moving to}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
+ | |- | ||
+ | |{{dark}} rowspan="2"|{{Tooltip|Enemy current action on target|In this filter category filters are connected with '''''AND'''''.}} | ||
+ | |{{dark}}|[[File:Conditions_Attack_EnemyAttacking.png]]{{Tooltip| |Attacked by an enemy}} | ||
+ | |{{X}}||{{X}}||{{I}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|[[File:Conditions_Move_EnemyFleeingFrom.png]]{{Tooltip| |An enemy is fleeing from}} [[File:Conditions_Move_EnemyMovingTo.png]]{{Tooltip| |An enemy is moving to}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
+ | |- | ||
+ | |{{dark}}|Bot class | ||
+ | |{{dark}}|[[File:Conditions_BotClass_AssaultClass.png]]{{Tooltip| |Assault class}} [[File:Conditions_BotClass_ShotgunClass.png]]{{Tooltip| |Shotgun class}} [[File:Conditions_BotClass_MachineGunClass.png]]{{Tooltip| |Machine gun class}} [[File:Conditions_BotClass_SniperClass.png]]{{Tooltip| |Sniper class}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{I}}||{{I}}||{{I}} | ||
+ | |- | ||
+ | |{{dark}}|{{Tooltip|Tag|In this filter category filters are connected with '''''AND'''''.}} | ||
+ | |{{dark}}|[[File:Actions_ExclusiveBotTag1.png]]{{Tooltip| |Tagged 1}} [[File:Actions_ExclusiveBotTag2.png]]{{Tooltip| |Tagged 2}} [[File:Actions_ExclusiveBotTag3.png]]{{Tooltip| |Tagged 3}} [[File:Actions_ExclusiveBotTag4.png]]{{Tooltip| |Tagged 4}} [[File:Actions_ExclusiveBotTag1.png]]{{Tooltip| |Tagged 5}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
+ | |- | ||
+ | |{{dark}}|{{Tooltip|Team tag|In this filter category filters are connected with '''''AND'''''.}} | ||
+ | |{{dark}}|[[File:Actions_ExclusiveTeamTagA.png]]{{Tooltip| |Team tagged A}} [[File:Actions_ExclusiveTeamTagB.png]]{{Tooltip| |Team tagged B}} [[File:Actions_ExclusiveTeamTagC.png]]{{Tooltip| |Team tagged C}} [[File:Actions_ExclusiveTeamTagD.png]]{{Tooltip| |Team tagged D}} [[File:Actions_ExclusiveTeamTagE.png]]{{Tooltip| |Team tagged E}} | ||
+ | |{{X}}||{{X}}||{{X}}||{{X}}||{{X}}||{{X}} | ||
+ | |- | ||
+ | |} |
Latest revision as of 17:40, 11 August 2018
Contents
[hide]Basics
Both condition nodes and action nodes are mainly defined by a target and share almost the same evaluation process:
Step | Condition node | Action node |
---|---|---|
1. | Get all the entities of the target type .
| |
2. | Remove all entities not matching the target filters . If there is not a single entity left the node is considered invalid except for counting conditions that check the target count.
| |
3. | Select the best remaining entity according to the target selector . The any and all selectors are special cases where all remaining entities are selected instead.
| |
The all selector can only be used for moving, fleeing, tagging and untagging.The any selector cannot be used for action nodes.
| ||
4. | Check the condition on the selected entity. The invert checkbox only inverts this condition and not the result of the entire node![]() |
Execute the action on the selected entity. |
Any selector: Check if the condition is valid for at least one of the remaining entities.
|
When moving or fleeing the all selector results in moving to or fleeing from the average position![]() | |
All selector: Check if the condition is valid for all of the remaining entities.
|
When tagging or untagging the all selector results in tagging or untagging all remaining entities.
|
![]() |
Condition nodes: Checking the condition is the very last step after filtering and selecting took place. |
Target filters
Multiple filters from the same filter category are connected either with OR or with AND between them.
- If there are separate dots on the left of each filter from the same filter category, the filters are joined with OR within that filter category.
- Example: In the filter category bot class filters are connected with OR. If the enemy is Assault class OR Machine gun class.
- If there is a line and a single dot on the left of all filters from the same filter category, the filters are joined with AND within that filter category.
- Example: In the filter category tag filters are connected with AND. If the enemy is tagged 1 AND not tagged 2.
The different filter categories are always connected with AND between them.
- Example: The enemy satisfies the bot class filters AND the tag filters.
Target selectors
The following target selectors are valid for the different target types. As there is only one entity of the myself target type there is no need of a target selector in this case.
Weakest/strongest and weakest/strongest ratio
If a Sniper has 2700 of 3000 shield remaining (90%) and a Machine gun has 3900 of 5000 shield remaining (78%) weakest shield would select the Sniper (2700 < 3900), weakest shield ratio would select the Machine gun (78% < 90%).
Entity selection process in case of identical attributes
The entity selection process sorts the remaining entities using the following comparison rules and keeps the first one.
Closest | Furthest |
---|---|
Closest to me
|
Furthest from me
|
Closest to arena borders
|
Furthest from arena borders
|
Weakest | Strongest |
Weakest health
|
Strongest health
|
Weakest health ratio
|
Strongest health ratio
|
Weakest shield
|
Strongest shield
|
Weakest shield ratio
|
Strongest shield ratio
|
Weakest health plus shield
|
Strongest health plus shield
|
Actions
The following target types are valid for the different actions.
Conditions and filters
The following filters are valid for the different target types. They are used for both: Conditions and filters.