opportunity_attack_provoked
Determine whether a creature's movement provokes an opportunity attack per SRD 5.2.1, considering voluntary movement, disengage, teleport, forced movement, and visibility.
Instructions
Does a creature's movement provoke an Opportunity Attack? Provokes only when a creature the reactor can see leaves the reactor's reach using its own movement. It does NOT provoke on Disengage, Teleportation, forced movement, or an unseen mover (SRD 5.2.1 p.15). Supply movement_kind; a voluntary path also needs caller-observed leaves_reach and mover_seen_by_reactor unless a supplied false prerequisite already proves no provocation. Missing facts return cannot-adjudicate. Whether the reactor has a Reaction is reaction.available. Returns data {provoked: bool}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| leaves_reach | No | caller geometry fact: does the movement take the creature out of the reactor's reach | |
| table_policy | No | ||
| movement_kind | No | how the creature is moving; only 'voluntary' (its own movement) can provoke | |
| asserted_facts | No | ||
| policy_context | No | ||
| table_decision | No | ||
| mover_seen_by_reactor | No | caller fact: can the reactor see the moving creature |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| why | Yes | ||
| data | No | ||
| facts | Yes | ||
| adapter | Yes | ||
| verdict | Yes | ||
| rule_ids | Yes | ||
| citations | Yes | ||
| exit_code | Yes | ||
| assumptions | Yes | ||
| explanation | Yes | ||
| rule_result | Yes | ||
| checked_scope | Yes | ||
| coverage_level | Yes | ||
| state_mutation | Yes | ||
| table_decision | Yes | ||
| unchecked_scope | Yes |