Additional Weapon Damage

From PCGen Wiki
Jump to: navigation, search

This will be implemented under the following code FREQ:
Additional Weapon Damage

Here's something simple that PCGen can't currently handle, some weapons and monster attacks deal additional damage beyond the standard damage roll. Flaming swords do fire damage, many monsters attacks inject poison. This is displayed in most stat blocks right inline with the normal damage, examples:

1d8 plus 1d6 fire
1d6 plus poison

Currently we put this data in the equipments SPROP or an SAB tag if it's a monster. I would like to see a way to do this in PCGen, we need something in addition to SPROP as that tag is a dumping ground for many things besides just additional damage. I think it can be a text string as there are not many cases where there is something that modifies the secondary damage value. In those rare cases where that may be needed we could make the new tag accept variable substitution like SPROP and SAB do.

New EQUIP / EQUIPMOD tag

ADDITIONALDAMAGE:x|y|y
x = Text (Additional damage the weapon deals)
This would be a short string (like "1d6 Acid damage") leaving any longer descriptions and details to an SPROP or ability DESC.
y = Var or formula, referenced by %1, %2, etc in (x)
This tag takes PRExxx
This tag can be used multiple times, and CLEARed in .MODs using .CLEARALL (everything) or .CLEAR.<specific (x) value>

Examples:

ADDITIONALDAMAGE:Poison
ADDITIONALDAMAGE:1d6 Cold
ADDITIONALDAMAGE:%d4 Sonic|TL

We also need a parallel tag for double weapons:

ALTADDITIONALDAMAGE:x|y|y

Same syntax as ADDITIONALDAMAGE
This tag takes PRExxx
This tag can be used multiple times, and CLEARed in .MODs using .CLEARALL (everything) or .CLEAR.<specific (x) value>


Multiple instances from both Equip and Equipmods are joined together as a comma separated string for output just like multiple instances of SPROP is done.

NOTE: +1d6 Fire +1d6 Cold looks a lot better than +1d6 Fire, +1d6 Cold, and so might want to be rethought. - Tir

.CLEAR / MODs

Clearing ADDITIONALDAMAGE tags can be done with the following syntax:

ADDITIONALDAMAGE:.CLEAR.<exact text> (to clear a specific instance)
ADDITIONALDAMAGE:.CLEARALL (to clear all instances)

Modification to NATURALATTACKS tag

Now we need a way to add this property to natural weapons, I propose we add an additional optional variable to NATURALATTACKS at the end where the text can be added, example:

NATURALATTACKS:Claw,Weapon.Natural.Melee.Slashing,*2, 1d4,1d6 Acid

The new variable for NATURALATTACKS will accept a single entry and no variable substitution.

ISSUE

Adding to NATURALATTACKS tags needs either a) a cleanup on error reporting on badly formed NATURALATTACKS tags, or b) the last set of commas being optional (right now, the number of commas is NOT optional).

Adding another comma WITHOUT that will kill all NATURALATTACKS tags out there currently.

Possibily need to revamp / replace NATURALATTACKS, as it is a long and unwieldy tag currently.

OS Token

Next we need a new sub token for the WEAPON OS token, ADDITIONALDAMAGE which outputs the value of ADDITIONALDAMAGE for that weapon.

WEAPON Token

WEAPON.[q.][r.]s.z
New (z) - ADDITIONALDAMAGE

EQ Token

New Equipment tokens:
EQ.%.ADDITIONALDAMAGE
EQ.%.ALTADDITIONALDAMAGE

EQMOD's can have ADDITIONALDAMAGE tags to add these properties to weapons. ADDITIONALDAMAGE is additive in the same way that SPROP is (multiple tags are grouped into a single, comma separated string). This tag is pretty much identical to SPROP except for it's name and the additional ability to add this property to NATURALATTACKS.


See 1173470 - BONUS: add DAMAGEDICE to WEAPON or WEAPONPROF for the request for this feature.