• 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

Community Editor Projects - Mythic Psionics

ShadowChemosh

Well-known member
Moving this discussion out of the Community Pack thread.

Code:
~ add competence bonus to Altered Defense ability equaul to tier

    field[abValue].value += #tiereffect[]
    #competencebonus[hero.child[cPUAltDef2], field[abValue].value]
This gives a Competence Bonus to the field BonComp which only exists on a Class Ability because all Weapon Fields where added to them. So you are trying to affect the "Weapon" stats for a Class Ability with the above script. :(

If we look at the scripts on Thingid.cPUAltDef2 we see:
Code:
    <eval phase="PostAttr" priority="11000"><![CDATA[
      ~NOTE:
      ~ abValue is bonus

      ~ If we're not shown, just get out now
      doneif (tagis[Helper.ShowSpec] <> 1)
      ~ if we've been disabled, get out now
      doneif (tagis[Helper.SpcDisable] <> 0)

      field[abValue].value += #value[cPUAltDef]
      field[livename].text = field[thingname].text & " " & signed(field[abValue].value)
      field[abSumm].text = "The cryptic gains a " & signed(field[abValue].value) & " dodge bonus to her AC."

      ~ If we're not active, just get out now!
      doneif (field[abilActive].value = 0)

      perform hero.assign[Cryptic.AltDefAct]
      hero.child[ArmorClass].field[tACDodge].value += field[abValue].value]]></eval>
I don't see the field BonComp being referenced at all. I only see "abValue" being referenced in the above fields.

Change your script to run at Post-Level/10000:
Code:
~ add competence bonus to Altered Defense ability equaul to tier
field[abValue].value += #tiereffect[]
hero.child[cPUAltDef2].field[abValue].value += field[abValue].value]
 
Next question:

The devastating touch class ability for the Dread is 1d6 + 1/Dread Level. There is a mythic ability that replaces this with 1d6 / Dread level.

How would one script replace the value calculated by another?
I would recommend starting by looking at the script on the devastating touch class ability:

Code:
    <eval phase="Final" priority="10000"><![CDATA[
      ~ Set the list name
      field[listname].text = field[name].text & " (" & field[xIndex].value & "d6+" & field[xTotalLev].value & ")"

      ~ If we've been Disabled, get out now
      doneif (tagis[Helper.SpcDisable] <> 0)
      ~ If we're not shown, just get out now
      doneif (tagis[Helper.ShowSpec] = 0)

      field[abValue].value += field[xCount].value

      field[livename].text = field[name].text & " (" & field[abValue].value & "d6+" & field[xTotalLev].value & ")"]]></eval>
We see the "damage" is being built from a combo of abValue & d6 + xTotalLev.

So you just need to adjust the value of abValue before Final/10000 to increase the number of "dice".
 
Change your script to run at Post-Level/10000:
Code:
~ add competence bonus to Altered Defense ability equaul to tier
field[abValue].value += #tiereffect[]
hero.child[cPUAltDef2].field[abValue].value += field[abValue].value]

Thanks for this. It is working...mostly.

It's working on 2 of 3 items. The name of the Altered Defense, Deflect doesn't seem to be picking up the value from the base Altered Defense base ability that is being picked up by the other two.

see attachment.
 

Attachments

  • Altered_Defense_20170424.PNG
    Altered_Defense_20170424.PNG
    112.6 KB · Views: 3
I would recommend starting by looking at the script on the devastating touch class ability:

Code:
    <eval phase="Final" priority="10000"><![CDATA[
      ~ Set the list name
      field[listname].text = field[name].text & " (" & field[xIndex].value & "d6+" & field[xTotalLev].value & ")"

      ~ If we've been Disabled, get out now
      doneif (tagis[Helper.SpcDisable] <> 0)
      ~ If we're not shown, just get out now
      doneif (tagis[Helper.ShowSpec] = 0)

      field[abValue].value += field[xCount].value

      field[livename].text = field[name].text & " (" & field[abValue].value & "d6+" & field[xTotalLev].value & ")"]]></eval>
