@PowerUpT said:
Alright, I was using signals a while ago (up until, say, Thursday). I started using function calls because it seemed neater, but I think I could use signals with the timer node. Thanks everyone for the help
Signals are function calls. When you make a signal connection you basically tell to the system: "call this function (signal handler) when this condition is met." That's all there is to it.
So in your case, instead of yielding for animations you should write signal handlers that run when animations are done. You typically want to minimize time spent in _process(). Making them wait for an unknown time is opposite of that.
Yields are ok in general, but calling them inside _process() will likely make your system fall apart at some point. Better to stay away from yields until you have full understanding of how they work.
What's also problematic in your code is that sibling nodes/scenes are changing each other's state. This may result in chaos down the line. Better to have a parent node that handles the gameplay logic and controls the state of chidlren.