Чот подтупливаю под вечер. Как красиво сделать чтобы можно было узнавать, закончил ли юнит текущее задание? Скажем, назначил я ему дом чинить. Значит, пока не дочинит, надо его не трогать. Но как дочинит, надо ж его на другие работы направить.
А что если он не дом чинил, а собирался турель строить. Шел к месту постройки и вот дошел.
Или он вообще не строитель, а пихотинец и закончил убивать указанного лучника.
Пока что идея только такая: держать словарь, где ключи - айдишники юнитов, а значения - лямбды-предикаты.
Если айдишник этого юнита есть в этом словаре, то он занят важным делом, ему команды не отдавать. Но только если предикат не вернул true. В этом случае, юнита из словаря удалить и на биржу труда отправить.