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
SeeleyOne
Senior Member
 
Join Date: Nov 2009
Posts: 891

Old May 29th, 2015, 08:41 PM
A couple of years ago I got a d14, d16, d18, d22, and d24 from a Kickstarter. I had once made a post where I wondered about how to make them work in Hero Lab. The reply was that they cannot, or rather that it would require several changes. That is still true. At least, there are a few places that source code would have to be changed in order for it to work across the board.

However, it really depends on how you want it to work. It is impossible to do through a user file wherever the die image appears. I noticed that the die image does not appear everywhere.

I realized that while the skill will show up as d12 on the skill list, it was easy to come up with a way for the upgraded Fighting, Shooting, or Throwing skill to show up on its appropriate weapon. For reference to my house rule: http://www.seeleyone.com/skills/

My fix involves using Edges. There are three edges (set at d14) that will do all of the calculations. They are followed by sets of edges that pertain to that skill but will not be printed (they are marked "Omit from printouts". I will do a post on each of the skills for ease of reference.

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

Old May 29th, 2015, 08:50 PM
Fighting d14
Unique
Minimum Rank Veteran

Expr-req
Message: d12 Fighting Required
Pre-Requisite Expression: #traitfound[skFighting] >= 6

Eval Scripts
Phase Traits
Priority 5000
Code:
var dieNumber as number
dieNumber = 14

~Check for edge-based dice
if (hero.tagis[Edge.edgFight16] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgFight18] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgFight20] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgFight22] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgFight24] = 1) then
      dieNumber += 2
endif

~Print the results
    field[livename].text = "Fighting d" & dieNumber
Phase Final
Priority 10000
Code:
var finalbonus as number
var thisbonus as number
var finaldie as string
var finaltext as string
var bonustext as string
var dieNumber as number

finalbonus = hero.child[skFighting].field[trtNetRoll].value 
thisbonus = 0
finaldie = ""
finaltext = ""
bonustext = ""
dieNumber = 14

~Check for edge-based dice
if (hero.tagis[Edge.edgFight16] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgFight18] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgFight20] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgFight22] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgFight24] = 1) then
      dieNumber += 2
endif

finaldie = "d" & dieNumber

foreach pick in hero from WeapMelee
      bonustext = ""
      thisbonus = finalbonus
      thisbonus += eachpick.field[wpBonus].value
      thisbonus += eachpick.field[wpPenalty].value

      if (thisbonus > 0) then
           bonustext = "+" & thisbonus
      endif

      if (thisbonus < 0) then
           bonustext = thisbonus
      endif

      finaltext = finaldie & bonustext
      eachpick.field[wpNetAtk].text = finaltext
nexteach
Then there are five unique, "Omit From Printouts" edges.
edgFight16
edgFight18
edgFight20
edgFight22
edgFight24

So in six edges you can now make your Fighting skill go up to d24.

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

Old May 29th, 2015, 08:51 PM
Shooting d14
Unique
Minimum Rank Veteran

Expr-req
Message: d12 Shooting Required
Pre-Requisite Expression: #traitfound[skShooting] >= 6

Eval Scripts
Phase Traits
Priority 5000
Code:
var dieNumber as number
dieNumber = 14

~Check for edge-based dice
if (hero.tagis[Edge.edgShoot16] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgShoot18] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgShoot20] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgShoot22] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgShoot24] = 1) then
      dieNumber += 2
endif

~Print the results
    field[livename].text = "Shooting d" & dieNumber
Phase Final
Priority 10000
Code:
var finalbonus as number
var thisbonus as number
var finaldie as string
var finaltext as string
var bonustext as string
var dieNumber as number

finalbonus = hero.child[skShooting].field[trtNetRoll].value 
thisbonus = 0
finaldie = ""
finaltext = ""
bonustext = ""
dieNumber = 14

~Check for edge-based dice
if (hero.tagis[Edge.edgShoot16] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgShoot18] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgShoot20] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgShoot22] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgShoot24] = 1) then
      dieNumber += 2
endif

finaldie = "d" & dieNumber

foreach pick in hero from WeapRange
   if (eachpick.tagis[Weapon.Thrown] = 0) then
      bonustext = ""
      thisbonus = finalbonus
      thisbonus += eachpick.field[wpBonus].value
      thisbonus += eachpick.field[wpPenalty].value

      if (thisbonus > 0) then
           bonustext = "+" & thisbonus
      endif

      if (thisbonus < 0) then
           bonustext = thisbonus
      endif

      finaltext = finaldie & bonustext
      eachpick.field[wpNetAtk].text = finaltext
   endif
