Hi,
It really depends on what these states are actually doing, I am not sure I can provide helpful comments without knowing more. Typically tho, when I fyce this it's because I haven't defined and cut down the feature in several Fsm, and that is usually the best way to approach this.
typically, the question raised here is the following: If in state A you know that atttack button if on, why move to state B if when attack is on state B should not perform anything as well... there is a flow int he logic here, if a series of states ( linked by transitions) each performs the same initial checks, then you should only do it once at the beginning of the chain and have a global event in that fsm that can exit that series gracefully, since you can only have one active state at a time, it solves the problem. you are left with the need of a second fsm that constantly check where or not to fire that global event.
I hope it make sense.
bye,
Jean
Bye,
Jean