• Please note: In an effort to ensure that all of our users feel welcome on our forums, we’ve updated our forum rules. You can review the updated rules here: http://forums.wolflair.com/showthread.php?t=5528.

    If a fellow Community member is not following the forum rules, please report the post by clicking the Report button (the red yield sign on the left) located on every post. This will notify the moderators directly. If you have any questions about these new rules, please contact support@wolflair.com.

    - The Lone Wolf Development Team

Help w/New Drake Companion Breath Weapon

KevinMcc

Member
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
 
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?
 
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.
 
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.
 
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!
 
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
 
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.
 
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.
 
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
 
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.
 
I was trying to not be needy, but I am. I don't know where I'm creating this selection helper. Could I get another nudge in the right direction?
 
Sorry, haven't looked at the forums over the weekend till now.

Looks like Selection Helpers don't have a tab in the editor, so you will need to work in the raw XML. It's good practice though. You'll want a text editor, I use EditPad, which has a free version, but any one would work.

Find the .user file and open it with the text editor, then copy the example I posted and paste it into the text file. Be careful that it is not pasted inside another element. In XML you'll see something like

<thing

Which opens an element. A "/" ends the element, like so:

</thing>

So you'll want to paste your new thing after the last "/thing" in your file, and before the line closing the document "/document"

From there, you can delete or modify tags and fields on the SelectHelp thing you pasted. This is what a tag looks like:
<tag group="sRange" tag="Personal"/>

In eval scripts, this is the same as "sRange.Personal"

Fields look like this:

<fieldval field="sTarget" value="You"/>

Hope that helps! I'll retire for the night, and look into your prior questions in the morning.
 
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

xCount marks the number of copies of a particular class special have been gained. Have you tried bootstrapping an extra copy of the ability at 6th level?
 
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.

My guess, since your working with companion stuff, is that it was an evaluation behind and needed to do a full evaluation to catch up and actually change the size.
 
At this point, I'd like to take a closer look at what you've got going. Can you send me a copy of your user files (aaron.beal At wolflair dot com)? Its just the strength not being adjusted up at 6th which is the problem, right? You've got the selection helper entered and the breath weapon is sorted?
 
Sorry, a day late, but I think I figured out why your str is lagging 2 behind what you expect. It appears to be an issue of stacking bonuses.

The special Drake Maturation (cBDrKEVMat) at 4th level is using applybonus to add 2 as a size bonus to Str. 2 levels later, at 6th Size Increase, Bound Drake (cBDrKEVSizInc) is using applybonus to add 4 to Str, but applybonus is for non-stacking bonuses. Since you already have 2 in the aSizeBon field, it only gains the higher of the two bonuses (4), which is why it looks like it is only increasing 2.

If you want the bonuses to stack, either don't use the applybonus macro, or have the 6th level and subsequent copies add to the value of Drake Maturation instead of applying the bonus to Str themselves.
 
Back
Top