I view the underlying problem as being that we are using the "CL" variable in two ways... one inside of BONUS:CHECKS/BONUS:COMBAT|BAB to mean "non-epic levels" and one everywhere else to represent "levels". I assert this is confusing.
I'd like to eliminate that magic and as a replacement, introduce a method of identifying "non epic levels", something akin to:
Note: CL and CL= will remain as they are today outside of those two BONUSes. Like many other things, my goal here is to reduce "exception" behavior and make things consistent.
This would involve the following:
(1) Deprecate BONUS:CHECKS
(2) Deprecate BONUS:COMBAT|BAB
These ^^ force folks to "look at it" in the transition to 6.3/6.4
(3) Add a BONUS:SAVE as a replacement (which basically does the exact same thing as BONUS:CHECKS minus the magic)
(4) Add a BONUS:COMBAT|BASEAB (effectively the same as COMBAT|BAB without the magic)
(5) Add a BONUS:COMBAT|EPICAB (To track Epic Attack Bonus)
(6) Add the argument "APPLIEDAS=x" to the classlevel function (thus technically usable anywhere as this argument would be requried AFTER the class name, see below)
(7) Add mastervar as a new Formula (grabs a var from the master of a PC) [Is in relation to something being attached to a MASTER PC using the companion function]
(8) I believe it was also requested to have a PRExxx that can handle total attack bonus, but I'm not sure I have it defined well enough... is it simply testing BONUS:COMBAT|BASEAB + BONUS:COMBAT|EPICAB? If so, perhaps PRETOTALAB:?
(9) Add the definition of the start of epic levels into the game mode
Data team to negotiate if this is MAXNONEPICLEVEL:20
Conversion for (1) and (2) would be:
(a) If a trivial parser can determine that the term CL is used, when BONUS:CHECKS or BONUS:BAB is on a base class (CLASS: line in a Class LST file), then it is converted to BONUS:CHECK or BONUS:COMBAT|BASEAB using NECL
(b) it is not automatically converted and requires user intervention.
Legal today in PCClass LST files, gets class level of the current class
Legal today in any LST file, gets the class level of the "Fighter" class for the PC
Legal under this proposal in PCClass LST files, get non-Epic class level of the current class
Legal under this proposal in PCClass LST files, get non-Epic class level of the "Fighter" class for the PC
NOTE: This "legal" statement is validated at runtime not at LST load, due to weaknesses in the current formula system
Tom, I think we have some copy/paste errors:
(4) Add a BONUS:COMBAT|BASEAB (Short for 'Non-Epic BAB', effectively the same as COMBAT|BAB without the magic)
I think since we opted to not use NEBAB this explanation is not required, or should be changed to say BASEAB is short for 'Base Attack Bonus'
(8) I believe it was also requested to have a PRExxx that can handle total attack bonus, but I'm not sure I have it defined well enough... is it simply testing BONUS:COMBAT|BEBAB + BONUS:COMBAT|EAB? If so, perhaps PRETOTALAB:?
BEBAB should be BASEAB
EAB should be EPICAB
PRETOTALAB (Total Attack Bonus) fits perfectly. This would test the combined values of BASEAB (To its max of 20) and EPICAB.
For Epic what is the syntax we are using?
I'm trying to convert the following:
That is the syntax, see