Token Change Proposals for 5.15 Alpha

From PCGen Wiki
Revision as of 14:34, 4 August 2008 by Karianna (talk | contribs)
Jump to: navigation, search

The following are the philosophies underlying these token change proposals for the 5.15 cycle:

  1. 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.
  2. Elimination of duplicate code by consolidating tokens
  3. Completion of Ability Object changes
  4. Preparation for CDOM parsing of tokens
  5. Performance (in one or two cases)
  6. 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] [_exp 7511]
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 [7467] [_exp 7511]
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 Tracker [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)