There is a room.
To decide whether we've jumped for 3 turns:
if the current action is jumping for 3 turns, yes;
This is fine. If we add a variable, however,
There is a room.
To decide whether we've jumped for (x - a number) turns:
if the current action is jumping for x turns, yes;
you get a syntax error. So my question is, is this functionality anyone would want, and is it worth filing a bug report/uservoice feature request?
Update: curiously enough, one can get similar behavior by definitions.
Definition: a person is active:
if the current action has been jumping for 1 turn, yes;
Annoying is a scene. Annoying begins when the player has been active for 5 turns.
The action-tracking system is messy (it is generated by the compiler, not written in I7 or I6 code that you can customize). In this case, it only recognizes literal numbers, not variables.
(Your “a person is active” definition is a nice trick – hooking action-tracking into condition-tracking – but it still doesn’t let you substitute a variable for the number. Also, of course, it doesn’t distinguish between “the player has been active for 5 turns” and “Steve has been active for 5 turns”.)
Ultimately if you want to make this more flexible you have to write your own counter, which is not actually any more difficult:
Jcount is initially 0;
if the current action is jumping:
now jcount is 0;
Interesting. Yeah, that’s probably the best way to do it. And thanks for spotting that bug. Easiest way I found for fixing that would be
Definition: a person (called subject) is active:
if the current action has been jumping for 1 turn and the actor part of the current action is the subject, yes;
. It seems to work, but I’m sufficiently unfamiliar with tracking actions this way that there’s probably a bug lurking somewhere in there.