• 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

Ultimate Psionics - Stuck on Psionic Armor

charlieluce

Well-known member
We're about to start a new campaign that uses Psionics, so of course three of the five players are running Psis and despite my very limited experience in the Pathfinder editor I am trying to add things from UP that they need and aren't in the 3PP yet. The Fighter's Blade Feat went OK, but now I am trying to add the Meditant Archetype for Psychic Warrior and I have gotten stuck on the first Class Special, Psionic Armor.

Since it works very similarly to the Monk's armor bonus ability, I was hoping I could start with that as a base, but it isn't working as smoothly as I hoped. :rolleyes:

First off, while it's adding the Wisdom Bonus fine, I can't find where it calculates the additional bonus due to levels.

Second, it's only supposed to work while the character has Psionic Focus, and I'm not sure where I'm supposed to put that, either. There's a Usage Period option called "Focus" but that doesn't seem to be it.

Third and minor, if I put it on a character with a +2 Wisdom Bonus it says "Psionic Armor +2 (Ex)" in the Special Ability tab (it is considered an Extraordinary Ability, isn't it?) but if you bring up the Special Abilities info window in the Psychic Warrior tab it says "Psionic Armor +0". I assume this is a timing issue?

Could someone more experienced point me in the right direction, please? :o
 
After reading this ability why not just bootstrap the monk class ability? Then on the archetype set a script that checks for Psi Focus and disables the class special if not in Focus.

Easy and should prevent the stacking between the monk and this archetype.
 
Well, I did find the part about testing for Psionic Focus.

Anyway, this is the relevant part of the .user file I'm working on, I think:
Code:
</thing><thing id="cPsiArmor" name="Psionic Armor" description="A meditant who maintains psionic focus and is unarmored and unencumbered adds his Wisdom bonus (if any) to his AC and his CMD. If the meditant gains his Wisdom bonus to his AC or CMD from some other source, it does not stack. In addition, a meditant gains a +1 bonus to AC and CMD at 4th level. This bonus increases by 1 for every four meditant levels thereafter, up to a maximum of +5 at 20th level.\n\nThese bonuses to AC apply even against touch attacks or when the meditant is flat-footed. He loses these bonuses when he is immobilized or helpless, when he wears any armor, when he carries a shield, when he carries a medium or heavy load, or when he is not focused." compset="ClSpecial" summary="The Meditant adds his Wisdom bonus to AC and CMD, more at higher levels."><tag group="abAction" tag="None" name="No action" abbrev="None"/><tag group="abDuration" tag="Constant" name="Constant" abbrev="cons"/><tag group="abRange" tag="Personal" name="Personal" abbrev="pers"/><tag group="AbilType" tag="Extra"/><tag group="LvNameApp" tag="SignAppVal"/><tag group="LvNameApp" tag="AppValue"/><eval phase="PostAttr" priority="10000">~ Start our bonus off as our wisdom bonus + the count of specials, -1
      ~ (because our first instance gives a base of +0)
      field[abValue].value += #attrbonus[aWIS] + field[xCount].value - 1</eval><eval phase="PostAttr" priority="20000" index="2">
      ~ Get our encumbrance level - if we're encumbered by that, or if we're
      ~ wearing armor or a shield, we're disabled.
      if (hero.tagexpr[Hero.EquipArmor | Hero.EquipShld | Encumbered.Medium | Encumbered.Heavy | Encumbered.Overloaded] <> 0) then
        perform assign[Helper.SpcDisable]
        endif

      ~ 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)

      ~ If the hero does not have Psionic Focus, do nothing
      doneif (hero.tagis[Hero.PsiFocus] = 0)

      ~ Apply our AC bonus to all our armor scores
      hero.child[ArmorClass].field[tACWisMod].value += field[abValue].value</eval><eval phase="Render" priority="10000" index="3">
      var bonus as number
      bonus = field[xIndex].value - 1
      field
[listname].text = "Psionic Armor " & signed(bonus)</eval></thing>
I tried another version where I bootstrapped the Monk class ability to the Archetype, but I must have done it wrong, because it still didn't increase the bonuses when I added levels of Meditant. Translating the things I read on the forum to the GUI used by the Editor is not going very well for me, I'm afraid.
 
