Ok, I made a few changes, and for reference, I have this eval script set at Levels/11000, per Lord Magus' advice.
My first option wound up like this:
Code:
doneif (field[cTotalLev].value < 15)
perform hero.assign[HasAbility.KinetDefen]
However, this led to an error message saying that 'HasAbility.KinetDefen' is not defined, which makes sense to me as it's not an ability, but a class category which contains abilities, one of which is effectively picked at level 3 after choosing the elemental focus.
My second option wound up like this:
Code:
foreach pick in hero from BaseCustSp where "abCategory.KinetDefen"
if (field[cTotalLev].value < 15) then
perform eachpick.assign[Hide.Statblock]
endif
nexteach
I didn't get any error messages with this one, but the ability still appeared on the Specials and In-Play tabs, regardless of level. I figured maybe the Statblock location was too specific, and changing Hide.Statblock to just Hide would work, but it just displayed that it was a syntax error as well.
I figured a third option would be to just delete the granted ability until level 15, so I wound up experimenting with this block of code instead:
Code:
foreach pick in hero from BaseCustSp where "abCategory.KinetDefen"
if (field[cTotalLev].value < 15) then
perform eachpick.delete[abGranted]
endif
nexteach
However, as can be expected, I got another error message that it was "Invalid syntax for tag template".
So I'm still stuck. Any more ideas?