Formula Parser Conversion - Data

From PCGen Wiki
Revision as of 11:26, 7 December 2014 by LegacyKing (talk | contribs)
Jump to: navigation, search


Proposed Changes

  • NOTE: All syntax here is in planning stages, nothing is FINALIZED!
  • NOTATION:
  • X = Numerical Value appropriate for variable
  • N = Name as appropriate

Standard Tokens

HANDS:x

  • Defined as "HANDS"
  • Set by MODIFY:HANDS|SET|x

LEGS:x

  • Defined as "LEGS"
  • Set by MODIFY:LEGS|SET|x

MOVE:x,y,x,y (x = being valid movement modes such as Walk, Fly, Burrow, Climb, Swim; y = value)

  • Defined as the movement mode name "WALK", "FLY", etc.
  • Set by MODIFY:MOVE.n|SET|x

CR:x

  • Defined as "CR"
  • Set by MODIFY:CR|SET|x
  • Special Consideration as CR has other system mechanic implications handled in the gamemode.

CL:x (CLASS ONLY Token)

  • Defined as "CL"
  • Set by MODIFY:CL|SOLVE|thisclass()

SR:x (Since this typically comes in two race flavors 5+Level, or 11+Level, we can set this up via ability)

  • Defined as "SR"
  • Set by MODIFY:SR|SOLVE|x

Stats & Checks

SAVE will be a special case involving FORMULATERM:x

BONUS:SAVE becomes

  • Defined as "SAVE.n"
  • MODIFY:SAVE.n|SOLVE|value()+STATVAR

Equipment Tokens - using Local Formula System

ACCHECK

  • Becomes three Defined values 'ACCHECK' is the total value; 'ACCHECK.Armor' will be used for Armor; 'ACCHECK.Shield' will be used for Shields
  • Conversion will need to realize if ACCHECK is TYPE "Armor" or "Shield" to convert to proper variable.
  • Set by MODIFY:ACCHECK.n|SET|x
  • Example: MODIFY:ACCHECK.Armor|SET|-6

ALTCRITMULT (See also CRITMULT)

  • Defined as "CritMult"
  • Set by 'PART:2|MODIFY:CritMult|SET|x' with x being the value

ALTCRITRANGE (See also CRITRANGE)

  • Defined as "CritRange"
  • Set by 'PART:2|MODIFY:CritRange|SET|x' with x being the value

ALTDAMAGE (Conversion ?)

COST

  • Needs to be considered. We have a lot of issues factoring costs, so using the new system may be beneficial.

CRITMULT (See also ALTCRITMULT)

  • Defined as "CritMult"
  • Set by 'PART:1|MODIFY:CritMult|SET|x'

CRITRANGE

  • Define as "CritRange"
  • Set by 'PART:1|MODIFY:CritRange|SET|x'


DAMAGE (Conversion ?) Would make sense in some aspects, but make things harder in another. Need to contemplate and deliberate with Code and Arch.

EDR

  • Defined as "EDR"
  • Set by 'MODIFY:EDR|SET|x"

FUMBLERANGE

  • Defined as "FUMBLERANGE"
  • Set by 'MODIFY:FUMBLERANGE|SET|x'
  • May use PART:x|MODIFY:FUMBLERANGE|SET|x if double weapon

MAXDEX

  • Defined as "MAXDEX"
  • Set by 'MODIFY:MAXDEX|SET|x'
  • NOTE: This will be presented to "MODIFY:MAXDEX.TOTAL|SOLVE|thisvalue()+MAXDEX" which will set the global Max Dex to work with the d20 systems.

NUMPAGES (?)

PAGEUSAGE (?)

RANGE

  • Defined as "RANGE"
  • Set by 'MODIFY:RANGE|SET|x'

RATEOFFIRE

  • Defined as "RATEOFFIRE"
  • Set by 'MODIFY:RATEOFFIRE|SET|x'

REACH

  • Defined as "REACH"
  • Set by 'MODIFY:REACH|SET|x'

REACHMULT

  • Defined as "REACH" - REACHMULT becomes part of the Formula system.
  • Set by 'MODIFYOTHER:EQUIPMENT.PART|ALL|REACH|SOLVE|value()*x'

SLOTS (EQMHANDS interfaces with this value)

  • Defined as "SLOTS"
  • Set by 'MODIFY:SLOTS|SET|x'

SPELLFAILURE

  • Defined as "SPELLFAILURE"
  • Set by 'MODIFY:SPELLFAILURE|SET|x'
  • NOTE: This will be presented to "MODIFY:SPELLFAILURE.TOTAL|SOLVE|thisvalue()+SPELLFAILURE" which will set the global SPELLFAILURE to work with the d20 systems and OS.
  • NOTE TO TOM: Need to make sure we can grab multiple values to get correct values - such as SPELLFAILURE from equipped Shield and Armor.

