19 return {.Kind = Kind::All};
23 return {.Kind = Kind::Me};
27 return {.Kind = Kind::NotMe};
31 return {.Kind = Kind::Team, .Team =
Team::T};
35 return {.Kind = Kind::Team, .Team =
Team::CT};
43 return {.Kind = Kind::Dead};
45 if (
lower ==
"@alive")
47 return {.Kind = Kind::Alive};
51 return {.Kind = Kind::Bots};
55 return {.Kind = Kind::Humans};
57 if (
lower ==
"@random")
59 return {.Kind = Kind::Random};
61 if (
lower ==
"@randomt")
63 return {.Kind = Kind::RandomTeam, .Team =
Team::T};
65 if (
lower ==
"@randomct")
67 return {.Kind = Kind::RandomTeam, .Team =
Team::CT};
70 if (
raw.size() > 1 &&
raw[0] ==
'#')
75 return {.Kind = Kind::Slot, .Slot =
static_cast<int>(*slot)};
83 return {.Kind = Kind::SteamId, .SteamId = *
id};
90 return {.Kind = Kind::SteamId, .SteamId = *
id};
97 return {.Kind = Kind::SteamId, .SteamId = *
id};
101 return {.Kind = Kind::Name, .Needle =
lower};
std::expected< std::vector< int >, TargetFailure > FilterPlayers(std::span< const PlayerView > players, const TargetQuery &query, const TargetRules &rules, int callerSlot, const std::function< std::size_t(std::size_t)> &randomIndex)