Worth noting that you’re using the stuff that Dan prefaced with:
“Probably only programmers will appreciate these. Beware! They add complexity without adding much value.”
Most of us, definitely including me, are non-programmers and have taken him at his word. But let me try to see if I can figure it out.
From the errors you’re getting, I’m assuming that current_learning
is a string variable and history
is numeric? (That’s why it fails without brackets – you’re taking a string, “History,” and trying to perform an arithmetic operation on it, like trying to *set first_name +5
.)
Judging by the error message, what’s happening in your original post example is that Quicktest is reading this:
*set {current_learning} %+ology_change_mid
as an attempt to
*set 0 %+ology_change_mid
i.e. to adjust the variable named “0” by a certain amount, when of course what we want is to adjust the numeric variable named history instead:
*set history %+ology_change_mid
Can I check if there’s a point anywhere in the game where you
*set current_learning History
rather than
*set current_learning "History"
? Because it feels to me like that could be the source of the error. When you play through your WIP successfully, you’d be hitting places where you did the latter, but QT checks all possibilities and might be picking up on an instance of the former. If not, I’ll keep brainstorming.
(Btw, because the fairmath “zero point” is 50 and fairmath can never take a variable to either 0 or 100, I believe it’s generally good practice to *create
any variable that you’re going to add/subtract using fairmath operators, as 50 rather than 0. But that alone wouldn’t solve this particular problem.)