Okay, the new conditional system works. Implementing it created a number of problems with the existing animations, but I went in and made some changes which seriously streamlined the animation system and that ended up also somehow fixing the broken animations. I don’t know, I won’t question it.
Anyway, with this new system I have a lot more power in constructing animation commands, so I can directly query the movement speed of the entity, or address a specific frame, or compare an enumerated status, rather than having to require each behavior to set a bunch of flags for the animation system to hook into. I think that’s worth a few days of work. This also means that, with the flags stripped out, there’s going to be a lot less cruft to sift through when I look at entity statuses for debug purposes, which may reap dividends in the long run.