Вам нужно сформировать дерево триггеров по разным параметрам (расстояние до других объектов по каждому типу, возможности/способности для взаимодействия - полезность для достижения цели (личной или групповой) в процентах, цель личная, цель в группе, цель руководителя группы, цель в цепи и т.д.).
И уже по ним - поставить нужные действия: реакции на конкретные события или их совокупность.
После действия - снова проверка триггеров (и так - по-кругу).