fix(rules): scale Power Attack for two-handed weapons and apply its CMB penalty
This commit is contained in:
@@ -2260,7 +2260,14 @@ class CombatEngine:
|
||||
sum(c.formula.roll(self._rng) for c in weapon.damage) + weapon.damage_bonus
|
||||
)
|
||||
damage += resolve_modifiers(dmg_mods)
|
||||
damage += pa_amt * 2 if weapon.kind == "melee" else 0
|
||||
# PF1e (CRB Power Attack): +2X damage with a melee weapon, +3X (the
|
||||
# bonus increased by half) with a two-handed weapon, a one-handed
|
||||
# weapon used in two hands, or a primary natural with 1.5x Strength
|
||||
# (modeled via the weapon's `two_handed` flag). The off-hand /
|
||||
# secondary-natural halving (-50%, +1X) is NOT modeled: two-weapon
|
||||
# fighting is not in the engine (documented simplification).
|
||||
if weapon.kind == "melee":
|
||||
damage += pa_amt * (3 if weapon.two_handed else 2)
|
||||
if crit:
|
||||
damage *= weapon.crit_mult
|
||||
damage += sneak_total
|
||||
@@ -3607,7 +3614,13 @@ class CombatEngine:
|
||||
if not state.active:
|
||||
return
|
||||
|
||||
attacker_cmb = self._maneuver_cmb(state)
|
||||
# PF1e (CRB Power Attack): the -X penalty applies to all melee attack
|
||||
# rolls AND combat maneuver checks while the feat is active. The
|
||||
# escape option that substitutes an Acrobatics/Escape Artist skill
|
||||
# check is not penalized (a skill check is not a CMB check) — see
|
||||
# _maneuver_escape.
|
||||
pa_amt = self._power_attack_amt(state)
|
||||
attacker_cmb = self._maneuver_cmb(state) - pa_amt
|
||||
target_cmd = self._maneuver_cmd(target)
|
||||
roll = self._rng.d20()
|
||||
total = roll + attacker_cmb
|
||||
|
||||
Reference in New Issue
Block a user