Loading ...
Sorry, an error occurred while loading the content.

Coding 4E with 5.15.4

Expand Messages
  • Jason Horner
    Here s some feedback on some of the difficulties I ran into when trying to code up 4E rules with 5.15.3 and 5.15.4. Just thought the team might want to know
    Message 1 of 3 , Oct 8, 2008
    • 0 Attachment
      Here's some feedback on some of the difficulties I ran into when
      trying to code up 4E rules with 5.15.3 and 5.15.4. Just thought the
      team might want to know about them.


      1. Does the BONUSFEATLEVELINTERVAL tag work as designed? It seems to
      say you can use more than one in the docs (and the 3.5 SDR
      miscinfo.lst comments), but I did not find this to work as I'd
      expect. For example, I want to grant a feat at every level ending in
      either 1 or an even number. So okay, I do this:

      BONUSFEATLEVELSTARTINTERVAL:1|10
      BONUSFEATLEVELSTARTINTERVAL:2|2

      That should grant a feat at 1st level and every 10 levels after that,
      and at level 2, and every second level after that. Since there is no
      overlap, I should get exactly the progression I want. Well, it
      doesn't work. In my experimentation, in 5.15.4 at least, it seems
      that only the FIRST such tag in miscinfo.lst gets honored and the
      rest get ignored. (I get a new feat at level 1, 11, and 21, but none
      on any of the even numbered levels.) If I switch the order, the
      opposite happens: I get a feat at every even numbered level, but not
      one on level 1, 11, or 21.

      I even went so far as to try to do:
      BONUSFEATLEVELSTARTINTERVAL:1|0
      BONUSFEATLEVELSTARTINTERVAL:2|0
      BONUSFEATLEVELSTARTINTERVAL:4|0
      BONUSFEATLEVELSTARTINTERVAL:6|0

      ...etc, but that didn't work either (I only get a feat at level 1 and
      never again). The complementary tag, BONUSSTATLEVELSTARTINTERVAL
      *does* seem to work properly, so unless there is some trick I am
      missing, BONUSFEATLEVELSTARTINTERVAL does not seem to be working as
      documented.


      2. Order of operations issue with ability score. In a (slightly)
      convoluted way, I am entering data for a special race called MyRace
      that lets you choose one ability score to give a +2 bonus at 1st
      level (bet you can't guess what it is :P). But, I wanted the bonus
      to show up as a Racial bonus and not a Misc bonus, so I made sure
      that the actual bonus was applied in the Races.lst file. Here's what
      I did.

      Races.lst:

      DEFINE:MyRaceStatBonusStr|0
      BONUS:STAT|STR|MyRaceStatBonusStr|TYPE=Racial
      DEFINE:MyRaceStatBonusCon|0
      BONUS:STAT|CON|MyRaceStatBonusCon|TYPE=Racial
      :
      : (etc.)
      :
      ADD:ABILITY|1|MyRace Racial Stat Bonus|AUTOMATIC|TYPE=MyRaceStatBonus


      In Abilities.lst, there is one of these for each stat:

      MyRace Racial Stat Bonus (Str)
      CATEGORY:Special Ability
      TYPE:MyRaceStatBonus
      DESC:MyRace racial stat bonus
      MULT:NO
      BONUS:VAR|MyRaceStatBonusStr|2
      :


      (Again, I could have just bonused the stat directly in Abilities.lst,
      but then it shows up under the "Misc" bonus instead of as "Racial"
      category like I want.)

      All of this works, and I see the correct stat modifiers on my output
      sheet, and the Summary tab charges the racial bonus to the Race, like
      I wanted. But there is a problem if I use the stat in some
      formulas. If I implement an ability that uses the adjusted score
      based on the racial stat bonus I chose, it doesn't work:

      Wise Body
      CATEGORY:Special Ability
      TYPE:HometownBonus
      SAB:Hometown Bonus (MyHometown)
      BONUS:HP|CURRENTMAX|if(WISSCORE>CONSCORE,WISSCORE-CONSCORE,0)

      In this case, if my WISSCORE (after the bonus) was 6 greater than my
      CONSCORE, what should happen is that my HP increase by 6. If I chose
      anything but Wisdom to apply my "MyRace racial bonus" to, that's
      exactly what I get (the correct answer). If I applied the racial
      bonus to Wisdom, I only see HP increase by 4. My guess is that the
      racial bonus has not been added yet to WISSCORE at that point of the
      calc, and that the dependency is not being detected and handled
      properly.


      3. There seems to be no IIF output tag that I can use to decide
      whether or not to add something based on whether a skill has an armor
      check penalty or not. I know about the IIF(SKILLn.ACP) tag, but that
      only prints out the text you give it -- it cannot be used in a
      calculation.


      4. I'd like to again make a request to be able to output the
      component of a statistic based on bonus type, as in:

      BONUS.COMBAT.AC.TYPE=Enhancement
      BONUS.CHECKS.REFLEX.TYPE=Racial

      It is possible to create VARs and use some clever math to implement
      custom stat breakdowns (and that's what I ended up doing), but it's
      really a mess. There are some oddities I found too. In 5.15.3, if I
      did a BONUS:CHECKS|ALL|1 in a race file, the bonus gets charged to
      the race. But if I did a single score, like: BONUS:CHECKS|REFLEX|1,
      the bonus gets charged to some other category -- I believe it was to
      the STATMOD).

      IMHO, if you want people to be able to implement stat breakdowns like
      the standard 4E sheet does without having to do a lot of work, you
      need something like this capability. If you were to implement this,
      you wouldn't even really need the ACTYPE/ADD/REMOVE tokens in the
      miscinfo.lst file anymore.
    • Andrew Maitland
      Hi Jason,   Thanks for the feedback.   I ve not been doing too much on the 4e front to rest the brain for a bit, however, the Feats and Stats we do have
      Message 2 of 3 , Oct 8, 2008
      • 0 Attachment
        Hi Jason,
         
        Thanks for the feedback.
         
        I've not been doing too much on the 4e front to rest the brain for a bit, however, the Feats and Stats we do have working. I'll see about grabbing the formulas and such.
         
        The bonus feat deal sounds like a bug.
         
        The Racial Stat Bonus - I think the var or prexxx tag was the method we went with. I'll need to look at my notes.
         
        IN your race put this
        BONUS:STAT|STR|x|PREABILITY:1,CATEGORY=Special Ability,Race Choice (STR)
         
        repeat for each stat (change the STR for both to each stat.
         
        In an ability file
        Race Choice (STR)
        CATEGORY:Special Ability
        TYPE:RaceChoice
         
        In the Abilitycat file
        ABILITYCATEGORY:Racial Stat Choice
        TYPE:RaceChoice
        VISIBLE:QUALIFY
        DISPLAYLOCATION:Racial Abilities
        EDITABLE:YES
        EDITPOOL:NO
        PLURAL:Racial Stat Choice
         
         
        In the race file for your race add this to the line:
        BONUS:ABILITYPOOL|Racial Stat Choice|1
         
        Done. Not the prettiest, but that should work as you want.
         
        The rest either myself or another will have to tracker. (The joys of being at work).

        --- On Wed, 10/8/08, Jason Horner <jlhorner1974@...> wrote:

        From: Jason Horner <jlhorner1974@...>
        Subject: [PCGenListFileHelp] Coding 4E with 5.15.4
        To: PCGenListFileHelp@yahoogroups.com
        Date: Wednesday, October 8, 2008, 11:20 AM

        Here's some feedback on some of the difficulties I ran into when
        trying to code up 4E rules with 5.15.3 and 5.15.4. Just thought the
        team might want to know about them.


        1. Does the BONUSFEATLEVELINTERVAL tag work as designed? It seems to
        say you can use more than one in the docs (and the 3.5 SDR
        miscinfo.lst comments), but I did not find this to work as I'd
        expect. For example, I want to grant a feat at every level ending in
        either 1 or an even number. So okay, I do this:

        BONUSFEATLEVELSTARTINTERVAL:1|10
        BONUSFEATLEVELSTARTINTERVAL:2|2

        That should grant a feat at 1st level and every 10 levels after that,
        and at level 2, and every second level after that. Since there is no
        overlap, I should get exactly the progression I want. Well, it
        doesn't work. In my experimentation, in 5.15.4 at least, it seems
        that only the FIRST such tag in miscinfo.lst gets honored and the
        rest get ignored. (I get a new feat at level 1, 11, and 21, but none
        on any of the even numbered levels.) If I switch the order, the
        opposite happens: I get a feat at every even numbered level, but not
        one on level 1, 11, or 21.

        I even went so far as to try to do:
        BONUSFEATLEVELSTARTINTERVAL:1|0
        BONUSFEATLEVELSTARTINTERVAL:2|0
        BONUSFEATLEVELSTARTINTERVAL:4|0
        BONUSFEATLEVELSTARTINTERVAL:6|0

        ...etc, but that didn't work either (I only get a feat at level 1 and
        never again). The complementary tag, BONUSSTATLEVELSTARTINTERVAL
        *does* seem to work properly, so unless there is some trick I am
        missing, BONUSFEATLEVELSTARTINTERVAL does not seem to be working as
        documented.


        2. Order of operations issue with ability score. In a (slightly)
        convoluted way, I am entering data for a special race called MyRace
        that lets you choose one ability score to give a +2 bonus at 1st
        level (bet you can't guess what it is :P). But, I wanted the bonus
        to show up as a Racial bonus and not a Misc bonus, so I made sure
        that the actual bonus was applied in the Races.lst file. Here's what
        I did.

        Races.lst:

        DEFINE:MyRaceStatBonusStr|0
        BONUS:STAT|STR|MyRaceStatBonusStr|TYPE=Racial
        DEFINE:MyRaceStatBonusCon|0
        BONUS:STAT|CON|MyRaceStatBonusCon|TYPE=Racial
        :
        : (etc.)
        :
        ADD:ABILITY|1|MyRace Racial Stat Bonus|AUTOMATIC|TYPE=MyRaceStatBonus


        In Abilities.lst, there is one of these for each stat:

        MyRace Racial Stat Bonus (Str)
        CATEGORY:Special Ability
        TYPE:MyRaceStatBonus
        DESC:MyRace racial stat bonus
        MULT:NO
        BONUS:VAR|MyRaceStatBonusStr|2
        :


        (Again, I could have just bonused the stat directly in Abilities.lst,
        but then it shows up under the "Misc" bonus instead of as
        "Racial"
        category like I want.)

        All of this works, and I see the correct stat modifiers on my output
        sheet, and the Summary tab charges the racial bonus to the Race, like
        I wanted. But there is a problem if I use the stat in some
        formulas. If I implement an ability that uses the adjusted score
        based on the racial stat bonus I chose, it doesn't work:

        Wise Body
        CATEGORY:Special Ability
        TYPE:HometownBonus
        SAB:Hometown Bonus (MyHometown)
        BONUS:HP|CURRENTMAX|if(WISSCORE>CONSCORE,WISSCORE-CONSCORE,0)

        In this case, if my WISSCORE (after the bonus) was 6 greater than my
        CONSCORE, what should happen is that my HP increase by 6. If I chose
        anything but Wisdom to apply my "MyRace racial bonus" to, that's
        exactly what I get (the correct answer). If I applied the racial
        bonus to Wisdom, I only see HP increase by 4. My guess is that the
        racial bonus has not been added yet to WISSCORE at that point of the
        calc, and that the dependency is not being detected and handled
        properly.


        3. There seems to be no IIF output tag that I can use to decide
        whether or not to add something based on whether a skill has an armor
        check penalty or not. I know about the IIF(SKILLn.ACP) tag, but that
        only prints out the text you give it -- it cannot be used in a
        calculation.


        4. I'd like to again make a request to be able to output the
        component of a statistic based on bonus type, as in:

        BONUS.COMBAT.AC.TYPE=Enhancement
        BONUS.CHECKS.REFLEX.TYPE=Racial

        It is possible to create VARs and use some clever math to implement
        custom stat breakdowns (and that's what I ended up doing), but it's
        really a mess. There are some oddities I found too. In 5.15.3, if I
        did a BONUS:CHECKS|ALL|1 in a race file, the bonus gets charged to
        the race. But if I did a single score, like: BONUS:CHECKS|REFLEX|1,
        the bonus gets charged to some other category -- I believe it was to
        the STATMOD).

        IMHO, if you want people to be able to implement stat breakdowns like
        the standard 4E sheet does without having to do a lot of work, you
        need something like this capability. If you were to implement this,
        you wouldn't even really need the ACTYPE/ADD/REMOVE tokens in the
        miscinfo.lst file anymore.


        ------------------------------------

        Yahoo! Groups Links





        [Non-text portions of this message have been removed]
      • Jason Horner
        ... a bit, however, the Feats and Stats we do have working. I ll see about grabbing the formulas and such. For me at least (I don t know about other users), I
        Message 3 of 3 , Oct 8, 2008
        • 0 Attachment
          > Hi Jason,
          >  
          > Thanks for the feedback.
          >  
          > I've not been doing too much on the 4e front to rest the brain for
          a bit, however, the Feats and Stats we do have working. I'll see
          about grabbing the formulas and such.

          For me at least (I don't know about other users), I find it much
          easier to track things by bonus type, as opposed to source. If I
          want to flag something as a racial bonus, I'll slap a TYPE=Racial on
          the end of the BONUS. I don't really care whether it came directly
          from the race.lst file or from an ability in the abilities.lst file
          that was granted by the race. I'd love to configure the bonus types
          how I want, and then report the numbers that way in the output
          sheet.

          The source of the bonus (at least the name of it) is useful to me
          too. I really like the output tags that provide a detailed breakdown
          of all the bonuses, their types and sources. I would love to have
          an "audit" character sheet similar to the built-in "troubleshooting"
          character sheet, but even more detailed. If I see a number I can't
          explain, I'd love to fire up an audit sheet and see exactly where it
          came from. PCGen already has this for some stats, but I think it
          would be great to have for the general case (though I realize that's
          probably a low-demand item).

          I have to give you guys (and gals) credit on a job well done. I've
          really been able to do pretty much everything I've wanted to in some
          way or another (granted, in some cases that way wasn't very pretty).
          That's pretty amazing for a codebase that is heavily influenced by 3E.

           

          > The bonus feat deal sounds like a bug.

          I kind of suspected that.

           
          > The Racial Stat Bonus - I think the var or prexxx tag was the
          method we went with. I'll need to look at my notes.
          >  
          [snip]
          >  
          > Done. Not the prettiest, but that should work as you want.

          I'll give it a shot, thanks.

           
          > The rest either myself or another will have to tracker. (The joys
          of being at work).

          Understood, thanks again.


          -- Jason
        Your message has been successfully submitted and would be delivered to recipients shortly.