We see the "damage" is being built from a combo of abValue & d6 + xTotalLev.

So you just need to adjust the value of abValue before Final/10000 to increase the number of "dice".

I'm not sure I clearly described the change. As an example, a 10th level dread with this particular mythic ability will change his normal damage of 1d6 + 10 (1d6 + 1/Dread Level) to 10d6 (1d6 per Dread Level).

From the code it seems that field[livename].text field is the thing that needs to be overwritten as the abValue.value has some text appended to it.

Or am I reading things wrong.
 
I'm not sure I clearly described the change. As an example, a 10th level dread with this particular mythic ability will change his normal damage of 1d6 + 10 (1d6 + 1/Dread Level) to 10d6 (1d6 per Dread Level).

From the code it seems that field[livename].text field is the thing that needs to be overwritten as the abValue.value has some text appended to it.
Remember we have "full" control over our stuff. You don't need to think about forcing stuff like you would if it was from LW. Instead work with changing the scripts to accommodate this type of change.

In this case I would create a new Tag Group for Dread and then have a new tag that says calc by "Dice Bonus". Maybe like "Dread.DevByDice" or something like that.

Then the current script just have an "IF" statement that looks for the new tag:

Code:
      ~ Set the list name
      field[listname].text = field[name].text & " (" & field[xIndex].value & "d6+" & field[xTotalLev].value & ")"

      ~ If we've been Disabled, get out now
      doneif (tagis[Helper.SpcDisable] <> 0)
      ~ If we're not shown, just get out now
      doneif (tagis[Helper.ShowSpec] = 0)

      ~ Check to see if we should calculate dice per level 
      If (tagis[Dread.DevByDice] = 1) Then       
         field[abValue].value += field[xTotalLev].value
         field[livename].text = field[name].text & " (" & field[abValue].value & "d6" & ")"

      ~..Or calculate bonus per level
      Else
         field[abValue].value += field[xCount].value
         field[livename].text = field[name].text & " (" & field[abValue].value & "d6+" & field[xTotalLev].value & ")"
      Endif

What is also nice about this is its all documented with logic in "ONE" place. And it will be easy to find the "Mythic" ability that assigns the new tag Dread.DevByDice by a simple search of the .user files. :)
 
Ok, I found where the weird text values was coming from on the altered defense, deflection livename. I commented out the livename assignment on the base altered defense ability. That corrected things.

I'll push that change to GitHub.

I decided to not modify the Dread's original ability's text and just put the proper damage in the mythic ability instead.
 
Last edited:
Ok, I found where the weird text values was coming from on the altered defense, deflection livename. I commented out the livename assignment on the base altered defense ability. That corrected things.
I went a different way and instead of using abValue to represent the abilities "number" I changed the script to use xCount instead. This way it reads "Altered Defense 1" at level 1, "Altered Defense 2" at level 5, etc. This way we match the book and it does not increase/change when you add to abValue anymore.

Thanks for this. It is working...mostly.

It's working on 2 of 3 items. The name of the Altered Defense, Deflect doesn't seem to be picking up the value from the base Altered Defense base ability that is being picked up by the other two.

see attachment.
Its just a mess up I think in the base HL UI actually. The livename is correctly showing +4.

I changed the way this is displayed for all three abilities and that should correct this issue.
 
Last edited:
I decided to not modify the Dread's original ability's text and just put the proper damage in the mythic ability instead.
I can't tell from this comment which of the following is true:

1) Does this mean you are just having the 'Mythic Ability' show the the number of dice?

2) Do you mean your mythic ability is over writing the Livename on the Dreads Class Ability?

I pretty much provided the whole enhanced code to the issue in post #5. I am I missing something on how it does not correctly solve the issue and nicely document the change also. :confused: :confused:
 
Thank you for attempting to add the Mythic Psionics.

One of my players loves psionics, but didn't like that there wasn't a mythic version when there was for Arcane and Divine casting.