WT

  • Defined as "WT"
  • Set by 'MODIFY:WT|SET|x'

BONUS TAGS PROPOSED

ABILITYPOOL => Simple conversion, we implement the POOL:n tag in all the ABILITYCATEGORIES, then use MODIFY for the POOLNAME. Example: MODIFY:POOL.n|ADD|x then ABILITYCATEGORY:Pool <> POOL:POOL.x

BONUS:ACVALUE - Gamemode tag, skipping for now.

BONUS:CASTERLEVEL - This would become MODIFY:CASTERLEVEL.n|SOLVE|thisclass()+CasterLevelBonus.n

  • x = Class Name, we will continue to use 'CASTERLEVEL' as the first portion in all CAPS.


BONUS:CONCENTRATION - Becomes "MODIFY:CONCENTRATION.n|SOLVE|ConcentrationBase+ConcentrationClassBonus.n

  • x = Class Name, we will use CONCENTRATIONBASE to set the base line level across all classes. (Pathfinder only)

BONUS:DC - becomes MODIFY:DC.n|SOLVE|STATBONUS.x


Master Bonus Tag List

  • BONUS:COMBAT (Global BONUS - this applied to all things)
    • Encompasses:
    • "AC",
      • Set as 'AC.n' - due to multiple types, needs extra consideration


    • "ATTACKS", Global is defined as "COMBAT.ATTACKS", local for weapons is "ATTACKS"
      • Set as 'MODIFY:COMBAT.ATTACKS|ADD|x'
    • "BASEAB",
      • Set as 'MODIFY:BASEAB|SOLVE|thisclass("APPLIEDAS=NONEPIC")'
      • "DAMAGE.Weapon or TYPE",
      • "DAMAGEMULT - special values",
      • "DAMAGESIZE",
      • "DAMAGE-SHORTRANGE",
    • "EPICAB",
      • Set as 'MODIFY:BASEAB|SOLVE|thisclass("APPLIEDAS=EPIC")'
    • "INITIATIVE",
      • Set as 'MODIFY:INITIATIVE|ADD|x'
    • "REACH",
      • Global is "REACH.Race", Local is REACH for individual weapons
      • Set as 'MODIFY:REACH.Race|ADD|x'
      • "RANGEPENALTY",
      • "SECONDARYATTACKS",
      • "SECONDARYDAMAGE",
    • "TOHIT",
      • Set as 'MODIFY:COMBAT.TOHIT|ADD|x'
      • "TOHIT.Weapon Type",
      • "TOHIT-PRIMARY",
      • "TOHIT-SECONDARY",
      • "TOHIT-SHORTRANGE"



  • BONUS:DR (Global BONUS) - Special Consideration, may need to keep DR unless Tom has something in mind for the "DR:cold iron/5"


  • BONUS:DOMAIN|NUMBER (Special Consideration - UI ramifications, along with class ramifications)
  • Defined as
  • Modified by 'MODIFYOTHER:||x'


BONUS:EQM|HANDS (Equipment Modifier)

  • Defined as "SLOTS"
  • 'MODIFYOTHER:SLOTS|Z|x'

These following are all handled with the same tag:

  • BONUS:EQM|WEIGHTADD
  • BONUS:EQM|WEIGHTDIV
  • BONUS:EQM|WEIGHTMULT
  • Defined as "WT"
  • Modified by MODIFYOTHER:WT|Z|X
  • Z = ADD, DIVIDE, or MULTIPLY
  • X = Number

BONUS:EQMARMOR|ACCHECK (Equipment Modifier)

  • Defined as 'ACCHECK.Armor'
  • Modified by 'MODIFYOTHER:ACCHECK.Armor|ADD|x'

