Token Change Proposals for 5.15 Alpha
The following are the philosophies underlying these token change proposals for the 5.15 cycle:
- Elimination of magical values: Values like -1 that represent unlimited should be replaced by "UNLIMITED" or a String otherwise explictly identifying the meaning of the special value.
- Elimination of duplicate code by consolidating tokens
- Completion of Ability Object changes
- Preparation for CDOM parsing of tokens
- Performance (in one or two cases)
- Elimination of complicated, undocumented interactions
The following are the definitions of the Reason in the token change proposals:
- Syntax: This is a proposed syntax change to improve clarity and eliminate a magical value that is not clearly identified
- Consistency: This is a proposed change to improve consistency between tokens
- Duplicate: This is a proposed change to eliminate an alternate way of achieving an identical result
- Upgrade: This is a proposed change based on upgrades made to PCGen to keep the application consistent
- Nonfunctioning: This is a proposed change due to the token not functioning in the current rev of PCGen
- Unnecessary: This is a token that provides insights, but requires no processing by the code
- Performance: This is a proposed change that will reducing parsing complexity and thus improve speed
- Complicated: This is a proposed change that eliminates complicated behavior
The following are the actual proposed changes to tokens:
There is a complete rebuild of CHOOSE proposed: CHOOSE Proposal for 6.0
Token LST File | Token Name | Current Syntax | Syntax Change | Future Syntax | Reason | Justification for Change | Discussion/Approval/FREQ |
---|---|---|---|---|---|---|---|
Template | BONUSSKILLPOINTS | BONUSSKILLPOINTS:x | TBD | Consistency | XTRASKILLPTSPERLVL in Race matches behavior of BONUSSKILLPOINTS in Template LST file | _exp 7511 | |
Race | XTRASKILLPTSPERLVL | XTRASKILLPTSPERLVL:x | TBD | Consistency | XTRASKILLPTSPERLVL in Race matches behavior of BONUSSKILLPOINTS in Template LST file | _exp 7511 | |
Class | HASSUBCLASS | HASSUBCLASS | REQUIRE :YES | HASSUBCLASS:YES | Consistency | Tokens are A:B, not A | IMPLEMENTED |
Class | HASSUBSTITUTIONLEVEL | HASSUBSTITUTIONLEVEL | REQUIRE :YES | HASSUBSTUTIONLEVEL:YES | Consistency | Tokens are A:B not A | IMPLEMENTED |
Class | HASSUBCLASS | HASSUBCLASS: | Deprecate | special SUBCLASS:Foo.FORGET | Duplicate, Unnecessary | Unused in the code | |
Class | HASSUBSTITUTIONLEVEL | HASSUBSTITUTIONLEVEL: | Deprecate | special SUBSTITUTIONLEVEL:Foo.FORGET | Duplicate, Unnecessary | Unused in the code | |
Class | HASSPELLFORMULA | HASSPELLFORMULA | Deprecate | none | Unnecessary | This is for intelligence gathering/debugging value to the data team, unneeded by code | IMPLEMENTED |
Class | CHECK* | CHECK* | Deprecate | none | Unnecessary | Unused code | IMPLEMENTED |
Race | FAVCLASS | x | Deprecate | x | Consistency | FAVOREDCLASS is used on Template LST Alternate to this is to change Template LST to FAVCLASS Also consider making this specific to Class vs. Subclass... ?? | _exp 7466 |
Class | CRFORMULA | CRFORMULA:x | Deprecate | CR:x | Consistency | NOTE: This is an undocumented Token, it is NOT the GameMode Token CR: is used on Race, there is no reason to state FORMULA in the token name | |
Global | ADD: | y,y | TBD | Consistency | Desire to make ADD: consistent with SPELLLIST and SKILLLIST | _exp 7512 | |
Global | AUTO: | y,y | TBD | Consistency | Desire to make AUTO: consistent with ADD:, SPELLLIST and SKILLIST Also for AUTO:, convert to putting PRExxx at end of the Token | _exp 8018 | |
Class | SPELLLIST | y|y | to , | y,y | Consistency | Desire to make ADD: consistent with SPELLLIST and SKILLLIST | _exp 7512 |
Class | SKILLLIST | y|y | to , | y,y | Consistency | Desire to make ADD: consistent with SPELLLIST and SKILLLIST | _exp 7512 |
Global | PREALIGN | PREALIGN:x (align abbr) PREALIGN:x (number) | Eliminate Numbers | PREALIGN:x (align abbr) | Not fully functioning, Consistency | Simplifies Token, makes Alignments clear across game modes | |
Global | PREDEITYALIGN | PREDEITYALIGN:x PREDEITYALIGN:Deity | Eliminate Numbers | PREDEITYALIGN:x PREDEITYALIGN:Deity | Not fully functioning, Consistency | Simplifies Token, makes Alignments clear across game modes | |
Template | REGION | REGION:x REGION:Yes | Deprecate YES | REGION:x RACEREGION:x | Complicated | Simplifies Token to perform one action, rather than two | |
Global | ADD:SPELLCASTER | Arcane | Make Type require a type | TYPE=Arcane | Consistency, Disambiguation | Avoids name conflicts with classes and types of Spellcasting, keeps token consistent with other tokens | |
Global | PRExxx: | PRExxx: | Expand/Rebuild Behavior | ... REQ:xxx|... EQPRE:xxx|... EQREQ:xxx|... | Disambiguation, Validation, Consistency, Performance, Syntax | ||
Class | LEVELSPERFEAT | LEVELSPERFEAT:x | Eliminate Magical Value (0) | LEVELSPERFEAT:x | Syntax | The general issue here is that this is PER something, implying division. Using zero implies division by zero, which is non-sensical (it implies infinite feats). Since that is not the case, it is either a bug in the datasets that contain it, or it is a magical value that needs to be eliminated. | exp_8382 |
Spell | CT | CT: | Dead Code | TBD - required for Alpha set? | |||
Spell | COST | y,z | y,z causes error - loads as zero | Fix for data use of COST | 1968742 |
In addition, it would be nice to define for the 6.0 branch the preferred output format of SOURCEDATE: ... once it is actually stored as a DATE, I doubt we want it written out in the default form (e.g. Wed Mar 28 00:00:00 EDT 2007)