fix(rules): mirror image rolled image count with dynamic images/(images+1) concealment miss chance, bleed cantrip gated on the SRD dying-target eligibility, bane -1 fear-scoped penalty via a dedicated bane condition (SRD spells/mirror-image.md, spells/bleed.md, spells/bane.md)

This commit is contained in:
2026-09-19 13:22:19 +02:00
parent d9b590ebce
commit 56310b191a
7 changed files with 194 additions and 32 deletions
+16 -1
View File
@@ -85,6 +85,21 @@ COWERING = Condition(
cant_act=True,
)
# Bane (SRD spells/bane.md): "Each affected creature takes a -1 penalty on
# attack rolls and a -1 penalty on saving throws against fear effects." The
# save penalties are conditioned on the "fear" descriptor so they apply only
# to saves against fear effects (the engine's descriptor machinery, same
# convention as inspire courage's conditioned morale).
BANE = Condition(
name="bane",
modifiers=(
StatModifier(target="attack", value=-1),
StatModifier(target="fort", value=-1, condition="fear"),
StatModifier(target="ref", value=-1, condition="fear"),
StatModifier(target="will", value=-1, condition="fear"),
),
)
# ── Physical conditions ─────────────────────────────────────────────────────
# Sickened: -2 attack, weapon damage, saving throws, skill/ability checks (CRB)
SICKENED = Condition(
@@ -341,6 +356,6 @@ CONDITIONS_BY_NAME: dict[str, Condition] = {
BLINDED, DEAFENED, FLAT_FOOTED, PRONE, STUNNED, PARALYZED,
NAUSEATED, DAZED, STAGGERED, FRIGHTENED, PANICKED, COWERING,
ASLEEP, GRAPPLED, PINNED, BLURRED, DISPLACED,
HELPLESS, FASCINATED, INVISIBLE, BLEEDING, CONFUSED,
HELPLESS, FASCINATED, INVISIBLE, BLEEDING, CONFUSED, BANE,
]
}