Например как-то так.
Игрок на карте накликивает задания. Копать, строить, атаковать и т.д. Задания сохраняем в список и сортируем по приоритету,трудоемкости и т.д.
Бот исходя из своих координат и состояния (ранен,активен, отдыхает,кушает и т.д.) отбирает некоторое количество заданий, по дальности, по приоритету, по "трудоемкости", копирует себе в стек, и начинает их выполнять. Маршрут движения можно использовать алгоритм А*