Our group has added the Mythic Hero's Handbook (Legendary Games), which we'll use in our next stint at Mythic.
They use the Mythic Psionics, and we were disappointed that the HL package for Mythic Hero's Handbook chose to omit the psionic portion.

This is awesome that it is being worked on.
Thank you.
 
Question:

There are several mythic abilities that deal with psionic focus that makes the focus test positive when tested for certain abilities even if it is expended.

I'd like to implement a new tag called "Hero.isPsiFocused". Which would count as being psionically focused without interfering with the psionic focus tags.

Can you modify whatever psionic focus test procedure you made to do this test?

Naturally, my implementation is encountering some issues -- here's my code --

Error: The data files could not be loaded due to errors. Hero Lab will now attempt to load them in recovery mode. Once loaded, you can access the editor as normal to correct any errors.

The following errors occurred:

Syntax error in 'eval' script for Thing 'fmyDeepFoc' (Eval Script '#1') on line 14
-> Invalid syntax for tag template

Code:
      ~ If we're disabled, do nothing
      doneif (tagis[Helper.FtDisable] <> 0)

~ if mythic power >= 1 or Power Point Pool >=1 then considered focused.

    var vPwrPts as number
    vPwrPts = #resleft[resPowerPt]

    if (vPwrPts >= 1) Then
       ~ Character is Psionically Focused
       perform hero.assign[Hero.isPsiFocus]
    Endif

    if (hero.child[trkMythic].field[trkLeft].value >= 1) Then
       ~ Character is Psionically Focused
       perform hero.assign[Hero.isPsiFocus]
    Endif

I presume that I need to create the Hero tag ahead of time -- I'm not positive on how to do this. --

Edit: I found that the name for the hero tag was too long -- I changed to Hero.isPsiFocus, and it compiled successfully. Compiled, but not working -- when I tried to add the tag in the tags menu, it erred on something like dynamic tag not found:

Hero Lab was forced to stop compilation after the following errors were detected:

File: COM_3PPPack_PsionicsAugmented - Mythic.user (line 1302) - Thing 'fmyDeepFoc' (dynamic tag) - Tag 'isPsiFocus' not defined

Timing issue?
 
Last edited:
Another issue:

When making a mythic version of Extra Transfer, I'm getting the following error:

Thing 'fmyExTrans' - Unique things cannot be assigned a non-zero maxlimit

The feat script is exactly the same as the original extra transfer feat (non-mythic), in timing and everything. The extra transfer feat does not give the same compile error.

Code:
hero.childfound[cPUVitTraW].field[trkMax].value += 2

Ok, found the solution. Changed the uniqueness of the feat from "Add Once" to "No". -- the original ability has the same uniqueness. Not sure if this is correct or not.
 
Last edited:
Question:

There are several mythic abilities that deal with psionic focus that makes the focus test positive when tested for certain abilities even if it is expended.

I'd like to implement a new tag called "Hero.isPsiFocused". Which would count as being psionically focused without interfering with the psionic focus tags.

Can you modify whatever psionic focus test procedure you made to do this test?

Naturally, my implementation is encountering some issues -- here's my code --

Error: The data files could not be loaded due to errors. Hero Lab will now attempt to load them in recovery mode. Once loaded, you can access the editor as normal to correct any errors.

The following errors occurred:

Syntax error in 'eval' script for Thing 'fmyDeepFoc' (Eval Script '#1') on line 14
-> Invalid syntax for tag template

Code:
      ~ If we're disabled, do nothing
      doneif (tagis[Helper.FtDisable] <> 0)

~ if mythic power >= 1 or Power Point Pool >=1 then considered focused.

    var vPwrPts as number
    vPwrPts = #resleft[resPowerPt]

    if (vPwrPts >= 1) Then
       ~ Character is Psionically Focused
       perform hero.assign[Hero.isPsiFocus]
    Endif

    if (hero.child[trkMythic].field[trkLeft].value >= 1) Then
       ~ Character is Psionically Focused
       perform hero.assign[Hero.isPsiFocus]
    Endif

