My method would work if you had several dozen passive states, with differing priorities levels for each combination of states possible. As long as the priority is set correctly, it should always show the animation for the largest number of states.
example:
Code://Priority 51 used for 2 states simultaneously:
<Custom Passive Condition>
if (user.isStateAffected(X) && user.isStateAffected(Y)) {
condition = true;
} else {
condition = false;
}
</Custom Passive Condition>
<Custom Passive Condition>
if (user.isStateAffected(X) && user.isStateAffected(Z)) {
condition = true;
} else {
condition = false;
}
</Custom Passive Condition>
<Custom Passive Condition>
if (user.isStateAffected(Y) && user.isStateAffected(Z)) {
condition = true;
} else {
condition = false;
}
</Custom Passive Condition>
//Priority 52 for three states:
<Custom Passive Condition>
if (user.isStateAffected(X) && user.isStateAffected(Y) && user.isStateAffected(Z)) {
condition = true;
} else {
condition = false;
}
</Custom Passive Condition>
Obviously this isn't ideal, but hack-y codes like this are rarely useful beyond a very specific use-case. If it was for a couple of states, it'd probably be fine, but this is probably a lot of work to do for all your states.
Thanks for the code on that animation thing, I'd been trying to figure something out with it for a while, I wanted some state animations behind and others not, and this seems to do the trick.