Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - Savage Worlds
Register FAQ Community Today's Posts Search

Notices

Reply
 
Thread Tools Display Modes
dartnet
Senior Member
Volunteer Data File Contributor
 
Join Date: Jan 2007
Posts: 591

Old June 26th, 2016, 03:38 PM
Is there away to change the display name of a skill?

For example if you select a Mystic in Rifts the Faith Skill would be displayed as Mysticism.
dartnet is offline   #1 Reply With Quote
zarlor
Senior Member
 
Join Date: Nov 2010
Location: Metairie, LA, USA
Posts: 1,819

Old June 27th, 2016, 04:41 AM
The only instance I know where something similar is done is when creating a Gizmo you set a Field Id of "livename" and set a name for something there. I don't know if that could be done at all for a skill, though. My guess is that skills have too many other hooks and you may have to either create a separate skill for Mysticism or take your custom Faith skill and name is something like Faith/Mysticism instead. (I'm assuming you're using a custom Faith skill here since changing the default version isn't really doable in the editor as far as I know.)

Lenny Zimmermann
Metairie, LA, USA

Data files authored (please let me know if you see any issues with any of these if you have/use them):
Official (In the downloader)
50 Fathoms, Deadlands: Hell On Earth, Deadlands: Noir, East Texas University, Necessary Evil (requires Super Powers Companion), Pirates of the Spanish Main, Space 1889 (original file by Erich), Tour of Darkness, Weird War II, Weird Wars: Rome
Coming Eventually
Evernight (LWD has completed their review but I have some fixes to make first... although Pinnacle mentioned this might get an overhaul to SWADE so I may just wait for that first. If you just HAVE to have this now, though, just PM me)
zarlor is offline   #2 Reply With Quote
SeeleyOne
Senior Member
 
Join Date: Nov 2009
Posts: 891

Old June 27th, 2016, 03:46 PM
Yes. You can. I have done similar in some edges that have an eval script that generates their name. For example, I have Champion and Holy Warrior change their name if someone becomes evil. Likewise, I have "Priest of ...." become "Priestess of" based on gender.

But, while I have done it inside the object, you could do similar in a mechanic that then looks for it and then alters it for you.

Evil wins because good rolls poorly .... or the players are not paying enough attention to the game.
SeeleyOne is offline   #3 Reply With Quote
SeeleyOne
Senior Member
 
Join Date: Nov 2009
Posts: 891

Old June 27th, 2016, 03:52 PM
Another example that I did it in was a Group, which I use to show if a character is a Wild Card, Extra, or Competent Extra. I have it so that a Competent Extra can eventually become a Wild Card, at which point it will display as "Wild Card".

Similarly, I have used it in a Faction, which I use as a "pop up" only after someone has selected a generic "Arcane Background" edge. I do not use all of the different versions of that edge, only the one Arcane Background edge and then someone selects a Faction, which is the Arcane Background type. This works far better for making requirements work as I have their ID follow a basic pattern, like "facAM?" for all Magic backgrounds (no need to specify in the edge). Anyway, what I was getting at is that I have a Sorcerer that will display as Sorceress if the character is female.

Evil wins because good rolls poorly .... or the players are not paying enough attention to the game.
SeeleyOne is offline   #4 Reply With Quote
zarlor
Senior Member
 
Join Date: Nov 2010
Location: Metairie, LA, USA
Posts: 1,819

Old June 27th, 2016, 04:13 PM
Well don't just leave us hanging, give us a code sampling!

Lenny Zimmermann
Metairie, LA, USA

Data files authored (please let me know if you see any issues with any of these if you have/use them):
Official (In the downloader)
50 Fathoms, Deadlands: Hell On Earth, Deadlands: Noir, East Texas University, Necessary Evil (requires Super Powers Companion), Pirates of the Spanish Main, Space 1889 (original file by Erich), Tour of Darkness, Weird War II, Weird Wars: Rome
Coming Eventually
Evernight (LWD has completed their review but I have some fixes to make first... although Pinnacle mentioned this might get an overhaul to SWADE so I may just wait for that first. If you just HAVE to have this now, though, just PM me)
zarlor is offline   #5 Reply With Quote
SeeleyOne
Senior Member
 
Join Date: Nov 2009
Posts: 891

Old June 27th, 2016, 06:19 PM
Group: Competent Extra

