Details

    • Type: New Token New Token
    • Status: Proposed Proposed
    • Priority: Minor Minor
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Subtype:
      None Taken

      Description

      SF - ID: 1809931
      Last Update: Settings changed ( karianna )
      Details:

      This isn't something I'd expect to go on the short list with all the token
      work going into 5.14 and 6, I'm just throwing it out to see what folks think
      and to get it trackered if enough feel it has merit. Some other solution may
      also have been proposed in the past.

      Here's the problem: the are some feats (and probably other objects as well)
      which grant benefits which are based on the level at which the feat is
      taken. For example there is a non-ogl feat which grant an additional
      language at the level take and a new one at each level thereafter.

      The only way I know to code such feats is to create 20 hidden feats (one for
      each level) and have the visible feat add one when chosen. The hidden feat
      adds a static amount to the variable defined in the main feat which provides
      the benefit. This can't be done with the usual DEFINE and BONUS:VAR because
      once the character goes up in level so does the VAR.

      I would like to propose a tag which would allow you to set an additive value
      to a variable that would remain static to the value it was when the object
      it was in was added to the PC.

      SETVARIABLE:x|y

      X = DEFINEd variable

      Y = valiable, number or formula. Value assigned at the time of evaluation.

      Example:

      SETVARIABLE:LevelWhenTaken|TL

      This would have some similarities to BONUS:VAR, it would require the
      variable to be DEFINEd or it would do nothing. it would be additive so if
      the variable already had a value SETVARIABLE would add to it. Where it
      differs is that Y would be evaluated once and the value at the time would be
      added to the variable. I imagine that mechanically how this would work is
      that PCGen would evaluate Y and then write that value to the pcg file and
      reference it from there thereafter.

      I can see potential for use in other objects besides feats for the same
      purpose (or different purposes even), prestige classes could use it to track
      when they were added, equipment could track what level they were acquired.
      Since Y can be any variable not just level it can be used to track anything,
      what was you strength score when you took the feat, etc..
      – ~ Eddy Anthony (MoSaT) ~ PCGen BoD, Data Content Second, Doc Chimp, OS Tamarin


      Tom:
      Second reaction:

      Why don't we just create a JEP variable/formula called LevelFirstTaken
      that works for any object? We will be able to derive that in 6.x, so
      I don't know why we need a new token defined. Seems like a waste to me.

      In Feat Foo: BONUS...|...|LevelFirstTaken
      In Class Bar: BONUS...|...|LevelFirstTaken(FEAT,Foo)

      (FEAT,Foo) is implied in the first case (no args refers to self)

      ===

      Having said that, here are a few thoughts on the proposal (some of
      which also impact my thought above), for posterity, if nothing else
      (this way we remember them later)

      • SetVariable is additive to a previously existing define? So it's
        not a Set, it's a lock, but it's really not that either because it's
        additive. That's very very confusing. Use "atomic" functions, so
        don't add and set in the same place.
      • Need to carefully consider the implementation of "write to the PCG
        file" (just make it static), because if you take feat and then untake
        it and then take it again but at a different level (this is one of the
        "leveling down" problems), you're in for all kinds of ugliness.

      What would you expect to happen with:

      CLASS:Foo DEFINE:ThisVar|0
      2 AUTO:FEAT|Bar
      4 AUTO:FEAT|Bar

      the variable is set to 2? (assuming it's SETVARIABLE:ThisVar|TL in Bar?)

      • How does this interact with REMOVE:FEAT? If Bar above is removed at
        level 3, what does the variable become?
      • If this can be used globally, and not just in feats, then if placed
        into a skill, when is the variable set? when the skill is first taken,
        or when the skill achieves a rank of 1 (think cross-class skills for
        the case where rank = 0.5)

      Submitted:

      LegacyKing ( amaitland ) - 2007-10-09 01:09:11 EDT

        Activity

        Hide
        Stefan Radermacher
        added a comment -

        Wasn't it part of the CDOM change that every ability / skill / etc. no knows at which level it was taken?

        Show
        Stefan Radermacher
        added a comment - Wasn't it part of the CDOM change that every ability / skill / etc. no knows at which level it was taken?
        Hide
        Andrew Maitland
        added a comment -

        I don't know, that would be a Tom Question.

        Show
        Andrew Maitland
        added a comment - I don't know, that would be a Tom Question.
        Hide
        Andrew Maitland
        added a comment -

        Tom - we have a question.

        Show
        Andrew Maitland
        added a comment - Tom - we have a question.
        Hide
        Tom Parker
        added a comment -

        We are not at that point. That is the goal, so this may not be something we should try to do, but not there yet.

        Show
        Tom Parker
        added a comment - We are not at that point. That is the goal, so this may not be something we should try to do, but not there yet.

          People

          • Assignee:
            Unassigned
            Reporter:
            User Submissions
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated: