• 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

Ascetic Psion

TCArknight

Well-known member
Howdy!

I'd like to add the Ascetic Psion feat to HL. It lets you do two things:
1) Add your Psion levels to your Monk levels to determine AC bonus, Which includes allowing you to use INT instead of WIS for the AC bonus.

I tried:

~ Get our total number of levels from the Psion class and add it to our monk levels for AC Bonus
var levels as number
levels = #levelcount[Egoist]+#levelcount[Kineticist]+#levelcount[Nomad]+#levelcount[Seer]+#levelcount[Shaper]+#levelcount[Telepath]
hero.child[cMnkAC].field[xExtraLev].value += levels

~ If INT > WIS, use it for Monk AC
var IBonus as number
var WBonus as number
IBonus = hero.child[aINT].field[aFinalVal].value
WBonus = hero.child[aWIS].field[aFinalVal].value
if ( IBonus > WBonus ) then
hero.child[cMnkAC].field[xExtraLev].value -= WBonus
hero.child[cMnkAC].field[xExtraLev].value += IBonus
endif

but no luck...

2) Multiclass freely between Psion and Monk.

Anyone have any suggestions? Possible to determine Psion levels with one tag?

Thanks!
Thomas
 
The psionic fist prestige class adds to monk levels - you may want to check that code as a starting point.
 
I did. :) I'd seen that in one of the other posts and that's where I found the cMnkAC tag.

A couple of things came to mind:
1) I notice the Egoist, Telepath, etc use a psiClasses tag with a value of "Psion". It'd be so much easier if could look at that tag for the Levels. Is there a way to use that in the #levelcount[] macro?

2) If I had another feat that added levels of the same class to the Monk, how would I apply just one of those bonuses?

3) The way I'm doing the Int instead of Wis bonus doesn't seem to be working. Any ideas why it wouldn't be?

Thanks!
Thomas
 
#levelcount[xxx] means hero.tagcount[Classes.xxx] (the compiler simply replaces it), so just check hero.tagcount[psiClasses.Psion].

I'd handle #2 by looking at the various feats that allow you to select things - spell focus, weapon focus, etc. - what you want to do is prevent the user from taking the same feat twice for the same class - then you don't have to worry about excluding that from the code.

Remember that aFinalVal is the whole attribute, not the bonus. aModBonus is the modifier. What you're currently doing is to make the ac thing think it is level x - WIS + INT. So for a 5th level monk with WIS 13, INT 15, you're telling the ac thing that it's a 7th level monk.

Here's how the cMnkAc thing's script gets the wisdom bonus it's adding to AC:

Code:
var bonus as number
bonus = hero.child[aWIS].field[aModBonus].value
and later:
Code:
hero.child[ArmorClass].field[Bonus].value = hero.child[ArmorClass].field[Bonus].value + bonus

written in more modern code:
Code:
hero.child[ArmorClass].field[Bonus].value += hero.child[aWis].field[aModBonus].value

which simply says, add your WIS bonus to your AC

so, what you want to do is replace that with INT if the bonus is larger than WIS's. In other words add (INT mod - WIS mod) to your AC.

Code:
if (hero.child[aINT].field[aModBonus].value > hero.child[aWIS].field[aModBonus].value) then
hero.child[ArmorClass].field[Bonus].value += hero.child[aINT].field[aModBonus].value - hero.child[aWIS].field[aModBonus].value
endif
 
Hmmm... ok, none of this is working... :(

This is what I've got...

Code:
Phase:Levels
Priority: 999999

~ Get our total number of levels from the Psion class and add it to our monk levels for AC Bonus
var levels as number
levels = hero.tagcount[psiClass.Psion]
hero.child[cMnkAC].field[xExtraLev].value += levels

~ If INT > WIS, use it for Monk AC
if (hero.child[aINT].field[aModBonus].value > hero.child[aWIS].field[aModBonus].value) then
hero.child[ArmorClass].field[Bonus].value += hero.child[aINT].field[aModBonus].value - hero.child[aWIS].field[aModBonus].value
endif

What am I missing?
 
Sorry, I hadn't checked what you had said about psiClass.Psion - I see no tags like that. I'm afraid you'll have to go back to adding all the Psion class #levelcounts together.

You'll need to move the second part to a second script - you're running it in the levels phase, before the Attributes phase, so the aModBonus' haven't been set, and they'd still be equal to 0. I'd move it to UserPostAt, 100.
 
Thanks! Will do that and let know what find...

For the tags, I was looking in the srdpsi_class_egoist and saw this:
<tag group="psiClass" tag="Egoist"/>
<tag group="psiClDisc" tag="Psychomet"/>
<tag group="Classes" tag="Egoist"/>
<tag group="ClassSkill" tag="Craft"/>
<tag group="ClassSkill" tag="Knowledge"/>
<tag group="ClassSkill" tag="Profession"/>
<tag group="ClassSkill" tag="kConcent"/>
<tag group="ClassSkill" tag="kPsicraft"/>
<tag group="ClassSkill" tag="kAutohypno"/>
<tag group="ClassSkill" tag="kBalance"/>
<tag group="ClassSkill" tag="kHeal"/>
<tag group="WepProf" tag="wClub"/>
<tag group="WepProf" tag="wCrsHeavy"/>
<tag group="WepProf" tag="wCrsLight"/>
<tag group="WepProf" tag="wDagger"/>
<tag group="WepProf" tag="wQtrstaff"/>
<tag group="WepProf" tag="wShortspr"/>
<tag group="psiClass" tag="Psion"/>

One thing I do note, shouldn't you not be able to take another Psion class if you've already taken one?
Thanks again!
Thomas
 
Correct, you shouldn't be able to double them up - as far as I know, that was never added to HL.

Okay, I found it. Unfortunately, it's not forwarded to the hero.

So, to use it:
Code:
var levels as number
foreach pick in hero where "component.BaseClHelp & psiClass.?"
levels += eachpick.field[xTotalLev].value
nexteach
hero.child[cMnkAC].field[xExtraLev].value += levels

Searching through all the class helpers that also have a psiClass tag, add their levels to your total levels. It's about the same amount of writing, but it would be more correct if someone every wrote a 7th psionic discipline.
 
Thanks for all the help!

Tried it, but got a message that xTotLev does not exist for cHelpKin..... How do I find the valid tags for that thing?

Thanks!
TC
 
I'm sorry, I'm more used to dealing with the level of a class special, where the level field is field[xTotalLev].value. On classes, the field that stores the same value is field[cTotalLev].value.
 
Back
Top