The Competent Extra is looking for an edge that makes it become a "real" Wild Card. I have things that require the character to be a Wild Card to allow for this edgWCExtra edge to fulfill the requirement.

Final 5000

Code:
~ If becomes a Wild Card then display it
if (hero.tagis[Edge.edgWCExtra] = 1) then
      field[livename].text = "Wild Card"
endif
Faction: Sorcerer/Sorceress

The display name will be correct on the print out.

Traits 5000 (my generic "go-to" timing, which works in many cases. If it does not, only then will I take time to figure something out.)

Code:
~ Display gender-specific name
if (hero.child[mscPerson].field[perGender].value = 1) then
      field[livename].text = "Sorceress"
else
      field[livename].text = "Sorcerer"
endif

Edge: Holy/Unholy Warrior


This edge will look for a free edge that I call "Evil", edgEvilUnh, which declares that a character is evil. A character can take it (the edge has a cost of 0), and it is bootstrapped already for any evil deities that are entered into Hero Lab (such as Dargar, Hela, Night, Thrym, and Vali in Hellfrost). Instead of just changing the display name, it also changes the description that will print out. Additionally, it will look for a derived trait that I use in some campaigns that is used for a Good/Evil axis.

Final 2000

Code:
var name as string
var desc as string
var evil as number

name = "Holy Warrior"
desc = "Repulse evil"
evil = #traitfound[trGoodEvil]

if (hero.tagis[Edge.edgEvilUnh] = 1) then
      name = "Unholy Warrior"
      desc = "Repulse good"
endif

if (evil < -3) then
      name = "Unholy Warrior"
      desc = "Repulse good"
endif

~Print the results
    field[livename].text = name & ": " & desc
RECOMMENDATIONS

If you do not want to rewrite the Faith or Spellcasting skills (And use them as-is) by adding new versions, I would recommend that you add a mechanic. The Eval script of this mechanic would take into consideration the source.

For example, if the source were "AlterMagic", then it would have the entire eval script hiding inside this:

Code:
if (hero.tagis[source.AlterMagic] = 1) then
   some cool code that does something
endif
I have found that this method works better than adding a source to a mechanic, which I almost never do.

With the mechanic doing the work, you would have it look through the skills and then find the one that you want. The livename should work as it is shown in the list, but if it does not, you might want to add shortname, maybe do both.

FURTHER THOUGHTS

I use a mechanic that looks for things that add to a the casting of a particular power. I will not explain everything, but it might help when thinking of how to loop and add things together. Basically I have two types of things, a bonus and a penalty negater. The negation of a penalty is shown in parenthesis so as to differentiate it from a bonus. This script also ties it with Hellfrost, where I give a small bonus to a character's Signature Power, which I also added to the Elementalist for Elemental Manipulation.

Final 5011

Code:
var arcaneMod as number
var baseMod as number
var crank as number
var prank as number
var powerFocus as number
var powerName as string
var signature as number
var modifier as number
var cancel as number
var temp as number
var present as number
var modDisplay as string
var canDisplay as string
var firstSp as string
var secondSp as string
var fullDisp as string
baseMod = 0
arcaneMod = 0
crank = herofield[acRank].value

if (hero.tagis[source.ArcAttr] = 1) then
   if (hero.tagis[Faction.facAM?] + hero.tagis[Faction.facAP?] <> 0) then
      var arcane as number
      arcane = #trait[attrArc]

      ~ Adjust the bonus to using the Power skill for d8 Arcane or greater.
      if (arcane >= 4) then
         arcaneMod += 1
      endif

      if (arcane >= 6) then
         arcaneMod += 1
      endif
   endif
endif

~ Apply Conviction bonus of +1 to all Powers.
if (hero.tagis[Edge.edgConvict] = 1) then
   baseMod += 1
endif