BONUS:EQMARMOR|EDR (Equipment Modifier)

  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:EQMARMOR|MAXDEX (Equipment Modifier)
  • Defined as 'MAXDEX'
  • Modified by 'MODIFYOTHER:MAXDEX|ADD|x'
  • BONUS:EQMARMOR|SPELLFAILURE (Equipment Modifier)
  • Defined as 'SPELLFAILURE'
  • Modified by 'MODIFYOTHER:SPELLFAILURE|SUBTRACT|x'
  • BONUS:EQMWEAPON|CRITRANGEADD (Equipment Modifier)
  • Defined as 'CRITRANGE'
  • Modified by 'MODIFYOTHER:CRITRANGE|ADD|x'
  • BONUS:EQMWEAPON|CRITRANGEDOUBLE (Equipment Modifier)
  • Defined as 'CRITRANGE'
  • Modified by 'MODIFYOTHER:CRITRANGE|MULTIPLY|2'
  • BONUS:EQMWEAPON|DAMAGESIZE (Equipment Modifier) ???
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:EQMWEAPON|RANGEADD (Equipment Modifier)
  • Defined as 'RANGE'
  • Modified by 'MODIFYOTHER:RANGE|ADD|x'
  • BONUS:EQMWEAPON|RANGEMULT (Equipment Modifier)
  • Defined as 'RANGE'
  • Modified by 'MODIFYOTHER:RANGE|MULT|x'
  • BONUS:FEAT|POOL (Global BONUS)
  • Defined as 'POOL.Feat'
  • Modified by 'MODIFY:POOL.Feat|ADD|x'
  • BONUS:FOLLOWERS (Global BONUS) - Exception tag, needs consideration?
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:HD (CLASS ONLY TAG - increases HD size)
  • Defined as 'HD.N'
  • Modified by 'MODIFYOTHER:HD.N|ADD|x'
  • BONUS:HP
  • Defined as 'HP.CURRENTMAX' or 'HP.ALTHP'
  • Modified by 'MODIFY:n|ADD|x'
  • BONUS:ITEMCAPACITY (Size Adjustment) - Special tag using TYPE - needs evaluation
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:ITEMCOST - Special tag using TYPE - needs evaluation
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:ITEMCOST|TYPE (Global BONUS) - Special tag using TYPE - needs evaluation
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:ITEMCOST (Size Adjustment) - Special tag using TYPE - needs evaluation
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:ITEMWEIGHT (Size Adjustment) - Special tag using TYPE - needs evaluation
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:LANG (Stats & Checks) (In STATNAME Line)
  • Defined as 'LANGUAGE.INTBASED'
  • Modified by 'OTHER:LANGUAGE.INTBASED|ADD|INT'
  • BONUS:LOADMULT (Size Adjustment) - Gamemode - needs consideration
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:LANGUAGES|NUMBER (Global BONUS)
  • Defined as 'LANGUAGE.TOTAL'
  • Modified by 'MODIFY:LANGUAGE.TOTAL|ADD|x'
  • BONUS:LOCKEDSTAT (Global BONUS) - Special tag / review
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:MISC (Global BONUS)
  • Covers these:
    • ACCHECK,
    • CR,
    • MAXDEX,
    • SPELLFAILURE,
    • SR
  • Defined as 'ACCHECK', 'CR', 'MAXDEX', 'SPELLFAILURE', 'SR'
  • Modified by 'MODIFYOTHER:n|ADD|x'
  • BONUS:MODSKILLPOINTS (Stats & Checks)
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:MONSKILLPTS|LOCKNUMBER (Template)
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:MOVEADD|TYPE (Global BONUS)
  • Valid normal values are any defined movement - Walk, Fly, Swim, Climb, Burrow
  • Defined as 'MOVE.n'
  • Modified by 'MODIFY:MOVE|ADD|x'
  • BONUS:MOVEMULT|TYPE (Global BONUS)
  • Valid normal values are any defined movement - Walk, Fly, Swim, Climb, Burrow
  • Defined as 'MOVE.n'
  • Modified by 'MODIFY:MOVE|MULTIPLY|x'
  • BONUS:PCLEVEL (Global BONUS)
  • Defined as 'PCLEVEL.n'
  • Modified by 'MODIFYOTHER:PCLEVEL.n|ADD|x'
  • BONUS:POSTMOVEADD|TYPE (Global BONUS)
  • Valid normal values are any defined movement - Walk, Fly, Swim, Climb, Burrow
  • Defined as 'MOVE.n'
  • Modified by 'MODIFY:MOVE|ADD|x|PRIORITY=1000'
  • BONUS:POSTRANGEADD (Global BONUS)
  • Defined as 'RANGE'
  • Modified by 'MODIFYOTHER:RANGE|ADD|x|PRIORITY=1000'
  • BONUS:PPCOST (Spell)
  • Defined as 'PPCOST'
  • Modified by 'MODIFYOTHER:PPCOST|ADD|x'
  • BONUS:RANGEADD (Global BONUS)
  • Defined as 'RANGE'
  • Modified by 'MODIFYOTHER:RANGE|ADD|x'
  • BONUS:RANGEMULT (Global BONUS)
  • Defined as 'RANGE'
  • Modified by 'MODIFYOTHER:RANGE|MULTIPLY|x'
  • BONUS:SAVE (Global BONUS) - will this convert?
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:SITUATION (Global BONUS)
  • Defined as 'SITUATION.n'
  • Modified by 'MODIFYOTHER:SITUATION.n|ADD|x'
  • BONUS:SIZEMOD|NUMBER (Global BONUS)
  • Defined as 'SIZEMOD'
  • Modified by 'MODIFY:SIZEMOD|ADD/SUBTRACT|x'
  • BONUS:SKILL (Global BONUS)
  • Defined as 'SKILL.n'
  • Modified by 'MODIFYOTHER:SKILL.n|ADD/SUBTRACT|x'
  • BONUS:SKILLRANK (Global BONUS)
  • Defined as 'SKILLRANK.n'
  • Modified by 'MODIFYOTHER:SKILLRANK.n|ADD|x'
  • BONUS:SKILLPOINTS (Global BONUS) - Special considerations
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:SKILLPOOL - Special considerations
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:SLOTS (Global BONUS)
  • Defined as 'SLOT.n'
  • Modified by 'MODIFY:SLOT.n|ADD/SUBTRACT|x'
  • BONUS:SPECIALTYSPELLKNOWN (Global BONUS) - Special considerations
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:SPELLCAST (Global BONUS) - Special considerations
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:SPELLCASTMULT (Global BONUS) - Special considerations
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:SPELLKNOWN (Global BONUS) - Special considerations
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:SPELLKNOWNMULT (Global BONUS) - Special considerations
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:STAT (Global BONUS) - Special considerations
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:STAT|BASESPELLKNOWNSTAT (Global BONUS) - Special considerations
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:STAT|BASESPELLKNOWNSTAT:CLASS (Global BONUS) - Special considerations
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:STAT|BASESPELLSTAT (Global BONUS) - Special considerations
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:STAT|BASESPELLSTAT;CLASS (Global BONUS) - Special considerations
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:UDAM (Global BONUS) - Special considerations
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:VAR (Global BONUS) - DEPRECATED!
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:VISION (Global BONUS)
  • Defined as 'VISION.n'
  • Modified by 'MODIFY:VISION.n|ADD|x'
  • BONUS:WEAPON (Global BONUS) - REVIEW
  • Values
      • 'ATTACKS',
      • 'ATTACKSPROGRESS',
      • 'DAMAGE',
      • 'DAMAGEMULT',
      • 'DAMAGE-SHORTRANGE',
      • 'TOHIT',
      • 'TOHIT-SHORTRANGE',
      • 'WEAPONBAB',
      • 'WIELDCATEGORY'.
  • Defined as 'ATTACKS', 'ATTACKSPROGRESS', 'DAMAGE', 'DAMAGEMULT', 'DAMAGE-SHORTRANGE', 'TOHIT', 'TOHIT-SHORTRANGE', 'WEAPONBAB', 'WIELDCATEGORY'
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:WEAPONPROF (Global BONUS) - Special Considerations
  • Defined as
  • Modified by 'MODIFYOTHER:||x'
  • BONUS:WIELDCATEGORY (Global BONUS) - this needs to consider single item and all items.
  • Defined as 'WIELDCATEGORY'
  • Modified by 'MODIFYOTHER:WIELDCATEGORY|ADD/SUBTRACT|x'

