Difference between revisions of "Equipment Variables"

From PCGen Wiki
Jump to: navigation, search
(New page: This feature would enable the ability of defining variables whose values would be associated with individual equipment items rather than the character it belongs to. This is needed for par...)
 
Line 8: Line 8:
 
[https://sourceforge.net/tracker/?func=detail&aid=857044&group_id=25576&atid=384722 857044 - Intelligent items]
 
[https://sourceforge.net/tracker/?func=detail&aid=857044&group_id=25576&atid=384722 857044 - Intelligent items]
  
'''LST Tags'''<br>
+
 
 +
== LST Tags ==
 +
 
 
'''Tag Name:''' DEFINE:EQVAR|x|y
 
'''Tag Name:''' DEFINE:EQVAR|x|y
  
Line 20: Line 22:
 
* Usage: once defined you can use EQVARs anywhere you can use a number, formula or normal VAR within equipment and EQMODs but not outside of them. This is because an EQVAR has it value in context of the equipment so using an EQVAR in a bonus formula within a feat is meaningless because it does not know from which equipment you want this value to be derived from and you may have several items with the same EQVAR but with different values.
 
* Usage: once defined you can use EQVARs anywhere you can use a number, formula or normal VAR within equipment and EQMODs but not outside of them. This is because an EQVAR has it value in context of the equipment so using an EQVAR in a bonus formula within a feat is meaningless because it does not know from which equipment you want this value to be derived from and you may have several items with the same EQVAR but with different values.
  
Where it is used:
+
'''Where it is used:'''
  
 
* Valid in Equipment and EQMOD files only
 
* Valid in Equipment and EQMOD files only
  
Example:
+
'''Example:'''<br>
DEFINE:EQVAR|MaxSpeed|0
+
:<tt>DEFINE:EQVAR|MaxSpeed|0</tt><br>
Defines an Equipment variable named MaxSpeed and sets the initial value to 0.
+
::Defines an Equipment variable named MaxSpeed and sets the initial value to 0.
  
Tag Name: BONUS:EQVAR|x,x|y,y|z
+
'''Tag Name:''' BONUS:EQVAR|x,x|y,y|z
  
Variables Used (x): Text (Equipment variable name)
+
'''Variables Used (x):''' Text (Equipment variable name)
Variables Used (y): GLOBAL (Optional, applies to all equipment)
+
'''Variables Used (y):''' GLOBAL (Optional, applies to all equipment)
Variables Used (y): TYPE.Text (Optional, applies only if the equipment has this TYPE)
+
'''Variables Used (y):''' TYPE.Text (Optional, applies only if the equipment has this TYPE)
Variables Used (y): EQMODTYPE.Text (Optional, applies only if the equipment has an EQMOD with this TYPE)
+
'''Variables Used (y):''' EQMODTYPE.Text (Optional, applies only if the equipment has an EQMOD with this TYPE)
 
Variables Used (y): Text (Optional, Equipment item name, applies to a specific item)
 
Variables Used (y): Text (Optional, Equipment item name, applies to a specific item)
  
What it does:
+
'''What it does:'''
  
    * BONUSes an EQVAR.
+
* BONUSes an EQVAR.
    * The Y property is meant to address the problem of how to bonus EQVARs across objects. Since you can have multiple items with the same EQVAR but with different values.
+
* The Y property is meant to address the problem of how to bonus EQVARs across objects. Since you can have multiple items with the same EQVAR but with different values.
    * A BONUS:EQVAR in Equipment or EQMODs without any Y options will only effect EQVARs within the equipment item.
+
* A BONUS:EQVAR in Equipment or EQMODs without any Y options will only effect EQVARs within the equipment item.
    * A BONUS:EQVAR outside of Equipment or EQMODs without any Y options will not effect anything. BONUS:EQVAR tags outside equipment must use one of the Y options to target equipment for bonusing. A BONUS:EQVAR outside of Equipment or EQMODs without any Y options should throw a message in the Debug Console.
+
* A BONUS:EQVAR outside of Equipment or EQMODs without any Y options will not effect anything. BONUS:EQVAR tags outside equipment must use one of the Y options to target equipment for bonusing. A BONUS:EQVAR outside of Equipment or EQMODs without any Y options should throw a message in the Debug Console.
    * A BONUS:EQVAR in Equipment or EQMODs with any Y options will effect all EQVARs contained in equipment targeted by the Y options including the item the bonus is in if it qualifies.
+
* A BONUS:EQVAR in Equipment or EQMODs with any Y options will effect all EQVARs contained in equipment targeted by the Y options including the item the bonus is in if it qualifies.
    * This bonus can be appended with standard PRExxx tags as well as bonus TYPE tags like most PRExxx tags.
+
* This bonus can be appended with standard PRExxx tags as well as bonus TYPE tags like most PRExxx tags.
  
Example:
+
'''Example:'''<br>
BONUS:EQVAR|x,x|y,y|z
+
:<tt>BONUS:EQVAR|x,x|y,y|z</tt><br>
BONUSes an EQVAR
+
::BONUSes an EQVAR
  
Tag Name: PREEQVAR:w,xyz,xyz
+
'''Tag Name:''' PREEQVAR:w,xyz,xyz
  
Variables Used (w): Number (Number of EQVARs to qualify)
+
'''Variables Used (w):''' Number (Number of EQVARs to qualify)
Variables Used (x): Text (Name of an EQVAR)
+
'''Variables Used (x):''' Text (Name of an EQVAR)
Variables Used (y): Boolean math opperator ( > <
+
'''Variables Used (y):''' Boolean math operator ( > < equals notequals greaterthanandequals or lessthanandequals)
equals notequals greaterthanandequals or lessthanandequals
+
'''Variables Used (z):''' Number or formula (EQVAR value)
Variables Used (z): Number or formula (EQVAR value)
 
  
What it does:
+
'''What it does:'''
  
    * Tests the value of EQVARs.
+
* Tests the value of EQVARs.
    * When used as a stand alone tag in an EQMOD it is used to qualify an equipment item for the EQMOD. The equipment item must possess the EQVAR at the specified value to qualify for the EQMOD.
+
* When used as a stand alone tag in an EQMOD it is used to qualify an equipment item for the EQMOD. The equipment item must possess the EQVAR at the specified value to qualify for the EQMOD.
    * Can be used to qualify BONUSes and SPROPs in equipment and EQMOD files, when used this way it tests the value of the EQVAR in the equipment item and any attached EQMODs but does not look outside of itself (at other equipment the character possesses).
+
* Can be used to qualify BONUSes and SPROPs in equipment and EQMOD files, when used this way it tests the value of the EQVAR in the equipment item and any attached EQMODs but does not look outside of itself (at other equipment the character possesses).
    * 0 is a valid value to test for, in the case of 0 PREEQVAR is testing to see if the EQVAR has been defined in the equipment item. If an item does not have a DEFINE or an EQMOD with a DEFINE for a specific EQVAR all PREEQVAR tests for it will fail.
+
* 0 is a valid value to test for, in the case of 0 PREEQVAR is testing to see if the EQVAR has been defined in the equipment item. If an item does not have a DEFINE or an EQMOD with a DEFINE for a specific EQVAR all PREEQVAR tests for it will fail.
  
Where it is used:
+
'''Where it is used:'''
  
    * As a stand alone tag it is valid only in EQMOD files.
+
* As a stand alone tag it is valid only in EQMOD files.
    * As a qualifier it is valid in equipment and EQMOD files.
+
* As a qualifier it is valid in equipment and EQMOD files.
  
Example:
+
'''Example:'''
PREEQVAR:1,Speed==55
+
:<tt>PREEQVAR:1,Speed==55</tt><br>
Speed must equal 55
+
::Speed must equal 55<br>
PREEQVAR:1,Speed!=55
+
:<tt>PREEQVAR:1,Speed!=55</tt><br>
Speed must NOT equal 55
+
::Speed must NOT equal 55<br>
PREEQVAR:1,Speed=>55
+
:<tt>PREEQVAR:1,Speed=>55</tt><br>
Speed must be equal or greater than 55
+
::Speed must be equal or greater than 55<br>
PREEQVAR:1,Speed=<55
+
:<tt>PREEQVAR:1,Speed=<55</tt><br>
Speed must be equal or less than 55)
+
::Speed must be equal or less than 55<br>
 +
 
 +
 
 +
== Testing for EQVARs outside of equipment ==
  
Testing for EQVARs outside of equipment
 
  
 
The need here is to test to see if the character has an item with a particular EQVAR. You might have an ability or bonus which is granted when in possession of a specific item, Like a Charisma bonus if you own a car with a top speed of 120+ or an enhancement to your Wisdom skills if you have an intelligent weapon with a high Charisma. I propose an enhancement to the PREITEM and PREEQUIP tags:
 
The need here is to test to see if the character has an item with a particular EQVAR. You might have an ability or bonus which is granted when in possession of a specific item, Like a Charisma bonus if you own a car with a top speed of 120+ or an enhancement to your Wisdom skills if you have an intelligent weapon with a high Charisma. I propose an enhancement to the PREITEM and PREEQUIP tags:
Line 85: Line 88:
 
Examples:
 
Examples:
  
PREITEM:1,EQVAR=Speed=>120
+
:<tt>PREITEM:1,EQVAR=Speed=>120</tt><br>
Must have one item with the Speed EQVAR with a value of greater than or equal to 120.
+
::Must have one item with the Speed EQVAR with a value of greater than or equal to 120.
 +
 
 +
:<tt>PREEQUIP:1,EQVAR=WeaponIntelligence>16</tt><br>
 +
::Must have an item with the WeaponIntelligence EQVAR with a value of greater than 16.
 +
 
 +
 
 +
== Output Tokens ==
  
PREEQUIP:1,EQVAR=WeaponIntelligence>16
+
'''Token Name:''' EQ.x.EQVAR.y
Must have an item with the WeaponIntelligence EQVAR with a value of greater than 16.
 
  
Output Tokens
+
'''Variables Used (x):''' Number (The equipment position number - 0-based index).<br>
Token Name: EQ.x.EQVAR.y
+
'''Variables Used (y):''' Text (Equipment variable name)
  
Variables Used (x): Number (The equipment position number - 0-based index).
+
'''What it does:'''
Variables Used (y): Text (Equipment variable name)
+
* Outputs the specified EQVAR for the specified equipment.
  
What it does:
+
'''Example:'''
*Outputs the specified EQVAR for the specified equipment.
+
:<tt>EQ.0.EQVAR.MaxSpeed</tt><br>
Example:
+
::Outputs the value of MaxSpeed for the first equipment item.
EQ.0.EQVAR.MaxSpeed
 
Outputs the value of MaxSpeed for the first equipment item.
 
  
Token Name: EQ.x.HASEQVAR.y
+
'''Token Name:''' EQ.x.HASEQVAR.y
  
Variables Used (x): Number (The equipment position number - 0-based index).
+
'''Variables Used (x):''' Number (The equipment position number - 0-based index).<br>
Variables Used (y): Text (Equipment variable name)
+
'''Variables Used (y):''' Text (Equipment variable name)
  
What it does:
+
'''What it does:'''<br>
 
*Outputs Y (Yes) or N (No) as appropriate.
 
*Outputs Y (Yes) or N (No) as appropriate.
 
*Makes this possible:
 
*Makes this possible:
IFF(EQ.0.HASEQVAR.MaxSpeed:Y)
+
:<tt>IFF(EQ.0.HASEQVAR.MaxSpeed:Y)<br>
*The value of the EQVAR can be 0 and still return Y, the EQVAR just need to be DEFINEd to pass.
+
*The value of the EQVAR can be 0 and still return Y, the EQVAR just need to be DEFINEd to pass.<br>
Example:
+
'''Example:'''
EQ.0.HASEQVAR.MaxSpeed
+
:<tt>EQ.0.HASEQVAR.MaxSpeed</tt><br>
Outputs Y (Yes) if the item has the EQVAR or N (No) if not.
+
::Outputs Y (Yes) if the item has the EQVAR or N (No) if not.
  
!Examples of usage
+
'''Examples of usage'''
  
Here is how we might use EQVARs to code various source features (only relevent tags shown):
+
Here is how we might use EQVARs to code various source features (only relevant tags shown):
Equipment Item:
 
  
Shoe
+
'''Equipment Item:'''
EQMOD:GADGETSLOTS|2
 
  
Equipment Modifiers:
+
:<tt>Shoe<br>
 +
:EQMOD:GADGETSLOTS|2</tt>
  
Gadget Slots
+
'''Equipment Modifiers:'''
KEY:GADGET_SLOTS
 
DEFINE:EQVAR|AvailableGadgetSlots|0
 
CHOOSE:Gadget Slots|MIN=1|MAX=10
 
BONUS:EQVAR|AvailableGadgetSlots|%CHOICE
 
  
Hidden Telephone
+
:<tt>Gadget Slots<br>
KEY:HIDDEN_PHONE
+
:KEY:GADGET_SLOTS<br>
PREEQVAR:1,AvailableGadgetSlots>0
+
:DEFINE:EQVAR|AvailableGadgetSlots|0<br>
BONUS:EQVAR|AvailableGadgetSlots|-1
+
:CHOOSE:Gadget Slots|MIN=1|MAX=10<br>
 +
:BONUS:EQVAR|AvailableGadgetSlots|%CHOICE</tt>
 +
 
 +
:<tt>Hidden Telephone<br>
 +
:KEY:HIDDEN_PHONE<br>
 +
:PREEQVAR:1,AvailableGadgetSlots>0<br>
 +
:BONUS:EQVAR|AvailableGadgetSlots|-1</tt>
  
 
In this example the EQVAR AvailableGadgetSlots is used to control the number of gadget EQMODs which can be added to an item (something which is very difficult to do now).
 
In this example the EQVAR AvailableGadgetSlots is used to control the number of gadget EQMODs which can be added to an item (something which is very difficult to do now).
  
Equipment Modifiers:
+
'''Equipment Modifiers:'''
  
Vehicle Stats
+
:<tt>Vehicle Stats<br>
KEY:VEHICLE_STATS
+
:KEY:VEHICLE_STATS<br>
DEFINE:EQVAR|VehicleSpeed|0
+
:DEFINE:EQVAR|VehicleSpeed|0<br>
DEFINE:EQVAR|VehicleManuver|0
+
:DEFINE:EQVAR|VehicleManuver|0<br>
DEFINE:EQVAR|VehicleCargo|0
+
:DEFINE:EQVAR|VehicleCargo|0</tt>
  
Equipment Item:
+
'''Equipment Item:'''
  
VW bug
+
:<tt>VW bug<br>
EQMOD:VEHICLE_STATS
+
:EQMOD:VEHICLE_STATS<br>
BONUS:EQVAR|VehicleSpeed|60
+
:BONUS:EQVAR|VehicleSpeed|60<br>
BONUS:EQVAR|VehicleManuver|4
+
:BONUS:EQVAR|VehicleManuver|4<br>
BONUS:EQVAR|VehicleCargo|120
+
:BONUS:EQVAR|VehicleCargo|120</tt>
  
 
In this example a number of EQVARs are used to track specific vehicle stats for which PCGen does not already have a specialized tag for. A single EQMOD would have all the EQVARs needed for a broad equipment type (such as vehicles). A special block can then be created on the outputsheet for that equipment type.
 
In this example a number of EQVARs are used to track specific vehicle stats for which PCGen does not already have a specialized tag for. A single EQMOD would have all the EQVARs needed for a broad equipment type (such as vehicles). A special block can then be created on the outputsheet for that equipment type.
  
Equipment Modifiers:
 
  
Intelligent Magic Item
+
'''Equipment Modifiers:'''
KEY:INT_ITEM
+
 
 +
 
 +
:<tt>Intelligent Magic Item<br>
 +
:KEY:INT_ITEM</tt>
 +
 
 +
 
 +
:<tt>Magic Item INT<br>
 +
:PRETYPE:1,EQMOD=INT_ITEM<br>
 +
:KEY:ITEM_INT<br>
 +
:DEFINE:EQVAR|MagicItemINT|0<br>
 +
:CHOOSE:Intelligence|MIN=3|MAX=18<br>
 +
:BONUS:EQVAR|MagicItemINT|%CHOICE</tt>
 +
 
 +
 
 +
:<tt>Magic Item WIS<br>
 +
:PRETYPE:1,EQMOD=INT_ITEM<br>
 +
:KEY:ITEM_WIS<br>
 +
:DEFINE:EQVAR|MagicItemWIS|0<br>
 +
:CHOOSE:Wisdom|MIN=3|MAX=18<br>
 +
:BONUS:EQVAR|MagicItemWIS|%CHOICE</tt>
 +
 
  
Magic Item INT
+
:<tt>Magic Item CHA<br>
PRETYPE:1,EQMOD=INT_ITEM
+
:PRETYPE:1,EQMOD=INT_ITEM<br>
KEY:ITEM_INT
+
:KEY:ITEM_CHA<br>
DEFINE:EQVAR|MagicItemINT|0
+
:DEFINE:EQVAR|MagicItemCHA|0<br>
CHOOSE:Intelligence|MIN=3|MAX=18
+
:CHOOSE:Charisma|MIN=3|MAX=18<br>
BONUS:EQVAR|MagicItemINT|%CHOICE
+
:BONUS:EQVAR|MagicItemCHA|%CHOICE</tt>
  
Magic Item WIS
 
PRETYPE:1,EQMOD=INT_ITEM
 
KEY:ITEM_WIS
 
DEFINE:EQVAR|MagicItemWIS|0
 
CHOOSE:Wisdom|MIN=3|MAX=18
 
BONUS:EQVAR|MagicItemWIS|%CHOICE
 
  
Magic Item CHA
+
'''Equipment Item:'''
PRETYPE:1,EQMOD=INT_ITEM
 
KEY:ITEM_CHA
 
DEFINE:EQVAR|MagicItemCHA|0
 
CHOOSE:Charisma|MIN=3|MAX=18
 
BONUS:EQVAR|MagicItemCHA|%CHOICE
 
  
Equipment Item:**
 
  
MoSaT's Magic Slingshot
+
:<tt>MoSaT's Magic Slingshot<br>
EQMOD:INT_ITEM.ITEM_INT|10.ITEM_WIS|16.ITEM_CHA|12
+
:EQMOD:INT_ITEM.ITEM_INT|10.ITEM_WIS|16.ITEM_CHA|12</tt>
  
 
In this example three EQVARs are used for an intelligent items mental attributes. It is coded in such a way as to allow such a weapon to be created in the customizer or coded in a dataset like the example slingshot.
 
In this example three EQVARs are used for an intelligent items mental attributes. It is coded in such a way as to allow such a weapon to be created in the customizer or coded in a dataset like the example slingshot.

Revision as of 19:24, 13 August 2008

This feature would enable the ability of defining variables whose values would be associated with individual equipment items rather than the character it belongs to. This is needed for particularly complex equipment such as Mechas, Vehicles, Traps, Intelligent magic items, pretty much anything which brings a host of stats along with it. All equipment has stats and most of the commonly used stats have LST tags to handle them, stuff like DAMAGE, COST, WT to name a few. Complex equipment can have a number of new stats which we don't have LST tags for and it would be difficult for the code team to keep up with them. Being able to set a variable to a specific item gives us a mechanism to create any number of stats in the data which would be supported by one feature in the code.


Related Trackers

1041467 - MSRD Vehicle tags
987661 - Localalized Variables
857044 - Intelligent items


LST Tags

Tag Name: DEFINE:EQVAR|x|y

Variables Used (x): Text (Equipment variable name)
Variables Used (y): Number (Initial value)

What it does:

  • Defines a variable who's value is specific to the Equipment it is defined in.
  • If more than one DEFINE tag for the same EQVAR is encountered the highest value is used.
  • Usage: once defined you can use EQVARs anywhere you can use a number, formula or normal VAR within equipment and EQMODs but not outside of them. This is because an EQVAR has it value in context of the equipment so using an EQVAR in a bonus formula within a feat is meaningless because it does not know from which equipment you want this value to be derived from and you may have several items with the same EQVAR but with different values.

Where it is used:

  • Valid in Equipment and EQMOD files only

Example:

DEFINE:EQVAR|MaxSpeed|0
Defines an Equipment variable named MaxSpeed and sets the initial value to 0.

Tag Name: BONUS:EQVAR|x,x|y,y|z

Variables Used (x): Text (Equipment variable name) Variables Used (y): GLOBAL (Optional, applies to all equipment) Variables Used (y): TYPE.Text (Optional, applies only if the equipment has this TYPE) Variables Used (y): EQMODTYPE.Text (Optional, applies only if the equipment has an EQMOD with this TYPE) Variables Used (y): Text (Optional, Equipment item name, applies to a specific item)

What it does:

  • BONUSes an EQVAR.
  • The Y property is meant to address the problem of how to bonus EQVARs across objects. Since you can have multiple items with the same EQVAR but with different values.
  • A BONUS:EQVAR in Equipment or EQMODs without any Y options will only effect EQVARs within the equipment item.
  • A BONUS:EQVAR outside of Equipment or EQMODs without any Y options will not effect anything. BONUS:EQVAR tags outside equipment must use one of the Y options to target equipment for bonusing. A BONUS:EQVAR outside of Equipment or EQMODs without any Y options should throw a message in the Debug Console.
  • A BONUS:EQVAR in Equipment or EQMODs with any Y options will effect all EQVARs contained in equipment targeted by the Y options including the item the bonus is in if it qualifies.
  • This bonus can be appended with standard PRExxx tags as well as bonus TYPE tags like most PRExxx tags.

Example:

BONUS:EQVAR|x,x|y,y|z
BONUSes an EQVAR

Tag Name: PREEQVAR:w,xyz,xyz

Variables Used (w): Number (Number of EQVARs to qualify) Variables Used (x): Text (Name of an EQVAR) Variables Used (y): Boolean math operator ( > < equals notequals greaterthanandequals or lessthanandequals) Variables Used (z): Number or formula (EQVAR value)

What it does:

  • Tests the value of EQVARs.
  • When used as a stand alone tag in an EQMOD it is used to qualify an equipment item for the EQMOD. The equipment item must possess the EQVAR at the specified value to qualify for the EQMOD.
  • Can be used to qualify BONUSes and SPROPs in equipment and EQMOD files, when used this way it tests the value of the EQVAR in the equipment item and any attached EQMODs but does not look outside of itself (at other equipment the character possesses).
  • 0 is a valid value to test for, in the case of 0 PREEQVAR is testing to see if the EQVAR has been defined in the equipment item. If an item does not have a DEFINE or an EQMOD with a DEFINE for a specific EQVAR all PREEQVAR tests for it will fail.

Where it is used:

  • As a stand alone tag it is valid only in EQMOD files.
  • As a qualifier it is valid in equipment and EQMOD files.

Example:

PREEQVAR:1,Speed==55
Speed must equal 55
PREEQVAR:1,Speed!=55
Speed must NOT equal 55
PREEQVAR:1,Speed=>55
Speed must be equal or greater than 55
PREEQVAR:1,Speed=<55
Speed must be equal or less than 55


Testing for EQVARs outside of equipment

The need here is to test to see if the character has an item with a particular EQVAR. You might have an ability or bonus which is granted when in possession of a specific item, Like a Charisma bonus if you own a car with a top speed of 120+ or an enhancement to your Wisdom skills if you have an intelligent weapon with a high Charisma. I propose an enhancement to the PREITEM and PREEQUIP tags:

Examples:

PREITEM:1,EQVAR=Speed=>120
Must have one item with the Speed EQVAR with a value of greater than or equal to 120.
PREEQUIP:1,EQVAR=WeaponIntelligence>16
Must have an item with the WeaponIntelligence EQVAR with a value of greater than 16.


Output Tokens

Token Name: EQ.x.EQVAR.y

Variables Used (x): Number (The equipment position number - 0-based index).
Variables Used (y): Text (Equipment variable name)

What it does:

  • Outputs the specified EQVAR for the specified equipment.

Example:

EQ.0.EQVAR.MaxSpeed
Outputs the value of MaxSpeed for the first equipment item.

Token Name: EQ.x.HASEQVAR.y

Variables Used (x): Number (The equipment position number - 0-based index).
Variables Used (y): Text (Equipment variable name)

What it does:

  • Outputs Y (Yes) or N (No) as appropriate.
  • Makes this possible:
IFF(EQ.0.HASEQVAR.MaxSpeed:Y)
  • The value of the EQVAR can be 0 and still return Y, the EQVAR just need to be DEFINEd to pass.

Example:

EQ.0.HASEQVAR.MaxSpeed
Outputs Y (Yes) if the item has the EQVAR or N (No) if not.

Examples of usage

Here is how we might use EQVARs to code various source features (only relevant tags shown):

Equipment Item:

Shoe
EQMOD:GADGETSLOTS|2

Equipment Modifiers:

Gadget Slots
KEY:GADGET_SLOTS
DEFINE:EQVAR|AvailableGadgetSlots|0
CHOOSE:Gadget Slots|MIN=1|MAX=10
BONUS:EQVAR|AvailableGadgetSlots|%CHOICE
Hidden Telephone
KEY:HIDDEN_PHONE
PREEQVAR:1,AvailableGadgetSlots>0
BONUS:EQVAR|AvailableGadgetSlots|-1

In this example the EQVAR AvailableGadgetSlots is used to control the number of gadget EQMODs which can be added to an item (something which is very difficult to do now).

Equipment Modifiers:

Vehicle Stats
KEY:VEHICLE_STATS
DEFINE:EQVAR|VehicleSpeed|0
DEFINE:EQVAR|VehicleManuver|0
DEFINE:EQVAR|VehicleCargo|0

Equipment Item:

VW bug
EQMOD:VEHICLE_STATS
BONUS:EQVAR|VehicleSpeed|60
BONUS:EQVAR|VehicleManuver|4
BONUS:EQVAR|VehicleCargo|120

In this example a number of EQVARs are used to track specific vehicle stats for which PCGen does not already have a specialized tag for. A single EQMOD would have all the EQVARs needed for a broad equipment type (such as vehicles). A special block can then be created on the outputsheet for that equipment type.


Equipment Modifiers:


Intelligent Magic Item
KEY:INT_ITEM


Magic Item INT
PRETYPE:1,EQMOD=INT_ITEM
KEY:ITEM_INT
DEFINE:EQVAR|MagicItemINT|0
CHOOSE:Intelligence|MIN=3|MAX=18
BONUS:EQVAR|MagicItemINT|%CHOICE


Magic Item WIS
PRETYPE:1,EQMOD=INT_ITEM
KEY:ITEM_WIS
DEFINE:EQVAR|MagicItemWIS|0
CHOOSE:Wisdom|MIN=3|MAX=18
BONUS:EQVAR|MagicItemWIS|%CHOICE


Magic Item CHA
PRETYPE:1,EQMOD=INT_ITEM
KEY:ITEM_CHA
DEFINE:EQVAR|MagicItemCHA|0
CHOOSE:Charisma|MIN=3|MAX=18
BONUS:EQVAR|MagicItemCHA|%CHOICE


Equipment Item:


MoSaT's Magic Slingshot
EQMOD:INT_ITEM.ITEM_INT|10.ITEM_WIS|16.ITEM_CHA|12

In this example three EQVARs are used for an intelligent items mental attributes. It is coded in such a way as to allow such a weapon to be created in the customizer or coded in a dataset like the example slingshot.