Qualified CDOMObject Proposals
CHOOSE Proposals for Qualified CDOMObject Proposals
CHOOSE:TEMPLATE
SUBTOKEN: TEMPLATE (new)
Syntax
CHOOSE:TEMPLATE|x|y|y[z]|y[z,z]|x,y,y[z],y[z,z]
x is a Template PRIMITIVE
A PRIMITIVE is an identifier of objects, and may include any number of specifications. In the case of Template objects, there are are the three global PRIMITIVES:
x = an Template (specified by key)
x = TYPE=w (w is a TYPE identifier for a Template)
x = !TYPE=w (w is a TYPE identifier for a Template that would be prohibited)
x = ALL (allow the choice of any Template)
y is a QUALIFIER.
A QUALIFIER is a special keyword that identifies a subset of objects that should be returned. Valid qualifiers for Template objects are any of the Global Qualifiers.
A comma represents "AND", meaning multiple items are evaluated independently and then any item that appears in ALL of the items is added to the list.
CHOOSE:TEMPLATE|Mindless,Undead
will result in NO choices because no Template is both Mindless and Undead.
CHOOSE:TEMPLATE|TYPE=Foo,PC
would test for any Template that has the Foo type (as defined in the Template LST file) which is ALSO already selected by the PlayerCharacter
This could also be written (probably more clearly):
CHOOSE:TEMPLATE|PC[TYPE=Foo]
A pipe represents "OR", meaning multiple items are evaluated independently and then any item that appears in any of the items is added to the list:
CHOOSE:TEMPLATE|Mindless|Undead
will result in a choice between Template Mindless and Template Undead.
All commas (ANDs) are evaluated before pipes (ORs), so something like:
CHOOSE:TEMPLATE|Mindless|TYPE=Foo,PC
would include Mindless unconditionally, in addition to any Template that has the Foo type (as defined in the Template LST file) which is ALSO already selected by the PlayerCharacter
Conversion
None, TEMPLATE is a new Subtoken for CHOOSE
CHOOSE:LANG
SUBTOKEN: LANGUAGE (deprecated) SUBTOKEN: LANG (new)
Syntax
CHOOSE:LANG|x|y|y[z]|y[z,z]|x,y,y[z],y[z,z]
x is a Language PRIMITIVE
A PRIMITIVE is an identifier of objects, and may include any number of specifications. In the case of Language objects, there are are the three global PRIMITIVES:
x = an Language (specified by key)
x = TYPE=w (w is a TYPE identifier for a Language)
x = !TYPE=w (w is a TYPE identifier for a Language that would be prohibited)
x = ALL (allow the choice of any Language)
y is a QUALIFIER
A QUALIFIER is a special keyword that identifies a subset of objects that should be returned. Valid qualifiers for Language objects are any of the Global Qualifiers.
A comma represents "AND", meaning multiple items are evaluated independently and then any item that appears in ALL of the items is added to the list.
CHOOSE:LANG|Common,Goblin
will result in NO choices because no Language is both Common and Goblin.
CHOOSE:LANG|TYPE=Foo,PC
would test for any Language that has the Foo type (as defined in the Language LST file) which is ALSO already selected by the PlayerCharacter
This could also be written (probably more clearly):
CHOOSE:LANG|PC[TYPE=Foo]
A pipe represents "OR", meaning multiple items are evaluated independently and then any item that appears in any of the items is added to the list:
CHOOSE:LANG|Common|Goblin
will result in a choice between Language Common and Language Goblin.
All commas (ANDs) are evaluated before pipes (ORs), so something like:
CHOOSE:LANG|Common|TYPE=Foo,PC
would include Common unconditionally, in addition to any Language that has the Foo type (as defined in the Language LST file) which is ALSO already selected by the PlayerCharacter
Conversion
CHOOSE:LANGAUGE|Spoken becomes CHOOSE:LANG|TYPE=Spoken
CHOOSE:EQUIPMENT
SUBTOKEN: EQUIPTYPE (deprecated) SUBTOKEN: EQUIPMENT (new)
Syntax
CHOOSE:EQUIPMENT|x|y|y[z]|y[z,z]|x,y,y[z],y[z,z]
x is a Equipment PRIMITIVE
A PRIMITIVE is an identifier of objects, and may include any number of specifications. In the case of Equipment objects, there are are the three global PRIMITIVES:
x = an Equipment (specified by key)
x = TYPE=w (w is a TYPE identifier for a Equipment)
x = !TYPE=w (w is a TYPE identifier for a Equipment that would be prohibited)
x = ALL (allow the choice of any Equipment)
y is a QUALIFIER
A QUALIFIER is a special keyword that identifies a subset of objects that should be returned. Valid qualifiers for Equipment objects are any of the Global Qualifiers.
A comma represents "AND", meaning multiple items are evaluated independently and then any item that appears in ALL of the items is added to the list.
CHOOSE:EQUIPMENT|Longsword,Pike
will result in NO choices because no Equipment is both Longsword and Pike.
CHOOSE:EQUIPMENT|TYPE=Foo,PC
would test for any Equipment that has the Foo type (as defined in the Equipment LST file) which is ALSO already selected by the PlayerCharacter
This could also be written (probably more clearly):
CHOOSE:EQUIPMENT|PC[TYPE=Foo]
A pipe represents "OR", meaning multiple items are evaluated independently and then any item that appears in any of the items is added to the list:
CHOOSE:EQUIPMENT|Longsword|Pike
will result in a choice between Equipment Longsword and Equipment Pike.
All commas (ANDs) are evaluated before pipes (ORs), so something like:
CHOOSE:EQUIPMENT|Longsword|TYPE=Foo,PC
would include Longsword unconditionally, in addition to any Equipment that has the Foo type (as defined in the Equipment LST file) which is ALSO already selected by the PlayerCharacter
Conversion
CHOOSE:EQUIPTYPE|Melee.Simple becomes CHOOSE:EQUIPMENT|TYPE=Melee.Simple
CHOOSE:FEAT
SUBTOKEN: FEATLIST (deprecated) SUBTOKEN: FEATSELECT (deprecated) SUBTOKEN: FEAT (new)
Syntax
CHOOSE:FEAT|x|y|y[z]|y[z,z]|x,y,y[z],y[z,z]
x is a Feat PRIMITIVE
A PRIMITIVE is an identifier of objects, and may include any number of specifications. In the case of Feat objects, there are are the three global PRIMITIVES:
x = an Feat (specified by key)
x = TYPE=w (w is a TYPE identifier for a Feat)
x = !TYPE=w (w is a TYPE identifier for a Feat that would be prohibited)
x = ALL (allow the choice of any Feat)
y is a QUALIFIER
A QUALIFIER is a special keyword that identifies a subset of objects that should be returned. Valid qualifiers for Feat objects are any of the Global Qualifiers.
A comma represents "AND", meaning multiple items are evaluated independently and then any item that appears in ALL of the items is added to the list.
CHOOSE:FEAT|Dodge,Toughness
will result in NO choices because no Feat is both Dodge and Toughness.
CHOOSE:FEAT|TYPE=Foo,PC
would test for any Feat that has the Foo type (as defined in the Feat LST file) which is ALSO already selected by the PlayerCharacter
This could also be written (probably more clearly):
CHOOSE:FEAT|PC[TYPE=Foo]
A pipe represents "OR", meaning multiple items are evaluated independently and then any item that appears in any of the items is added to the list:
CHOOSE:FEAT|Dodge|Toughness
will result in a choice between Feat Dodge and Feat Toughness.
All commas (ANDs) are evaluated before pipes (ORs), so something like:
CHOOSE:FEAT|Dodge|TYPE=Foo,PC
would include Dodge unconditionally, in addition to any Feat that has the Foo type (as defined in the Feat LST file) which is ALSO already selected by the PlayerCharacter
Conversion
CHOOSE:FEATLIST|TYPE=Fighter becomes CHOOSE:FEAT|PC[TYPE=Fighter]
CHOOSE:FEATSELECT|TYPE=Fighter becomes CHOOSE:FEAT|TYPE=Fighter
CHOOSE:ABILITY
SUBTOKEN: ABILITY (new)
Syntax
CHOOSE:ABILITY|w|x|y|y[z]|y[z,z]|x,y,y[z],y[z,z]
w is an Ability Category (e.g. FEAT) as defined in the Ability Category LST file.
x is a Ability PRIMITIVE
A PRIMITIVE is an identifier of objects, and may include any number of specifications. In the case of Ability objects, there are are the three global PRIMITIVES:
x = an Ability (specified by key)
x = TYPE=w (w is a TYPE identifier for a Ability)
x = !TYPE=w (w is a TYPE identifier for a Ability that would be prohibited)
x = ALL (allow the choice of any Ability)
y is a QUALIFIER
A QUALIFIER is a special keyword that identifies a subset of objects that should be returned. Valid qualifiers for Ability objects are any of the Global Qualifiers.
A comma represents "AND", meaning multiple items are evaluated independently and then any item that appears in ALL of the items is added to the list.
CHOOSE:ABILITY|FEAT|Dodge,Toughness
will result in NO choices because no Ability is both Dodge and Toughness.
CHOOSE:ABILITY|FEAT|TYPE=Foo,PC
would test for any Ability that has the Foo type (as defined in the Ability LST file) which is ALSO already selected by the PlayerCharacter
This could also be written (probably more clearly):
CHOOSE:ABILITY|FEAT|PC[TYPE=Foo]
A pipe represents "OR", meaning multiple items are evaluated independently and then any item that appears in any of the items is added to the list:
CHOOSE:ABILITY|FEAT|Dodge|Toughness
will result in a choice between Ability Dodge and Ability Toughness.
All commas (ANDs) are evaluated before pipes (ORs), so something like:
CHOOSE:ABILITY|FEAT|Dodge|TYPE=Foo,PC
would include Dodge unconditionally, in addition to any Ability that has the Foo type (as defined in the Ability LST file) which is ALSO already selected by the PlayerCharacter
Conversion
Current CHOOSE:ABILITY format does not change (backwards compatible)
CHOOSE:FEATSELECTION
SUBTOKEN: FEATADD (deprecated) SUBTOKEN: FEATSELECTION (new)
Syntax
CHOOSE:FEATSELECTION|x|y|y[z]|y[z,z]|x,y,y[z],y[z,z]
x is a Feat PRIMITIVE
A PRIMITIVE is an identifier of objects, and may include any number of specifications. In the case of Feat objects, there are are the three global PRIMITIVES:
x = an Feat (specified by key)
x = TYPE=w (w is a TYPE identifier for a Feat)
x = !TYPE=w (w is a TYPE identifier for a Feat that would be prohibited)
x = ALL (allow the choice of any Feat)
y is a QUALIFIER
A QUALIFIER is a special keyword that identifies a subset of objects that should be returned. Valid qualifiers for Feat objects are any of the Global Qualifiers.
A comma represents "AND", meaning multiple items are evaluated independently and then any item that appears in ALL of the items is added to the list.
CHOOSE:FEATSELECTION|Dodge,Toughness
will result in NO choices because no Feat is both Dodge and Toughness.
CHOOSE:FEATSELECTION|TYPE=Foo,PC
would test for any Feat that has the Foo type (as defined in the Feat LST file) which is ALSO already selected by the PlayerCharacter
This could also be written (probably more clearly):
CHOOSE:FEATSELECTION|PC[TYPE=Foo]
A pipe represents "OR", meaning multiple items are evaluated independently and then any item that appears in any of the items is added to the list:
CHOOSE:FEATSELECTION|Dodge|Toughness
will result in a choice between Feat Dodge and Feat Toughness.
All commas (ANDs) are evaluated before pipes (ORs), so something like:
CHOOSE:FEATSELECTION|Dodge|TYPE=Foo,PC
would include Dodge unconditionally, in addition to any Feat that has the Foo type (as defined in the Feat LST file) which is ALSO already selected by the PlayerCharacter.
Note that this will FULLY RESOLVE any Feats, meaning it will not return Weapon Focus, but Weapon Focus (Longsword), etc.
Conversion
CHOOSE:FEATADD|Dodge|Toughness becomes CHOOSE:FEAT|Dodge|Toughness ADD:FEAT|%LIST