View Single Post
CapedCrusader
Senior Member
Volunteer Data File Contributor
 
Join Date: Aug 2009
Posts: 1,550

Old July 30th, 2023, 12:02 PM
Hmmm, yeah. There isn't an Editor tab for Advances. Don't know that's been asked for before. Two ways, either create a blank .user file with the Editor, or use a text editor and create a text file with the following header:
<?xml version="1.0" encoding="UTF-8"?>
<document signature="Hero Lab Data">

And the following footer:
</document>

Save it with a .user file extension. Then put something like this in between the header and footer:

<thing
id="advLiteracy"
name="Gain Literacy"
compset="Advance"
description="Add Literacy and select a new language at a d4 rating.">
<fieldval field="advAction" value="New Skill"/>
<fieldval field="advDynamic" value="component.Skill &amp; Skill.skLanguage"/>
<fieldval field="advCost" value="1"/>
<tag group="Advance" tag="AddNew"/>
<tag group="DomainTerm" tag="Focus"/>
<!-- Modify tagexpr to deny skills that have already been added to the character -->
<eval index="1" phase="Render" priority="1000">
<before name="Assign Dynamic Tagexpr"/><![CDATA[
~get the list of all unique skills on the hero and assemble it as a list of precluded tags
var tagexpr as string
foreach pick in hero from Skill where "!Hide.Skill"
if (eachpick.isunique <> 0) then
tagexpr &= " & !Skill." & eachpick.idstring
endif
nexteach

~if there are any tags to exclude, append them to the tagexpr appropriately
if (empty(tagexpr) = 0) then
field[advDynamic].text &= tagexpr
endif
]]></eval>

<!-- SWADE allows adding 2 Skills for an Advance, cut the cost in half -->
<eval index="1" phase="Effects" priority="1000" name="Adjust AdvCost"><![CDATA[
if (hero.tagis[source.AdventureEd] <> 0) then
field[advCost].value = .5
endif
]]></eval>
<!-- Attach the child entity for tracking the advance -->
<child entity="Advance">
<tag group="Advance" tag="MustChoose"/>
</child>
</thing>

The tags for Advances are thus:
"Gizmo" <!-- Used on the gizmo that represents each advancement-->
"MustChoose" <!-- Used to require selection of an attribute, skill, etc. -->
"Newest" <!-- Identifies the most recent advancement on character -->
"Increase" <!-- Advancement increases the value of the associated trait -->
"Decrease" <!-- Advancement decreases the value of the associated trait -->
"AddNew" <!-- Advancement adds a new trait to the character -->
"Notation" <!-- Advancement provides place for a notation by the user -->
"Injury" <!-- Advancement assigns a permanent injury -->


Now, this is a first cut at one to add a Language Skill, I haven't tried it. You'll also want to bootstrap the Literacy Edge. Now. since you are doing Deluxe, it depends on whether you treat Languages as Skills or as their own separate Item. That's variable, so it adds another level of complexity.

_
Currently In Development: Savage Pathfinder, SWADE Fantasy Companion
Future Development: SWADE Super Powers Companion, SWADE Sci-Fi Companion
_
Currently Running: Savage Unity Inc. (homebrew multiverse theme)
Setting Files Supported: Deadlands: Reloaded, Flash Gordon, Gaslight, Hellfrost, Interface Zero 2.0, Seven Worlds, Slipstream, Solomon Kane
Future Setting Files: Savage Judge Dredd
CapedCrusader is offline   #2 Reply With Quote