diff --git a/data/pcs/misty.json b/data/pcs/misty.json index 3ba6a34..3979722 100644 --- a/data/pcs/misty.json +++ b/data/pcs/misty.json @@ -137,7 +137,8 @@ "Gifted Adept (dispel magic; magic)", "Prehensile Tail (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": [ "Prestidigitation", diff --git a/src/pf1e_simulator/loaders/combatant.py b/src/pf1e_simulator/loaders/combatant.py index 74cb469..3eb7d2d 100644 --- a/src/pf1e_simulator/loaders/combatant.py +++ b/src/pf1e_simulator/loaders/combatant.py @@ -154,6 +154,7 @@ _NOOP_FEATS: frozenset[str] = frozenset({ "animal (race)", "drake (race)", "orange - lazy ass", + "plot armor", }) diff --git a/tests/test_feats.py b/tests/test_feats.py index 95a4aee..3141edb 100644 --- a/tests/test_feats.py +++ b/tests/test_feats.py @@ -62,8 +62,8 @@ def _all_feature_names() -> list[tuple[str, str, int]]: return rows -def test_55_unique_feature_names_across_8_pcs() -> None: - assert len(_pcs_features()) == 55 +def test_56_unique_feature_names_across_8_pcs() -> None: + assert len(_pcs_features()) == 56 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", "Pingre": "Pingre", "Point-Blank Shot": "Point-Blank Shot", + "Plot Armor": "Plot Armor", "Power Attack": "Power Attack", "Precise Shot": "Precise Shot", "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: - """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(): spec = _resolve_feat(name, 1) assert spec.name == expected_name, (