void doSecond(MatchTime mt, boolean shootout) {
		// calc a match second:
		// event/line changes, penalties, goals, injuries, report updates
		getEvent().bitSet.clear();
		if (home != null && away != null) {
			updatePlayers(mt);
			calcCoaching(mt);
			emptyPenBox(); // return from pen box onto ice
			if (Util.random(60) == 30) {
				// every 60 seconds an interrupt
				getEvent().bitSet.set(INTERRUPT);
				calcNewPen(); // new penalties
				putOnIce(mt); // put players onto ice
			} else if (Util.random(4) == 0) {
				calcGoal(mt, shootout);
			}
		}
		if (mt.getTotalSec() == 1200 || mt.getTotalSec() == 2400
				|| mt.getTotalSec() == 3600) {
			getEvent().bitSet.set(INTERMISSION);
		}
		updateReport(mt); // update match report
	}