Advanced Spell Chooser

From PCGen Wiki
Jump to: navigation, search

A spell chooser was implemented in 5.14 providing the ability to select a spell for further processing. An extended version of this chooser is required to support certain feats which choose a spell from one class list and add it to another.

Discussion for this tag is taking place on the pcgen_experimental list

Function

The advanced spell chooser differs from the existing spell chooser in that it allows the selection of the class and level the spell comes from in addition to the spell. As a result it will display with 3 columns:

  1. class name;
  2. spell level; and
  3. spell name.

This would then be followed by a another choose dialog that allows the selection of the destination class.

CHOOSE Tag Syntax

The suggested syntax for the spell chooser is

  • CHOOSE:SPELLDETAIL|
  • the rest of the syntax will be the same as CHOOSE:SPELLS - this will drive the spell choice.
  • |TARGETCLASSCHOICES=x - this would pop another choose dialog and drive the destination class choice). Question: Is this parameter optional?
I think it's optional, so the token can be used more flexibly than just Expanded Knowledge [TRP]

So the final syntax would be

CHOOSE:SPELLDETAIL|x,y,y[z]|x|y|y[z;z]|TARGETCLASSCHOICES=w
TARGETCLASSCHOICES= must appear last, it is not interchangeable in order around the pipes as the other x,y,z items are [TRP]

CHOICE Syntax

The other issue is how to get the information out of the chooser. Usually we use LIST or CHOOSE but the issue here is more complicated. The chooser will know Spell, Level, and destination class and presumably this needs to be loaded into SPELLLEVEL.

The normal SPELLLEVEL syntax is:

SPELLLEVEL:CLASS|Classname=Level|Spell

The proposed extension is to allow

SPELLLEVEL:CLASS|CHOICE[CLASS]=CHOICE[LEVEL]|CHOICE[SPELL]

This would feed in the selected destination class, spell level and spell name to the SPELLLEVEL tag.

Note that the use of TARGETCLASSCHOICES= would require a slightly different syntax:

SPELLLEVEL:CLASS|CHOICE[TARGETCLASS]=CHOICE[LEVEL]|CHOICE[SPELL]

One implication of this syntax is that square brackets [] become reserved for use in class and spell names. This is to allow the parser to operate efficiently.

Selections of multiples still needs discussion. Should we assume that given such a group above that it repeats for each row chosen?

There is a possibility that calculation may be required on the level. Say a feat that allowed you to take a spell from a different spell list but at an adjusted level (say -2). So the SPELLLEVEL:CLASS might need the ability to do

SPELLLEVEL:CLASS|CHOICE[CLASS]=CHOICE[LEVEL]-x|CHOICE[SPELL].
This gets really tricky, and may cause issues back in the JEP system (using brackets is okay or a problem?) [TRP]

Example Usage

TBA