return true;
}
+function filter_passes(players, filter) {
+ if (filter.type === 'player_any') {
+ for (const p of Array.from(filter.elements)) {
+ if (players[p].on_field_since !== null) {
+ return true;
+ }
+ }
+ return false;
+ } else if (filter.type === 'player_all') {
+ for (const p of Array.from(filter.elements)) {
+ if (players[p].on_field_since === null) {
+ return false;
+ }
+ }
+ return true;
+ }
+ return true;
+}
+
function keep_event(players, filters) {
for (const filter of filters) {
- if (filter.type === 'player_any') {
- for (const p of Array.from(filter.elements)) {
- if (players[p].on_field_since !== null) {
- return true;
- }
- }
+ if (!filter_passes(players, filter)) {
return false;
- } else if (filter.type === 'player_all') {
- for (const p of Array.from(filter.elements)) {
- if (players[p].on_field_since === null) {
- return false;
- }
- }
- return true;
}
}
return true;