• Please note: In an effort to ensure that all of our users feel welcome on our forums, we’ve updated our forum rules. You can review the updated rules here: http://forums.wolflair.com/showthread.php?t=5528.

    If a fellow Community member is not following the forum rules, please report the post by clicking the Report button (the red yield sign on the left) located on every post. This will notify the moderators directly. If you have any questions about these new rules, please contact support@wolflair.com.

    - The Lone Wolf Development Team

"If hero already has this feat..."

Bob G

Well-known member
Me again. I'm working on a class special that grants a feat. The ability says "if the character already has this feat, they may select a Combat Feat or Rogue Talent."

For the life of me, I can't think of how to codify this in Hero Lab. Can someone provide some direction?
 
To me these are PITA to do honestly. The way I would solve it is just use a configurable with an expression that allows selecting this Specific feat, rogue talents and combat feats. Then let it up to the gamer to select the correct Thing.

The other idea is to have an Array dropdown where the gamer selects the Feat, Rogue Talent or combat feat. Then bootstrap the Feat to the class ability and if Feat is chosen have the bootstrap condition give the feat. If a Rogue Talent or Combat Feat is taken have two different configurable bootstrapped that allow for the correct choices. This way the gamer selects "Rogue Talent" and a new tab opens allowing them to only add Rogue Talents.

Those are my ideas....
 
Last edited:
ShadowChemosh is right, things where the bonus differs based on whether the user already has something are awkward. What he suggested would work.

Another option would be to have the class special bootstrap the feat it normally grants, and a configurable for adding the rogue talent/other combat feat to, and give the feat a bootstrap condition and set the configurable up to be live only if the feat isn't on. You could then add a State Checkbox (which is not the same think as activation checkboxes on the in-play tab, it is shown where the class special is gained) which controls which is present.

The Death Slayer PrC from Adventurer's Guide, has an ability which is close to what I suggest above, called Channel Smite. In case you don't own that book, I'll provide the XML below:

Code:
  <thing id="cDeSChaSmi" name="Channel Smite" description="A death slayer gains Channel Smite as a bonus feat. If she already has this feat, she instead gains a different feat selected from those bonus feats normally available to her at 2nd level (see below)." compset="ClSpecial" summary="Gain Channel Smite as a bonus feat.">
    <fieldval field="usrChkText" value="Already has Channel Smite"/>
    <tag group="Helper" tag="SpecUp"/>
    <tag group="abAction" tag="None"/>
    <tag group="abRange" tag="Personal"/>
    <tag group="abDuration" tag="Constant"/>
    <bootstrap thing="fChanSmite">
      <containerreq phase="First" priority="500">fieldval:usrIsCheck = 0</containerreq>
      <autotag group="thing" tag="skipprereq"/>
      </bootstrap>
    <eval index="1" phase="PostLevel" priority="10000"><![CDATA[
      ~ If we're not shown, just get out now
      doneif (tagis[Helper.ShowSpec] = 0)

      ~ If we're disabled, just get out now
      doneif (tagis[Helper.SpcDisable] <> 0)

      doneif (field[usrIsCheck].value = 0)

      doneif (isroot = 0)

      root.field[cBonFtMax].value += 1
      ]]></eval>
    </thing>

Because this is bootstrapped to a PrC, we can be assured that the bonus feat table isn't being used by an archetype or something else, so this example uses that. Yours will want to add to the appropriate field on your configurable instead.

There are 2 drawbacks to this approach. First, and it is the same as SC's suggestion, it isn't automated so it requires judgement (should I click this checkbox?) and an extra step from the user (clicking the box). Second, state checkboxes are shown with the class special pick, and are less discoverable if they are in a form in the class tab (as with a class which is a spellcaster), so the user may not realize they have the option of checking the box, if they aren't looking specifically at the benefits of the class in the program.

Those are my two cents. Hope they help!
 
Back
Top