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
KevinMcc
Junior Member
 
Join Date: May 2012
Posts: 15

Old February 21st, 2019, 09:16 PM
Hello all,
I'm working on a new Archetype with a Drake Companion. I could get into a lot of details but in truth, it is all working fairly well except for creating a new subtype breath weapon. I've been trying to find the answer in the forums but I feel like I'm learning Greek from a Russian but it's being taught in German which neither of us is very good at speaking.

My guess is I need to use the Item Selection - Select from... Freeform edit control so I can add my subtype options but I'm don't know and can't figure out how to make it do anything.

Then I need help getting the subtype breath weapon to work. Again lost.

Thanks for any help you can give me.

Kevin
KevinMcc is offline   #1 Reply With Quote
Aaron
Senior Member
 
Join Date: Oct 2011
Posts: 6,793

Old February 22nd, 2019, 11:40 AM
I don't understand what you are trying to do. What does "a new subtype breath weapon" mean? Are you trying to switch the damage type of the breath weapon, for example from fire to acid or something?
Aaron is offline   #2 Reply With Quote
KevinMcc
Junior Member
 
Join Date: May 2012
Posts: 15

Old February 22nd, 2019, 08:07 PM
I was able to make a Drake subtype "Holy" as a Race Custom Ability, though it is the only selection available for my Companion. Right now I can't even figure out how I did that.
The "Holy" Drake subtype get a free Drake Power Breath Weapon. This breath weapon I want is a new Element type that would do bonus damage vs Evil. I can't get a "Holy" breath weapon to be selected from the list.
I not sure I'm explaining this well.
KevinMcc is offline   #3 Reply With Quote
KevinMcc
Junior Member
 
Join Date: May 2012
Posts: 15

Old February 22nd, 2019, 10:11 PM
Remembered how I got it to be a companion subtype and why the other options are not available. "Available to configurable" I would have to duplicate the other subtypes to make them available to my config file. Which is something I will be doing for the Drake Powers for other reasons and may do for the subtypes anyway though it is not required for what I want to accomplish.
KevinMcc is offline   #4 Reply With Quote
Aaron
Senior Member
 
Join Date: Oct 2011
Posts: 6,793

Old March 6th, 2019, 01:42 PM
Sorry again for losing track of this.

So it sounds like you made a couple racial variants which can be added and you gave each of them a certain bootstrapped breath weapon. My first question is, which pick for breath weapon are you bootstrapping? There are two generic ones which slightly differ, raBreath and raDrBreath.

So once you know which one you're using, make a copy of it and look at the scripts to see how it generates the info used in building its livename and summary.

For example, raDrBreath has this script (with helpful notes!)

Code:
    <eval index="1" phase="Final" priority="50000" name="Dragon Breath Weapon sets livename"><![CDATA[
      ~ The dragon race should bootstrap this special with an abValue = the
      ~ number of dice, and abValue2 = to the die size and a BloodEner.? tag
      ~ for the energy type. If we want to override the damage type, enter
      ~ text in abText2 (For instance an umbral dragon would have
      ~ "negative energy" in abText2).

      ~ Any existing races which use the old method (which sets the livename
      ~ from a script on the race), should be preserved because if there is
      ~ already a livename set, then the procedure does nothing.

      ~ We call this twice. First here for livename. Then later for sbName.
      call SetDraBre
      ]]></eval>
So you can see if you want this to apply "holy" damage, you can set that in the abText2 field when bootstrapping.

The other option, raBreath, has user comments in the definition (rather than the scripts).

Code:
    <comment><![CDATA[
      Generalized version of breath weapon that allows user to specify energy type, area (shape), range, damage, etc.
      Fortmat is:
      thingname (range & area, damage/effect, save type DC half/negates, frequency of use)

      ~ Should be bootstrapped with the following values
      abValue - # of damage dice
      abValue2 - size of damage dice
      abRange - range
      trkMax - usage freuency

      ~ Should be bootstrapped with the following tags
      Usage - usage period
      wType - type of damage
      abRange - range units, usually Feet
      abArea - primary area, usually a Cone or Line
      abSave - usually RefHalf

      ~ Optional configurations
      abValue4 - secondary range value
      abText3 - secondary range text
      abValue3 - bonus damage appended after abValue/abValue2
      abText2 - supplementary effect appended after abValue3
      wMain - can be used to specify damage instead of abValue and abValue2
      abDC - bonus/penalty to DC

      ~ Overrides
      abText - override damage
      ]]></comment>
For this one, rather than filling in damage type in a field, you do so by bootstrapping with a wType tag. There is no existing wType tag for "Holy" damage, but there is one for "Divine" damage, so maybe that would work? As for dealing extra damage vs. evil, you can specify that in abText2 with this version.

Hope that helps!
Aaron is offline   #5 Reply With Quote
KevinMcc
Junior Member
 
Join Date: May 2012
Posts: 15

Old March 6th, 2019, 10:36 PM
This is all very helpful Thank you so much!

I'm working with cDrCBreWea

This is the Eval Script I see

doneif (field[usrChosen1].ischosen = 0)

