Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - User Projects
Register FAQ Community Today's Posts Search

Notices

Reply
 
Thread Tools Display Modes
TCArknight
Senior Member
 
Join Date: Jan 2007
Location: NW Arkansas
Posts: 1,321

Old July 10th, 2012, 06:09 AM
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?
TCArknight is offline   #1 Reply With Quote
Sendric
Senior Member
 
Join Date: Jul 2010
Posts: 3,147

Old July 10th, 2012, 06:23 AM
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?
Sendric is offline   #2 Reply With Quote
Sendric
Senior Member
 
Join Date: Jul 2010
Posts: 3,147

Old July 12th, 2012, 07:33 AM
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?
Sendric is offline   #3 Reply With Quote
Sendric
Senior Member
 
Join Date: Jul 2010
Posts: 3,147

Old July 12th, 2012, 07:59 AM
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.
Sendric is offline   #4 Reply With Quote
TCArknight
Senior Member
 
Join Date: Jan 2007
Location: NW Arkansas
Posts: 1,321

Old July 12th, 2012, 09:50 AM
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&amp;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.
Attached Files
File Type: zip PFRPG_Psionics_Unleashed_v1_4.zip (194.2 KB, 1 views)
TCArknight is offline   #5 Reply With Quote
Sendric
Senior Member
 
Join Date: Jul 2010
Posts: 3,147

Old July 12th, 2012, 10:30 AM
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 by Sendric; July 12th, 2012 at 11:34 AM.
Sendric is offline   #6 Reply With Quote
TCArknight
Senior Member
 
Join Date: Jan 2007
Location: NW Arkansas
Posts: 1,321

Old July 12th, 2012, 01:05 PM
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.
TCArknight is offline   #7 Reply With Quote
Sendric
Senior Member
 
Join Date: Jul 2010
Posts: 3,147

Old July 12th, 2012, 06:02 PM
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?
Sendric is offline   #8 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 05:14 PM.


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