Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - Savage Worlds

Notices

Reply
 
Thread Tools Display Modes
Paragon
Senior Member
 
Join Date: Feb 2010
Posts: 787

Old February 14th, 2017, 08:06 AM
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.
Paragon is offline   #11 Reply With Quote
CapedCrusader
Senior Member
Volunteer Data File Contributor
 
Join Date: Aug 2009
Posts: 1,072

Old February 14th, 2017, 12:12 PM
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 Running: Savage Worlds (Fantasy), Savage Galaxy Rangers
Currently Playing: Pathfinder (Kingmaker - it's good to be the King), Savage Wearing the Cape, Savage Star Wars
Prepping for Gamestorm: Savage Worlds
CapedCrusader is offline   #12 Reply With Quote
SeeleyOne
Senior Member
 
Join Date: Nov 2009
Posts: 891

Old February 14th, 2017, 04:35 PM
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.
SeeleyOne is offline   #13 Reply With Quote
Paragon
Senior Member
 
Join Date: Feb 2010
Posts: 787

Old February 15th, 2017, 07:03 AM
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...
Paragon is offline   #14 Reply With Quote
Paragon
Senior Member
 
Join Date: Feb 2010
Posts: 787

Old April 9th, 2017, 06:22 PM
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?
Paragon is offline   #15 Reply With Quote
CapedCrusader
Senior Member
Volunteer Data File Contributor
 
Join Date: Aug 2009
Posts: 1,072

Old April 11th, 2017, 09:08 AM
What do you need on this?

_
Currently Running: Savage Worlds (Fantasy), Savage Galaxy Rangers
Currently Playing: Pathfinder (Kingmaker - it's good to be the King), Savage Wearing the Cape, Savage Star Wars
Prepping for Gamestorm: Savage Worlds
CapedCrusader is offline   #16 Reply With Quote
Paragon
Senior Member
 
Join Date: Feb 2010
Posts: 787

Old April 11th, 2017, 11:01 AM
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.
Paragon is offline   #17 Reply With Quote
SeeleyOne
Senior Member
 
Join Date: Nov 2009
Posts: 891

Old April 12th, 2017, 04:56 PM
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 &amp; !Helper.Maximum &amp; !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 &amp; !Helper.Maximum &amp; !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 &amp; !Helper.Maximum &amp; !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 &amp; !Helper.Maximum &amp; !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 &amp; !Helper.Maximum &amp; !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 &amp; !Helper.Maximum &amp; !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 &amp; !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 the Soak Pool above, I have the players get one free Soak roll per session per Rank. It is the initial roll, and may not be used for a re-roll.

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.
SeeleyOne is offline   #18 Reply With Quote
SeeleyOne
Senior Member
 
Join Date: Nov 2009
Posts: 891

Old April 12th, 2017, 04:57 PM
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.
SeeleyOne is offline   #19 Reply With Quote
Paragon
Senior Member
 
Join Date: Feb 2010
Posts: 787

Old April 12th, 2017, 06:04 PM
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)?
Paragon is offline   #20 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 10:25 PM.


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