fix(rules): misty - add sheet feat Plot Armor as traced no-op so data matches the Foundry sheet

This commit is contained in:
2026-09-16 22:18:54 +02:00
parent 2b5b39a9f7
commit 611952cbf7
3 changed files with 7 additions and 4 deletions
+2 -1
View File
@@ -137,7 +137,8 @@
"Gifted Adept (dispel magic; magic)", "Gifted Adept (dispel magic; magic)",
"Prehensile Tail (tiefling daemon-spawn)", "Prehensile Tail (tiefling daemon-spawn)",
"Scaled Skin (electricity) (tiefling daemon-spawn)", "Scaled Skin (electricity) (tiefling daemon-spawn)",
"Maw or Claw (Bite) (tiefling daemon-spawn)" "Maw or Claw (Bite) (tiefling daemon-spawn)",
"Plot Armor"
], ],
"spells": [ "spells": [
"Prestidigitation", "Prestidigitation",
+1
View File
@@ -154,6 +154,7 @@ _NOOP_FEATS: frozenset[str] = frozenset({
"animal (race)", "animal (race)",
"drake (race)", "drake (race)",
"orange - lazy ass", "orange - lazy ass",
"plot armor",
}) })
+4 -3
View File
@@ -62,8 +62,8 @@ def _all_feature_names() -> list[tuple[str, str, int]]:
return rows return rows
def test_55_unique_feature_names_across_8_pcs() -> None: def test_56_unique_feature_names_across_8_pcs() -> None:
assert len(_pcs_features()) == 55 assert len(_pcs_features()) == 56
def test_no_feat_in_8_pcs_is_silently_unresolved() -> None: def test_no_feat_in_8_pcs_is_silently_unresolved() -> None:
@@ -192,6 +192,7 @@ _EXPECTED_RESOLUTION: dict[str, str] = {
"Orange - Lazy Ass": "Orange - Lazy Ass", "Orange - Lazy Ass": "Orange - Lazy Ass",
"Pingre": "Pingre", "Pingre": "Pingre",
"Point-Blank Shot": "Point-Blank Shot", "Point-Blank Shot": "Point-Blank Shot",
"Plot Armor": "Plot Armor",
"Power Attack": "Power Attack", "Power Attack": "Power Attack",
"Precise Shot": "Precise Shot", "Precise Shot": "Precise Shot",
"Prehensile Tail (tiefling daemon-spawn)": "Prehensile Tail (tiefling daemon-spawn)", "Prehensile Tail (tiefling daemon-spawn)": "Prehensile Tail (tiefling daemon-spawn)",
@@ -216,7 +217,7 @@ _EXPECTED_RESOLUTION: dict[str, str] = {
def test_every_pc_feature_resolves_to_expected_spec() -> None: def test_every_pc_feature_resolves_to_expected_spec() -> None:
"""The full 55-name mapping table is satisfied by the loader.""" """The full 56-name mapping table is satisfied by the loader."""
for name, expected_name in _EXPECTED_RESOLUTION.items(): for name, expected_name in _EXPECTED_RESOLUTION.items():
spec = _resolve_feat(name, 1) spec = _resolve_feat(name, 1)
assert spec.name == expected_name, ( assert spec.name == expected_name, (