Difference between revisions of "Conditions and actions"
(→Conditions and filters) |
(→Conditions and filters) |
||
Line 265: | Line 265: | ||
|{{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}} | |{{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}} | |{{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}}||{{H|Filters only}}||{{H|Filters only}}||{{H|Filters only}} | ||
+ | |- | ||
+ | |{{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}}||{{H|Filters only}}||{{H|Filters only}}||{{H|Filters only}} | ||
+ | |- | ||
+ | |{{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}}||{{H|Filters only}}||{{H|Filters only}}||{{H|Filters only}} | ||
+ | |- | ||
+ | |{{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}} | ||
+ | |- | ||
|} | |} |
Revision as of 22:47, 19 November 2017
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 any and all selectors can only be used for moving, fleeing, tagging and untagging.
| ||
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 any and all selectors result in moving to or fleeing from the average position![]() any and all selector.
| |
All selector: Check if the condition is valid for all of the remaining entities.
|
When tagging or untagging the any and all selectors result in tagging or untagging all remaining entities. There is no difference between the any and all selector.
|
![]() |
Condition nodes: Checking the condition is the very last step after filtering and selecting took place. |
Example
Consider the following condition node:
- Target type: Enemy
- Target filters: Not carrying resource
- Target selector: Closest to me
- Condition: Shield is 0 to 25%
The following situation is evaluated like this:
- There are 4 entities of target type enemy. Allies, resources and bases are discarded.
- There are 3 entities not carrying a resource. The enemy moving to his base is removed from the list.
- The distance between the Shotgun and the remaining 3 entities is measured. Only the closest enemy of them is selected.
- The condition is only checked for the remaining entity. As this enemy has full shield, the condition is evaluated invalid.
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 rest of the page is a work in progress. |
The following and filters are valid for the different target types. They are used for both: Conditions and filters.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() | ||
Counting | File:Conditions Exists.png![]() |
✔![]() |
✔![]() |
✔![]() |
✔![]() |
✔![]() |
✔![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
✖ | ✔![]() |
✔![]() |
✔![]() |
✔![]() |
✔![]() | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
✖ | ✔![]() |
✔![]() |
✔![]() |
✔![]() |
✔![]() | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
✖ | ✔![]() |
✔![]() |
✔![]() |
✔![]() |
✔![]() | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
✖ | ✔![]() |
✔![]() |
✔![]() |
✔![]() |
✔![]() | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
✖ | ✔![]() |
✔![]() |
✔![]() |
✔![]() |
✔![]() | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
✖ | ✔![]() |
✔![]() |
✔![]() |
✔![]() |
✔![]() | |
Distance from me | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
✖ | ✔ | ✔ | ✔ | ✔ | ✔ |
Distance from arena borders | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Resource | ![]() ![]() |
✔ | ✔ | ✔ | ✖ | ✖ | ✖ |
Health | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
✔ | ✔ | ✔ | ✖ | ✖ | ✖ |
Target health compared to mine | ![]() ![]() ![]() ![]() ![]() ![]() |
✖ | ✔ | ✔ | ✖ | ✖ | ✖ |
Shield | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
✔ | ✔ | ✔ | ✖ | ✖ | ✖ |
Target shield compared to mine | ![]() ![]() ![]() ![]() ![]() ![]() |
✖ | ✔ | ✔ | ✖ | ✖ | ✖ |
Target health plus shield compared to mine | ![]() ![]() ![]() ![]() ![]() ![]() |
✖ | ✔ | ✔ | ✖ | ✖ | ✖ |
My current action | ![]() ![]() |
✖ | ✖ | ✔ | ✖ | ✖ | ✖ |
![]() ![]() ![]() ![]() |
✖ | ✔ | ✔ | ✔![]() |
✔![]() |
✔![]() | |
Target current action | ![]() ![]() ![]() ![]() |
✖ | ✖ | ✔ | ✖ | ✖ | ✖ |
![]() ![]() |
✔ | ✔ | ✖ | ✖ | ✖ | ✖ | |
![]() ![]() |
✔![]() |
✔![]() |
✔![]() |
✖ | ✖ | ✖ | |
![]() ![]() |
✖ | ✔ | ✔ | ✖ | ✖ | ✖ | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
✔ | ✔ | ✔ | ✖ | ✖ | ✖ | |
![]() ![]() |
✔![]() |
✔![]() |
✔![]() |
✖ | ✖ | ✖ | |
![]() ![]() |
✖ | ✔ | ✔ | ✖ | ✖ | ✖ | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
✔ | ✔ | ✔ | ✖ | ✖ | ✖ | |
![]() ![]() |
✔ | ✔ | ✔ | ✖ | ✖ | ✖ | |
Ally current action on target![]() |
![]() ![]() |
✖ | ✖ | ✔ | ✖ | ✖ | ✖ |
![]() ![]() ![]() ![]() |
✔ | ✔ | ✔ | ✔![]() |
✔![]() |
✔![]() | |
Enemy current action on target![]() |
![]() ![]() |
✔ | ✔ | ✖ | ✖ | ✖ | ✖ |
![]() ![]() ![]() ![]() |
✔ | ✔ | ✔ | ✔![]() |
✔![]() |
✔![]() | |
Bot class | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
✔ | ✔ | ✔ | ✖ | ✖ | ✖ |
Tag![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Team tag![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ |