public void handleUpdateTick() {
		//Check whether the current interval is configured
		int currentIntervalIndex = this.config.getIntervalIndexByCurrentTime(this.levelClock);
		
		//If there are still configured intervals, take care of the rules
		if(currentIntervalIndex != -1) {
			//Fetch the current interval
			int[] currentInterval = this.config.intervalList.get(currentIntervalIndex);
			int relativeTimeWithinCurrentInterval = this.levelClock - currentInterval[0];
			int intervalLength = currentInterval[1] - currentInterval[0];
			/*
			 * @see <LevelConfig>
			 * Get all the spawnrules for the current interval.
			 * - 0: Interval this rule belongs to
			 * - 1: EntityNumber - This helps to find out what Entity to actually spawn.
			 * - 2: Amount - The amount of Entities to spawn at a time.
			 * - 3: SpawnRate - The rate at which the Entities are supposed to be spawned.
			 * - 4: SpawnPosition - percentage of GameConfig.windowHeight - Where the Enemy shall spawn.
			 * - 5: Points - points for EnemyFour
			 */
			for(String[] spawnRule : this.config.spawnRuleList) {
				//Skip spawn rules that are not in the current spawn interval.
				if(Integer.parseInt(spawnRule[0]) != currentIntervalIndex) continue;
				//Divide the current interval by spawnrate
				int intervalModulus = intervalLength / Integer.parseInt(spawnRule[3]);
				//Check whether the spawn rate strikes right now.
				if(relativeTimeWithinCurrentInterval % Math.max(1,intervalModulus) == 0) {
					//If the rule matches the current time, spawn the configured Entity in the configured amount:
					for(int i=0; i<Integer.parseInt(spawnRule[2]); i++) {
						ArrayList<Point> points = null;
						//Minus one because the upper border is _excluded_ from the range!
						int x = GameConfig.gameScreenWidth + GameConfig.gameScreenXOffset - 1;
						if (!spawnRule[5].equals("")) {
							points = new ArrayList<Point>();
							String [] lol = spawnRule[5].split(";");
							for(int run = 0; run < lol.length; run = run+2) {
								points.add(new Point(Integer.parseInt(lol[run]),Integer.parseInt(lol[run+1])));
							}
						}
						//Minus one because the upper border is _excluded_ from the range!
						int y = Math.round((GameConfig.gameScreenHeight * Integer.parseInt(spawnRule[4])) / 100) + GameConfig.gameScreenYOffset - 1;
						this.spawnEntityByAvailableName(Entity.availableNames.values()[Integer.parseInt(spawnRule[1])], x, y, points);
					}
				}
			}
		} //end if still intervals configured
		
		//Check for GameOver things.
		this.checkGameOverCondition();
		
		//Apply the gameOverDelay if game is already over.
		if(this.isGameOver && this.gameOverDelay > 0) {
			this.gameOverDelay--;
		}
		
		//Increase levelClock
		this.levelClock++;
	}