nexteach
Then there are five unique, "Omit From Printouts" edges.
edgShoot16
edgShoot18
edgShoot20
edgShoot22
edgShoot24

So in six edges you can now make your Shooting skill go up to d24.

Evil wins because good rolls poorly .... or the players are not paying enough attention to the game.

Last edited by SeeleyOne; May 29th, 2015 at 08:54 PM. Reason: forgot to copy-paste one of the correct eval scripts. Oops.
SeeleyOne is offline   #3 Reply With Quote
SeeleyOne
Senior Member
 
Join Date: Nov 2009
Posts: 891

Old May 29th, 2015, 08:56 PM
Throwing d14
Unique
Minimum Rank Veteran

Expr-req
Message: d12 Throwing Required
Pre-Requisite Expression: #traitfound[skThrowing] >= 6

Eval Scripts
Phase Traits
Priority 5000
Code:
var dieNumber as number
dieNumber = 14

~Check for edge-based dice
if (hero.tagis[Edge.edgThrow16] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgThrow18] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgThrow20] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgThrow22] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgThrow24] = 1) then
      dieNumber += 2
endif

~Print the results
    field[livename].text = "Throwing d" & dieNumber
Phase Final
Priority 10000
Code:
var finalbonus as number
var thisbonus as number
var finaldie as string
var finaltext as string
var bonustext as string
var dieNumber as number

finalbonus = hero.child[skThrowing].field[trtNetRoll].value 
thisbonus = 0
finaldie = ""
finaltext = ""
bonustext = ""
dieNumber = 14

~Check for edge-based dice
if (hero.tagis[Edge.edgThrow16] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgThrow18] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgThrow20] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgThrow22] = 1) then
      dieNumber += 2
endif

if (hero.tagis[Edge.edgThrow24] = 1) then
      dieNumber += 2
endif

finaldie = "d" & dieNumber

foreach pick in hero from WeapRange
   if (eachpick.tagis[Weapon.Thrown] <> 0) then
      bonustext = ""
      thisbonus = finalbonus
      thisbonus += eachpick.field[wpBonus].value
      thisbonus += eachpick.field[wpPenalty].value

      if (thisbonus > 0) then
           bonustext = "+" & thisbonus
      endif

      if (thisbonus < 0) then
           bonustext = thisbonus
      endif

      finaltext = finaldie & bonustext
      eachpick.field[wpNetAtk].text = finaltext
   endif
nexteach
Then there are five unique, "Omit From Printouts" edges.
edgThrow16
edgThrow18
edgThrow20
edgThrow22
edgThrow24

So in six edges you can now make your Throwing skill go up to d24.

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

Old May 29th, 2015, 09:03 PM
I use the Evasion skill instead of Fighting for Parry. So if you want to use Evasion use my skill as shown, otherwise modify the final script to be added to the Fighting d14. My Parry derived trait is made to use Evasion, but I use the normal version in this code example (mine is all lower-case, trparry).

Evasion d14
Unique
Minimum Rank Veteran

Expr-req
Message: d12 Evasion Required
Pre-Requisite Expression: #traitfound[skEvasion] >= 6

Eval Script
Phase Traits
Priority 5000
Code:
var dieNumber as number
var parryMod as number
var finalText as string
dieNumber = 14
parryMod = 1
finalText = ""

~Check for edge-based dice
if (hero.tagis[Edge.edgEvasn16] = 1) then
      dieNumber += 2
      parryMod += 1
endif

if (hero.tagis[Edge.edgEvasn18] = 1) then
      dieNumber += 2
      parryMod += 1
endif

if (hero.tagis[Edge.edgEvasn20] = 1) then
      dieNumber += 2
      parryMod += 1
endif

if (hero.tagis[Edge.edgEvasn22] = 1) then
      dieNumber += 2
      parryMod += 1
endif

if (hero.tagis[Edge.edgEvasn24] = 1) then
      dieNumber += 2
      parryMod += 1
endif

finalText = "Evasion d" & dieNumber

perform #traitadjust[trParry,+,parryMod,finalText]

~Print the results
    field[livename].text = finalText
Then there are five unique, "Omit From Printouts" edges.
edgEvasn16
edgEvasn18
edgEvasn20
edgEvasn22
edgEvasn24

So in six edges you can now make your Evasion skill go up to d24.

Evil wins because good rolls poorly .... or the players are not paying enough attention to the game.
SeeleyOne is offline   #5 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 09:30 PM.


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