+ if (last_offense !== offense && live_since !== null) {
+ // Switched offense/defense status, so attribute this drive as needed,
+ // and update live_since to take that into account.
+ for (const [q,p] of Object.entries(players)) {
+ if (p.on_field_since === null) {
+ continue;
+ }
+ attribute_player_time(p, t, live_since, last_offense);
+ }
+ globals.playing_time_ms += t - live_since;
+ if (offense === true) {
+ globals.offensive_playing_time_ms += t - live_since;
+ } else if (offense === false) {
+ globals.defensive_playing_time_ms += t - live_since;
+ }
+ live_since = t;
+ }
+