PDA

View Full Version : Adjusting BAB and Favored Enemy


Micco
February 14th, 2010, 07:12 AM
We are creating a form of Gestalt class that combines elements from two classes for the first level only. Most things we can figure out how to implement in HL, but we can't figure out two things.

1) How would we give a single level of Favored Enemy without having it go up when the class levels? It appears that Favored Enemy is hard-coded in and doesn't use the Bootstrap method (which would allow us to remove all but one level of FE.)

2) How do we add a single point of BAB? If we use the permanent adjustment Attack Bonus, it only applies to attacks. We can also adjust CMD/CMB, but that still doesn't change the BAB score which is used in lots of other calculations such as Feat prereqs.

Any clues or ideas would be useful!

Mathias
February 16th, 2010, 12:15 PM
You'll be using scripts to modify both of these. As you've seen, the class mechanics presume that classes improve according to regular progressions, so creating Gestalt classes throws that assumption out the window.

Add a level of Ranger to an empty character so you can test things.

In the develop menu, make sure the "Enable Data File Debugging" option at the top is checked, then go to the bottom of the list, to the floating info windows, and select "Show Selection Fields". Scan through this list for anything that looks useful, and you'll come across "Favored Enemy Selections" and "Favored Enemy Upgrades" - select both of those, and move the windows that pop up to the side, where you can see both, but they won't be in the way. Now, add more levels of ranger to the character, and watch how the field values for those things change as you add levels.

Now, go to your new class in the editor, and create a new eval script for it. Timing: we're altering a class ability - those are almost always set in the Levels or Post-Levels phases, so use a timing very late in the Post-Levels phase. Post-Levels/100000, perhaps.

What you want to do is to make sure that this class never adds more than 1 to the resMax of Favored Enemy Selections (resEnemSel), and +0 to the resMax of Favored Enemy Upgrades (resEnemUpg).


hero.child[resEnemSel].field[resMax].value = minimum(hero.child[resEnemSel].field[resMax].value, 1)
hero.child[resEnemUpg].field[resMax].value = minimum(hero.child[resEnemUpg].field[resMax].value, 0)

Mathias
February 16th, 2010, 12:22 PM
For the BAB, that's stored in the Attack pick on the hero, in the tAtkBase field.

Classes add their BAB to the attack pick at Levels/10000, so create another eval script on your class, and give it a Timing of Levels/11000, shortly after that.

All you need to do to add +1 BAB is:

hero.child[Attack].field[tAtkBase].value += 1

Micco
February 17th, 2010, 03:13 PM
Awesome! Thanks Mathias :) I always appreciate how responsive you are to random questions.