NEW DEFINES

Any Class/Object name with a SPACE in it's name will use an UNDERSCORE '_' to replace the space, as I don't believe that the System can handle SPACES. (Check with Tom)

  • POOL.n > Used for ABILITYCATEGORY on the POOL: token "POOL:POOL.n" to easily designate Pools we can alter.
  • CASTERLEVEL.n = Used for all classes that CAST spells. n = Class Name. Example CASTERLEVEL.Wizard, CASTERLEVEL.Mage_Blade
  • ARMOR.n = Used for designating the Armor Type. Example, ARMOR.NATURAL.

DEPRECATION

  • JEP Formula Parser which includes:
    • DEFINE:x
    • BONUS:VAR
  • All Bonus Tags are planned on being replaced by the Formula Parser system and any base tag that they affect is a potential candidate for Formula Parser replacement, such as:
  • HANDS
  • LEGS
  • CR
  • SLOTS
  • CRITMULT
  • ACCHECK,
  • MAXDEX,
  • SPELLFAILURE,
  • SR

Homebrew Conversion Start

Here is a basic list of conversion - should be universal.

NOTE: This is still in the planning phase, this is not official yet.

Tag Name Converted to Reviewable? Comments
CRITMULT:x PART:1|MODIFY:CritMult|SET|x No No concerns
CRITRANGE:x PART:1|MODIFY:CritRange|SET|x No No concerns
ALTCRITMULT:x PART:2|MODIFY:CritMult|SET|x No No concerns
ALTCRITRANGE:x PART:2|MODIFY:CritRange|SET|x No No concerns
PLACEHOLDER