added the possibility when someone rolls a 6 and then has no valid move he can dice again
This commit is contained in:
@@ -4,10 +4,12 @@
|
|||||||
import pp.mdga.client.ClientState;
|
import pp.mdga.client.ClientState;
|
||||||
import pp.mdga.client.gamestate.turnstate.ChoosePieceState;
|
import pp.mdga.client.gamestate.turnstate.ChoosePieceState;
|
||||||
import pp.mdga.game.Piece;
|
import pp.mdga.game.Piece;
|
||||||
|
import pp.mdga.message.server.DiceNowMessage;
|
||||||
import pp.mdga.message.server.EndOfTurnMessage;
|
import pp.mdga.message.server.EndOfTurnMessage;
|
||||||
import pp.mdga.message.server.SelectPieceMessage;
|
import pp.mdga.message.server.SelectPieceMessage;
|
||||||
import pp.mdga.message.server.StartPieceMessage;
|
import pp.mdga.message.server.StartPieceMessage;
|
||||||
import pp.mdga.message.server.WaitPieceMessage;
|
import pp.mdga.message.server.WaitPieceMessage;
|
||||||
|
import pp.mdga.notification.DiceNowNotification;
|
||||||
import pp.mdga.notification.SelectableMoveNotification;
|
import pp.mdga.notification.SelectableMoveNotification;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -74,4 +76,9 @@ public void received(EndOfTurnMessage msg) {
|
|||||||
logic.getGame().setTurboFlag(false);
|
logic.getGame().setTurboFlag(false);
|
||||||
parent.getParent().getParent().setState(parent.getParent().getParent().getWaiting());
|
parent.getParent().getParent().setState(parent.getParent().getParent().getWaiting());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void received(DiceNowMessage msg){
|
||||||
|
parent.getParent().setState(parent.getParent().getRollDice());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package pp.mdga.server.automaton.game.turn.choosepiece;
|
package pp.mdga.server.automaton.game.turn.choosepiece;
|
||||||
|
|
||||||
|
import pp.mdga.Resources;
|
||||||
import pp.mdga.game.Color;
|
import pp.mdga.game.Color;
|
||||||
import pp.mdga.message.server.ActivePlayerMessage;
|
import pp.mdga.message.server.ActivePlayerMessage;
|
||||||
|
import pp.mdga.message.server.DiceNowMessage;
|
||||||
import pp.mdga.message.server.EndOfTurnMessage;
|
import pp.mdga.message.server.EndOfTurnMessage;
|
||||||
import pp.mdga.server.ServerGameLogic;
|
import pp.mdga.server.ServerGameLogic;
|
||||||
import pp.mdga.server.automaton.game.turn.ChoosePieceState;
|
import pp.mdga.server.automaton.game.turn.ChoosePieceState;
|
||||||
@@ -22,6 +24,11 @@ public NoTurnState(ChoosePieceState choosePieceAutomaton, ServerGameLogic logic)
|
|||||||
super(choosePieceAutomaton, logic);
|
super(choosePieceAutomaton, logic);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is used to end the turn of the active player and determine a new active player
|
||||||
|
*
|
||||||
|
* @param color the color of the current active player
|
||||||
|
*/
|
||||||
private void setActivePlayer(Color color) {
|
private void setActivePlayer(Color color) {
|
||||||
if (!logic.getGame().getPlayerByColor(color.next(logic.getGame())).isFinished()) {
|
if (!logic.getGame().getPlayerByColor(color.next(logic.getGame())).isFinished()) {
|
||||||
logic.getGame().setActiveColor(logic.getGame().getActiveColor().next(logic.getGame()));
|
logic.getGame().setActiveColor(logic.getGame().getActiveColor().next(logic.getGame()));
|
||||||
@@ -38,8 +45,13 @@ private void setActivePlayer(Color color) {
|
|||||||
@Override
|
@Override
|
||||||
public void enter() {
|
public void enter() {
|
||||||
LOGGER.log(System.Logger.Level.DEBUG, "Entered NoTurnState state.");
|
LOGGER.log(System.Logger.Level.DEBUG, "Entered NoTurnState state.");
|
||||||
logic.getServerSender().send(logic.getGame().getActivePlayerId(), new EndOfTurnMessage());
|
if (logic.getGame().getDiceEyes() == Resources.MAX_EYES){
|
||||||
setActivePlayer(logic.getGame().getActiveColor());
|
logic.getServerSender().send(logic.getGame().getActivePlayerId(), new DiceNowMessage());
|
||||||
|
this.choosePieceAutomaton.getTurnAutomaton().setCurrentState(this.choosePieceAutomaton.getTurnAutomaton().getRollDiceState());
|
||||||
|
} else {
|
||||||
|
logic.getServerSender().send(logic.getGame().getActivePlayerId(), new EndOfTurnMessage());
|
||||||
|
setActivePlayer(logic.getGame().getActiveColor());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user