fix(rules): CMD never adds Dex on top of a Tiny Dex-substituted pre-baked CMB
This commit is contained in:
@@ -4782,11 +4782,23 @@ class CombatEngine:
|
||||
# Strength modifier + Dexterity modifier + special size modifier" —
|
||||
# the Tiny-or-smaller Dex-for-Str substitution is CMB-only, so the
|
||||
# ability component is computed here instead of via _maneuver_cmb.
|
||||
target_base = target.combatant.cmb or (
|
||||
target.combatant.bab
|
||||
+ target.combatant.abilities.str_mod
|
||||
+ self._size_mod(target)
|
||||
)
|
||||
# A pre-baked CMB on a Tiny-or-smaller creature ALREADY carries that
|
||||
# substitution (SRD: they "use their Dexterity modifier in place of
|
||||
# their Strength modifier to determine their CMB"), so it must never
|
||||
# seed the CMD base — the extra Dexterity below would be double-
|
||||
# counted and Strength lost. Use the raw CMD formula for those sizes.
|
||||
if target.combatant.size.lower() in _TINY_OR_SMALLER_SIZES:
|
||||
target_base = (
|
||||
target.combatant.bab
|
||||
+ target.combatant.abilities.str_mod
|
||||
+ self._size_mod(target)
|
||||
)
|
||||
else:
|
||||
target_base = target.combatant.cmb or (
|
||||
target.combatant.bab
|
||||
+ target.combatant.abilities.str_mod
|
||||
+ self._size_mod(target)
|
||||
)
|
||||
# PF1e (SRD Combat Maneuver Defense): "A creature can also add any
|
||||
# circumstance, deflection, dodge, insight, luck, morale, profane,
|
||||
# and sacred bonuses to AC to its CMD. [...] A flat-footed creature
|
||||
|
||||
Reference in New Issue
Block a user