Имеются 3 потока.
1й изменяет начальные значения, запускает с начала 2й и встает на паузу.
2й делает расчеты после чего, снимает с паузы 1й и останавливается.
3й ищет мобов, если найдет, ставит на паузу 1й, останавливает 2й, бьет мобов, запускает с начала 2й.
Если 2й снимет с паузы 1й, а 3й поставит на паузу 1й в середине расчетов, то когда 3й запустит 2й у него будут не правильные начальные значения.
Буду пытаться делать костыли, но функция возращающая состояние потока (0,1,2) очень бы пригодилась.