fix(rules): any concealment denies sneak attack (SRD rogue: 'a creature with concealment')
This commit is contained in:
@@ -2999,14 +2999,15 @@ class CombatEngine:
|
||||
|
||||
PF1e: precision damage when the target is flanked (melee only, melee
|
||||
touch included) or denied its Dex bonus to AC (melee, or ranged within
|
||||
30 ft); dice = (level + 1) // 2. Only TOTAL concealment (miss chance
|
||||
>= 50%) denies the sneak attack; partial concealment (blurred 20%)
|
||||
does not (CRB rogue "Sneak Attack": "cannot sneak attack while
|
||||
striking a creature with total concealment"). A BLINDED attacker faces
|
||||
total concealment against ALL its opponents (CRB "Conditions —
|
||||
Blinded": "All opponents are considered to have total concealment
|
||||
(50% miss chance) against the blinded character"), so it cannot sneak
|
||||
attack either — same max(target, 50) convention as _resolve_hit_damage.
|
||||
30 ft); dice = (level + 1) // 2. ANY concealment (miss chance > 0)
|
||||
denies the sneak attack (SRD rogue "Sneak Attack": "A rogue cannot
|
||||
sneak attack while striking a creature with concealment" — the rogue
|
||||
must see the target well enough to pick a vital spot). A BLINDED
|
||||
attacker faces total concealment against ALL its opponents (CRB
|
||||
"Conditions — Blinded": "All opponents are considered to have total
|
||||
concealment (50% miss chance) against the blinded character"), so it
|
||||
cannot sneak attack either — same max(target, 50) convention as
|
||||
_resolve_hit_damage.
|
||||
PF1e (CRB): undead and constructs are immune to precision damage —
|
||||
ooze/plant immunity is not modeled (no such creature types exist in
|
||||
the data model).
|
||||
@@ -3015,7 +3016,7 @@ class CombatEngine:
|
||||
if self._has_condition_named(attacker, "blinded"):
|
||||
effective_concealment = max(concealment, _TOTAL_CONCEALMENT_PCT)
|
||||
if (
|
||||
effective_concealment >= _TOTAL_CONCEALMENT_PCT
|
||||
effective_concealment > 0
|
||||
or not self._has_feat(attacker, _SNEAK_ATTACK_FEATURE)
|
||||
):
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user