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.gamestate.turnstate.ChoosePieceState;
 | 
			
		||||
import pp.mdga.game.Piece;
 | 
			
		||||
import pp.mdga.message.server.DiceNowMessage;
 | 
			
		||||
import pp.mdga.message.server.EndOfTurnMessage;
 | 
			
		||||
import pp.mdga.message.server.SelectPieceMessage;
 | 
			
		||||
import pp.mdga.message.server.StartPieceMessage;
 | 
			
		||||
import pp.mdga.message.server.WaitPieceMessage;
 | 
			
		||||
import pp.mdga.notification.DiceNowNotification;
 | 
			
		||||
import pp.mdga.notification.SelectableMoveNotification;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
@@ -74,4 +76,9 @@ public void received(EndOfTurnMessage msg) {
 | 
			
		||||
        logic.getGame().setTurboFlag(false);
 | 
			
		||||
        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;
 | 
			
		||||
 | 
			
		||||
import pp.mdga.Resources;
 | 
			
		||||
import pp.mdga.game.Color;
 | 
			
		||||
import pp.mdga.message.server.ActivePlayerMessage;
 | 
			
		||||
import pp.mdga.message.server.DiceNowMessage;
 | 
			
		||||
import pp.mdga.message.server.EndOfTurnMessage;
 | 
			
		||||
import pp.mdga.server.ServerGameLogic;
 | 
			
		||||
import pp.mdga.server.automaton.game.turn.ChoosePieceState;
 | 
			
		||||
@@ -22,6 +24,11 @@ public NoTurnState(ChoosePieceState choosePieceAutomaton, ServerGameLogic 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) {
 | 
			
		||||
        if (!logic.getGame().getPlayerByColor(color.next(logic.getGame())).isFinished()) {
 | 
			
		||||
            logic.getGame().setActiveColor(logic.getGame().getActiveColor().next(logic.getGame()));
 | 
			
		||||
@@ -38,8 +45,13 @@ private void setActivePlayer(Color color) {
 | 
			
		||||
    @Override
 | 
			
		||||
    public void enter() {
 | 
			
		||||
        LOGGER.log(System.Logger.Level.DEBUG, "Entered NoTurnState state.");
 | 
			
		||||
        logic.getServerSender().send(logic.getGame().getActivePlayerId(), new EndOfTurnMessage());
 | 
			
		||||
        setActivePlayer(logic.getGame().getActiveColor());
 | 
			
		||||
        if (logic.getGame().getDiceEyes() == Resources.MAX_EYES){
 | 
			
		||||
            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