I presume that I need to create the Hero tag ahead of time -- I'm not positive on how to do this. --

Edit: I found that the name for the hero tag was too long -- I changed to Hero.isPsiFocus, and it compiled successfully. Compiled, but not working -- when I tried to add the tag in the tags menu, it erred on something like dynamic tag not found:



Timing issue?
Hero.? tag group is controlled by LW you can NOT just try and create a new tag using a script. Only LW can add new tags to the Hero.? group. This is why we the community has custom tags created in .1st files.

I went ahead and created a new tag group MythicPsi.? and added the tag PsiFocus to it. In addition I modified the PUPsiFocus procedure call to look for this tag. So do a new pull from GitHub and then change your script to assign MythicPsi.PsiFocus.

Of course looking around I see dozens of abilities that are not correctly calling PUPsiFocus to test. Meaning we will have to now correct all those scripts. Sigh...
 
Thing 'fmyExTrans' - Unique things cannot be assigned a non-zero maxlimit

Ok, found the solution. Changed the uniqueness of the feat from "Add Once" to "No". -- the original ability has the same uniqueness. Not sure if this is correct or not.
This means you set the "Max Limit" to 0 which can not happen on a unique feat. Max Limit is the box under the blue buttons on the right side.

I am hoping "fmyExTrans" is not really the final unique id you used for this. ALL community Things for Psionics must have "PU" in it. No exception to this rule as we have to prevent clashing with official Unique ID's. If you can make sure PU is in all your new Unique ID's before uploading to github I would really appreciate it.... :)
 
Last edited:
@Quintain I messed up in the procedure PUPsiFocus for the new tag. LOL Why I should not do things late at night. I will fix it when I get home tonight.

You can still change your script to use the new tag. But until I fix the procedure it won't detect the tag on the hero. Sigh... :o :p :(
 
Understood. Let me know when I can do a pull. I modified the script, but didn't do any additional testing. It's all good.
 
Understood. Let me know when I can do a pull. I modified the script, but didn't do any additional testing. It's all good.
Ok its been fixed and committed to GitHub. Hopefully this weekend I will update the additional abilities that are not using the procedure. This way the logic will be totally consistent through out.
 
Ok its been fixed and committed to GitHub. Hopefully this weekend I will update the additional abilities that are not using the procedure. This way the logic will be totally consistent through out.

What timing should I put on my script? I have the perform hero.assign[MythicPsi.PsiFocus] call in there, but don't see it visibile on the character.
 
I am hoping "fmyExTrans" is not really the final unique id you used for this. ALL community Things for Psionics must have "PU" in it. No exception to this rule as we have to prevent clashing with official Unique ID's. If you can make sure PU is in all your new Unique ID's before uploading to github I would really appreciate it.... :)

There were some Mythic Psionic abilities that started out "cMOM...", so I followed that convention.

The feats, I can change to "fPUM..." for feat, Psionic Unleashed, Mythic.
 
What timing should I put on my script? I have the perform hero.assign[MythicPsi.PsiFocus] call in there, but don't see it visible on the character.
Timing will need to be BEFORE any script that is calling PUPsiFocus is run. This is not a set standard. You would have to look at every script to figure out when this is. Looking quickly you will need to be at least BEFORE Pre-Level/10000.

There were some Mythic Psionic abilities that started out "cMOM...", so I followed that convention.
The Pack has only one thing with cMoM as a unique id actually and its for the Unchained Monk of Many Styles. The idea is to have PU in Unique ID.

The feats, I can change to "fPUM..." for feat, Psionic Unleashed, Mythic.
fPU is the standard if you want fPUMy that is fine but its the fPU that is the important part. :)
 
What timing should I put on my script? I have the perform hero.assign[MythicPsi.PsiFocus] call in there, but don't see it visibile on the character.
Most likely because Resources Left I think is not done until like Final/50000 or something. So if your testing for a resource left value before then it most likely returns zero.
 
Back
Top