added invoke and invoke required
*invoke and invoke required can be used for doing things in threads that are not part of the game state (should be used for changeroom)
+tests for invokerequired