View Single Post
Bob G
Senior Member
 
Join Date: Nov 2017
Location: Trafford, PA, USA
Posts: 226

Old July 12th, 2020, 12:32 PM
I’m working on several archetypes that use an alternate magic system (Super Genius Games’ House Rule Handbook: Spell Point Compilation), which is a spell point system. The aspect of this system that I’m having trouble with is this: “A bard gains bonus spell points equal to her Charisma bonus (to a maximum of the highest level spell she knows).

To that effect, I put together this eval script:
<Post-attributes 10000>
Code:
if (hero.childfound[aCHA].field[aFinalVal].value >= 22) then
   if (hero.childfound[cHelpBrd].field[cTotalLev].value >= 16) then
      hero.childfound[cOpenSPBrd].field[abValue].value += 4
      hero.childfound[cReseSPBrd].field[abValue].value += 3
   elseif (hero.childfound[cHelpBrd].field[cTotalLev].value >= 13) then
      hero.childfound[cOpenSPBrd].field[abValue].value += 3 
      hero.childfound[cReseSPBrd].field[abValue].value += 3
   elseif (hero.childfound[cHelpBrd].field[cTotalLev].value >= 10) then
      hero.childfound[cOpenSPBrd].field[abValue].value += 3 
      hero.childfound[cReseSPBrd].field[abValue].value += 2
   elseif (hero.childfound[cHelpBrd].field[cTotalLev].value >= 7) then
      hero.childfound[cOpenSPBrd].field[abValue].value += 2 
      hero.childfound[cReseSPBrd].field[abValue].value += 2
   elseif (hero.childfound[cHelpBrd].field[cTotalLev].value >= 4) then
      hero.childfound[cOpenSPBrd].field[abValue].value += 2 
      hero.childfound[cReseSPBrd].field[abValue].value += 1
   else
      hero.childfound[cOpenSPBrd].field[abValue].value += 1 
      hero.childfound[cReseSPBrd].field[abValue].value += 1
   endif

elseif (hero.childfound[aCHA].field[aFinalVal].value >= 20) then
   if (hero.childfound[cHelpBrd].field[cTotalLev].value >= 13) then
      hero.childfound[cOpenSPBrd].field[abValue].value += 3 
      hero.childfound[cReseSPBrd].field[abValue].value += 3
   elseif (hero.childfound[cHelpBrd].field[cTotalLev].value >= 10) then
      hero.childfound[cOpenSPBrd].field[abValue].value += 3 
      hero.childfound[cReseSPBrd].field[abValue].value += 2
   elseif (hero.childfound[cHelpBrd].field[cTotalLev].value >= 7) then
      hero.childfound[cOpenSPBrd].field[abValue].value += 2 
      hero.childfound[cReseSPBrd].field[abValue].value += 2
   elseif (hero.childfound[cHelpBrd].field[cTotalLev].value >= 4) then
      hero.childfound[cOpenSPBrd].field[abValue].value += 2 
      hero.childfound[cReseSPBrd].field[abValue].value += 1
   else
      hero.childfound[cOpenSPBrd].field[abValue].value += 1 
      hero.childfound[cReseSPBrd].field[abValue].value += 1
   endif

elseif (hero.childfound[aCHA].field[aFinalVal].value >= 18) then
   if (hero.childfound[cHelpBrd].field[cTotalLev].value >= 10) then
      hero.childfound[cOpenSPBrd].field[abValue].value += 3 
      hero.childfound[cReseSPBrd].field[abValue].value += 2
   elseif (hero.childfound[cHelpBrd].field[cTotalLev].value >= 7) then
      hero.childfound[cOpenSPBrd].field[abValue].value += 2 
      hero.childfound[cReseSPBrd].field[abValue].value += 2
   elseif (hero.childfound[cHelpBrd].field[cTotalLev].value >= 4) then
      hero.childfound[cOpenSPBrd].field[abValue].value += 2 
      hero.childfound[cReseSPBrd].field[abValue].value += 1
   else
      hero.childfound[cOpenSPBrd].field[abValue].value += 1 
      hero.childfound[cReseSPBrd].field[abValue].value += 1
   endif

elseif (hero.childfound[aCHA].field[aFinalVal].value >= 16) then
   if (hero.childfound[cHelpBrd].field[cTotalLev].value >= 7) then
      hero.childfound[cOpenSPBrd].field[abValue].value += 2 
      hero.childfound[cReseSPBrd].field[abValue].value += 2
   elseif (hero.childfound[cHelpBrd].field[cTotalLev].value >= 4) then
      hero.childfound[cOpenSPBrd].field[abValue].value += 2 
      hero.childfound[cReseSPBrd].field[abValue].value += 1
   else
      hero.childfound[cOpenSPBrd].field[abValue].value += 1 
      hero.childfound[cReseSPBrd].field[abValue].value += 1
   endif

elseif (hero.childfound[aCHA].field[aFinalVal].value >= 14) then
   if (hero.childfound[cHelpBrd].field[cTotalLev].value >= 4) then
      hero.childfound[cOpenSPBrd].field[abValue].value += 2 
      hero.childfound[cReseSPBrd].field[abValue].value += 1
   else
      hero.childfound[cOpenSPBrd].field[abValue].value += 1 
      hero.childfound[cReseSPBrd].field[abValue].value += 1
   endif

elseif (hero.childfound[aCHA].field[aFinalVal].value >= 12) then
      hero.childfound[cOpenSPBrd].field[abValue].value += 1 
      hero.childfound[cReseSPBrd].field[abValue].value += 1
   endif
First, there’s probably a more elegant way of scripting this, but at least I know that abValue is calculating correctly. The trouble is that abValue isn’t adding to the bard’s spell point pools. I attempted every phase from First to Render, but the spell points aren’t changing. Hero Lab gurus, what am I missing?

Projects: Legendary Rogue (Legendary Games) 97.9%, Assassin (Interjection Games) 88%, Fortunate (rebuild of Luckbringer, Rite Publishing) 87.2%, Adept Godling (Super Genius Games) 73.9%, Eldritch Godling (Super Genius Games) 72.9%, Mighty Godling (Super Genius Games) 44.3%, Clever Godling (Super Genius Games) 41.2%, Legendary Cavalier (Legendary Games) 30.9%

Message me for a list of completed projects.
Visit my blog! https://gauntletsofblogrepower.blogspot.com/
Bob G is offline   #1 Reply With Quote