Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - Pathfinder Roleplaying Game

Notices

Reply
 
Thread Tools Display Modes
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
Lord Magus
Senior Member
 
Join Date: Jan 2011
Location: Quebec, QC, Canada
Posts: 464

Old April 22nd, 2020, 04:17 AM
Quote:
Originally Posted by wdmartin View Post
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."
This. I totally understand wanting to code this all the way through, but I suspect, as you do, that some hard-coded bits in HL will preclude you from doing what you intend.
Lord Magus is offline   #2 Reply With Quote
wdmartin
Senior Member
 
Join Date: May 2013
Posts: 240

Old April 22nd, 2020, 11:21 AM
Well, I think that'll be the solution then. Oh, well.

Thanks!
wdmartin is offline   #3 Reply With Quote
Mathias
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 13,207

Old April 22nd, 2020, 11:47 AM
In the FAQ, find the Data File Authoring section for 13.3 - that's when the handling for very complex iterative attacks was added - it's really complex, but each of the numbers that's being output is stored as a single value in a matrix, so you can maually generate all of them at the numbers you want, if your attack isn't using the progression that's represented by Helper.ExtraHigh (which is only supposed to add extra attacks to the highest bonus, not anything lower than that - it sounds like what you want is one ExtraHigh + one Extra2nd + one Extra3rd (of course those other tags aren't things that exist, so you'll have to handle it all manually).


And hopefully, the other fields and controls that affect things are powerful enough that you won't need to edit the matrix directly.
Mathias is online now   #4 Reply With Quote
wdmartin
Senior Member
 
Join Date: May 2013
Posts: 240

Old April 22nd, 2020, 05:52 PM
I'm guessing you mean the 13.3 data files release notes.

I just read the description of how attacks are generated there, and whoosh, I think I may have to read it again. Several times. And maybe draw some pictures. It seems pretty involved.

Thanks for the tip!
wdmartin is offline   #5 Reply With Quote
Mathias
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 13,207

Old April 23rd, 2020, 07:47 AM
Within Hero Lab, from the Help menu, choose "Pathfinder Roleplaying Game FAQ" - that's where we store all of the release notes, and when we're making the forum posts, we just copy from there, so I had thought of that as being easier to find than the forum post, but the forum post has the same info.
Mathias is online now   #6 Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 12:35 PM.


Powered by vBulletin® - Copyright ©2000 - 2024, vBulletin Solutions, Inc.
wolflair.com copyright ©1998-2016 Lone Wolf Development, Inc. View our Privacy Policy here.