Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - Pathfinder Roleplaying Game
Register FAQ Community Today's Posts Search

Notices

Reply
 
Thread Tools Display Modes
Matt Droz
Senior Member
 
Join Date: Apr 2010
Posts: 152

Old June 15th, 2014, 08:18 PM
It's always bothered me a bit that there's a separate entry for each Age Category for each Dragon. Oh, I understand totally why, especially with the Encounter Builder so you can find the dragons by Challenge Rating and such.

Still, it bugged me. So when I found myself creating another dragon in the Editor, I decided to do this differently. I created a generic Age Category under Racial Special with an Array-Based menu:

- Choose -
Wyrmling
Very young
Young
Juvenile
Young adult
Adult
Mature Adult
Old
Very old
Ancient
Wyrm
Great wyrm

There's a single Eval Rule at First/100 to display the message "Must choose an age category" if one hasn't been chosen.
Code:
validif (field[usrIndex].value <> 0)
Then, for the good stuff:

Eval Script #1
First (Users)/100; Index 1
Code:
~ Set's dragon's size, CR, hit dice, natural armor, and ability scores based on Age Category
doneif (field[usrIndex].value = 0)

var sizemod as number
var hDice as number
var nArm as number
var mScore as number
var strSc as number
var dexSc as number
var conSc as number
perform hero.findchild[BaseRace].setfocus
 
doneif (state.isfocus = 0)

if (field[usrIndex].value = 12) then
  sizemod = 5
  focus.field[rCR].value += 16
elseif (field[usrIndex].value = 11) then
  sizemod = 4
  focus.field[rCR].value += 14
elseif (field[usrIndex].value = 10) then
  sizemod = 4
  focus.field[rCR].value += 13
elseif (field[usrIndex].value = 9) then
  sizemod = 4
  focus.field[rCR].value += 12
elseif (field[usrIndex].value = 8) then
  sizemod = 4
  focus.field[rCR].value += 11
elseif (field[usrIndex].value = 7) then
  sizemod = 3
  focus.field[rCR].value += 9
elseif (field[usrIndex].value = 6) then
  sizemod = 3
  focus.field[rCR].value += 8
elseif (field[usrIndex].value = 5) then
  sizemod = 3
  focus.field[rCR].value += 7
elseif (field[usrIndex].value = 4) then
  sizemod = 2
  focus.field[rCR].value += 5
elseif (field[usrIndex].value = 3) then
  sizemod = 2
  focus.field[rCR].value += 4
elseif (field[usrIndex].value = 2) then
  sizemod = 1
  focus.field[rCR].value += 2
  endif

call SizeChange

hDice = (field[usrIndex].value - 1) * 2
nArm = (field[usrIndex].value - 1) * 3
if (field[usrIndex].value = 2) then
  strSc = 4
elseif (field[usrIndex].value >= 3) then
  strSc = (field[usrIndex].value + 1) * 2
else
  strSc = 0
  endif

dexSc = field[usrIndex].value + 1
dexSc = round(dexSc/3, 0, -1)
dexSc = dexSc * 2

if (field[usrIndex].value >= 3) then
  conSc = field[usrIndex].value + 2
  conSc = round(conSc/2, 0, -1)
  conSc = conSc * 2
else
  conSc = (field[usrIndex].value - 1) * 2
  endif
mScore = round(field[usrIndex].value /2, 0, -1) * 2

focus.field[rHitDice].value += hDice
focus.field[rAC].value += nArm
focus.field[rSTR].value += strSc
focus.field[rDEX].value -= dexSc
focus.field[rCON].value += conSc
focus.field[rINT].value += mScore
focus.field[rWIS].value += mScore
focus.field[rCHA].value += mScore
Eval Script #2:
Render/9999; Index 2
Code:
~ appends Age Category to livename of dragon; sets Frightful Presence range
doneif (field[usrIndex].value = 0)

hero.findchild[BaseRace].field[livename].text = hero.findchild[BaseRace].field[thingname].text & ", " & field[usrSelect].text

hero.childfound[raFrightPr].field[abRange].value = field[usrIndex].value * 30
Okay, that's the Racial Ability that you add on to the dragon. Now, back to the dragon itself. adding the following Eval Script at First (Users)/101 will set the abValue of the breath weapon, set the bonus feats value (rFeat), and set the Damage Reduction values as they go up in age category:
Code:
doneif (hero.childfound[raFRAgeCat].field[usrIndex].value = 0)

hero.childfound[raDrBreath].field[abValue].value = hero.childfound[raFRAgeCat].field[usrIndex].value

field[rFeat].value -= round(field[rHitDice].value /2, 0, 1)

if (hero.childfound[raFRAgeCat].field[usrIndex].value >= 11) then
  perform hero.childfound[xDamRdMag].assign[Value.20]
elseif (hero.childfound[raFRAgeCat].field[usrIndex].value >= 9) then
  perform hero.childfound[xDamRdMag].assign[Value.15]
elseif (hero.childfound[raFRAgeCat].field[usrIndex].value >= 7) then
  perform hero.childfound[xDamRdMag].assign[Value.10]
elseif (hero.childfound[raFRAgeCat].field[usrIndex].value >= 5) then
  perform hero.childfound[xDamRdMag].assign[Value.5]
  endif
This Eval Script will set the skill values dependent on the age value
Pre-Levels (Users)/100
Code:
#skillinnate[skBluff] += field[rHitDice].value
#skillinnate[skDiplo] += field[rHitDice].value
#skillinnate[skDisguise] += field[rHitDice].value
#skillinnate[skKnowLoc] += field[rHitDice].value
#skillinnate[skPercep] += field[rHitDice].value
#skillinnate[skSenseMot] += field[rHitDice].value

