• Please note: In an effort to ensure that all of our users feel welcome on our forums, we’ve updated our forum rules. You can review the updated rules here: http://forums.wolflair.com/showthread.php?t=5528.

    If a fellow Community member is not following the forum rules, please report the post by clicking the Report button (the red yield sign on the left) located on every post. This will notify the moderators directly. If you have any questions about these new rules, please contact support@wolflair.com.

    - The Lone Wolf Development Team

Replacing spells per day with spell points

Bob G

Well-known member
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?
 
Back
Top