Simplified multithreading code and Removing return in FSM

Simplified multithreading code and Removing return in FSM

I've simplified the multithreading in the Finite State Machine class by
replacing it with a background worker instead of using threads.

I've also found out that the return statement causes the bot not to
trigger the InvalidTarget state that's needed in order to target
creatures so I'm reversing the edit.