You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Limit concurrent access to a shared resource (use elevator, med kit station, etc.).
Should be possible to limit number of attackers vs specific targets.
wait_for_resource: If true, the task should wait for the resource to be released; otherwise, return FAILURE when the resource is not available.
max_concurrency: maximum number of concurrent access allowed.
Alternative names: counter or count, units_available, available.
Resource can be any Object-derived instance on the blackboard.
Use Object::get_instance_id() for resource identification.
Optional: If not specified, the decorated branch is considered to be the resource that is limited, thus only a number of agents can access the limited branch.
Intention: StringName or String
Default value: &"default"
If the resource can be used in various ways without limit, the intention property can be used to specify how exactly it will be used.
Intention examples: &"engage", &"heal", &"hack".
Not applicable when resource object is not specified (when limiting the branch executions).
The purpose is to limit specific interactions with the resource: "Only 2 enemies can attack player at the same time", "Only 1 pylon can heal player at the same time" (player is the resource in these examples, and attacking and healing are intentions).
Q: Too convoluted? Does it complicate implementation too much?
Q: Should it be StringName?
Internal counter is associated with both instance_id and intention.
Internal counter is global, and it is not associated with the agent instance or specific BehaviorTree.
The text was updated successfully, but these errors were encountered:
Thoughts
wait_for_resource
: If true, the task should wait for the resource to be released; otherwise, returnFAILURE
when the resource is not available.max_concurrency
: maximum number of concurrent access allowed.counter
orcount
,units_available
,available
.Object
-derived instance on the blackboard.Object::get_instance_id()
for resource identification.StringName
orString
&"default"
&"engage"
,&"heal"
,&"hack"
.StringName
?The text was updated successfully, but these errors were encountered: