Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - D&D 5th Edition SRD

Notices

Reply
 
Thread Tools Display Modes
Fenris447
Senior Member
 
Join Date: Sep 2017
Posts: 237

Old February 20th, 2020, 10:15 AM
Quote:
Originally Posted by wynlyndd View Post
As you can probably tell, it's what I am currently playing so I tend to scratch those itches first.
Totally understandable. The way I figure it, we're putting in the work so we deserve to be a little selfish with our priorities. For instance, I've yet to see anyone asking for the sidekicks from the Essentials Kit. But I needed them, so I programmed them.

Getting back on topic, I've taken your code and am about 90% done with a template that provides it for each class. I'll be testing it with the Bard first.

I'll leave the sorcerer alone for now, since you've got it covered. Just send me whatever you have when you're happy with it!

One note: I pictured Proficiency Versatility and Spell Versatility as only needing 1 ability that can be selected by all relevant classes. So instead of needing to make a new copy for each class, just modify the one I made to also be available to your Sorcerer Configurable.

"Ooooooooh, he's tryin'!"
Fenris447 is offline   #11 Reply With Quote
wynlyndd
Member
 
Join Date: Nov 2014
Posts: 90

Old February 20th, 2020, 11:29 AM
There are some tags and such I haven't encountered before. I may ask you some questions, if I may.
wynlyndd is offline   #12 Reply With Quote
Fenris447
Senior Member
 
Join Date: Sep 2017
Posts: 237

Old February 20th, 2020, 01:07 PM
Fire away. I'll do my best, but I'm no expert.

"Ooooooooh, he's tryin'!"
Fenris447 is offline   #13 Reply With Quote
Fenris447
Senior Member
 
Join Date: Sep 2017
Posts: 237

Old March 4th, 2020, 11:26 AM
Not to necro the thread, but I had a realization about this. I did something similar with the Ravnica guild backgrounds. When chosen, they add a specific set of spells to your overall spell list. Am I crazy, or could this code do the trick as well? It certainly works when added as part of a background.

Code:
  <thing id="ab5CGGRAzSpl" name="Azorius Spellcasting" description="Azorius spellcasters blah blah blah" compset="Ability">
    <tag group="Helper" tag="ShowSpec" name="Show Spec" abbrev="Show Spec"/>
    <tag group="ClsAllowSp" tag="sp5CFriend"/>
    <tag group="ClsAllowSp" tag="spMessage"/>
    <tag group="ClsAllowSp" tag="spCommand"/>
    <tag group="ClsAllowSp" tag="sp5CEnsnaS"/>
    <tag group="ClsAllowSp" tag="spArcaLock"/>
    <tag group="ClsAllowSp" tag="spCalmEmot"/>
    <tag group="ClsAllowSp" tag="spHoldPers"/>
    <tag group="ClsAllowSp" tag="spClairvoy"/>
    <tag group="ClsAllowSp" tag="sp5CCounte"/>
    <tag group="ClsAllowSp" tag="sp5CCompul"/>
    <tag group="ClsAllowSp" tag="spDivinati"/>
    <tag group="ClsAllowSp" tag="spDomiPers"/>
    <tag group="AbilFunc" tag="Background"/>
    <eval phase="First">foreach pick in hero from Class
    perform eachpick.pushtags[ClsAllowSp.?]
    nexteach</eval>
    </thing>
You'd need to modify the eval script to be specific to that class. Other than that, it seems sensical.

"Ooooooooh, he's tryin'!"

Last edited by Fenris447; March 4th, 2020 at 11:28 AM.
Fenris447 is offline   #14 Reply With Quote
wynlyndd
Member
 
Join Date: Nov 2014
Posts: 90

Old March 5th, 2020, 05:02 AM
Seems so. Guess there is more than one way to skin a cat (as the saying goes, I would never condone violence towards animals except in an RPG)
wynlyndd is offline   #15 Reply With Quote
Fenris447
Senior Member
 
Join Date: Sep 2017
Posts: 237

Old March 10th, 2020, 01:54 PM
I've programmed out the expanded spell lists my way and it's working really nicely. However, I don't think my way is going to work for the Eldritch Knight, Arcane Trickster, Arcana Cleric, etc. that basically borrow spell lists from other classes.

I haven't tested my way for those subclasses, but I'm going to give both mine and yours a shot and see what works.

"Ooooooooh, he's tryin'!"
Fenris447 is offline   #16 Reply With Quote
Fenris447
Senior Member
 
Join Date: Sep 2017
Posts: 237

