fix(rules): restrict nauseated creatures to a single move action
PF1e (SRD Conditions, nauseated): "The only action such a character can take is a single move actions per turn." _NAUSEA_MOVE_KINDS now holds only genuine move actions (move, stand_up, retrieve_weapon, repair_weapon): the 5-foot step and dropping prone are free actions and are dropped by the nauseated filter. The pinned filter test was retargeted; 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:
@@ -409,11 +409,17 @@ def test_nauseated_cannot_cast_via_action_execution() -> None:
|
||||
|
||||
|
||||
def test_nauseated_filter_keeps_move_kinds_drops_everything_else() -> None:
|
||||
for kind in ("move", "5foot_step", "stand_up", "drop_prone"):
|
||||
# SRD nauseated: "The only action such a character can take is a single
|
||||
# move action per turn" — only genuine move actions survive; the 5-foot
|
||||
# step and dropping prone are free actions, not move actions.
|
||||
for kind in ("move", "stand_up", "retrieve_weapon", "repair_weapon"):
|
||||
kept = _nauseated_filter((Action(kind=kind, target_id="foe"),))
|
||||
assert len(kept) == 1, kind
|
||||
assert kept[0].kind == kind, kind
|
||||
for kind in ("attack", "cast_spell", "full_attack", "charge", "maneuver", "hex"):
|
||||
for kind in (
|
||||
"attack", "cast_spell", "full_attack", "charge", "maneuver", "hex",
|
||||
"5foot_step", "drop_prone",
|
||||
):
|
||||
assert _nauseated_filter((Action(kind=kind, target_id="foe"),)) == (), kind
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user