if (field[usrChosen1].chosen.tagis[BloodEner.Acid] <> 0) then
hero.childfound[raBreath].field[abText].text = "acid"
elseif (field[usrChosen1].chosen.tagis[BloodEner.Cold] <> 0) then
hero.childfound[raBreath].field[abText].text = "cold"
elseif (field[usrChosen1].chosen.tagis[BloodEner.Elec] <> 0) then
hero.childfound[raBreath].field[abText].text = "electricity"
elseif (field[usrChosen1].chosen.tagis[BloodEner.Fire] <> 0) then
hero.childfound[raBreath].field[abText].text = "fire"
endif

I have a Tag that says:

Group Id: fShowWhat Tag Id Energy Base
Name: Energy Type (Base 4) Abbrev: Energy Type (Base 4)

it is this Energy Type (Base 4) that I thought I needed to duplicate and add my holy. It seems to be where the field[usrChosen1].chosen.tagis picks are.

There is a bootstrap to- raBreath
It has its own fields and tags that I think I understand. Your post is definitely giving me things to think about and work out here.

I thought I was going to try and get the script from Equipment/Item Power- iHoly to work for me but have not gotten that far. I did think I had to make a Race/Subtype. There is also a cDrC**** for each breath weapon type

And since I have your attention. I have another small problem I ran into since originally posting.

This has to do with size increase.

For my Drake, I want to have it get a stat increase to strength +2 at lvl 4 though it does not get bigger. At lvl 6 it gets a size increase and the bumps in stats that go along with it. I got the lvl 4 increase to work but at lvl 6 I only get an additional +2 not the +4 I was expecting. This has to be because of how I co-opted the script for size increase but that does not mean I know what to do to fix it. I am nearly certain it has to do with the tagreplace where I keep the same RaceSize. Is there a way to fix it to get what I want?

This script was copied from Race rDrakeComp

if (herofield[tCompLevel].value >= 18) then
perform tagreplace[RaceSize.Tiny12,RaceSize.Large1]
perform hero.childfound[wBite].tagreplace[wMain.1d3,wMain.1d8]
perform hero.childfound[wSting].tagreplace[wMain.1d3,wMain.1d8]
field[rSpeed].value = 30
elseif (herofield[tCompLevel].value >= 12) then
perform tagreplace[RaceSize.Tiny12,RaceSize.Medium0]
perform hero.childfound[wBite].tagreplace[wMain.1d3,wMain.1d6]
perform hero.childfound[wSting].tagreplace[wMain.1d3,wMain.1d6]
field[rSpeed].value = 30
elseif (herofield[tCompLevel].value >= 6) then
perform tagreplace[RaceSize.Tiny12,RaceSize.Small11]
perform hero.childfound[wBite].tagreplace[wMain.1d3,wMain.1d4]
perform hero.childfound[wSting].tagreplace[wMain.1d3,wMain.1d4]
elseif (herofield[tCompLevel].value >= 4) then
perform tagreplace[RaceSize.Tiny12,RaceSize.Tiny12]
perform hero.childfound[wBite].tagreplace[wMain.1d3,wMain.1d4]
perform hero.childfound[wSting].tagreplace[wMain.1d3,wMain.1d4]
endif
KevinMcc is offline   #6 Reply With Quote
Aaron
Senior Member
 
Join Date: Oct 2011
Posts: 6,793

Old March 7th, 2019, 09:01 AM
So the fShowWhat tag is basically telling some background scripts how to set a field called usrCandid1, which holds a tag expression limiting what is shown in the selector. Creating a new fShowWhat tag won't help, because the background scripts won't be looking for it. What you'll need to do instead is delete the fShowWhat tag, and set the usrCandid1 field yourself directly.

You'll also need to create something to select which will represent this new "holy" type.

Here is an example of one of the "Selection Helper" things we have defined, which are being selected from in the normal version of cDrCBreWea

Code:
  <thing
    id="selEnFire"
    name="Fire"
    compset="SelectHelp">
    <tag group="Selection" tag="Energy"/>
    <tag group="Selection" tag="EnergyBase"/>
    <tag group="Selection" tag="EnergyAAr"/>
    <tag group="BloodEner" tag="Fire"/>
    <tag group="SchoolEner" tag="Fire"/>
    <tag group="ElemFocus" tag="Fire"/>
    <tag group="ElemFocGrt" tag="Fire"/>
    <tag group="MythEleFoc" tag="DamFire"/>
    <tag group="wType" tag="Fire"/>
    <tag group="wType" tag="FireHalf"/>
    <tag group="MMElemSpel" tag="selEnFire"/>
    <tag group="fEleSplDup" tag="selEnFire"/>
    </thing>
You can copy that for the Holy selection helper, but you'll need to drop some of the tags so it doesn't get included in, for example, the "Base Four" elements.

Assuming your new pick has the ID selEnHoly, here is what I would set usrCandid1 to:

component.SelectHelp & (Selection.EnergyBase | thingid.selEnHoly)

