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