Old March 30th, 2020, 08:57 AM
To close this out, here's the final code for the Sorcerer's expanded spell list that was in Release 2.4 yesterday:
Code:
  <thing id="abSor5CXSpLst" name="Expanded Sorcerer Spell List" description="This feature adds the {i}Demiplane{/i}, {i}Fire Shield{/i}, {i}Flame Blade{/i}, {i}Flaming Sphere{/i}, {i}Flesh to Stone{/i}, {i}Foresight{/i}, {i}Grease{/i}, {i}Primal Savagery{/i}, {i}Protection from Evil and Good{/i}, and {i}Vampiric Touch{/i} spells to the Sorcerer&apos;s spell list." compset="Ability">
    <tag group="AllowRCust" tag="cfg5CCFVSor"/>
    <tag group="Helper" tag="Primary"/>
    <tag group="Helper" tag="SpecUp"/>
    <tag group="ClsAllowSp" tag="spDemiplan"/>
    <tag group="ClsAllowSp" tag="spFireShie"/>
    <tag group="ClsAllowSp" tag="spFlamBlad"/>
    <tag group="ClsAllowSp" tag="spFlamSphe"/>
    <tag group="ClsAllowSp" tag="spFlesSton"/>
    <tag group="ClsAllowSp" tag="spForesigh"/>
    <tag group="ClsAllowSp" tag="spGrease"/>
    <tag group="ClsAllowSp" tag="sp5CXGEPrS"/>
    <tag group="ClsAllowSp" tag="spProtGoEv"/>
    <tag group="ClsAllowSp" tag="spVampTouc"/>
    <eval phase="First"><![CDATA[
doneif (tagis[Helper.Disable] <> 0)
foreach pick in hero from Class where "Classes.Sorcerer"
perform eachpick.pushtags[ClsAllowSp.?]
    nexteach]]></eval>
    <exprreq message="Requires Sorcerer level 1"><![CDATA[#levelcount[Sorcerer] >= 1]]></exprreq>
    </thing>
The "AllowRCust" tag makes this feature selectable in the "cfg5CCFVSor" configurable. The "Primary" helper means it's a Primary ability in that configurable, and the "SpecUp" helper means this is an upgrade that shouldn't show up in the hero's specials list.

The "ClsAllowSp" tags normally would be on a class thing. They're there to say that the spell whose ID is in the tag is allowed by this class.

The eval script goes through and says that for every class on the hero that has the "Classes.Sorcerer" tag (so only the Sorcerer, basically), push the ClsAllowSp tags from this thing to that class. So it takes those tags from this ability, and shoves them onto the class, thereby making all those spells available.

The exprreq is just making sure the hero has a level in Sorcerer.

This worked for almost everything, including the Eldritch Knight and Arcane Trickster. For those, I had the foreach look for Classes.Fighter and Classes.Rogue, respectively.

But I did end up using wynlyndd's code for the Divine Soul Sorcerer, to make sure all the new Cleric spells ended up properly on that subclass's spell list. So it was definitely needed.

Code:
<thing id="abSor5CXSpLDv" name="Expanded Divine Soul Sorcerer Spell List" description="This feature adds the {i}Aura of Life{/i}, {i}Aura of Purity{/i}, {i}Aura of Vitality{/i}, {i}Branding Smite{/i}, {i}Cause Fear{/i}, {i}Power Word Heal{/i}, {i}Skill Empowerment{/i}, {i}Wall of Light{/i}, and {i}Wrathful Smite{/i} spells to the Cleric/Divine Soul Sorcerer&apos;s spell list." compset="Ability">
    <tag group="AllowRCust" tag="cfg5CCFVSor"/>
    <tag group="Helper" tag="Primary"/>
    <tag group="Helper" tag="SpecUp"/>
    <eval phase="Final" priority="21000"><![CDATA[doneif (tagis[Helper.Disable] <> 0)
~these vars will hold the tag expressions for spells and cantrips
var spell as string
var known as string 
var first as string
var second as string
var third as string
var fourth as string
var fifth as string
var ninth as string
~ fetch spell expressions
spell = hero.childfound[cHelpSor].field[cSpKnoExpr].text 
known = hero.childfound[cHelpSor].field[cSpellExpr].text 
~ these receive the extra spells for each circle
first = " | thingid.sp5CXGECaF | thingid.sp5CWrathS "
second = " | thingid.sp5CBrandS "
third = " | thingid.sp5CAurVit "
fourth = " | thingid.sp5CAurLif | thingid.sp5CAurPur "
fifth = " | thingid.sp5CXGESkE | thingid.sp5CXGEWaL "
ninth = " | thingid.sp5CPwrWH "
spell &= first
known &= first
spell &= second
known &= second
spell &= third
known &= third
spell &= fourth
known &= fourth
spell &= fifth
known &= fifth
spell &= ninth
known &= ninth
hero.childfound[cHelpSor].field[cSpKnoExpr].text = spell
hero.childfound[cHelpSor].field[cSpellExpr].text = known
hero.childfound[cHelpSor].field[cSplBkExpr].text = known]]></eval>
    <pickreq thing="c5CSorDiSo"/>
    </thing>

"Ooooooooh, he's tryin'!"
Fenris447 is offline   #17 Reply With Quote
Reply

Thread Tools
Display Modes

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 12:32 PM.


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