@Override
		public void actionPerformed(ActionEvent arg0) {
			
			if (players.get(0).getHealth() <= 0) {
				lose();
			}

			timeElapsed++;
			// moving mobs is synced with timer
			moveOffset++;
			if (moveOffset > 75) {
				currentMap.moveMobs();
				moveOffset = 0;
			}

			// spawning is synced~~~~~~~~~~
			spawnerOffset++;
			if (spawnerOffset > 20 || spawnerOffset == 0) {
				if (currentMap.getSpawner().getMobs().size() != 0)
					currentMap.sendWave();
				else if (mobsAreDead() && currentMap.getSpawner().getMobs().size() == 0)
					endRound();

				spawnerOffset = 0;
			}
			// spawning ~~~~~~~~~~~~~~~~~~~

			// sync towers in here
			for (int i = 0; i < towerList.size(); i++) {
				towerList.get(i).attack();
			}

			// mob deaths
			notifyObservers();

		}