added error handling when the drawpile is empty
This commit is contained in:
		@@ -4,6 +4,7 @@
 | 
			
		||||
import pp.mdga.game.Piece;
 | 
			
		||||
import pp.mdga.game.PieceState;
 | 
			
		||||
import pp.mdga.game.Player;
 | 
			
		||||
import pp.mdga.game.card.PowerCard;
 | 
			
		||||
import pp.mdga.message.client.*;
 | 
			
		||||
import pp.mdga.message.server.*;
 | 
			
		||||
import pp.mdga.server.ServerGameLogic;
 | 
			
		||||
@@ -51,7 +52,12 @@ public void exit() {
 | 
			
		||||
    public void initializeGame() {
 | 
			
		||||
        for (var player : this.logic.getGame().getPlayers().values()) {
 | 
			
		||||
            player.initialize();
 | 
			
		||||
            player.addHandCard(this.logic.getGame().draw());
 | 
			
		||||
            PowerCard card = this.logic.getGame().draw();
 | 
			
		||||
            if (card == null) {
 | 
			
		||||
                this.logic.getServerSender().broadcast(new IncorrectRequestMessage(7));
 | 
			
		||||
            } else {
 | 
			
		||||
                player.addHandCard(card);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            Piece piece = player.getPieces()[0];
 | 
			
		||||
            player.getWaitingArea()[0] = null;
 | 
			
		||||
 
 | 
			
		||||
@@ -5,6 +5,7 @@
 | 
			
		||||
import pp.mdga.game.card.PowerCard;
 | 
			
		||||
import pp.mdga.message.client.RequestMoveMessage;
 | 
			
		||||
import pp.mdga.message.server.DrawCardMessage;
 | 
			
		||||
import pp.mdga.message.server.IncorrectRequestMessage;
 | 
			
		||||
import pp.mdga.message.server.MoveMessage;
 | 
			
		||||
import pp.mdga.message.server.SelectPieceMessage;
 | 
			
		||||
import pp.mdga.server.ServerGameLogic;
 | 
			
		||||
@@ -137,16 +138,24 @@ public void received(RequestMoveMessage msg, int from) {
 | 
			
		||||
        if (targetNode.isBonus()) {
 | 
			
		||||
            logic.getGame().getActivePlayer().getPlayerStatistic().increaseActivatedBonusNodes();
 | 
			
		||||
            logic.getGame().getGameStatistics().increaseActivatedBonusNodes();
 | 
			
		||||
            PowerCard cardToDraw = logic.getGame().draw();
 | 
			
		||||
            for (Player p : logic.getGame().getPlayersAsList()) {
 | 
			
		||||
                if (p.getColor() == logic.getGame().getActiveColor()) {
 | 
			
		||||
                    PowerCard cardToDraw = logic.getGame().draw();
 | 
			
		||||
                    if (cardToDraw == null) {
 | 
			
		||||
                        this.logic.getServerSender().broadcast(new IncorrectRequestMessage(7));
 | 
			
		||||
                    } else {
 | 
			
		||||
                        p.addHandCard(cardToDraw);
 | 
			
		||||
                        logic.getServerSender().send(logic.getGame().getPlayerIdByColor(p.getColor()), new DrawCardMessage(cardToDraw));
 | 
			
		||||
                    }
 | 
			
		||||
                } else {
 | 
			
		||||
                    if (cardToDraw == null) {
 | 
			
		||||
                        this.logic.getServerSender().broadcast(new IncorrectRequestMessage(7));
 | 
			
		||||
                    } else {
 | 
			
		||||
                        logic.getServerSender().send(logic.getGame().getPlayerIdByColor(p.getColor()), new DrawCardMessage(new HiddenCard()));
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        this.choosePieceAutomaton.getTurnAutomaton().setCurrentState(this.choosePieceAutomaton.getTurnAutomaton().getMovePieceState());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,7 @@
 | 
			
		||||
import pp.mdga.game.card.PowerCard;
 | 
			
		||||
import pp.mdga.message.client.RequestMoveMessage;
 | 
			
		||||
import pp.mdga.message.server.DrawCardMessage;
 | 
			
		||||
import pp.mdga.message.server.IncorrectRequestMessage;
 | 
			
		||||
import pp.mdga.message.server.MoveMessage;
 | 
			
		||||
import pp.mdga.message.server.StartPieceMessage;
 | 
			
		||||
import pp.mdga.server.ServerGameLogic;
 | 
			
		||||
@@ -70,16 +71,24 @@ public void received(RequestMoveMessage msg, int from) {
 | 
			
		||||
            if (targetNode.isBonus()) {
 | 
			
		||||
                logic.getGame().getActivePlayer().getPlayerStatistic().increaseActivatedBonusNodes();
 | 
			
		||||
                logic.getGame().getGameStatistics().increaseActivatedBonusNodes();
 | 
			
		||||
                PowerCard cardToDraw = logic.getGame().draw();
 | 
			
		||||
                for (Player p : logic.getGame().getPlayersAsList()) {
 | 
			
		||||
                    if (p.getColor() == logic.getGame().getActiveColor()) {
 | 
			
		||||
                        PowerCard cardToDraw = logic.getGame().draw();
 | 
			
		||||
                        if (cardToDraw == null) {
 | 
			
		||||
                            this.logic.getServerSender().broadcast(new IncorrectRequestMessage(7));
 | 
			
		||||
                        } else {
 | 
			
		||||
                            p.addHandCard(cardToDraw);
 | 
			
		||||
                            logic.getServerSender().send(logic.getGame().getPlayerIdByColor(p.getColor()), new DrawCardMessage(cardToDraw));
 | 
			
		||||
                        }
 | 
			
		||||
                    } else {
 | 
			
		||||
                        if (cardToDraw == null) {
 | 
			
		||||
                            this.logic.getServerSender().broadcast(new IncorrectRequestMessage(7));
 | 
			
		||||
                        } else {
 | 
			
		||||
                            logic.getServerSender().send(logic.getGame().getPlayerIdByColor(p.getColor()), new DrawCardMessage(new HiddenCard()));
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            this.choosePieceAutomaton.getTurnAutomaton().setCurrentState(this.choosePieceAutomaton.getTurnAutomaton().getMovePieceState());
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,7 @@ incorrect.request.3=Selected to many or wrong pieces.
 | 
			
		||||
incorrect.request.4=Did not select exactly 2 pieces or selected wrong pieces.
 | 
			
		||||
incorrect.request.5=Cannot start game because not everyone is ready.
 | 
			
		||||
incorrect.request.6=You are alone in this Lobby.
 | 
			
		||||
incorrect.request.7=The draw pile is empty.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -7,3 +7,4 @@ incorrect.request.3=Du hast zuviele, oder eine falsche Figur ausgew
 | 
			
		||||
incorrect.request.4=Du hast nicht genau zwei Figuren, oder falsche Figuren ausgewählt.
 | 
			
		||||
incorrect.request.5=Du kannst das Spiel nicht starten, da nicht alle Spieler bereit sind.
 | 
			
		||||
incorrect.request.6=Du bist alleine in dieser Lobby.
 | 
			
		||||
incorrect.request.7=Der Nachziehstapel ist leer.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user