Add INFO to both the UI & Export for Abilities (In the same manner as ASPECT)

Description

INFO is pegged as the global replacement token for all text export tokens - DESC, BENEFIT, SPROP, QUALITY, ASPECT, etc.

We need this to successfully export to Abilities objects, for proper replacement.
was concerned about the whole .MOD, .COPY, cloning, and different natures.

FROM THE WIKI: http://wiki.pcgen.org/INFO_and_INFOVARS

INFO involves two LST tokens:

INFO:x|y

INFOVARS:x|y=z|y=z

  • x is an "info name". This is data defined

  • y is a scope from the new Formula System (e.g. AREA). The y= is optional if y is "VAR" (the default numeric variable scope)

  • z is a variable from the new Formula System (e.g. Face)

  • This token overwrites (if the "info name" matches)

Some notes:

Important sublinks:

https://docs.oracle.com/javase/7/docs/api/java/text/MessageFormat.html#getFormatsByArgumentIndex()

http://wiki.pcgen.org/FreeMarker_Facet_Output

Output in the new Freemarker system is implied. Any INFO token will be available under *.info . For example:

  • Race LST file

  • Monkey <> INFO:Wildness|Monkeys are usually found in the wild

  • can be accessed under the following:

  • pc.race.info.wildness

Available Facets

Single Item Facets

  • DeityFacet: "pc.deity"

  • RaceFacet: "pc.race"

  • AlignmentFacet: "pc.alignment"

  • SizeFacet: "pc.sizeadjustment"

  • SubRaceFacet: "pc.subrace"

List/Sequence Facets

  • ActiveAbilityFacet: "pc.abilities" (returned as CNAbilitySelection objects)

  • EquipmentFacet: "pc.equipment.all"

  • EquippedEquipmentFacet: "pc.equipment.equipped"

  • KitFacet: "pc.kits"

  • CheckFacet: "pc.checks"

  • ClassFacet: "pc.classes"

  • CompanionModFacet: "pc.companionmods"

  • DomainFacet: "pc.domains"

  • LanguageFacet: "pc.languages"

  • SkillFacet: "pc.skills"

  • StatFacet: "pc.stats"

  • TemplateFacet: "pc.templates"

  • WeaponProfModelFacet: "pc.weaponprofs"

http://wiki.pcgen.org/OUTPUT_for_6.08

Abilities

Abilities are unique in that they are not directly stored in PCGen. They have other characteristics (specifically, Nature, Pool, and the CHOOSE Selection)

In order to appropriately output these items, the pc.abilities list does not contain the Ability itself. Internally to the code, we are storing a combination of 4 things: Pool, Nature, Ability, Selection

  • Pool is the AbilityCategory used to select the item (may be Fighter Feat, so this is NOT the Category of the item in the LST file)

  • Nature is Virtual, Automatic, Normal

  • Ability is the Ability itself

  • Selection is the result of a CHOOSE

This "bundle" of 4 items is called a CNAbilitySelection.

We could increment across those, but you increment across the "block of 4" all at once. So we get something like:

The problem is that if you had, say, Dodge twice, you'd end up with the description twice. Probably not what was intended, so you will need to account for that in how things are written to the output file. This probably deserves some macros to develop this out appropriately.

RAW

For example:

Environment

None

Assignee

Eitan Adler

Reporter

Andrew Maitland

Labels

None

Theme

None

Epic/Theme

None

Pending User Input

No

Components

Sprint

Priority

Minor
Configure