Интерфейсы стрельбы

Интерфейс Weapon поддерживает две интересующие нас функции. С использованием функции Fire производится пуск поражающего элемента, а функция Select обеспечивает выбор требуемого оружия, которое указано с помощью символа (с типом данных string или int). Если обнаруживаются какие-либо нарушения в работе, обе функции возвращают значение False.
void Fire();
bool Select(const Symbolb weapon);
Кроме того, следует отметить, что интерфейс Vision дополнен с учетом возможности применения трассирующих поражающих элементов (отслеживание трасс поражающих элементов используется для выявления препятствий). В вызове функции должен быть задан вектор, который определен относительно текущего представления. Возвращаемым значением функции является расстояние до первого препятствия.
float TraceProjectile(const Vec3f& orientation);
Наконец, для сбора в вице массива информации о видимых объектах используется функция запроса visibleEntities. Эта функция также относится к модулю vision. Второй параметр используется для определения критфия выборки, позволяющего указать, какие объекты представляют интерес для анимата (функция возвращает инфс?)ма-цию только о тех объектах, которые акзтветствуют заданному критерию).
void VisibleEntities(vector& visible, const Entity::Type& unifier = 0 );
Как оказалось, если применяемые средства ИИ обеспечивают возможность собирать данные об участвующих в игре объектах вручную, то возможности учета игровой обстановки в различных ситуациях (например, в условиях ведения игры с участием нескольких разных игроков) становятся максимальными. Если же в игровом поле присутствует только один противник, то может стать более подходяшлм подход, основанный на передаче сообщений.