Thread: Double attacks
View Single Post
wdmartin
Senior Member
 
Join Date: May 2013
Posts: 240

Old April 21st, 2020, 08:41 PM
I'm working on implementing a Pathfinder 1e version of the 3.5 era Dervish prestige class from Complete Warrior. I've got everything working except the capstone.

The relevant rules text reads as follows:

Quote:
A Thousand Cuts (Ex): When a dervish reaches 10th level, once per day he may double the number of melee attacks he makes while performing a full attack action (whether in a dervish dance or not). If a dervish uses this ability in conjunction with his dervish dance, he can make up to two attacks between moves.

The dervish also gains the benefit of the Great Cleave feat with slashing weapons while performing a thousand cuts, even if he does not meet the prerequisites. He does not have to move 5 feet before making any extra attacks granted by this ability.

A dervish using this ability can receive an extra attack from the haste spell, but the haste attack is not doubled.
I took my best stab at it with the following eval script that runs at Post-levels/10000:

Code:
~ Get our BAB.
var bab as number
bab = hero.child[Attack].field[tAtkBase].value

~ To count attacks, we divide by 5 (rounding up) 
var iterativeAttacks as number
iterativeAttacks = round(bab/5,0,1)

~ The first attack is the high attack.
~ We just want iteratives, so subtract 1.
iterativeAttacks -= 1

~ Add the extra attacks to our weapons
var x as number
if (field[abilActive].value <> 0) then
  foreach pick in hero from BaseWep where "!Helper.ExtraHigh"
    ~ Assign the extra high attack.
    perform eachpick.assign[Helper.ExtraHigh]

    ~ Assign as many extra iterative attacks as they have iteratives.
    for x = 1 to iterativeAttacks
      perform eachpick.assign[Helper.ExtraIter]
    next
  nexteach
endif
This works, sort of, but suffers several problems:

1) The extra iterative attacks continue applying -5 penalties. My test PC had an attack sequence of +23/+18/+13. What I wanted was +23/+23/+18/+18/+13/+13. What I actually get is +23/+23/+18/+13/+8/+3.

I suspect that's hard-coded into the way Helper.ExtraIter works, but if I'm wrong I'd love to hear about it.

2) It interacts badly with the spell adjustment for Haste. If you turn on Haste after enabling A Thousand Cuts, the haste values completely replace the ones from the class ability. And if you turn on A Thousand Cuts while Haste is already going, nothing happens.

Probably the Haste code runs at an earlier phase and that check for Helper.ExtraHigh is making it skip all the weapons because they've already been modified by Haste.

3) Due to my own oversight, it's totally unaware of the distinction between main-hand and off-hand attacks when two-weapon fighting. For example, the off-hand weapon in my sample PC gets three more iterative attacks even though they only have a single off-hand attack usually.

Haste does the same, actually -- it grants an extra attack on both the main hand and the off hand weapon in a dual-wielding PC. So I'm in good company with that oversight.

In order to really implement this property I would need a way to count the attacks each weapon in the PC's inventory is currently eligible to make and use that for the number of attacks to add.

I've been staring at all this for hours now, and I'm seriously tempted just to skip implementing the attack doubling and stick a note in the description that says "Note: the attack doubling of A Thousand Cuts has not been implemented. Just roll your usual attacks twice."

Anyone have any better suggestions?
wdmartin is offline   #1 Reply With Quote