Hero Lab 4e

Herolab D&D 4e Development => Herolab 4e Development => Herolab 4e Bugs => Topic started by: dracusmage on August 06, 2014, 02:11:03 PM

Title: Background "Occupation - Thief"
Post by: dracusmage on August 06, 2014, 02:11:03 PM
This background, when selecting the class skill option  is instead of allowing the character to use one of its normal skill options to pick Thievery or Stealth (nominally not normally a class skill or you would pick something else), it instead just gives training in whichever skill is selected, leaving the character with an extra skill at the end.

It should instead either reduce the number of skill choices for the character and retain its current function (less ideal), or it should just add the choice as another possible check box on the skill page (better). Either would prevent picking too many skills, but the first option would be much less clear why they suddenly have one less skill to pick than the rules say they should.
Title: Re: Background "Occupation - Thief"
Post by: dracusmage on August 11, 2014, 01:12:09 PM
Does anyone know how backgrounds work? Because clearly they don't actually do the heavy lifting in the background listing. Is it in some other data file that it specifies how the background information is used to generate the actual work on the character sheet?

I think it may be in tab_theme.dat where the damage is done. Is that what Daphne did work on?
Title: Re: Background "Occupation - Thief"
Post by: dracusmage on August 21, 2014, 02:51:06 PM
As I tried to figure out a different scripting error, I think I have happened upon the actual problem area. actor.str has a script that runs when you have a background:
      ~if we have a background bonus skill selected, add to it
      if (compare(field[acBGExpr].text, "FALSE") = 0) then
        perform field[acBGSkill].chosen.setfocus
        if (state.isfocus <> 0) then

          ~for skills, pick between a +2 bonus and training
          if (focus.tagis[component.Skill] <> 0) then
            if (field[actBGSkCls].value = 0) then
              perform focus.field[trtBonus].modify[+,2,"Background"]
            else
              perform focus.assign[Helper.Trained]
              endif

          ~languages are no longer hidden
          elseif (focus.tagis[component.Language] <> 0) then
            perform focus.assign[Helper.ChosenLang]
            endif
          endif
        endif

Lines 785-803. It seems that 795 is the problem where it does
perform focus.assign[Helper.Trained]
but should instead do
perform focus.assign[Helper.{Whatever code is used to make it a class skill rather than a trained skill}]
As should be abundantly clear, I don't know what the eval code way of assigning a class skill option is. Does anyone else? Looking around tags.1st it seems that there may not be a way to use Helper to make it a class skill, only to actually give the skill. Anyone else have any ideas? If I have to, I guess I'll just add to the script that just reduces the number of skill choices by 1, which I am pretty certain I can do. From a min-max stance, this doesn't change anything, because if you weren't going to take the new class skill as a trained skill, you are better off with the +2 bonus, but it reduces the clarity to the end user, as they won't know why they have 1 fewer skill choices than their class says they should.
Title: Re: Background "Occupation - Thief"
Post by: Cryptoknight on September 19, 2014, 11:49:51 PM
Up above I saw this


<!-- Background bonus skill, if any -->
    <field
      id="acBGSkill"
      name="Background Skill Bonus"
      type="user"
      style="menu">
      </field>
    <field
      id="acBGExpr"
      name="Background Skill Expression"
      type="derived"
      maxlength="500"
      defvalue="FALSE">
      </field>
    <field
      id="actBGSkCls"
      name="Background Skill Is Class"
      type="user"
      minvalue="0"
      maxvalue="1">
      </field>


It looks like the choices could be there...
But after staring at this for several hours trying to find a way that skills are made into class skills, but that seems to be something that only happens to a class.  Ugh.