if (hero.childfound[raFRAgeCat].field[usrIndex].value >= 2) then
  #skillinnate[skSpellcr] += field[rHitDice].value
  endif
if (hero.childfound[raFRAgeCat].field[usrIndex].value >= 4) then
  #skillinnate[skKnowArca] += field[rHitDice].value
  endif
if (hero.childfound[raFRAgeCat].field[usrIndex].value >= 6) then
  #skillinnate[skKnowHist] += field[rHitDice].value
  endif
if (hero.childfound[raFRAgeCat].field[usrIndex].value >= 8) then
  #skillinnate[skKnowNobl] += field[rHitDice].value
  endif
if (hero.childfound[raFRAgeCat].field[usrIndex].value >= 10) then
  #skillinnate[skKnowRel] += field[rHitDice].value
  endif
if (hero.childfound[raFRAgeCat].field[usrIndex].value >= 12) then
  #skillinnate[skKnowPlan] += field[rHitDice].value
  endif
The final bit is the spell-like abilities, feats, and racial abilities that come in at different age categories. Instead of trying to play around with various custom tags and such, the Age Category actually increases the HD by two every time it goes up. So, you can use a boot strap condition (below) to determine whether it shows the feat/ability or not.
First/500
Code:
fieldval:rHitDice >= 22
That's it. The "default" dragon is all the wyrmling stats, which the Age Category choice will update. Now, instead of creating an entry for each age category, you can create one dragon entry then choose the age category on the Backgrounds tab. Sure, it means the dragons will only show up in the Encounter Builder at their minimum CR, but I can live with that.

Any thoughts/suggestions?

Matt Droz Community material (Forgotten Realms & Non-SRD/Retro)
Matt Droz is offline   #1 Reply With Quote
frumple
Senior Member
 
Join Date: Nov 2011
Location: South Riding, VA
Posts: 841

Old June 16th, 2014, 03:49 AM
Looks interesting Matt. I did something similar for the community bestiary (I wanted to implement some abilities and a template that depended on dragon age category). The dragon is the "base" dragon, and the user selects the age cat from a configurable. The configurable assigns a tag. Depending on what the tag is the base dragon gets its various abilities.

Last edited by frumple; June 16th, 2014 at 09:23 AM.
frumple is offline   #2 Reply With Quote
Aaron
Senior Member
 
Join Date: Oct 2011
Posts: 6,793

Old June 16th, 2014, 07:57 AM
Clever! I did something similar at one point for the 3.5 community files.
Aaron is offline   #3 Reply With Quote
Fuzzy
Senior Member
 
Join Date: Jul 2012
Posts: 416

Old June 18th, 2014, 05:03 AM
So how woudl these show up in the encounter builder? Are you basing everything on the Adult age, and then modifying from there? in which case, it would show up at the CR of an Adult dragon? Then once added, you'd go in and adjust the age?

I don't see a problem with that, specifically because when dealing with dragons, you've usually got an idea that you're going to have a given dragon in the encounter, and aren't hunting by CR to find an appropriate enemy. More just a curiosity aspect.

So this does bring up a shortcoming in the encounter builder though. I understand, all it does is parse through the .stock files to compile it's database of options, but for future feature expansions of it, it would be great if it supported single base + variations. The dragon age is just a single example, but there are all the other templates and such that aren't really all that usable via the encounter builder.

Having a category tree would be amazing - though I'm not sure the best way to categorize them. Obvious major Type groups like undead, outsiders, dragons, etc, then the sub groups below each would be different depending on the major group. Currently, the ability to filter down strictly by text search is a little limited.
Fuzzy is offline   #4 Reply With Quote
Matt Droz
Senior Member
 
Join Date: Apr 2010
Posts: 152

Old June 18th, 2014, 04:27 PM
Quote:
Originally Posted by Fuzzy View Post
So how woudl these show up in the encounter builder? Are you basing everything on the Adult age, and then modifying from there? in which case, it would show up at the CR of an Adult dragon? Then once added, you'd go in and adjust the age?
They'd show up with their Wyrmling stats since that's what I'm using as the base, so a bunch of CR 2-4's.
Quote:
Originally Posted by Fuzzy View Post
I don't see a problem with that, specifically because when dealing with dragons, you've usually got an idea that you're going to have a given dragon in the encounter, and aren't hunting by CR to find an appropriate enemy. More just a curiosity aspect.

So this does bring up a shortcoming in the encounter builder though. I understand, all it does is parse through the .stock files to compile it's database of options, but for future feature expansions of it, it would be great if it supported single base + variations. The dragon age is just a single example, but there are all the other templates and such that aren't really all that usable via the encounter builder.

Having a category tree would be amazing - though I'm not sure the best way to categorize them. Obvious major Type groups like undead, outsiders, dragons, etc, then the sub groups below each would be different depending on the major group. Currently, the ability to filter down strictly by text search is a little limited.
That would be terrific.

The other great thing about the Encounter Builder as it stands now, if you build your own .STOCK portfolio with statted out NPCs, it will load them in. This is great for searching through the portfolios I'm trying to build for Forgotten Realms NPCs.

Matt Droz Community material (Forgotten Realms & Non-SRD/Retro)
Matt Droz is offline   #5 Reply With Quote
Reply


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 07:00 PM.


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