private void assignGamePoints() {
		// Get our card points and game value.
		int curCardPoints = countCardPoints(declarerIndex);
		int curGameValue = gameValue();
		
		// Grab our player and tricks won pile for them.
		PlayerInfo player = players[declarerIndex];
		Pile pile = player.getTricksWonPile();
		
		// There are 4 possible win conditions:
		boolean wonGame = false;
		if (gameType.getGameType() == GameTypeOptions.GameType.Null) {
			// If it's null, and declarer won no tricks.
			wonGame = pile.getNumCards() == 0;
		} else if (gameType.getSchwarz()) {
			// If schwarz and declarer won all tricks.
			wonGame = (pile.getNumCards() == 30);
		} else if (gameType.getSchneider()) {
			// If schneider and declarer won at-least 90 card points.
			wonGame = (curCardPoints >= 90 && curGameValue >= highestBid);
		} else {
			// If any other case, declarer must've won over 60 points.
			wonGame = (curCardPoints > 60 && curGameValue >= highestBid);
		}
		
		// If we won the game, add to score, otherwise subtract
		String tempParts = this.players[(declarerIndex)].getPlayer().getClass().getName().replaceAll("skatgame.", "");
		if(wonGame) {
			player.setGameScore(player.getGameScore() + curGameValue);
			this.roundStats.log("The " + tempParts + " has won " + curGameValue + " points this round.", this.indentationLevel);
		} else {
			player.setGameScore(player.getGameScore() - (2 * curGameValue));
			this.roundStats.log("The " + tempParts +" has lost " + (2 * curGameValue) + " points this round.", this.indentationLevel);
		}
		
		// Let our players know the round stats (we used to not have rounds, so this was called game stats, whoops..)
		int[] endGameScores = new int[PLAYER_COUNT];
		for(int i = 0; i < endGameScores.length; i++)
			endGameScores[i] = this.players[i].getGameScore();
		for(PlayerInfo playerInfo : this.players)
			playerInfo.getPlayer().endGameInfo(wonGame, endGameScores);
	}