~ Iterate through the known Powers.
foreach pick in hero from Power
   modifier = baseMod
   cancel = 0
   present = 0
   canDisplay = ""
   modDisplay = ""
   firstSp = ""
   secondSp = ""
   fullDisp = ""

   powerName = eachpick.field[name].text
   powerFocus = 0
   signature = 0

   ~ Psionics allow for getting a higher ranked power.
   if (hero.tagis[Faction.facAP?] = 1) then
      prank = eachpick.tagvalue[MinRank.?]
      modifier += (crank - prank)
   endif

   ~ Add +2 if has Healer Edge and is a healing power.
   if (hero.tagis[Edge.edgHealer] + hero.tagis[Edge.edgHFDEira] <> 0) then
      if (eachpick.tagis[Power.powGrHeal] <> 0) then
         modifier += 2
      endif
      if (eachpick.tagis[Power.powHealing] <> 0) then
         modifier += 2
      endif
      if (eachpick.tagis[Power.powHFHeal] <> 0) then
         modifier += 2
      endif
      if (eachpick.tagis[Power.powHRegen] <> 0) then
         modifier += 2
      endif
      if (eachpick.tagis[Power.powResurct] <> 0) then
         modifier += 2
      endif
      if (eachpick.tagis[Power.powSuccor] <> 0) then
         modifier += 2
      endif
   endif

   ~ Loop through the Spell Store edges and count those that apply.
   foreach pick in hero from Edge
      if (eachpick.tagis[Edge.edgHFASSpS] <> 0) then
         if (compare(powerName, eachpick.field[usrChosen1].chosen.field[name].text) = 0) then
            modifier += 1
            cancel += 2
         endif
      endif
   nexteach

   ~ Loop through the Power Focus edges and count those that apply.
   foreach pick in hero from Edge
      if (eachpick.tagis[Edge.edgPowFoci] <> 0) then
         if (compare(powerName, eachpick.field[usrChosen1].chosen.field[name].text) = 0) then
            powerFocus += 2
         endif
      endif
   nexteach

   foreach pick in hero from Edge
      if (eachpick.tagis[Edge.edgPowFoc2] <> 0) then
         if (compare(powerName, eachpick.field[usrChosen1].chosen.field[name].text) = 0) then
            powerFocus += 1
         endif
      endif
   nexteach

~ The Hellfrost campaign is in use.
if (hero.tagis[source.Hellfrost] = 1) then
~ All Elementalists get +2 to Elemental Manipulation.
if (hero.tagis[Faction.facAMHFE?] = 1) then
   if (eachpick.tagis[Power.powelement] <> 0) then
      signature = 2
   endif
endif
~ End Elementalists.
~ Song Mages and their Traditions.
if (hero.tagis[Faction.facAMHFSn1] = 1) then
   if (eachpick.tagis[Power.powWarrior] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facAMHFSn2] = 1) then
   if (eachpick.tagis[Power.powSpeak] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facAMHFSn3] = 1) then
   if (eachpick.tagis[Power.powFear] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facAMHFSn4] = 1) then
   if (eachpick.tagis[Power.powSuccor] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facAMHFSn5] = 1) then
   if (eachpick.tagis[Power.powDetect] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facAMHFSn6] = 1) then
   if (eachpick.tagis[Power.powconfusi] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facAMHFSn7] = 1) then
   if (eachpick.tagis[Power.powWildWlk] <> 0) then
      signature = 2
   endif
endif
~ End Song Mages.
~ Divine Arcane Backgrounds and Signature Powers.
if (hero.tagis[Faction.facADHFDar] + hero.tagis[Edge.edgHFPaTiw] <> 0) then
   if (eachpick.tagis[Power.powSmite] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFEir] = 1) then
   if (eachpick.tagis[Power.powHealing] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFThr] + hero.tagis[Edge.edgHFPaEo2] + hero.tagis[Edge.edgHFPrEo2] <> 0) then
   if (eachpick.tagis[Power.powEntang] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Edge.edgHFPaEo1] + hero.tagis[Edge.edgHFPrEo1] + hero.tagis[Edge.edgHFWoWar] <> 0) then
   if (eachpick.tagis[Power.powBeastFr] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFErt] = 1) then
   if (eachpick.tagis[Power.powBurrow] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFFre] = 1) then
   if (eachpick.tagis[Power.powWildWlk] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFHel] = 1) then
   if (eachpick.tagis[Power.powZombie] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFHoe] + hero.tagis[Faction.facADHFRig] <> 0) then
   if (eachpick.tagis[Power.powDetect] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFHot] + hero.tagis[Edge.edgHFPaVa1] + hero.tagis[Edge.edgHFPrVa1] + hero.tagis[Faction.facADHFVar] <> 0) then
   if (eachpick.tagis[Power.powCharm] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFKen] = 1) then
   if (eachpick.tagis[Power.powBolt] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFMae] = 1) then
   if (eachpick.tagis[Power.powDispel] <> 0) then
      signature = 2
      if (hero.tagis[Edge.edgHFDMaer] <> 0) then
         modifier += 2
      endif
   endif
