• 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

Trying to add an existing animal companion to all classes

risner

Well-known member
I've looked at Ashvawg Tamer, Ooze Companion, Beast Rider, Mammoth Rider Steed for inspiration.

I need to tag Axe Beak as an allowed for all classes that get mount or animal companion instead of just Druid and Paladin, and do it in such a way that I'm not updating a list every time a new archetype allows an Animal Companion.

I've tried this code:
Code:
  <thing id="van313ABC" name="PFS: Axe Beak Companion" description="As long as you have Chronicle sheets for all three parts of the Quest for Perfection campaign arc, you may take an axe beak as a loyal mount or companion; the Chronicle sheets need not be consecutive or in order, but all three must be present in the same character&apos;s records. If you possess a class feature which permits you to take an animal companion or a mount that progresses as an animal companion, you may add the axe beak to your list of legal and available companions. You must present a copy of Pathfinder RPG Bestiary 3 in order to use an axe beak companion as if it were allowed as an additional resource. Other than provide access to this animal as a choice of mount or companion, this boon provides no mechanical benefit.\n\n{b}This vanity represents a Chronicle Sheet for playing Scenario #3-13: Quest for Perfetion III: Defenders of Nesting Swallow with the Axe Beak Companion still available to your character.{/b}" compset="Vanity" holdable="no">
    <fieldval field="usrCandid1" value="system_tag.minion"/>
    <usesource source="srcWeGob2"/>
    <tag group="User" tag="NoAutoName"/>
    <tag group="fShowWhat" tag="Freeform"/>
    <tag group="Helper" tag="ShowSpec" name="Show Spec" abbrev="Show Spec"/>
    <tag group="ChooseSrc1" tag="Hero"/>
    <eval phase="First" priority="497"><![CDATA[~ If there's no animal companion, there's nothing we can do
doneif (hero.hasminion[AnimComp] = 0)
perform hero.childfound[cAnimComp].setfocus
doneif (state.isfocus = 0)

perform focus.minion.pushtags[CompList.?,AddCompLis]]]>
      <before name="Companion Level Calculated"/>
      <before name="Multiple Companion FinalLevel Calculated"/>
      </eval>
    </thing>

But nothing I've tried seems to work, and I've even hardcoded the test case into the script. I have a Treesinger (only gets 4 AC's) and choose Axe Beak, but I get a code error that AddCompLis.Treesinger isn't a valid tag.
 
Go to the Race Animal companion tab and new copy and select axbeak and go to the minion allowed for tab and select it and a popup box appears and you can select what class or arch type the minion is availble for.
 
I don't see any CompList tags on your thing, and you're not using your script to assign one before the pushtags operation. So, pushtags doesn't have a CompList tag to push there as an AddCompLis tag, so it won't add any tags.
 
I don't see any CompList tags on your thing, and you're not using your script to assign one before the pushtags operation. So, pushtags doesn't have a CompList tag to push there as an AddCompLis tag, so it won't add any tags.

Hmm.
I'm doing this from a thing, but I'm trying to make AddCompLis tags for each CompList tag on the hero.

So I need to pull tags from the Hero to this thing and push then?

I tried this:
perform hero.pulltags[CompList.?]
but it didn't behave differently.
 
Last edited:
Are you certain that the <before> elements that you've chosen actually apply to your script? You're not trying to alter the level of the animal companion - only the allowed list, so you shouldn't have to be that early.
 
Are you certain that the <before> elements that you've chosen actually apply to your script?

No but I copied it from the Beast feat that adds Mammoths etc.

I'll admit, I'm confused.

I tried running it a First/1000, First/1000, Post-Levels/10000, and Render/10000 with no change.
Current code:
perform hero.pulltags[CompList.?]
perform focus.minion.pushtags[CompList.?,AddCompLis]

var t as string
t = focus.tagnames[CompList.?,"/"]
debug "First 10000 Hero CompList: " & t
t = focus.tagnames[AddCompLis.?,"/"]
debug "First 10000 Hero AddCompLis: " & t

I can't seem to notice any change.
It still reports not valid for Treesinger, only valid for Druid/Paladin message.

If I do Hero Tags, I never see CompList or AddCompLis tags. I do see a CompList.Treesinger tag on valid races (like carnivorous vines) and on axebeak. So there doesn't appear to be a difference.
 
Last edited:
Look at the debug tags on the hero for a normal animal companion. Are the complist tags there?

Are they in the minion's hero context instead?

Since you know you want to add a specific minion to all complists, doesn't that mean you know what tag you want? That you don't need to copy all the others?
 
Look at the debug tags on the hero for a normal animal companion. Are the complist tags there?

Are they in the minion's hero context instead?

Since you know you want to add a specific minion to all complists, doesn't that mean you know what tag you want? That you don't need to copy all the others?

For Example:
An Elf Druid with Treesinger Archetype has the following tags:

Druid's Hero Tags:
no CompList tags and no AddCompLis tags.

Animal Companion (Carnivorous Vine) Tags:
no AddCompLis tags
CompList.Treesinger tag is present

When I change the AC to an Axe Beak without my Vanity present I get exactly the same tag configuration.
 
Ok, after a LONG time digging into this, I now know a great deal.
I got it to work and here is the code:

Code:
Render/10000
~ If there's no animal companion, there's nothing we can do
doneif (hero.hasminion[AnimComp] = 0)

~ I'm not sure this is required, but I see people doing it as a test
perform hero.childfound[cAnimComp].setfocus
doneif (state.isfocus = 0)

var n as string

~ CompList tags are a way to indicate classes which allow this AC

~ Search through all AC's
foreach pick in hero from BaseCompan where "CompIs.cAnim?"
  n = eachpick.minion.findchild[BaseRace].idstring
  ~ This is an Axe Beak
  if (compare(n,"anAxeBeak") = 0) then
    ~ The CompList on the minion is for the class that gives this AC
    ~ Copy that tag to this Vanity
    perform eachpick.minion.pulltags[CompList.?]
    ~ The CompList on the race of the minion is who it requires.
    ~ Copy the CompList that gave this AC onto the BaseRace.
    ~ This effectively makes this allowed.
    perform eachpick.minion.findchild[BaseRace].pushtags[CompList.?]
  endif
nexteach
 
Last edited:
Back
Top