fix(rules): let a natural 20 auto-succeed on escape
PF1e (SRD Combat Maneuvers): "Rolling a natural 20 while attempting a combat maneuver is always a success (except when attempting to escape from bonds)" - escaping a grapple is a combat maneuver, not bonds. _maneuver_escape now auto-succeeds on a natural 20 below CMD (the natural 1 auto-failure is unchanged). README updated. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -4384,7 +4384,11 @@ class CombatEngine:
|
||||
target_cmd = self._maneuver_cmd(target)
|
||||
roll = self._rng.d20()
|
||||
total = roll + escape_bonus
|
||||
success = roll != 1 and total >= target_cmd
|
||||
# PF1e (SRD Combat Maneuvers): "Rolling a natural 20 while attempting
|
||||
# a combat maneuver is always a success (except when attempting to
|
||||
# escape from bonds)" — escaping a grapple is a combat maneuver, not
|
||||
# bonds, so the natural 20 auto-succeeds here too.
|
||||
success = roll == _NATURAL_TWENTY or (roll != _NATURAL_ONE and total >= target_cmd)
|
||||
if success:
|
||||
target.active_conditions = [
|
||||
ac for ac in target.active_conditions if ac.condition.name != "grappled"
|
||||
|
||||
Reference in New Issue
Block a user