endif
if (hero.tagis[Faction.facADHFNau] = 1) then
   if (eachpick.tagis[Power.powTrait] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFNeo] = 1) then
   if (eachpick.tagis[Power.powEnviron] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFNih] = 1) then
   if (eachpick.tagis[Power.powHFObscr] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFNor] = 1) then
   if (eachpick.tagis[Power.powHPrecog] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFSca] = 1) then
   if (eachpick.tagis[Power.powWeakenU] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFSig] = 1) then
   if (eachpick.tagis[Power.powjet] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFThu] = 1) then
   if (eachpick.tagis[Power.powFly] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Edge.edgHFPrTiw] = 1) then
   if (eachpick.tagis[Power.powArmor] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFUll] = 1) then
   if (eachpick.tagis[Power.powAim] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Faction.facADHFUnk] = 1) then
   if (eachpick.tagis[Power.powShape] <> 0) then
      signature = 2
   endif
endif
if (hero.tagis[Edge.edgHFPaVa2] + hero.tagis[Edge.edgHFPrVa2] <> 0) then
   if (eachpick.tagis[Power.powHDiseas] <> 0) then
      signature = 2
   endif
endif
~ End Divine Backgrounds.
endif
~ End of Hellfrost Signature Powers

   modifier = modifier + arcaneMod
   cancel = cancel + powerFocus + signature 

   ~ If possible, first apply cancel to a negative modifier.
   if (modifier < 0) then
      if (cancel > 0) then
         ~ Can only reduce to 0, not give a bonus.
         temp = modifier + cancel
         if (temp < 1) then
            modifier = temp
            cancel = 0
         else
            modifier = 0
            cancel = temp
         endif
      endif
   endif

   ~ Create the modifier display
   if (modifier < 0) then
      modDisplay = modifier
      present += 1
   endif
   if (modifier > 0) then
      modDisplay = "+" & modifier
      present += 1
   endif

   ~ Create the cancel-penalty display
   if (cancel > 0) then
      canDisplay = "(" & cancel & ")"
      present += 1
   endif

   if (present > 0) then
      firstSp = ": "
      if (present > 1) then
         secondSp = " "
      endif
   endif

   ~ Display the modifier and cancellation.
   fullDisp = firstSp & modDisplay & secondSp & canDisplay
   if (eachpick.tagis[Power.powelement] <> 0) then
      eachpick.field[livename].text = "Elemental Manipul." & fullDisp
   else
      eachpick.field[livename].text = eachpick.field[name].text & fullDisp
   endif
nexteach
The above was made a bit simpler than I had once had it. There is a limit to the size of an eval script, and I had found it. But I reduced the size when I used my brain and put duplicate things together.

Evil wins because good rolls poorly .... or the players are not paying enough attention to the game.
SeeleyOne is offline   #6 Reply With Quote
SeeleyOne
Senior Member
 
Join Date: Nov 2009
Posts: 891

Old June 27th, 2016, 06:20 PM
Oh yeah, there in that last script there is also reference to an Arcane Attribute, which I make apply itself when it is in use to the arcane skills. One of its benefits is a bonus to casting known spells at certain ratings. It is a cross between an attribute and an edge.

Evil wins because good rolls poorly .... or the players are not paying enough attention to the game.
SeeleyOne is offline   #7 Reply With Quote
zarlor
Senior Member
 
Join Date: Nov 2010
Location: Metairie, LA, USA
Posts: 1,819

Old June 27th, 2016, 07:07 PM
Fantastic stuff. Thanks for sharing!

Lenny Zimmermann
Metairie, LA, USA

Data files authored (please let me know if you see any issues with any of these if you have/use them):
Official (In the downloader)
50 Fathoms, Deadlands: Hell On Earth, Deadlands: Noir, East Texas University, Necessary Evil (requires Super Powers Companion), Pirates of the Spanish Main, Space 1889 (original file by Erich), Tour of Darkness, Weird War II, Weird Wars: Rome
Coming Eventually
Evernight (LWD has completed their review but I have some fixes to make first... although Pinnacle mentioned this might get an overhaul to SWADE so I may just wait for that first. If you just HAVE to have this now, though, just PM me)
zarlor is offline   #8 Reply With Quote
Reply


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 11:13 AM.


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