So that should allow you to select "Holy" but as you see from the scripts in cDrCBreWea, its got no branch to handle choosing this new thing. So the simplest solution, I think, would be to include a check in the same eval scripts which you are using to modify cDrCBreWea's usrCandid1 field.
Aaron is offline   #7 Reply With Quote
Aaron
Senior Member
 
Join Date: Oct 2011
Posts: 6,793

Old March 7th, 2019, 09:06 AM
Quote:
Originally Posted by KevinMcc View Post
And since I have your attention. I have another small problem I ran into since originally posting.

This has to do with size increase.

For my Drake, I want to have it get a stat increase to strength +2 at lvl 4 though it does not get bigger. At lvl 6 it gets a size increase and the bumps in stats that go along with it. I got the lvl 4 increase to work but at lvl 6 I only get an additional +2 not the +4 I was expecting. This has to be because of how I co-opted the script for size increase but that does not mean I know what to do to fix it. I am nearly certain it has to do with the tagreplace where I keep the same RaceSize. Is there a way to fix it to get what I want?

This script was copied from Race rDrakeComp

if (herofield[tCompLevel].value >= 18) then
perform tagreplace[RaceSize.Tiny12,RaceSize.Large1]
perform hero.childfound[wBite].tagreplace[wMain.1d3,wMain.1d8]
perform hero.childfound[wSting].tagreplace[wMain.1d3,wMain.1d8]
field[rSpeed].value = 30
elseif (herofield[tCompLevel].value >= 12) then
perform tagreplace[RaceSize.Tiny12,RaceSize.Medium0]
perform hero.childfound[wBite].tagreplace[wMain.1d3,wMain.1d6]
perform hero.childfound[wSting].tagreplace[wMain.1d3,wMain.1d6]
field[rSpeed].value = 30
elseif (herofield[tCompLevel].value >= 6) then
perform tagreplace[RaceSize.Tiny12,RaceSize.Small11]
perform hero.childfound[wBite].tagreplace[wMain.1d3,wMain.1d4]
perform hero.childfound[wSting].tagreplace[wMain.1d3,wMain.1d4]
elseif (herofield[tCompLevel].value >= 4) then
perform tagreplace[RaceSize.Tiny12,RaceSize.Tiny12]
perform hero.childfound[wBite].tagreplace[wMain.1d3,wMain.1d4]
perform hero.childfound[wSting].tagreplace[wMain.1d3,wMain.1d4]
endif
Check out the Size Increase special (cDrCSizInc), that seems to be what is actually bumping stats. I don't think the eval script on the race (which you posted above) is related.
Aaron is offline   #8 Reply With Quote
KevinMcc
Junior Member
 
Join Date: May 2012
Posts: 15

Old March 7th, 2019, 08:56 PM
Even more stuff to play with. So exciting!

I am aware of Size Increase special (cDrCSizInc) it IS where I have made my stat change and I probably should have told you that. I call it Drake Maturation, going from juvenile to Adult. +2 Str & +2 Wis.

I guess I should be taking notes of all the stuff I've been trying because I now remember the info I put in from the race was because my maturation was not working at all until I finally figured out I did not have it set for Post-Level and the Race change mentioned was just a wild guess for what is not working. At least I now have taken that useless bit out. However, I still am not getting a +4 str at lvl 6. I do if I level to 12 & 18.

To be clear my strength progression I'm getting is lvl 1- 9, lvl 4- 11, lvl 6- 13, lvl 12- 17, lvl 18- 21 when I want lvl 1- 9, lvl 4- 11, lvl 6- 15, lvl 12- 19, lvl 18- 23

Would changing the priority or Index make a change?

Code:
~ abValue = Str Bonus
      ~ abValue2 = Wis Bonus
      field[abValue].value += (field[xCount].value * 2)
      field[abValue2].value += (field[xCount].value * 2)
Priority 5000 index 1
and

Code:
      ~ only run the rest for the first copy
      doneif (tagis[Helper.FirstCopy] = 0)

      ~ If we're not shown, just get out now
      doneif (tagis[Helper.ShowSpec] = 0)

      ~ If we're disabled, do nothing
      doneif (tagis[Helper.SpcDisable] <> 0)

      ~These are permanent changes to size, and so shouldn't show as temp adjustments when we change attributes.
      perform hero.childfound[aSTR].assign[Helper.PermanentSizeIncr]
      perform hero.childfound[aWIS].assign[Helper.PermanentSizeIncr]

      #applybonus[aSizeBon,hero.child[aSTR],field[abValue].value]
      #applybonus[aSizeBon,hero.child[aWIS],field[abValue2].value]
Priority 10000 index 2

Copied and modified from Size Increase special (cDrCSizInc)

Thank you so much for your help.
Kevin
KevinMcc is offline   #9 Reply With Quote
KevinMcc
Junior Member
 
Join Date: May 2012
Posts: 15

Old March 10th, 2019, 10:00 AM
Not that it matters at this point, and is another reason for taking notes, I now recall why I made that size addition to the rDrakeComp. the size change was not working. The stats were changing but the drake size was staying at tiny. I tried that as a way to make it work and it did. However, it is working without it now.
KevinMcc is offline   #10 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 01:07 AM.


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