Bonus Subsystem Thoughts

From PCGen Wiki
Jump to: navigation, search

Note: This is an architecture scratch-pad. It is not intended as permanent documentation. Do not rely on this information.

BONUS tokens sorted by Scope

Note: This is not comprehensive for Equipment based bonuses

Other terms:

  • Internal: Bonuses of this type are internal to the code, are not documented, and are not intended to be used independently in the data. It is unlikely that these will remain bonuses going forward.
  • Deprecated: Bonuses of this type would *appear* to be deprecated in that they do not necessarily fully function, are tagged as deprecated in the docs, or are completely missing from the docs.

Global Scope

  • POINTBUY|SPENT (Internal)
  • POINTBUY|POINTS (Internal)
  • MISC|CR
  • MISC|SR
  • MISC|ACCHECK
  • MISC|MAXDEX
  • MISC|SPELLFAILURE
  • FEAT|POOL
  • SIZEMOD|NUMBER
  • COMBAT|ATTACKS
  • COMBAT|INITIATIVE
  • COMBAT|REACH
  • COMBAT|BAB
  • COMBAT|AC
  • COMBAT|SECONDARYATTACKS
  • COMBAT|RANGEPENALTY

Simple Single Scope

These are items in a single scope which is quite obvious from the BONUS itself. The scope is in brackets after the item and represents the type of the object x.

  • ABILITYPOOL|x [Ability Category]
  • FOLLOWERS|x [Follower Type]
  • CHECKS|x [Check]
  • CHECKS|BASE.x [Check]
  • SLOTS|x [Slot]
  • VISION|x [Vision]
  • WIELDCATEGORY|x [Wield Category] (ALL is also legal)
  • VAR|x [Variable]
  • MOVEADD|TYPE.x [Movement Type] (ALL is also legal)
  • MOVEMULT|TYPE.x [Movement Type] (ALL is also legal)
  • POSTMOVEADD|TYPE.x [Movement Type] (ALL is also legal)
  • STAT|x [Stat]
  • DR|x [Damage Type]

Class Scope

These are items that are "specific to a given class" in that they are asked for each class (or class level in some cases) on the PC

  • UDAM|CLASS.x
  • PCLEVEL|x
  • PCLEVEL|TYPE.x

These could be asserted to be the Class/ClassLevel scope and I could not refute the claim:

  • HD|MIN (note that HD is recognized in the LST tokens as being class specific, so this this implies CLASS=All)
  • HD|MAX (note that HD is recognized in the LST tokens as being class specific, so this this implies CLASS=All)

Class/ClassLevel Scope

  • SKILLPOOL|CLASS.x
  • SKILLPOOL|LEVEL.x
  • SKILLPOOL|CLASS.x;LEVEL.y

Class/SpellLevel Scope

  • SPELLKNOWN|CLASS.x;Level.y (Note: X=Any is legal, Y=All is legal)
  • SPELLKNOWN|TYPE.x;Level.y (Note: y=All is legal)
  • SPELLCAST|CLASS.x;Level.y (Note: X=Any is legal, Y=All is legal)
  • SPELLCAST|TYPE.x;Level.y (Note: y=All is legal)

Note: on the following items, not all of these combinations are legal, this is for copy/paste simplicity.

  • SPELLKNOWNMULT|CLASS.x;Level.y (Note: X=Any is legal, Y=All is legal)
  • SPELLKNOWNMULT|TYPE.x;Level.y (Note: y=All is legal)
  • SPELLCASTMULT|CLASS.x;Level.y (Note: X=Any is legal, Y=All is legal)
  • SPELLCASTMULT|TYPE.x;Level.y (Note: y=All is legal)

Class / Spell Scope

  • DC|ALLSPELLS
  • DC|SPELL.x [Spell]
  • DC|DOMAIN.x [Domain or perhaps Domain List - need to check]
  • DC|CLASS.x [Class or perhaps Class List - need to check]
  • DC|TYPE.x [Class Type, I believe]
  • DC|SCHOOL.x [School]
  • DC|SUBSCHOOL.x [SubSchool]
  • DC|DESCRIPTOR.x [Descriptor]
  • DC|x [Class]
  • CONCENTRATION|<all as DC above>
  • CASTERLEVEL|<all as DC above>
  • CASTERLEVEL|RACE.x [Race, to impact all innate spells]

Note: There is some really nasty .RESET magic going on in CASTERLEVEL :(

Weapon Scope

  • RANGEADD|x [Weapon Type]
  • POSTRANGEADD|x [Weapon Type]
  • RANGEMULT|x [Weapon Type]
  • COMBAT|TOHIT
  • COMBAT|TOHIT.x [Weapon Type]
  • COMBAT|TOHIT-PRIMARY
  • COMBAT|TOHIT-SECONDARY
  • COMBAT|DAMAGE.x [Weapon Type]
  • COMBAT|DAMAGESIZE
  • TOHIT|TOHIT (Deprecated)
  • TOHIT|TYPE.x (Deprecated)
  • DAMAGE|TYPE.x [Weapon Type] (Deprecated)

Some specialties that really are Weapon/Range Scope

  • COMBAT|TOHIT-SHORTRANGE
  • COMBAT|DAMAGE-SHORTRANGE
  • TOHIT|SHORTRANGE (Deprecated)
  • DAMAGE|SHORTRANGE (Deprecated)

Equipment Bonuses (incomplete) Also Weapon Scope?

  • ITEMCOST|
  • ITEMWEIGHT|
  • ITEMCAPACITY|
  • WEAPON|ATTACKS
  • WEAPON|ATTACKSPROGRESS
  • WEAPON|DAMAGE
  • WEAPON|DAMAGEMULT
  • WEAPON|DAMAGESIZE
  • WEAPON|TOHIT
  • WEAPON|WIELDCATEGORY

Weapon/Range?

  • WEAPON|DAMAGE-SHORTRANGE
  • WEAPON|TOHIT-SHORTRANGE

Some other stuff

  • MONNONSKILLHD|NUMBER (Internal)
  • SKILLPOINTS|NUMBER (probably class or class/level?)
  • MONSKILLPTS|LOCKNUMBER (Internal)
  • HP|ALTHP (probably global)
  • HP|CURRENTMAX (probably global?)
  • DOMAIN|NUMBER (I could assert class here)
  • LANGUAGES|NUMBER
  • LOADMULT|TYPE=SIZE
  • FEAT|PCPOOL
  • FEAT|MONSTERPOOL
  • COMBAT|RANGEPENALTY
  • COMBAT|SECONDARYDAMAGE
  • COMBAT|DAMAGEMULT:x [Hands]
  • STAT|BASESPELLSTAT
  • STAT|CAST.x [Stat Abbr]
  • STAT|BASESPELLKNOWNSTAT
  • STAT|BASESPELLSTAT;CLASS.x [Class]
  • STAT|BASESPELLKNOWNSTAT;Class.x [Class]
  • SPECIALTYSPELLKNOWN|<varies, similar to SPELLKNOWN above> (probably Class/SpellLevel?)
  • SPELLPOINTCOST|<varies, similar to DC above> (probably Class/Spell?)