Bob G |
July 12th, 2020 12:32 PM |
Replacing spells per day with spell points
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?
|