When you bootstrap the monk ability, you have to do it at each level the monk ac bonus applies, not just at first level.
 
When you bootstrap the monk ability, you have to do it at each level the monk ac bonus applies, not just at first level.

Ah, that was what I was missing! Thank you both!

I kept the version of the Class Special I did rather than just bootstrapping the Monk ability because I wanted it to have the proper text and show up on the Specials Tab (and because the Monk one has an edge case for the Clockwork Monk that I didn't want to take any chances with).

EDIT: Out of curiosity, why is it more efficient to bootstrap an ability six times on the archetype than to have something in the script that divides the class level by 5 and adds that to the bonus?
 
Last edited:
EDIT: Out of curiosity, why is it more efficient to bootstrap an ability six times on the archetype than to have something in the script that divides the class level by 5 and adds that to the bonus?

Look at the class tab for this class - in the Special star at the top right, compare the list of abilities the character will get as they level to the list in the material you're working from. If this class is based on the Monk, I'll bet this looks close to what's in the book you're working with, with the listed AC bonus changing at the correct times.

It's also really handy to have them separate when an archetype says to replace the increase to armor class that a monk gets at 4th level - you can remove only one of them without altering the others.

(It's more common to skip like that for things like fighter's armor training, the various alchemist poison resistances, and a few other things than it is for the monk ac bonuses, but you can see the idea).
 
Cool, thanks for the info! I'm slowly wrapping my head around how it works - my programming skills are a couple of decades out of date so it comes in fits and starts. :p
 
I kept the version of the Class Special I did rather than just bootstrapping the Monk ability because I wanted it to have the proper text and show up on the Specials Tab (and because the Monk one has an edge case for the Clockwork Monk that I didn't want to take any chances with).
Just the one issue which is hard to code for of preventing any other "Wis" bonus to AC stacking. :( Easy to track as a DM though. :)

Shadow, could you not check for psi-focus on the bootstrap condition?
You could but then the "whole" class ability would be removed from the class when not in psi-focus. That seems extreme especially as it would make any Feat or other ability toss errors when it suddenly could not find the ability.

So Disable is better as a person gets information saying they have the ability but don't meet the requirements. Which is actually more true than the whole class ability no longer being "live" on the character.
 
You could but then the "whole" class ability would be removed from the class when not in psi-focus. That seems extreme especially as it would make any Feat or other ability toss errors when it suddenly could not find the ability.

So Disable is better as a person gets information saying they have the ability but don't meet the requirements. Which is actually more true than the whole class ability no longer being "live" on the character.

I agree, but the problem is, that is the way the ability works. If you expend your focus for another reason, you lose the ability for a short while until you regain focus.

That is why there are feats for maintaining a second focus. (If you want to talk the way the class is supposed to function).
 
I agree, but the problem is, that is the way the ability works. If you expend your focus for another reason, you lose the ability for a short while until you regain focus.

That is why there are feats for maintaining a second focus. (If you want to talk the way the class is supposed to function).
I guess I don't see it being different than when say a Monk would wear armor and the class ability disables itself. Cause when I say toss errors its possible for a script to toss a "hard" error alert to the gamer. That don't seem right.

By having the ability "disabled" it still won't work or count as being on the character but no "hard" errors get tossed. :)
 
That is apt comparison (losing psionic focus and wearing armor for the monk).

Can you explain the difference between using bootstrap condition in this instance vs using a script to disable?
 
Can you explain the difference between using bootstrap condition in this instance vs using a script to disable?
So a bootstrap condition prevents something from being "live" on a character. So in example the Ranger "endurance" class ability gives the "Endurance" feat for free at level 3. So the Feat is bootstrapped to the Class ability with a condition that says the Ranger has to be level 3 and the class ability has not been replaced. If both of those conditions are TRUE then the Feat shows up on the character.

That makes sense as the Class Ability still shows if it is disabled/replaced by an archetype. The Feat is something that should not display if the Character is only level 2 in example or the class ability is replaced.

Hopefully that makes more sense. :)
 
Ok, so the bootstrap condition controls the existence of the ability whereas a script just disables it, but it is still visible.
 
Back
Top