BAB/CHECK/Epic Bonus Changes

Description

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:

BONUS:CHECKS|BASE.Reflex|classlevel("APPLIEDAS=NonEpic")

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
else
(b) it is not automatically converted and requires user intervention.

legal uses:

classlevel()
Legal today in PCClass LST files, gets class level of the current class
classlevel("Fighter")
Legal today in any LST file, gets the class level of the "Fighter" class for the PC
classlevel("APPLIEDAS=NonEpic")
Legal under this proposal in PCClass LST files, get non-Epic class level of the current class
classlevel("Fighter", "APPLIEDAS=NonEpic")
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

Environment

None

Activity

Show:
Andrew Maitland
May 17, 2014, 6:44 PM

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.

Tom Parker
June 8, 2014, 7:54 PM

Sub-work completed

Andrew Maitland
June 12, 2014, 3:22 PM

,

For Epic what is the syntax we are using?

I'm trying to convert the following:

CHECKNAME:Fortitude
BONUS:SAVE|Fortitude|CON

BONUS:SAVE|Fortitude|max(((TL-HD)-20)/2,0)|TYPE=Epic

Tom Parker
June 12, 2014, 3:25 PM

That is the syntax, see

Fixed

Assignee

Tom Parker

Reporter

Tom Parker

Labels

None

Epic/Theme

None

Pending User Input

None

Fix versions

Affects versions

Priority

Minor
Configure