added the functionality of multiple roll dice when all pieces in waiting
This commit is contained in:
@@ -152,6 +152,7 @@ private void initializeSerializables() {
|
|||||||
Serializer.registerClass(SwapCard.class);
|
Serializer.registerClass(SwapCard.class);
|
||||||
Serializer.registerClass(ShieldCard.class);
|
Serializer.registerClass(ShieldCard.class);
|
||||||
Serializer.registerClass(HiddenCard.class);
|
Serializer.registerClass(HiddenCard.class);
|
||||||
|
Serializer.registerClass(ChoosePieceStateMessage.class);
|
||||||
|
|
||||||
Serializer.registerClass(Color.class, new EnumSerializer());
|
Serializer.registerClass(Color.class, new EnumSerializer());
|
||||||
Serializer.registerClass(PieceState.class, new EnumSerializer());
|
Serializer.registerClass(PieceState.class, new EnumSerializer());
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
import pp.mdga.client.gamestate.TurnState;
|
import pp.mdga.client.gamestate.TurnState;
|
||||||
import pp.mdga.message.client.AnimationEndMessage;
|
import pp.mdga.message.client.AnimationEndMessage;
|
||||||
import pp.mdga.message.client.RequestDieMessage;
|
import pp.mdga.message.client.RequestDieMessage;
|
||||||
|
import pp.mdga.message.server.ChoosePieceStateMessage;
|
||||||
import pp.mdga.message.server.DieMessage;
|
import pp.mdga.message.server.DieMessage;
|
||||||
import pp.mdga.message.server.NoTurnMessage;
|
import pp.mdga.message.server.NoTurnMessage;
|
||||||
import pp.mdga.notification.DiceNowNotification;
|
import pp.mdga.notification.DiceNowNotification;
|
||||||
@@ -47,13 +48,12 @@ public void received(DieMessage msg){
|
|||||||
@Override
|
@Override
|
||||||
public void selectAnimationEnd(){
|
public void selectAnimationEnd(){
|
||||||
logic.send(new AnimationEndMessage());
|
logic.send(new AnimationEndMessage());
|
||||||
parent.setState(parent.getChoosePiece());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Override
|
@Override
|
||||||
// public void received(ChoosePieceStateMessage msg){
|
public void received(ChoosePieceStateMessage msg){
|
||||||
// parent.setState(parent.getChoosePiece());
|
parent.setState(parent.getChoosePiece());
|
||||||
// }
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void received(NoTurnMessage msg){
|
public void received(NoTurnMessage msg){
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package pp.mdga.message.server;
|
||||||
|
|
||||||
|
public class ChoosePieceStateMessage extends ServerMessage {
|
||||||
|
|
||||||
|
public ChoosePieceStateMessage() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Accepts a visitor to process this message.
|
||||||
|
*
|
||||||
|
* @param interpreter the visitor to process this message
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void accept(ServerInterpreter interpreter) {
|
||||||
|
interpreter.received(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -221,4 +221,6 @@ public interface ServerInterpreter {
|
|||||||
* @param msg the IncorrectRequest message received.
|
* @param msg the IncorrectRequest message received.
|
||||||
*/
|
*/
|
||||||
void received(IncorrectRequestMessage msg);
|
void received(IncorrectRequestMessage msg);
|
||||||
|
|
||||||
|
void received(ChoosePieceStateMessage choosePieceStateMessage);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
import pp.mdga.game.PieceState;
|
import pp.mdga.game.PieceState;
|
||||||
import pp.mdga.message.client.AnimationEndMessage;
|
import pp.mdga.message.client.AnimationEndMessage;
|
||||||
import pp.mdga.message.client.RequestDieMessage;
|
import pp.mdga.message.client.RequestDieMessage;
|
||||||
|
import pp.mdga.message.server.ChoosePieceStateMessage;
|
||||||
import pp.mdga.message.server.DiceAgainMessage;
|
import pp.mdga.message.server.DiceAgainMessage;
|
||||||
import pp.mdga.message.server.DiceNowMessage;
|
import pp.mdga.message.server.DiceNowMessage;
|
||||||
import pp.mdga.message.server.DieMessage;
|
import pp.mdga.message.server.DieMessage;
|
||||||
@@ -66,9 +67,11 @@ public void received(RequestDieMessage msg, int from) {
|
|||||||
@Override
|
@Override
|
||||||
public void received(AnimationEndMessage msg, int from) {
|
public void received(AnimationEndMessage msg, int from) {
|
||||||
if (!moveablePieces.isEmpty()) {
|
if (!moveablePieces.isEmpty()) {
|
||||||
|
this.logic.getServerSender().send(this.logic.getGame().getActivePlayerId(), new ChoosePieceStateMessage());
|
||||||
this.rollDiceAutomaton.getTurnAutomaton().setCurrentState(this.rollDiceAutomaton.getTurnAutomaton().getChoosePieceState());
|
this.rollDiceAutomaton.getTurnAutomaton().setCurrentState(this.rollDiceAutomaton.getTurnAutomaton().getChoosePieceState());
|
||||||
} else {
|
} else {
|
||||||
if (roll == Resources.MAX_EYES) {
|
if (roll == Resources.MAX_EYES) {
|
||||||
|
this.logic.getServerSender().send(this.logic.getGame().getActivePlayerId(), new ChoosePieceStateMessage());
|
||||||
this.rollDiceAutomaton.getTurnAutomaton().setCurrentState(this.rollDiceAutomaton.getTurnAutomaton().getChoosePieceState());
|
this.rollDiceAutomaton.getTurnAutomaton().setCurrentState(this.rollDiceAutomaton.getTurnAutomaton().getChoosePieceState());
|
||||||
} else {
|
} else {
|
||||||
this.rollDiceAutomaton.setCurrentState(this.rollDiceAutomaton.getSecondRollState());
|
this.rollDiceAutomaton.setCurrentState(this.rollDiceAutomaton.getSecondRollState());
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package pp.mdga.server.automaton.game.turn.rolldice;
|
package pp.mdga.server.automaton.game.turn.rolldice;
|
||||||
|
|
||||||
|
import pp.mdga.message.client.AnimationEndMessage;
|
||||||
import pp.mdga.message.client.RequestDieMessage;
|
import pp.mdga.message.client.RequestDieMessage;
|
||||||
|
import pp.mdga.message.server.ChoosePieceStateMessage;
|
||||||
import pp.mdga.message.server.DiceAgainMessage;
|
import pp.mdga.message.server.DiceAgainMessage;
|
||||||
import pp.mdga.message.server.DiceNowMessage;
|
import pp.mdga.message.server.DiceNowMessage;
|
||||||
import pp.mdga.message.server.DieMessage;
|
import pp.mdga.message.server.DieMessage;
|
||||||
@@ -44,8 +46,14 @@ public void exit() {
|
|||||||
@Override
|
@Override
|
||||||
public void received(RequestDieMessage msg, int from) {
|
public void received(RequestDieMessage msg, int from) {
|
||||||
int roll = this.logic.getGame().getDie().shuffle();
|
int roll = this.logic.getGame().getDie().shuffle();
|
||||||
|
this.logic.getGame().setDiceEyes(roll);
|
||||||
this.logic.getServerSender().broadcast(new DieMessage(roll));
|
this.logic.getServerSender().broadcast(new DieMessage(roll));
|
||||||
if (roll == 6) {
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void received(AnimationEndMessage msg, int from) {
|
||||||
|
if (this.logic.getGame().getDiceEyes() == 6) {
|
||||||
|
this.logic.getServerSender().send(this.logic.getGame().getActivePlayerId(), new ChoosePieceStateMessage());
|
||||||
this.rollDiceAutomaton.getTurnAutomaton().setCurrentState(this.rollDiceAutomaton.getTurnAutomaton().getChoosePieceState());
|
this.rollDiceAutomaton.getTurnAutomaton().setCurrentState(this.rollDiceAutomaton.getTurnAutomaton().getChoosePieceState());
|
||||||
} else {
|
} else {
|
||||||
this.rollDiceAutomaton.setCurrentState(this.rollDiceAutomaton.getThirdRollState());
|
this.rollDiceAutomaton.setCurrentState(this.rollDiceAutomaton.getThirdRollState());
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package pp.mdga.server.automaton.game.turn.rolldice;
|
package pp.mdga.server.automaton.game.turn.rolldice;
|
||||||
|
|
||||||
|
import pp.mdga.message.client.AnimationEndMessage;
|
||||||
import pp.mdga.message.client.RequestDieMessage;
|
import pp.mdga.message.client.RequestDieMessage;
|
||||||
import pp.mdga.message.server.*;
|
import pp.mdga.message.server.*;
|
||||||
import pp.mdga.server.ServerGameLogic;
|
import pp.mdga.server.ServerGameLogic;
|
||||||
@@ -42,23 +43,20 @@ public void exit() {
|
|||||||
@Override
|
@Override
|
||||||
public void received(RequestDieMessage msg, int from) {
|
public void received(RequestDieMessage msg, int from) {
|
||||||
int roll = this.logic.getGame().getDie().shuffle();
|
int roll = this.logic.getGame().getDie().shuffle();
|
||||||
|
this.logic.getGame().setDiceEyes(roll);
|
||||||
this.logic.getServerSender().broadcast(new DieMessage(roll));
|
this.logic.getServerSender().broadcast(new DieMessage(roll));
|
||||||
if (roll == 6) {
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void received(AnimationEndMessage msg, int from) {
|
||||||
|
if (this.logic.getGame().getDiceEyes() == 6) {
|
||||||
|
this.logic.getServerSender().send(this.logic.getGame().getActivePlayerId(), new ChoosePieceStateMessage());
|
||||||
this.rollDiceAutomaton.getTurnAutomaton().setCurrentState(this.rollDiceAutomaton.getTurnAutomaton().getChoosePieceState());
|
this.rollDiceAutomaton.getTurnAutomaton().setCurrentState(this.rollDiceAutomaton.getTurnAutomaton().getChoosePieceState());
|
||||||
} else {
|
} else {
|
||||||
this.logic.getServerSender().send(this.logic.getGame().getActivePlayerId(), new NoTurnMessage());
|
this.logic.getServerSender().send(this.logic.getGame().getActivePlayerId(), new NoTurnMessage());
|
||||||
|
logic.getGame().setActiveColor(logic.getGame().getActiveColor().next(logic.getGame()));
|
||||||
if (this.rollDiceAutomaton.getTurnAutomaton().getPlayer().isFinished()) {
|
logic.getServerSender().broadcast(new ActivePlayerMessage(logic.getGame().getActiveColor()));
|
||||||
this.logic.getServerSender().send(this.logic.getGame().getActivePlayerId(), new SpectatorMessage());
|
this.rollDiceAutomaton.getTurnAutomaton().getGameAutomaton().setCurrentState(this.rollDiceAutomaton.getTurnAutomaton().getGameAutomaton().getTurnState());
|
||||||
|
|
||||||
if (this.logic.getGame().getNumberOfActivePlayers() == 1) {
|
|
||||||
this.logic.getServerSender().broadcast(new CeremonyMessage());
|
|
||||||
} else {
|
|
||||||
this.logic.getGame().setActiveColor(this.logic.getGame().getActiveColor().next(logic.getGame()));
|
|
||||||
this.logic.getServerSender().broadcast(new ActivePlayerMessage(this.logic.getGame().getActiveColor()));
|
|
||||||
this.rollDiceAutomaton.getTurnAutomaton().getGameAutomaton().setCurrentState(this.rollDiceAutomaton.getTurnAutomaton().getGameAutomaton().getAnimationState());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user