3#include "vipra/vipra_behaviors/definitions/sim_pack.hpp"
5namespace VIPRA::Behaviors {
11using Modifier = std::function<bool(
Simpack, VIPRA::idx, VIPRA::idx)>;
32 [[nodiscard]]
auto check(
Simpack pack, VIPRA::idx self, VIPRA::idx target)
const ->
bool
34 return std::all_of(_checks.begin(), _checks.end(), [&](Modifier
const& modifier) {
35 return modifier(pack, target, self);
47 std::vector<Modifier> _checks;
Modifies who can be a target for an action, by distance, direction, etc.
Definition target_modifier.hpp:17
auto check(Simpack pack, VIPRA::idx self, VIPRA::idx target) const -> bool
Checks that a pedestrian passes all modifier checks.
Definition target_modifier.hpp:32
void add_check(Modifier &&check)
Adds another modifier check to the target modifier.
Definition target_modifier.hpp:44
Holds references to commonly used parameters for simpler passing.
Definition sim_pack.hpp:23