From 2dd3fefa1da216504d6edb7fc4326a19cbaa2ae9 Mon Sep 17 00:00:00 2001 From: ctan Date: Sat, 19 Sep 2026 12:27:07 +0200 Subject: [PATCH] fix(rules): Larger Than Life / Ambitious / Focused Study to documented traced no-ops (SRD effects gate on Intimidate size, HD-differential Diplomacy, and chosen-skill bonuses the engine never resolves; the flat +1 Intimidate was the wrong effect) --- src/pf1e_simulator/abilities.py | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/src/pf1e_simulator/abilities.py b/src/pf1e_simulator/abilities.py index 6b2acdc..3849dd5 100644 --- a/src/pf1e_simulator/abilities.py +++ b/src/pf1e_simulator/abilities.py @@ -397,8 +397,15 @@ BITTER = AbilitySpec( source_detail="drawback: ally healing received reduced by 1 (engine behavior)", ) -# Ambitious: +1 trait bonus on one Craft or Profession skill -AMBITIOUS = AbilitySpec(name="Ambitious", category="trait") +# Ambitious (Basic Social trait, APG): "+4 trait bonus on Diplomacy checks +# made to influence creatures with at least 5 Hit Dice more than you +# possess." The HD-differential gate on a social skill the engine never +# resolves is not expressible -> documented traced no-op. +AMBITIOUS = AbilitySpec( + name="Ambitious", + category="trait", + source_detail="trait (not modeled: +4 Diplomacy vs creatures 5+ HD greater)", +) # Rapid Reload: reload firearms as free action RAPID_RELOAD = AbilitySpec(name="Rapid Reload (Pistol)", category="feat") @@ -449,12 +456,24 @@ LONELY = AbilitySpec( ), ) -# Larger Than Life: +1 trait bonus on Intimidate +# Larger Than Life (Basic Combat trait, APG): "When you use the Intimidate +# skill on a creature while wielding a firearm, you are considered one size +# category larger than your actual size." Intimidate is never resolved by the +# engine and size-for-skill is not modeled -> documented traced no-op (the +# previous flat "+1 intimidate" was the wrong effect: the trait grants no +# numeric bonus and only applies while wielding a firearm). LARGER_THAN_LIFE = AbilitySpec( name="Larger Than Life", category="trait", - effects=(StatModifier(target="intimidate", value=1),), + source_detail="trait (not modeled: one size larger for Intimidate with a firearm)", ) -# Focused Study: +2 on one skill -FOCUSED_STUDY = AbilitySpec(name="Focused Study", category="trait") +# Focused Study (human alternate racial trait, ARG): "+2 trait bonus on one +# skill" (chosen at 1st level, re-chosen at 8th/16th). The chosen skill is a +# social/exploration skill the combat engine never resolves -> documented +# traced no-op. +FOCUSED_STUDY = AbilitySpec( + name="Focused Study", + category="trait", + source_detail="trait (not modeled: +2 on one chosen skill, social/exploration)", +)