fix(rules): only total concealment blocks sneak attack

PF1e (CRB rogue Sneak Attack): "A rogue cannot sneak attack while
striking a creature with total concealment." _sneak_attack_dice now gates
on miss_chance >= 50 instead of any concealment > 0, so a blurred (20%)
target can still be sneak attacked while a displaced (50%) one cannot. The
test that pinned the old any-concealment denial was retargeted to total
concealment and a partial-concealment case added; 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:
2026-09-11 23:41:06 +02:00
parent a2825e73cc
commit 9d583a04c0
3 changed files with 44 additions and 9 deletions
+7 -2
View File
@@ -859,7 +859,10 @@ Règles modélisées :
cible en porte une, après la touche et la confirmation de critique, le moteur
tire un d100 : si `d100 ≤ miss_chance`, l'attaque rate complètement (aucun
dégât, pas de critique, deed non consommé — journalisé « concealment »). Une
cible avec concealment ne peut pas être la victime d'une attaque sournoise.
cible avec concealment **total** (`miss_chance ≥ 50 %`) ne peut pas être la
victime d'une attaque sournoise ; une dissimulation partielle (flou 20 %) ne
bloque plus la sournoise (conformance A7 — CRB rogue « Sneak Attack » :
« cannot sneak attack while striking a creature with total concealment »).
Attaquant aveugle (V5a) : un attaquant portant `blinded` considère tous ses
adversaires comme ayant un concealment total — le même jet unique de d100 est
tiré avec `miss_chance = max(concealment de la cible, 50)` et journalisé
@@ -890,7 +893,9 @@ Règles modélisées :
attaque à distance à ≤ 30 ft). Les dés sont jetés avec le RNG du moteur et
ajoutés APRÈS le multiplicateur de critique (la précision n'est jamais
multipliée) et AVANT la RD et les résistances énergétiques ; jamais contre une
cible avec concealment. Conformance P2 : les morts-vivants (`undead`) et les
cible à dissimulation **totale** (`miss_chance ≥ 50 %` ; conformance A7 — une
dissimulation partielle comme le flou 20 % n'empêche plus la sournoise).
Conformance P2 : les morts-vivants (`undead`) et les
constructeurs (`construct`) sont immunisés aux dégâts de précision — la cible
ne peut pas être la victime d'une attaque sournoise ; les autres immunités RAW
(vase, plante) ne sont pas modélisées (pas de tels types dans le modèle).