Senior Member
Join Date: Feb 2010
Posts: 874
|
Yeah, its not the first time I've had things that were outside the normal advancement schemata come up; I usually ended up faking them with virtual "equipment" which I was considering doing here. I just wasn't sure how.
This is just another one of the places where the fact that SW considers advancement in a way more than a little different that it does character building is not helpful; were it a pure build system I suspect this would be a lot easier. I'll give your approach a try when I get a little time, CC. Thanks for the help from all three of you, as always. |
#11 |
Senior Member
Volunteer Data File Contributor
Join Date: Aug 2009
Posts: 1,556
|
Well, we have to deal with the fact that the advancement system works completely differently than the character creation system. It's the way Savage Worlds is designed.
_ 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 |
#12 |
Senior Member
Join Date: Nov 2009
Posts: 891
|
The above works if they can be taken multiple times. If they can only be taken once, add this into the thing id part, before the >
Code:
uniqueness="unique" Evil wins because good rolls poorly .... or the players are not paying enough attention to the game. |
#13 |
Senior Member
Join Date: Feb 2010
Posts: 874
|
Yeah, its not the only place where SW's set-up here creates artifacts in some cases. I bet whoever did the HL file I've heard is out there for Accursed had just piles of fun...
|
#14 |
Senior Member
Join Date: Feb 2010
Posts: 874
|
I was finally getting around to doing this, and realized I don't know where the extent Advance mechanics are stored; they don't seem to have an Editor tab of their own. Could someone point me in the right direction?
|
#15 |
Senior Member
Volunteer Data File Contributor
Join Date: Aug 2009
Posts: 1,556
|
What do you need on this?
_ 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 |
#16 |
Senior Member
Join Date: Feb 2010
Posts: 874
|
Where do I actually go to add a custom Advance? Even if I do it directly in the XML I need an example to work from, and I can't seem to find a place the extent ones are stored. There's an entry for Advances in the Simple tab, but that seems to be about how Advance points are counted, not how they're actually structured. There's a tab for Rewards, but not one for Advances.
|
#17 |
Senior Member
Join Date: Nov 2009
Posts: 891
|
What I did was make a user file, and then edit it outside of the editor as this one contains nothing that the editor can read. I ended mine with "Data" in its name to remind me that it is just a data file, not really a "user" file as we normally use them.
This is mine: Code:
<?xml version="1.0" encoding="ISO-8859-1"?> <document signature="Hero Lab Data"> <!-- ADVANCES --> <!-- Attribute Increases --> <thing id="advAttriN" name="Boost Attribute (Novice)" description="Increase an attribute by one die type." compset="Advance" replaces="advAttrib" uniqueness="unique"> <fieldval field="advAction" value="Novice Boost Attribute"/> <fieldval field="advDynamic" value="component.Attribute & !Helper.Maximum & !Hide.Attribute"/> <fieldval field="advCost" value="1"/> <tag group="Advance" tag="Increase"/> <child entity="Advance"></child> </thing> <thing id="advAttriS" name="Boost Attribute (Seasoned)" description="Increase an attribute by one die type." compset="Advance" uniqueness="unique"> <fieldval field="advAction" value="Seasoned Boost Attribute"/> <fieldval field="advDynamic" value="component.Attribute & !Helper.Maximum & !Hide.Attribute"/> <fieldval field="advCost" value="1"/> <tag group="Advance" tag="Increase"/> <child entity="Advance"></child> </thing> <thing id="advAttriV" name="Boost Attribute (Veteran)" description="Increase an attribute by one die type." compset="Advance" uniqueness="unique"> <fieldval field="advAction" value="Veteran Boost Attribute"/> <fieldval field="advDynamic" value="component.Attribute & !Helper.Maximum & !Hide.Attribute"/> <fieldval field="advCost" value="1"/> <tag group="Advance" tag="Increase"/> <child entity="Advance"></child> </thing> <thing id="advAttriH" name="Boost Attribute (Heroic)" description="Increase an attribute by one die type." compset="Advance" uniqueness="unique"> <fieldval field="advAction" value="Heroic Boost Attribute"/> <fieldval field="advDynamic" value="component.Attribute & !Helper.Maximum & !Hide.Attribute"/> <fieldval field="advCost" value="1"/> <tag group="Advance" tag="Increase"/> <child entity="Advance"></child> </thing> <thing id="advAttriL" name="Boost Attribute (First Legendary)" description="Increase an attribute by one die type." compset="Advance" uniqueness="unique"> <fieldval field="advAction" value="Legendary Boost Attribute"/> <fieldval field="advDynamic" value="component.Attribute & !Helper.Maximum & !Hide.Attribute"/> <fieldval field="advCost" value="1"/> <tag group="Advance" tag="Increase"/> <child entity="Advance"></child> </thing> <thing id="advAttriZ" name="Boost Attribute (Legendary)" description="Increase an attribute by one die type." compset="Advance"> <fieldval field="advAction" value="Legendary Boost Attribute"/> <fieldval field="advDynamic" value="component.Attribute & !Helper.Maximum & !Hide.Attribute"/> <fieldval field="advCost" value="1"/> <tag group="Advance" tag="Increase"/> <child entity="Advance"></child> </thing> <!-- New Skill --> <thing id="advSkiLL" name="Gain a New Skill" description="Select a new skill at a d4 rating." compset="Advance" replaces="advSkill"> <fieldval field="advAction" value="New Skill"/> <fieldval field="advDynamic" value="component.Skill & !Hide.Skill"/> <fieldval field="advCost" value=".5"/> <tag group="Advance" tag="AddNew"/> <tag group="DomainTerm" tag="Focus"/> <eval phase="Render" priority="1000"> <![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]]> <before name="Assign Dynamic Tagexpr"/> </eval> <child entity="Advance"> <tag group="Advance" tag="MustChoose"/> </child> </thing> <!-- Power points tracker so the user can manage the expenditure of power points --> <thing id="trkPowNoHi" name="Power Points" compset="Tracker"> <fieldval field="trkMin" value="0"/> <fieldval field="trkMax" value="0"/> <!-- Resetting the tracker sets the value to the maximum --> <tag group="Helper" tag="ResetMax"/> </thing> <!-- Shootist Power points tracker --> <thing id="trkPowSh" name="Shootist Pool" compset="Tracker"> <fieldval field="trkMin" value="0"/> <fieldval field="trkMax" value="0"/> <!-- Resetting the tracker sets the value to the maximum --> <tag group="Helper" tag="ResetMax"/> </thing> <!-- Free Soaks tracker so the user can manage the expenditure soaks --> <thing id="trkSoak" name="Soak Pool" compset="Tracker"> <fieldval field="trkMin" value="0"/> <fieldval field="trkMax" value="0"/> <!-- Resetting the tracker sets the value to the maximum --> <tag group="Helper" tag="ResetMax"/> </thing> <!-- Adaptable Warrior tracker so the user can manage the expenditure soaks --> <thing id="trkAdWar" name="Adaptable Warrior" compset="Tracker"> <fieldval field="trkMin" value="0"/> <fieldval field="trkMax" value="0"/> <!-- Resetting the tracker sets the value to the maximum --> <tag group="Helper" tag="ResetMax"/> </thing> <!-- Versatile Caster tracker so the user can manage the expenditure soaks --> <thing id="trkVCast" name="Versatile Caster" compset="Tracker"> <fieldval field="trkMin" value="0"/> <fieldval field="trkMax" value="0"/> <!-- Resetting the tracker sets the value to the maximum --> <tag group="Helper" tag="ResetMax"/> </thing> </document> For Adaptable Warrior, that is the number of uses per session to use a Combat Edge that the character does not normally have. Evil wins because good rolls poorly .... or the players are not paying enough attention to the game. |
#18 |
Senior Member
Join Date: Nov 2009
Posts: 891
|
I hate that the Attribute advances do not tell you that you cannot use them until after you get one "naughty, you selected one too many!". So I made different versions for each Rank.
Evil wins because good rolls poorly .... or the players are not paying enough attention to the game. |
#19 |
Senior Member
Join Date: Feb 2010
Posts: 874
|
So its still done with the typical <thing></thing> pattern, the editor just doesn't really interact with it? In other words, if I just get in and insert the two special advances in the .user file it should, theoretically, work? CC's post seemed to suggest going about it by copy and edit, which is what's throwing me off here.
Also, there are two other things: 1. The half advances should only be takeable two times each; once for the two associated with the Computerized Library, and once for the two associated with the Public School. You mentioned that I need to mark the uniqueness flag; won't that, in practice, only let people take one of these each, rather than two? If so, is there a syntax that can let it be taken a second time, but only a second? 2. How would I construct the one that only lets you take Knowledge skills differently (the Computerized Library)? |
#20 |
|
|