• 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

Partial +1 caster level bonuses?

TCArknight

Well-known member
Since Psionics are not officially supported with Pathfinder, I thought this the best place to ask this question.

There is one Psionics prestige class, the Metamind, that gives +1 caster (manifester) level for 7 of its 10 levels. This I can handle no problem as the editor is recognizing the Hero.Manifester as valid for the +1 level. This works and successfully adds the 'casting' ability in terms of additional Power Points as well as additional spell capability.

Here is the issue. The 3 levels that do not provide full Manifester levels, do provide an increase in Power Points as if the hero had gained a level. So, a Psion 5 /Metamind 10 would have powers of a Psion 12, but base power points of a Psion 15. I don't know if this is something the User is going to have to track or not. :(

Thoughts? Suggestions?
 
Perhaps you could assign custom tags to the character at the levels that add power points, but not manifester levels. Then have a script that searches for those tags and increases the power point total. Would that work?
 
So I've been looking at the Metamind prestige class you provided in the latest release of the Psionics Unleashed. I have yet to figure out how to increment the power point totals. The only idea I came up with that I wasn't able to try out is to somehow use a foreach loop to increment the array lookup.

My current foreach loop looks like this:

Code:
foreach pick in hero from BaseClSpec where "SpecSource.cHelpPsi & thingid.cPsiPPTot"

  eachpick.field[xExtraLev].value += 1

nexteach

This compiles, but doesn't actually do anything (not surprisingly). Is there a field other than xExtraLev that would tell HL to use the next array value? cPsiPPTot is an array, and the goal here is to use the next value. The current value is derived from cMagicLev as far as I can tell, but that also is used to indicate how many powers and the power levels that are available so we can't simply increase that. Any thoughts from the people who understand the code better than me?
 
Another possible workaround occurred to me. If we can gather the arrayvalue for the current level and the next level, we could add the difference to the max power points. I'll give some thought to how to do that and work on it this afternoon.
 
That's what I was thinking too, but I also need to factor in the +1 levels between the only PP levels. At 1st, 5th and 9th, the Metamind gets just the Extra PP, not the full manifester abilities.

As a test, I'm using the below code at First/100
Code:
var ppTot as number

ppTot = hero.child[cHelpPsi].field[cPsiPPTot].arrayvalue[6]

notify ppTot

This is on a 'Extra PP Level' Class Special.
Code:
<thing id="cExtPPLev" name="Extra PP Level" description="Helper to add extra level of PP." compset="ClSpecial">
    <fieldval field="usrCandid1" value="Hero.Manifester&ClassType.Normal"/>
    <usesource source="pPUClass"/>
    <tag group="Custom" tag="ExtPPLev" name="Extra PP Level"/>
    <tag group="ChooseSrc1" tag="Hero"/>
    <tag group="fShowWhat" tag="Classes"/>
    <tag group="Helper" tag="Helper"/>
    <eval phase="First">var ppTot as number

ppTot = hero.child[cHelpPsi].field[cPsiPPTot].arrayvalue[6]

notify ppTot</eval>
    </thing>

This will attach to the Metamind at the appropriate level (1, 5 and 9). I have a selector on the ability to choose what previous class gaining the PP for, so it should be getting the thingid of the chosen class from a chooser, and plugging that in instead of the 'cHelpPsi'. The arrayvalue[6] should actually be arrayvalue[levels in prior class + '+1 level' caster bonuses + count of Extra PP Level abilities]. I think the timing needs to be Post-Levels as well and only run once for the three copies of the ability. (I'd like to hide it from the class ability list, but adding Helper.Helper doesn't seem to do it.)

That will give what the base PP should be, and can add the difference.

Thoughts?

PS: I've also attached the v1.4 of the Psionics file so you can see where am coming from and going with it.
 

Attachments

Got it, and taking a look at it. I think its promising. I had come up with this to try and determine the difference between levels:

Code:
var level as number
var level2 as number
var bonus as number

level = hero.child[cHelpPsi].field[cMagicLev].value - 1
level2 = hero.child[cHelpPsi].field[cMagicLev].value

bonus = hero.child[cHelpPsi].field[cPsiPPTot].arrayvalue[level2] - hero.child[cHelpPsi].field[cPsiPPTot].arrayvalue[level]

hero.child[cHelpPsi].field[cPsiPPMax].value += bonus

My thought had been to replace the cHelpPsi with a chosen class like you are doing, but I hadn't gotten around that part yet. I also hadn't figured out how to include bonuses from attribute scores, but that's another matter altogether. This seems to work pretty well. Of course, you would have to increase the level2 number by 1 at 5th level and again at 9th. I haven't gotten to that point just yet.

As for hiding it from the class specials, all I can think to do is to have the class special call separate abilities for 5th and 9th level. I have a meeting to attend now, but I'll get back on this after that.

Edit: Actually, come to think of it, you may not need extra specials if you use an if statement like so:

Code:
if (#levelcount[Metamind] >= 9) then
 level2 = hero.child[cHelpPsi].field[cMagicLev].value + 2
elseif (#levelcount[Metamind] >= 5) then
 level2 = hero.child[cHelpPsi].field[cMagicLev].value + 1
else
 level2 = hero.child[cHelpPsi].field[cMagicLev].value
endif
 
Last edited:
Thanks Sendric! That appears to work well!

Now, just need to pull the id from the chooser, and the Metamind will be complete I think. :)
 
Glad I could help. I haven't been able to figure out where the chooser id is kept. I'll take another look at it tomorrow. Also, do we still need to figure out bonus points from ability scores?
 
Back
Top