diff --git a/Projekte/.run/MdgaApp.run.xml b/Projekte/.run/MdgaApp.run.xml deleted file mode 100644 index 82e2f2b6..00000000 --- a/Projekte/.run/MdgaApp.run.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - \ No newline at end of file diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/server/MdgaServer.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/server/MdgaServer.java index a128bb82..b1b488ae 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/server/MdgaServer.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/server/MdgaServer.java @@ -1,14 +1,11 @@ package pp.mdga.client.server; -import com.jme3.network.ConnectionListener; -import com.jme3.network.HostedConnection; -import com.jme3.network.Message; -import com.jme3.network.MessageListener; -import com.jme3.network.Network; -import com.jme3.network.Server; +import com.jme3.network.*; import com.jme3.network.serializing.Serializer; import pp.mdga.game.Game; import pp.mdga.game.Player; +import pp.mdga.message.client.*; +import pp.mdga.message.server.ServerMessage; import pp.mdga.server.ServerGameLogic; import pp.mdga.server.ServerSender; @@ -16,6 +13,7 @@ import java.io.IOException; import java.lang.System.Logger; import java.lang.System.Logger.Level; +import java.util.Map; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; import java.util.logging.LogManager; @@ -53,7 +51,7 @@ public static void main(String[] args) { */ public MdgaServer() { LOGGER.log(Level.INFO, "Creating MdgaServer"); //NON-NLS - logic = new ServerGameLogic(new Game(), this); + logic = new ServerGameLogic(this, new Game()); } public void run() { @@ -92,14 +90,14 @@ private void initializeSerializables() { Serializer.registerClass(ClientStartGame.class); Serializer.registerClass(DeselectTSK.class); Serializer.registerClass(ForceContinueGame.class); - Serializer.registerClass(ForceStartGame.class); + Serializer.registerClass(StartGame.class); Serializer.registerClass(JoinServer.class); Serializer.registerClass(LeaveGame.class); Serializer.registerClass(LobbyNotReady.class); Serializer.registerClass(LobbyReady.class); Serializer.registerClass(NoPowerCard.class); Serializer.registerClass(RequestBriefing.class); - Serializer.registerClass(RequestDice.class); + Serializer.registerClass(RequestDie.class); Serializer.registerClass(RequestMove.class); Serializer.registerClass(RequestPlayCard.class); Serializer.registerClass(SelectCard.class); @@ -147,7 +145,7 @@ private void registerListeners() { myServer.addMessageListener(this, LobbyReady.class); myServer.addMessageListener(this, NoPowerCard.class); myServer.addMessageListener(this, RequestBriefing.class); - myServer.addMessageListener(this, RequestDice.class); + myServer.addMessageListener(this, RequestDie.class); myServer.addMessageListener(this, RequestMove.class); myServer.addMessageListener(this, RequestPlayCard.class); myServer.addMessageListener(this, SelectCard.class); @@ -156,32 +154,42 @@ private void registerListeners() { myServer.addConnectionListener(this); } - @Override - public void messageReceived(HostedConnection source, Message message) { + + public void messageReceived(HostedConnection source, ClientMessage message) { LOGGER.log(Level.INFO, "message received from {0}: {1}", source.getId(), message); //NON-NLS - if (message instanceof ClientMessage clientMessage) - pendingMessages.add(new ReceivedMessage(clientMessage, source.getId())); + pendingMessages.add(new ReceivedMessage(message, source.getId())); } @Override public void connectionAdded(Server server, HostedConnection hostedConnection) { LOGGER.log(Level.INFO, "new connection {0}", hostedConnection); //NON-NLS - logic.addPlayer(hostedConnection.getId()); + // ToDo: Synchronize data between server and client. + logic.getGame().addPlayer(hostedConnection.getId(), new Player()); } @Override public void connectionRemoved(Server server, HostedConnection hostedConnection) { LOGGER.log(Level.INFO, "connection closed: {0}", hostedConnection); //NON-NLS - final Player player = logic.getPlayerById(hostedConnection.getId()); + final Player player = logic.getGame().getPlayerById(hostedConnection.getId()); if (player == null) LOGGER.log(Level.INFO, "closed connection does not belong to an active player"); //NON-NLS else { //NON-NLS LOGGER.log(Level.INFO, "closed connection belongs to {0}", player); //NON-NLS - exit(0); + // exit(0); + this.handleDisconnect(hostedConnection.getId()); } } - private void exit(int exitValue) { //NON-NLS + /** + * This method will be used to handle unintentional disconnections from players. + * + * @param id as the id of the disconnected player. + */ + public void handleDisconnect(int id) { + this.logic.received(new Disconnected(), id); + } + + public void exit(int exitValue) { //NON-NLS LOGGER.log(Level.INFO, "close request"); //NON-NLS if (myServer != null) for (HostedConnection client : myServer.getConnections()) //NON-NLS @@ -206,4 +214,16 @@ public void send(int id, ServerMessage message) { else LOGGER.log(Level.ERROR, "there is no connection with id={0}", id); //NON-NLS } + + /** + * This method will be used to send the given message parameter to all connected players which are saved inside the + * players attribute of Game class. + * + * @param message as the message which will be sent to all players as a ServerMessage. + */ + public void broadcast(ServerMessage message) { + for (Map.Entry entry: this.logic.getGame().getPlayers().entrySet()) { + this.send(entry.getValue().getId(), message); + } + } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/Animation.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/Animation.java deleted file mode 100644 index 6ed12c3b..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/Animation.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class Animation extends ClientState { - public Animation(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/AudioSettings.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/AudioSettings.java deleted file mode 100644 index add83883..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/AudioSettings.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class AudioSettings extends ClientState { - public AudioSettings(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/Ceremony.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/Ceremony.java index 432f90f9..2832f0fa 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/Ceremony.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/Ceremony.java @@ -1,14 +1,19 @@ package pp.mdga.client; public class Ceremony extends ClientState { - private final CeremonyStateMachine ceremonyStateMachine; + public Ceremony(ClientState parent, ClientGameLogic logic) { super(parent, logic); - this.ceremonyStateMachine = new CeremonyStateMachine(parent, logic); } - public CeremonyStateMachine getCeremonyStateMachine() { - return ceremonyStateMachine; + @Override + public void enter() { + + } + + @Override + public void exit() { + } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/CeremonyStateMachine.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/CeremonyStateMachine.java deleted file mode 100644 index 758950f8..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/CeremonyStateMachine.java +++ /dev/null @@ -1,14 +0,0 @@ -package pp.mdga.client; - -public class CeremonyStateMachine extends ClientStateMachine { - - public CeremonyStateMachine(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } - - - @Override - public Podium initialState() { - return new Podium(this, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/ChoosePiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/ChoosePiece.java deleted file mode 100644 index 828b12bd..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/ChoosePiece.java +++ /dev/null @@ -1,15 +0,0 @@ -package pp.mdga.client; - -public class ChoosePiece extends ClientState { - - private final ChoosePieceStateMachine choosePieceStateMachine; - - public ChoosePiece(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - this.choosePieceStateMachine = new ChoosePieceStateMachine(parent, logic); - } - - public ChoosePieceStateMachine getChoosePieceStateMachine() { - return choosePieceStateMachine; - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/ChoosePieceStateMachine.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/ChoosePieceStateMachine.java deleted file mode 100644 index 5346214c..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/ChoosePieceStateMachine.java +++ /dev/null @@ -1,12 +0,0 @@ -package pp.mdga.client; - -public class ChoosePieceStateMachine extends ClientStateMachine{ - public ChoosePieceStateMachine(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } - - @Override - public NoPiece initialState() { - return new NoPiece(this, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/ChoosePowerCard.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/ChoosePowerCard.java deleted file mode 100644 index a11259b0..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/ChoosePowerCard.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class ChoosePowerCard extends ClientState { - public ChoosePowerCard(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientAutomaton.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientAutomaton.java deleted file mode 100644 index c90e199b..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientAutomaton.java +++ /dev/null @@ -1,14 +0,0 @@ -package pp.mdga.client; - -public class ClientAutomaton extends ClientStateMachine { - - public ClientAutomaton(ClientGameLogic logic){ - super(null, logic); - entry(); - } - - @Override - public Dialogs initialState(){ - return new Dialogs(this, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientGameLogic.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientGameLogic.java index 9ec3bca9..d197c0d4 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientGameLogic.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientGameLogic.java @@ -1,20 +1,33 @@ package pp.mdga.client; +import pp.mdga.game.BonusCard; +import pp.mdga.game.Color; import pp.mdga.game.Game; +import pp.mdga.game.Piece; import pp.mdga.message.client.ClientMessage; import pp.mdga.message.server.*; +import java.util.Map; +import java.util.UUID; + public class ClientGameLogic implements ServerInterpreter { static final System.Logger LOGGER = System.getLogger(ClientGameLogic.class.getName()); private Game game; private final ClientSender clientSender; private ClientState state; + private Map pieces; + private Map cards; + + private Dialogs dialogs = new Dialogs(null, this); + private GameState gameState = new GameState(null, this); + private Ceremony ceremony = new Ceremony(null, this); + private Interrupt interrupt = new Interrupt(null, this); public ClientGameLogic(Game game, ClientSender clientSender) { this.game = game; this.clientSender = clientSender; - state = new ClientAutomaton(this); + state = dialogs; } public void send(ClientMessage msg){ @@ -36,136 +49,197 @@ public ClientState getState(){ @Override public void received(ActivePlayer msg) { - + state.received(msg); } @Override public void received(AnyPiece msg) { - + state.received(msg); } @Override public void received(Briefing msg) { - + state.received(msg); } @Override public void received(CeremonyMessage msg) { - + state.received(msg); } @Override - public void received(Dice msg) { - + public void received(Die msg) { + state.received(msg); } @Override public void received(DiceAgain msg) { - + state.received(msg); } @Override public void received(DiceNow msg) { - + state.received(msg); } @Override public void received(EndOfTurn msg) { - + state.received(msg); } @Override public void received(LobbyAccept msg) { - + state.received(msg); } @Override public void received(LobbyDeny msg) { - + state.received(msg); } @Override public void received(LobbyPlayerJoin msg) { - + state.received(msg); } @Override public void received(LobbyPlayerLeave msg) { - + state.received(msg); } @Override public void received(MoveMessage msg) { - + state.received(msg); } @Override public void received(NoTurn msg) { - + state.received(msg); } @Override public void received(PauseGame msg) { - + state.received(msg); } @Override public void received(PlayCard msg) { - + state.received(msg); } @Override public void received(PossibleCard msg) { - + state.received(msg); } @Override public void received(PossiblePiece msg) { - + state.received(msg); } @Override public void received(RankingResponse msg) { - + state.received(msg); } @Override public void received(RankingRollAgain msg) { - + state.received(msg); } @Override public void received(ReconnectBriefing msg) { - + state.received(msg); } @Override public void received(ResumeGame msg) { - + state.received(msg); } @Override public void received(ServerStartGame msg) { - + state.received(msg); } @Override public void received(StartPiece msg) { - + state.received(msg); } @Override public void received(UpdateReady msg) { - + state.received(msg); } @Override public void received(UpdateTSK msg) { - + state.received(msg); } @Override public void received(WaitPiece msg) { + state.received(msg); + } + public void selectPiece(UUID pieceId){ + state.selectPiece(pieceId); + } + + public void selectCard(UUID cardId){ + state.selectCard(cardId); + } + + public void selectTsk(Color color){ + state.selectTSK(color); + } + + public void selectDice(){ + state.selectDice(); + } + + public void selectName(String name){ + state.setName(name); + } + + public void selectReady(boolean ready){ + state.selectReady(); + } + + public void selectHost(){ + state.selectHost(); + } + + public void selectLeave(){ + state.selectLeave(); + } + + public void selectJoin(){ + state.selectJoin(); + } + + public void selectStart(){ + state.selectStart(); + } + + public void setState(ClientState state){ + this.state.exit(); + this.state = state; + } + + public GameState getGameState(){ + return gameState; + } + + public Ceremony getCeremony(){ + return ceremony; + } + + public Interrupt getInterrupt(){ + return interrupt; + } + + public Dialogs getDialogs(){ + return dialogs; } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientState.java index 2c45fbb7..a337cfc0 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientState.java @@ -1,6 +1,12 @@ package pp.mdga.client; -public abstract class ClientState implements Observer { +import pp.mdga.game.Color; +import pp.mdga.message.server.*; + +import java.lang.System.Logger.Level; +import java.util.UUID; + +public abstract class ClientState implements Observer, ServerInterpreter { protected static final System.Logger LOGGER = System.getLogger(ClientState.class.getName()); protected ClientState parent; @@ -12,13 +18,9 @@ protected ClientState(ClientState parent, ClientGameLogic logic){ this.logic = logic; } - public void entry(){/* do nothing */} + public abstract void enter(); - public void exit() {/* do nothing*/} - - public void gotoState(ClientState newState){ - throw new IllegalStateException("not in a statemachine"); - } + public abstract void exit(); public ClientState getParent(){ return parent; @@ -30,4 +32,187 @@ public void update() {/* do nothing */} public String toString(){ return getClass().getSimpleName(); } + + @Override + public void received(ActivePlayer msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(AnyPiece msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(Briefing msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(CeremonyMessage msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(Die msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(DiceAgain msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(DiceNow msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(EndOfTurn msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(LobbyAccept msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(LobbyDeny msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(LobbyPlayerJoin msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(LobbyPlayerLeave msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(MoveMessage msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(NoTurn msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(PauseGame msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(PlayCard msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(PossibleCard msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(PossiblePiece msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(RankingResponse msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(RankingRollAgain msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(ReconnectBriefing msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(ResumeGame msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(ServerStartGame msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(StartPiece msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(UpdateReady msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(UpdateTSK msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + @Override + public void received(WaitPiece msg) { + LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg); + } + + public void selectPiece(UUID id) { + LOGGER.log(Level.DEBUG, "Selecting piece not allowed."); + } + + public void selectCard(UUID id) { + LOGGER.log(Level.DEBUG, "Selecting card not allowed."); + } + + public void selectTSK(Color color) { + LOGGER.log(Level.DEBUG, "Selecting TSK not allowed."); + } + + public void selectDice() { + LOGGER.log(Level.DEBUG, "Selecting dice not allowed."); + } + + public void setName(String name) { + LOGGER.log(Level.DEBUG, "Setting name not allowed."); + } + + public void selectReady() { + LOGGER.log(Level.DEBUG, "Selecting ready not allowed."); + } + + public void selectHost() { + LOGGER.log(Level.DEBUG, "Selecting host not allowed."); + } + + public void selectJoin() { + LOGGER.log(Level.DEBUG, "Selecting join not allowed."); + } + + public void selectLeave() { + LOGGER.log(Level.DEBUG, "Selecting leave not allowed."); + } + + public void deselectTSK(Color color) { + LOGGER.log(Level.DEBUG, "Deselecting TSK not allowed."); + } + + public void selectUnready(){ + LOGGER.log(Level.DEBUG, "Selecting unready not allowed."); + } + + public void selectStart(){ + LOGGER.log(Level.DEBUG, "Starting not allowed"); + } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientStateMachine.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientStateMachine.java deleted file mode 100644 index 9537ccb7..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientStateMachine.java +++ /dev/null @@ -1,44 +0,0 @@ -package pp.mdga.client; - -public abstract class ClientStateMachine extends ClientState { - - private ClientState state; - - protected ClientStateMachine(ClientState parent, ClientGameLogic logic){ - super(parent, logic); - } - - public abstract ClientState initialState(); - - @Override - public void gotoState(ClientState newState){ - LOGGER.log(System.Logger.Level.DEBUG, "{0}: {1} --> {2}", this, state, newState); - enter(newState); - } - - @Override - public void entry(){ - final ClientState newState = initialState(); - LOGGER.log(System.Logger.Level.DEBUG, "{0}: initial state={1}", this, newState); - enter(newState); - } - - private void enter(ClientState newState){ - if(newState.parent != this) - throw new IllegalArgumentException("Wrong state: " + newState + " belongs to " + newState.parent + " instead of " + this); - state = newState; - state.entry(); - } - - @Override - public void exit(){state.exit();} - - @Override - public String toString(){ - return super.toString() + "(in " + state + ")"; - } - - public ClientState getState(){ - return state; - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/DetermineStartPlayer.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/DetermineStartPlayer.java deleted file mode 100644 index 3a773bc8..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/DetermineStartPlayer.java +++ /dev/null @@ -1,14 +0,0 @@ -package pp.mdga.client; - -public class DetermineStartPlayer extends ClientState { - private final DetermineStartPlayerStateMachine determineStartPlayerStateMachine; - - public DetermineStartPlayer(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - this.determineStartPlayerStateMachine = new DetermineStartPlayerStateMachine(parent, logic); - } - - public DetermineStartPlayerStateMachine getDetermineStartPlayerStateMachine() { - return determineStartPlayerStateMachine; - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/DetermineStartPlayerStateMachine.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/DetermineStartPlayerStateMachine.java deleted file mode 100644 index 16c192c7..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/DetermineStartPlayerStateMachine.java +++ /dev/null @@ -1,12 +0,0 @@ -package pp.mdga.client; - -public class DetermineStartPlayerStateMachine extends ClientStateMachine{ - public DetermineStartPlayerStateMachine(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } - - @Override - public RollRankingDice initialState() { - return new RollRankingDice(this, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/DialogStates.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/DialogStates.java deleted file mode 100644 index f5ad1568..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/DialogStates.java +++ /dev/null @@ -1,8 +0,0 @@ -package pp.mdga.client; - -public abstract class DialogStates extends ClientState{ - - public DialogStates(ClientState parent, ClientGameLogic logic){ - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/Dialogs.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/Dialogs.java index 02a63715..54288e29 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/Dialogs.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/Dialogs.java @@ -1,14 +1,53 @@ package pp.mdga.client; +import pp.mdga.client.dialogState.DialogStates; +import pp.mdga.client.dialogState.Lobby; +import pp.mdga.client.dialogState.NetworkDialog; +import pp.mdga.client.dialogState.StartDialog; + public class Dialogs extends ClientState { - private final DialogsStateMachine dialogsStateMachine; + + private DialogStates currentState; + + private final Lobby lobby = new Lobby(this, logic); + private final NetworkDialog networkDialog = new NetworkDialog(this, logic); + private final StartDialog startDialog = new StartDialog(this, logic); + public Dialogs(ClientState parent, ClientGameLogic logic) { super(parent, logic); - this.dialogsStateMachine = new DialogsStateMachine(parent, logic); } - public DialogsStateMachine getDialogsStateMachine() { - return dialogsStateMachine; + @Override + public void exit(){ + currentState.exit(); + } + + @Override + public void enter(){ + currentState = startDialog; + } + + public void setState(DialogStates newState){ + currentState.exit(); + currentState = newState; + currentState.enter(); + } + + public Lobby getLobby() { + return lobby; + } + + public NetworkDialog getNetworkDialog() { + return networkDialog; + } + + public StartDialog getStartDialog() { + return startDialog; + } + + public void startGame(){ + exit(); + logic.setState(logic.getGameState()); } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/DialogsStateMachine.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/DialogsStateMachine.java deleted file mode 100644 index e1b833ad..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/DialogsStateMachine.java +++ /dev/null @@ -1,12 +0,0 @@ -package pp.mdga.client; - -public class DialogsStateMachine extends ClientStateMachine { - public DialogsStateMachine(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } - - @Override - public StartDialog initialState() { - return new StartDialog(this, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/GameState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/GameState.java index 8819c103..b7b9a8cf 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/GameState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/GameState.java @@ -1,14 +1,29 @@ package pp.mdga.client; +import pp.mdga.client.gameState.*; + public class GameState extends ClientState { - private final GameStateMachine gameStateMachine; + + private GameStates state; + + private Animation animation = new Animation(this, logic); + private DetermineStartPlayer determineStartPlayer = new DetermineStartPlayer(this, logic); + private Spectator spectator = new Spectator(this, logic); + private Turn turn = new Turn(this, logic); + private Waiting waiting = new Waiting(this, logic); public GameState(ClientState parent, ClientGameLogic logic) { super(parent, logic); - this.gameStateMachine = new GameStateMachine(parent, logic); + state = determineStartPlayer; } - public GameStateMachine getGameStateMachine() { - return gameStateMachine; + @Override + public void enter() { + + } + + @Override + public void exit() { + } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/GameStateMachine.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/GameStateMachine.java deleted file mode 100644 index 4028c28e..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/GameStateMachine.java +++ /dev/null @@ -1,12 +0,0 @@ -package pp.mdga.client; - -public class GameStateMachine extends ClientStateMachine { - public GameStateMachine(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } - - @Override - public ClientState initialState() { - return null; - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/Interrupt.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/Interrupt.java index 739a6bd2..3d0cb8cd 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/Interrupt.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/Interrupt.java @@ -2,10 +2,17 @@ public class Interrupt extends ClientState { - private final GameState lastState; - - public Interrupt(ClientState parent, ClientGameLogic logic, GameState lastState) { + public Interrupt(ClientState parent, ClientGameLogic logic) { super(parent, logic); - this.lastState = lastState; + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/Lobby.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/Lobby.java deleted file mode 100644 index 0f23c854..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/Lobby.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class Lobby extends ClientState { - public Lobby(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/MainSettings.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/MainSettings.java deleted file mode 100644 index e8af6b05..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/MainSettings.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class MainSettings extends ClientState { - public MainSettings(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/MovePiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/MovePiece.java deleted file mode 100644 index 13bd9b85..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/MovePiece.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class MovePiece extends ClientState { - public MovePiece(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/NetworkDialog.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/NetworkDialog.java deleted file mode 100644 index 8075ae90..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/NetworkDialog.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class NetworkDialog extends ClientState { - public NetworkDialog(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/NoPiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/NoPiece.java deleted file mode 100644 index 42375b01..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/NoPiece.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class NoPiece extends ClientState { - public NoPiece(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/PlayPowerCard.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/PlayPowerCard.java deleted file mode 100644 index 4278445f..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/PlayPowerCard.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class PlayPowerCard extends ClientState { - public PlayPowerCard(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/Podium.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/Podium.java deleted file mode 100644 index f962aa68..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/Podium.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class Podium extends ClientState { - public Podium(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/PowerCard.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/PowerCard.java deleted file mode 100644 index 42ea2741..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/PowerCard.java +++ /dev/null @@ -1,14 +0,0 @@ -package pp.mdga.client; - -public class PowerCard extends ClientState { - private final PowerCardStateMachine powerCardStateMachine; - - public PowerCard(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - this.powerCardStateMachine = new PowerCardStateMachine(parent, logic); - } - - public PowerCardStateMachine getPowerCardStateMachine() { - return powerCardStateMachine; - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/PowerCardStateMachine.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/PowerCardStateMachine.java deleted file mode 100644 index 037417bc..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/PowerCardStateMachine.java +++ /dev/null @@ -1,12 +0,0 @@ -package pp.mdga.client; - -public class PowerCardStateMachine extends ClientStateMachine { - public PowerCardStateMachine(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } - - @Override - public ChoosePowerCard initialState() { - return new ChoosePowerCard(this, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/RollDice.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/RollDice.java deleted file mode 100644 index 4af7c7ad..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/RollDice.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class RollDice extends ClientState { - public RollDice(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/RollRankingDice.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/RollRankingDice.java deleted file mode 100644 index f1a27dce..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/RollRankingDice.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class RollRankingDice extends ClientState { - public RollRankingDice(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/SelectPiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/SelectPiece.java deleted file mode 100644 index 790e91b2..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/SelectPiece.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class SelectPiece extends ClientState { - public SelectPiece(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/Settings.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/Settings.java index a30942ab..7f57598b 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/Settings.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/Settings.java @@ -1,14 +1,18 @@ package pp.mdga.client; public class Settings extends ClientState { - private final SettingsStateMachine settingsStateMachine; public Settings(ClientState parent, ClientGameLogic logic) { super(parent, logic); - this.settingsStateMachine = new SettingsStateMachine(parent, logic); } - public SettingsStateMachine getSettingsStateMachine() { - return settingsStateMachine; + @Override + public void enter() { + + } + + @Override + public void exit() { + } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/SettingsStateMachine.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/SettingsStateMachine.java deleted file mode 100644 index 0abb565e..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/SettingsStateMachine.java +++ /dev/null @@ -1,12 +0,0 @@ -package pp.mdga.client; - -public class SettingsStateMachine extends ClientStateMachine { - public SettingsStateMachine(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } - - @Override - public ClientState initialState() { - return null; - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/Shield.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/Shield.java deleted file mode 100644 index a3f205ba..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/Shield.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class Shield extends ClientState { - public Shield(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/Spectator.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/Spectator.java deleted file mode 100644 index 293fc2b3..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/Spectator.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class Spectator extends ClientState { - public Spectator(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/StartDialog.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/StartDialog.java deleted file mode 100644 index 90bb1e2b..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/StartDialog.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class StartDialog extends DialogStates { - public StartDialog(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/StartPiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/StartPiece.java deleted file mode 100644 index 7e52fd56..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/StartPiece.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class StartPiece extends ClientState { - public StartPiece(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/Statistics.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/Statistics.java deleted file mode 100644 index 8eecb5ce..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/Statistics.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class Statistics extends ClientState { - public Statistics(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/Swap.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/Swap.java deleted file mode 100644 index da3ef3c5..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/Swap.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class Swap extends ClientState { - public Swap(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/Turn.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/Turn.java deleted file mode 100644 index 3bdef5e6..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/Turn.java +++ /dev/null @@ -1,14 +0,0 @@ -package pp.mdga.client; - -public class Turn extends ClientState { - private final TurnStateMachine turnStateMachine; - - public Turn(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - this.turnStateMachine = new TurnStateMachine(parent, logic); - } - - public TurnStateMachine getTurnStateMachine() { - return turnStateMachine; - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/TurnStateMachine.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/TurnStateMachine.java deleted file mode 100644 index 60501cd8..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/TurnStateMachine.java +++ /dev/null @@ -1,12 +0,0 @@ -package pp.mdga.client; - -public class TurnStateMachine extends ClientStateMachine { - public TurnStateMachine(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } - - @Override - public PowerCard initialState() { - return new PowerCard(this, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/VideoSettings.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/VideoSettings.java deleted file mode 100644 index 0b397e1a..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/VideoSettings.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class VideoSettings extends ClientState { - public VideoSettings(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/WaitRanking.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/WaitRanking.java deleted file mode 100644 index b9db2175..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/WaitRanking.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class WaitRanking extends ClientState { - public WaitRanking(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/Waiting.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/Waiting.java deleted file mode 100644 index 14a32cdf..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/Waiting.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class Waiting extends ClientState { - public Waiting(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/WaitingPiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/WaitingPiece.java deleted file mode 100644 index 7b12a023..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/WaitingPiece.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.client; - -public class WaitingPiece extends ClientState { - public WaitingPiece(ClientState parent, ClientGameLogic logic) { - super(parent, logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/ceremonyState/CeremonyStates.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/ceremonyState/CeremonyStates.java new file mode 100644 index 00000000..8bd888c7 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/ceremonyState/CeremonyStates.java @@ -0,0 +1,10 @@ +package pp.mdga.client.ceremonyState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public abstract class CeremonyStates extends ClientState { + protected CeremonyStates(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/ceremonyState/Podium.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/ceremonyState/Podium.java new file mode 100644 index 00000000..b7bac3c2 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/ceremonyState/Podium.java @@ -0,0 +1,20 @@ +package pp.mdga.client.ceremonyState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class Podium extends CeremonyStates { + public Podium(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/ceremonyState/Statistics.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/ceremonyState/Statistics.java new file mode 100644 index 00000000..76f00d76 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/ceremonyState/Statistics.java @@ -0,0 +1,20 @@ +package pp.mdga.client.ceremonyState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class Statistics extends CeremonyStates { + public Statistics(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/DialogStates.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/DialogStates.java new file mode 100644 index 00000000..f4c549d2 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/DialogStates.java @@ -0,0 +1,11 @@ +package pp.mdga.client.dialogState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public abstract class DialogStates extends ClientState { + + public DialogStates(ClientState parent, ClientGameLogic logic){ + super(parent, logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/Lobby.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/Lobby.java new file mode 100644 index 00000000..e2eb9091 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/Lobby.java @@ -0,0 +1,63 @@ +package pp.mdga.client.dialogState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; +import pp.mdga.client.Dialogs; +import pp.mdga.game.Color; +import pp.mdga.message.client.*; +import pp.mdga.message.server.ServerStartGame; + +public class Lobby extends DialogStates { + + private final Dialogs parent; + + public Lobby(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + this.parent = (Dialogs) parent; + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } + + @Override + public void selectLeave() { + parent.setState(parent.getStartDialog()); + } + + @Override + public void selectTSK(Color color) { + logic.send(new SelectTSK(color)); + } + + @Override + public void deselectTSK(Color color) { + logic.send(new DeselectTSK(color)); + } + + @Override + public void selectReady() { + logic.send(new LobbyReady()); + } + + @Override + public void selectUnready(){ + logic.send(new LobbyNotReady()); + } + + @Override + public void selectStart(){ + logic.send(new StartGame()); + } + + @Override + public void received(ServerStartGame msg){ + parent.startGame(); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/NetworkDialog.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/NetworkDialog.java new file mode 100644 index 00000000..923c3b82 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/NetworkDialog.java @@ -0,0 +1,62 @@ +package pp.mdga.client.dialogState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; +import pp.mdga.client.Dialogs; + +public class NetworkDialog extends DialogStates { + + private final Dialogs parent; + + public NetworkDialog(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + this.parent = (Dialogs) parent; + } + + private boolean checkIP(String IP){ + String[] parts = IP.split("\\."); + + // Step 2: Check if there are exactly 4 parts + if (parts.length != 4) { + return false; + } + + // Step 3: Check each part for valid number + for (String part : parts) { + try { + // Step 4: Convert each part into a number + int num = Integer.parseInt(part); + + // Step 5: Check whether the number lies in between 0 and 255 + if (num < 0 || num > 255) { + return false; + } + } catch (NumberFormatException e) { + // If parsing fails, it's not a valid number + return false; + } + } + + // If all checks passed, return true + return true; + } + + @Override + public void enter() { + } + + @Override + public void exit() { + } + + public void selectBack() { + parent.setState(parent.getStartDialog()); + } + + public void selectJoin(String IP) { + if(checkIP(IP)){ + parent.setState(parent.getLobby()); + } + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/StartDialog.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/StartDialog.java new file mode 100644 index 00000000..0ebac81c --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/StartDialog.java @@ -0,0 +1,37 @@ +package pp.mdga.client.dialogState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; +import pp.mdga.client.Dialogs; + +public class StartDialog extends DialogStates { + + private final Dialogs parent; + + public StartDialog(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + this.parent = (Dialogs) parent; + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } + + public void selectJoin() { + parent.setState(parent.getNetworkDialog()); + } + + public void selectHost() { + parent.setState(parent.getLobby()); + } + + public void selectLeave() { + parent.exit(); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/Animation.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/Animation.java new file mode 100644 index 00000000..0d662c08 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/Animation.java @@ -0,0 +1,20 @@ +package pp.mdga.client.gameState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class Animation extends GameStates { + public Animation(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/DetermineStartPlayer.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/DetermineStartPlayer.java new file mode 100644 index 00000000..9bfb9a6e --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/DetermineStartPlayer.java @@ -0,0 +1,21 @@ +package pp.mdga.client.gameState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class DetermineStartPlayer extends GameStates { + + public DetermineStartPlayer(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/GameStates.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/GameStates.java new file mode 100644 index 00000000..05d1c404 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/GameStates.java @@ -0,0 +1,10 @@ +package pp.mdga.client.gameState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public abstract class GameStates extends ClientState { + public GameStates(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/Spectator.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/Spectator.java new file mode 100644 index 00000000..4610a264 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/Spectator.java @@ -0,0 +1,20 @@ +package pp.mdga.client.gameState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class Spectator extends GameStates { + public Spectator(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/Turn.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/Turn.java new file mode 100644 index 00000000..d5ecd747 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/Turn.java @@ -0,0 +1,21 @@ +package pp.mdga.client.gameState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class Turn extends GameStates { + + public Turn(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/Waiting.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/Waiting.java new file mode 100644 index 00000000..2ac53405 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/Waiting.java @@ -0,0 +1,20 @@ +package pp.mdga.client.gameState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class Waiting extends GameStates { + public Waiting(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/DetermineStartPlayerStates.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/DetermineStartPlayerStates.java new file mode 100644 index 00000000..6be7ece5 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/DetermineStartPlayerStates.java @@ -0,0 +1,12 @@ +package pp.mdga.client.gameState.determineStartPlayerState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; +import pp.mdga.client.gameState.GameStates; + +public abstract class DetermineStartPlayerStates extends GameStates { + public DetermineStartPlayerStates(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/RollRankingDice.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/RollRankingDice.java new file mode 100644 index 00000000..774f5f00 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/RollRankingDice.java @@ -0,0 +1,20 @@ +package pp.mdga.client.gameState.determineStartPlayerState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class RollRankingDice extends DetermineStartPlayerStates { + public RollRankingDice(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/WaitRanking.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/WaitRanking.java new file mode 100644 index 00000000..3619c7d9 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/determineStartPlayerState/WaitRanking.java @@ -0,0 +1,21 @@ +package pp.mdga.client.gameState.determineStartPlayerState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; +import pp.mdga.client.gameState.GameStates; + +public class WaitRanking extends GameStates { + public WaitRanking(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/ChoosePiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/ChoosePiece.java new file mode 100644 index 00000000..a161030f --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/ChoosePiece.java @@ -0,0 +1,21 @@ +package pp.mdga.client.gameState.turnState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class ChoosePiece extends TurnStates { + + public ChoosePiece(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/MovePiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/MovePiece.java new file mode 100644 index 00000000..2fb60032 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/MovePiece.java @@ -0,0 +1,20 @@ +package pp.mdga.client.gameState.turnState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class MovePiece extends TurnStates { + public MovePiece(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/PlayPowerCard.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/PlayPowerCard.java new file mode 100644 index 00000000..8d5724f7 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/PlayPowerCard.java @@ -0,0 +1,20 @@ +package pp.mdga.client.gameState.turnState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class PlayPowerCard extends TurnStates { + public PlayPowerCard(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/PowerCard.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/PowerCard.java new file mode 100644 index 00000000..02682c4f --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/PowerCard.java @@ -0,0 +1,21 @@ +package pp.mdga.client.gameState.turnState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class PowerCard extends TurnStates { + + public PowerCard(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/RollDice.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/RollDice.java new file mode 100644 index 00000000..bf0544cd --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/RollDice.java @@ -0,0 +1,20 @@ +package pp.mdga.client.gameState.turnState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class RollDice extends TurnStates { + public RollDice(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/TurnStates.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/TurnStates.java new file mode 100644 index 00000000..6ca2cd4d --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/TurnStates.java @@ -0,0 +1,11 @@ +package pp.mdga.client.gameState.turnState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; +import pp.mdga.client.gameState.GameStates; + +public abstract class TurnStates extends GameStates { + public TurnStates(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/ChoosePieceStates.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/ChoosePieceStates.java new file mode 100644 index 00000000..231b2d37 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/ChoosePieceStates.java @@ -0,0 +1,11 @@ +package pp.mdga.client.gameState.turnState.choosePieceState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; +import pp.mdga.client.gameState.turnState.TurnStates; + +public abstract class ChoosePieceStates extends TurnStates { + public ChoosePieceStates(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/NoPiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/NoPiece.java new file mode 100644 index 00000000..2daf6271 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/NoPiece.java @@ -0,0 +1,20 @@ +package pp.mdga.client.gameState.turnState.choosePieceState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class NoPiece extends ChoosePieceStates { + public NoPiece(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/SelectPiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/SelectPiece.java new file mode 100644 index 00000000..bfac2134 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/SelectPiece.java @@ -0,0 +1,20 @@ +package pp.mdga.client.gameState.turnState.choosePieceState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class SelectPiece extends ChoosePieceStates { + public SelectPiece(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/StartPiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/StartPiece.java new file mode 100644 index 00000000..9a192957 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/StartPiece.java @@ -0,0 +1,20 @@ +package pp.mdga.client.gameState.turnState.choosePieceState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class StartPiece extends ChoosePieceStates { + public StartPiece(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/WaitingPiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/WaitingPiece.java new file mode 100644 index 00000000..77b44da1 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/WaitingPiece.java @@ -0,0 +1,20 @@ +package pp.mdga.client.gameState.turnState.choosePieceState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class WaitingPiece extends ChoosePieceStates { + public WaitingPiece(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/powerCardState/ChoosePowerCard.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/powerCardState/ChoosePowerCard.java new file mode 100644 index 00000000..9638f798 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/powerCardState/ChoosePowerCard.java @@ -0,0 +1,20 @@ +package pp.mdga.client.gameState.turnState.powerCardState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class ChoosePowerCard extends PowerCardStates { + public ChoosePowerCard(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/powerCardState/PowerCardStates.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/powerCardState/PowerCardStates.java new file mode 100644 index 00000000..753e5aa8 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/powerCardState/PowerCardStates.java @@ -0,0 +1,11 @@ +package pp.mdga.client.gameState.turnState.powerCardState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; +import pp.mdga.client.gameState.turnState.TurnStates; + +public abstract class PowerCardStates extends TurnStates { + public PowerCardStates(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/powerCardState/Shield.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/powerCardState/Shield.java new file mode 100644 index 00000000..748e57ad --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/powerCardState/Shield.java @@ -0,0 +1,20 @@ +package pp.mdga.client.gameState.turnState.powerCardState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class Shield extends PowerCardStates { + public Shield(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/powerCardState/Swap.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/powerCardState/Swap.java new file mode 100644 index 00000000..b88c53d3 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/powerCardState/Swap.java @@ -0,0 +1,20 @@ +package pp.mdga.client.gameState.turnState.powerCardState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class Swap extends PowerCardStates { + public Swap(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/settingsState/AudioSettings.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/settingsState/AudioSettings.java new file mode 100644 index 00000000..c8e6f258 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/settingsState/AudioSettings.java @@ -0,0 +1,20 @@ +package pp.mdga.client.settingsState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class AudioSettings extends SettingStates { + public AudioSettings(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/settingsState/MainSettings.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/settingsState/MainSettings.java new file mode 100644 index 00000000..44241156 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/settingsState/MainSettings.java @@ -0,0 +1,20 @@ +package pp.mdga.client.settingsState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class MainSettings extends ClientState { + public MainSettings(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/settingsState/SettingStates.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/settingsState/SettingStates.java new file mode 100644 index 00000000..2b9fb2ff --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/settingsState/SettingStates.java @@ -0,0 +1,10 @@ +package pp.mdga.client.settingsState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public abstract class SettingStates extends ClientState { + public SettingStates(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/settingsState/VideoSettings.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/settingsState/VideoSettings.java new file mode 100644 index 00000000..214ebcb5 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/settingsState/VideoSettings.java @@ -0,0 +1,20 @@ +package pp.mdga.client.settingsState; + +import pp.mdga.client.ClientGameLogic; +import pp.mdga.client.ClientState; + +public class VideoSettings extends SettingStates { + public VideoSettings(ClientState parent, ClientGameLogic logic) { + super(parent, logic); + } + + @Override + public void enter() { + + } + + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/game/Color.java b/Projekte/mdga/model/src/main/java/pp/mdga/game/Color.java index 99b42856..7e7e2344 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/game/Color.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/game/Color.java @@ -1,9 +1,12 @@ package pp.mdga.game; public enum Color { - ARMY, - NAVY, + AIRFORCE, CYBER, - AIRFORCE + NAVY, + ARMY; + public Color next() { + return values()[(ordinal() + 1) % values().length]; + } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java b/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java index 87669c71..e76cffb6 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java @@ -8,29 +8,27 @@ * The game state is updated by the game logic. */ public class Game { + /** + * Constants. + */ + public static final int AMOUNT_OF_TURBO_CARDS = 16; + public static final int AMOUNT_OF_SHIELD_AND_SWAP_CARDS = 12; + + /** + * Attributes. + */ private int diceModifier = 1; private int diceEyes; - private Map players = new EnumMap<>(Color.class); + private Map players = new HashMap<>(); private Statistic gameStatistics; private List drawPile; private List discardPile = new ArrayList<>(); private Board board; private Color activeColor; - private List order; - private final ArrayList playerList = new ArrayList<>(4); - private final ArrayList observers = new ArrayList<>(); - private Player startPlayer; - private Boolean gameHasStarted = false; - private Boolean playerHasDisconnected = false; - private Boolean gameIsInterrupted = false; - private Boolean allRanked = false; - private Boolean movablePieces = false; - - private Boolean allReady = false; - - private static final int AMOUNT_OF_TURBO_CARDS = 16; - private static final int AMOUNT_OF_SHIELD_AND_SWAP_CARDS = 12; + private boolean allRanked = false; + private boolean movablePieces = false; + private boolean allReady = false; /** * This constructor creates a new Game object. @@ -48,185 +46,23 @@ public Game() { board = new Board(); } - /** - * This method returns the dice modifier. - * - * @return the dice modifier - */ - public int getDiceModifier() { - return diceModifier; - } - - /** - * This method sets the dice modifier. - * - * @param diceModifier the new dice modifier - */ - public void setDiceModifier(int diceModifier) { - this.diceModifier = diceModifier; - } - - /** - * This method returns the dice eyes. - * - * @return the dice eyes - */ - public int getDiceEyes() { - return diceEyes; - } - - /** - * This method sets the dice eyes. - * - * @param diceEyes the new dice eyes - */ - public void setDiceEyes(int diceEyes) { - this.diceEyes = diceEyes; - } - - /** - * This method returns the players. - * - * @return the players - */ - public Map getPlayers() { - return players; - } - - /** - * This method sets the players. - * - * @param players the new players - */ - public void setPlayers(Map players) { - this.players = players; - } - - /** - * This method returns the game statistics. - * - * @return the game statistics - */ - public Statistic getGameStatistics() { - return gameStatistics; - } - - /** - * This method sets the game statistics. - * - * @param gameStatistics the new game statistics - */ - public void setGameStatistics(Statistic gameStatistics) { - this.gameStatistics = gameStatistics; - } - - /** - * This method returns the draw pile. - * - * @return the draw pile - */ - public List getDrawPile() { - return drawPile; - } - - /** - * This method sets the draw pile. - * - * @param drawPile the new draw pile - */ - public void setDrawPile(List drawPile) { - this.drawPile = drawPile; - } - - /** - * This method returns the discard pile. - * - * @return the discard pile - */ - public List getDiscardPile() { - return discardPile; - } - - /** - * This method sets the discard pile. - * - * @param discardPile the new discard pile - */ - public void setDiscardPile(List discardPile) { - this.discardPile = discardPile; - } - - /** - * This method returns the board. - * - * @return the board - */ - public Board getBoard() { - return board; - } - - /** - * This method sets the board. - * - * @param board the new board - */ - public void setBoard(Board board) { - this.board = board; - } - - /** - * This method returns the active color. - * - * @return the active color - */ - public Color getActiveColor() { - return activeColor; - } - - /** - * This method sets the active color. - * - * @param activeColor the new active color - */ - public void setActiveColor(Color activeColor) { - this.activeColor = activeColor; - } - - /** - * This method returns the order of the players. - * - * @return the order of the players - */ - public List getOrder() { - return order; - } - - /** - * This method sets the order of the players. - * - * @param order the new order of the players - */ - public void setOrder(List order) { - this.order = order; - } - /** * This method adds a player to the game. * - * @param color the color of the player + * @param id the id of the player * @param player the player to be added */ - public void addPlayer(Color color, Player player) { - players.put(color, player); + public void addPlayer(int id, Player player) { + players.put(id, player); } /** * This method removes a player from the game. * - * @param color the color of the player + * @param id the color of the player */ - public void removePlayer(Color color) { - players.remove(color); + public void removePlayer(int id) { + players.remove(id); } /** @@ -248,49 +84,135 @@ public void removeObserver(Observer observer) { } /** - * This method returns the game has started. * - * @return the game has started + * @param id + * @param active */ - public Boolean getGameHasStarted() { - return gameHasStarted; + public void updatePlayerActiveState(int id, boolean active) { + this.players.get(id).setActive(active); } /** - * This method sets the game has started. + * This method will be used to return the player which has the given id parameter. * - * @param gameHasStarted the new game has started + * @param id as the unique id of a player as an Integer. + * @return the player with the given id as a Player object. */ - public void setGameHasStarted(Boolean gameHasStarted) { - this.gameHasStarted = gameHasStarted; + public Player getPlayerById(int id) { + return this.players.get(id); } /** - * This method returns the player has disconnected. + * This method will be used to the get the player depending on the given color parameter. * - * @return the player has disconnected + * @param color as the color of the player as a Color enumeration. + * @return the player with the given color as a Player object. */ - public Boolean playerHasDisconnected() { - return playerHasDisconnected; + public Player getPlayerByColor(Color color) { + for (Map.Entry entry : this.players.entrySet()) { + if (entry.getValue().getColor() == color) { + return entry.getValue(); + } + } + + return null; } /** - * This method sets the game interruption state. + * This method will be used to return the number of active players of this game. * - * @param gameIsInterrupted the new game interruption state + * @return activePlayers as an Integer. */ - public void setGameIsInterrupted(Boolean gameIsInterrupted) { - this.gameIsInterrupted = gameIsInterrupted; - if (Boolean.FALSE.equals(gameIsInterrupted)) notifyObservers(); + public int getNumberOfActivePlayers() { + int activePlayers = 0; + for (Map.Entry entry : this.players.entrySet()) { + if (entry.getValue().isActive()) { + activePlayers++; + } + } + + return activePlayers; } /** - * This method returns whether the game is interrupted. - * - * @return true if the game is interrupted, false otherwise + * This method notifies the observers. */ - public Boolean gameIsInterrupted() { - return gameIsInterrupted; + public void notifyObservers() { + for (Observer observer : new ArrayList<>(observers)) { + observer.update(); + } + } + + /** + * This method returns the dice modifier. + * + * @return the dice modifier + */ + public int getDiceModifier() { + return diceModifier; + } + + /** + * This method returns the dice eyes. + * + * @return the dice eyes + */ + public int getDiceEyes() { + return diceEyes; + } + + /** + * This method returns the players. + * + * @return the players + */ + public Map getPlayers() { + return players; + } + + /** + * This method returns the game statistics. + * + * @return the game statistics + */ + public Statistic getGameStatistics() { + return gameStatistics; + } + + /** + * This method returns the draw pile. + * + * @return the draw pile + */ + public List getDrawPile() { + return drawPile; + } + + /** + * This method returns the discard pile. + * + * @return the discard pile + */ + public List getDiscardPile() { + return discardPile; + } + + /** + * This method returns the board. + * + * @return the board + */ + public Board getBoard() { + return board; + } + + /** + * This method returns the active color. + * + * @return the active color + */ + public Color getActiveColor() { + return activeColor; } /** @@ -302,6 +224,78 @@ public Boolean getMovablePieces() { return movablePieces; } + /** + * This method sets the dice modifier. + * + * @param diceModifier the new dice modifier + */ + public void setDiceModifier(int diceModifier) { + this.diceModifier = diceModifier; + } + + /** + * This method sets the dice eyes. + * + * @param diceEyes the new dice eyes + */ + public void setDiceEyes(int diceEyes) { + this.diceEyes = diceEyes; + } + + /** + * This method sets the players. + * + * @param players the new players + */ + public void setPlayers(Map players) { + this.players = players; + } + + /** + * This method sets the game statistics. + * + * @param gameStatistics the new game statistics + */ + public void setGameStatistics(Statistic gameStatistics) { + this.gameStatistics = gameStatistics; + } + + /** + * This method sets the draw pile. + * + * @param drawPile the new draw pile + */ + public void setDrawPile(List drawPile) { + this.drawPile = drawPile; + } + + /** + * This method sets the discard pile. + * + * @param discardPile the new discard pile + */ + public void setDiscardPile(List discardPile) { + this.discardPile = discardPile; + } + + /** + * This method sets the board. + * + * @param board the new board + */ + public void setBoard(Board board) { + this.board = board; + } + + /** + * This method sets the active color. + * + * @param activeColor the new active color + */ + public void setActiveColor(Color activeColor) { + this.activeColor = activeColor; + } + /** * This method sets the game interruption state. * @@ -312,16 +306,6 @@ public void setMovablePieces(Boolean movablePieces) { if (Boolean.FALSE.equals(movablePieces)) notifyObservers(); } - /** - * This method sets the player has disconnected. - * - * @param playerHasDisconnected the new player has disconnected - */ - public void setPlayerHasDisconnected(Boolean playerHasDisconnected) { - this.playerHasDisconnected = playerHasDisconnected; - if (Boolean.TRUE.equals(playerHasDisconnected)) notifyObservers(); - } - /** * This method returns whether all players have ranked. * @@ -341,24 +325,6 @@ public void setAllRanked(Boolean allRanked) { if (Boolean.TRUE.equals(allRanked)) notifyObservers(); } - /** - * This method returns the start player. - * - * @return the start player - */ - public Player getStartPlayer() { - return startPlayer; - } - - /** - * This method sets the start player. - * - * @param startPlayer the new start player - */ - public void setStartPlayer(Player startPlayer) { - this.startPlayer = startPlayer; - } - /** * This method returns the all ready state. * @@ -371,53 +337,10 @@ public Boolean allReady() { /** * This method sets the all ready state. * - * @param allReady the new all ready state + * @param allReady the new all-ready state */ public void setAllReady(Boolean allReady) { this.allReady = allReady; if (Boolean.TRUE.equals(allReady)) notifyObservers(); } - - /** - * This method notifies the observers. - */ - public void notifyObservers() { - for (Observer observer : new ArrayList<>(observers)) { - observer.update(); - } - } - - /** - * This method returns the piece through its identifier. - * - * @param identifier the identifier of the piece - * @return the piece - */ - public Piece getPieceThroughIdentifier(String identifier) { - String[] parts = identifier.split("-"); - Color color = Color.valueOf(parts[0]); - int index = Integer.parseInt(parts[1]); - return board.getPlayerData().get(color).getPieces()[index]; - } - - public ArrayList getPlayerList() { - return playerList; - } - - public void addPlayerToList(Player player) { - playerList.add(player); - } - - public void removePlayerFromList(Player player) { - playerList.remove(player); - } - - public Player getPlayerFromList(String name) { - for (Player player : playerList) { - if (player.getName().equals(name)) { - return player; - } - } - return null; - } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/game/Player.java b/Projekte/mdga/model/src/main/java/pp/mdga/game/Player.java index 7371cf7b..c536438f 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/game/Player.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/game/Player.java @@ -6,22 +6,12 @@ * This class will be used to handle general PlayerData */ public class Player { - private String name; private Statistic playerStatistic; private ArrayList handCards; - private final int id; private Color color; private boolean isReady; - - /** - * This constructor constructs a new Player object - */ - public Player(int id) { - this.id = id; - playerStatistic = new Statistic(); - handCards = new ArrayList<>(); - } + private boolean active = true; /** * This constructor constructs a new Player object @@ -32,7 +22,13 @@ public Player(String name) { this.name = name; playerStatistic = new Statistic(); handCards = new ArrayList<>(); - id = 0; + } + + /** + * Constructor. + */ + public Player() { + this(""); } /** @@ -76,7 +72,7 @@ public ArrayList getHandCards() { * * @param card the card to be added to the players hand */ - public void addHandCards(BonusCard card){ + public void addHandCards(BonusCard card) { handCards.add(card); } @@ -94,15 +90,6 @@ public BonusCard removeHandCard(BonusCard card) { return cardToRemove; } - /** - * Returns the id of the connection to the client represented by this player. - * - * @return the id - */ - public int getId() { - return id; - } - /** * This method returns the color of the player * @@ -130,6 +117,15 @@ public boolean isReady() { return isReady; } + /** + * This method will be used to return active attribute of Player class. + * + * @return active as a Boolean. + */ + public boolean isActive() { + return this.active; + } + /** * This method sets the player to ready * @@ -138,4 +134,13 @@ public boolean isReady() { public void setReady(boolean ready) { isReady = ready; } + + /** + * This method will be used to set active attribute of Player class to the given active parameter. + * + * @param active as the new active value as a Boolean. + */ + public void setActive(boolean active) { + this.active = active; + } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/message/client/ClientInterpreter.java b/Projekte/mdga/model/src/main/java/pp/mdga/message/client/ClientInterpreter.java index 6e0565d0..e38ee74f 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/message/client/ClientInterpreter.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/message/client/ClientInterpreter.java @@ -20,14 +20,13 @@ public interface ClientInterpreter { */ void received(DeselectTSK msg, int from); - /** * Processes a received ForceStartGame message. * * @param msg the ForceStartGame message to be processed * @param from the connection ID from which the message was received */ - void received(ForceStartGame msg, int from); + void received(StartGame msg, int from); /** * Processes a received JoinServer message. @@ -61,6 +60,14 @@ public interface ClientInterpreter { */ void received(LobbyReady msg, int from); + /** + * Processes a received Disconnected message. + * + * @param msg the Disconnected message to be processed + * @param from the connection ID from which the message was received + */ + void received(Disconnected msg, int from); + /** * Processes a received RequestBriefing message. * @@ -70,12 +77,12 @@ public interface ClientInterpreter { void received(RequestBriefing msg, int from); /** - * Processes a received RequestDice message. + * Processes a received RequestDie message. * - * @param msg the RequestDice message to be processed + * @param msg the RequestDie message to be processed * @param from the connection ID from which the message was received */ - void received(RequestDice msg, int from); + void received(RequestDie msg, int from); /** * Processes a received RequestMove message. diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/message/client/Disconnected.java b/Projekte/mdga/model/src/main/java/pp/mdga/message/client/Disconnected.java new file mode 100644 index 00000000..0b901ff7 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/message/client/Disconnected.java @@ -0,0 +1,34 @@ +package pp.mdga.message.client; + +import com.jme3.network.serializing.Serializable; + +/** + * + */ +@Serializable +public class Disconnected extends ClientMessage { + public Disconnected() { + super(); + } + + /** + * Returns a string representation of this message. + * + * @return a string representation of this message + */ + @Override + public String toString() { + return "ClientStartGame{}"; + } + + /** + * Accepts a visitor to process this message. + * + * @param interpreter the visitor to process this message + * @param from the connection ID from which the message was received + */ + @Override + public void accept(ClientInterpreter interpreter, int from) { + interpreter.received(this, from); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/message/client/JoinServer.java b/Projekte/mdga/model/src/main/java/pp/mdga/message/client/JoinServer.java index a7192fe9..965fbaea 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/message/client/JoinServer.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/message/client/JoinServer.java @@ -7,11 +7,23 @@ */ @Serializable public class JoinServer extends ClientMessage { + + private final String name; + + /** + * Constructs a new JoinServer instance. + */ + public JoinServer(String name) { + super(); + this.name = name; + } + /** * Constructs a new JoinServer instance. */ public JoinServer() { super(); + name = null; } /** diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/message/client/RequestDice.java b/Projekte/mdga/model/src/main/java/pp/mdga/message/client/RequestDie.java similarity index 82% rename from Projekte/mdga/model/src/main/java/pp/mdga/message/client/RequestDice.java rename to Projekte/mdga/model/src/main/java/pp/mdga/message/client/RequestDie.java index bfd687bd..b50b467e 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/message/client/RequestDice.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/message/client/RequestDie.java @@ -6,11 +6,11 @@ * A message sent by a client to request a die roll. */ @Serializable -public class RequestDice extends ClientMessage { +public class RequestDie extends ClientMessage { /** - * Constructs a new RequestDice instance. + * Constructs a new RequestDie instance. */ - public RequestDice() { + public RequestDie() { super(); } @@ -21,7 +21,7 @@ public RequestDice() { */ @Override public String toString() { - return "RequestDice{}"; + return "RequestDie{}"; } /** diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/message/client/ForceStartGame.java b/Projekte/mdga/model/src/main/java/pp/mdga/message/client/StartGame.java similarity index 76% rename from Projekte/mdga/model/src/main/java/pp/mdga/message/client/ForceStartGame.java rename to Projekte/mdga/model/src/main/java/pp/mdga/message/client/StartGame.java index 2a98e880..c0ce62a5 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/message/client/ForceStartGame.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/message/client/StartGame.java @@ -6,12 +6,21 @@ * A message sent by the host to force start the game when not everyone is ready or not everyone has selected a TSK. */ @Serializable -public class ForceStartGame extends ClientMessage { +public class StartGame extends ClientMessage { + + private final boolean forceStartGame; + + public StartGame(boolean forceStartGame){ + super(); + this.forceStartGame = forceStartGame; + } + /** * Constructs a new ForceStartGame message. */ - public ForceStartGame() { + public StartGame() { super(); + forceStartGame = false; } /** diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/Dice.java b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/Die.java similarity index 86% rename from Projekte/mdga/model/src/main/java/pp/mdga/message/server/Dice.java rename to Projekte/mdga/model/src/main/java/pp/mdga/message/server/Die.java index 6b4bc1ee..607dea38 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/Dice.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/Die.java @@ -8,7 +8,7 @@ * A message sent by the server to the client to inform about the dice roll. */ @Serializable -public class Dice extends ServerMessage { +public class Die extends ServerMessage { /** * The eye of the dice */ @@ -25,7 +25,7 @@ public class Dice extends ServerMessage { * @param diceEye the eye of the dice * @param moveablePieces the pieces that can be moved */ - public Dice(int diceEye, List moveablePieces) { + public Die(int diceEye, List moveablePieces) { super(); this.diceEye = diceEye; this.moveablePieces = moveablePieces; @@ -34,7 +34,7 @@ public Dice(int diceEye, List moveablePieces) { /** * Default constructor for serialization purposes. */ - private Dice() { + private Die() { diceEye = 0; moveablePieces = null; } @@ -45,8 +45,8 @@ private Dice() { * @param diceEye the eye of the dice * @return a new Dice object */ - public static Dice inactivePlayer(int diceEye) { - return new Dice(diceEye, null); + public static Die inactivePlayer(int diceEye) { + return new Die(diceEye, null); } /** @@ -56,8 +56,8 @@ public static Dice inactivePlayer(int diceEye) { * @param moveablePieces the pieces that can be moved * @return a new Dice object */ - public static Dice activePlayer(int diceEye, List moveablePieces) { - return new Dice(diceEye, moveablePieces); + public static Die activePlayer(int diceEye, List moveablePieces) { + return new Die(diceEye, moveablePieces); } /** diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/LobbyPlayerJoin.java b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/LobbyPlayerJoin.java index 9472a150..a04f8639 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/LobbyPlayerJoin.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/LobbyPlayerJoin.java @@ -13,14 +13,20 @@ public class LobbyPlayerJoin extends ServerMessage { */ private final String name; + /** + * The ID of the new Player + */ + private final int id; + /** * Constructs a new LobbyPlayerJoin instance with the specified player name. * * @param name the name of the player joining the lobby */ - public LobbyPlayerJoin(String name) { + public LobbyPlayerJoin(int id, String name) { super(); this.name = name; + this.id = id; } /** @@ -28,6 +34,7 @@ public LobbyPlayerJoin(String name) { */ private LobbyPlayerJoin() { name = null; + id = 0; } /** @@ -39,6 +46,15 @@ public String getName() { return name; } + /** + * Returns the id of the new Player + * + * @return the id of the player + */ + public int getId(){ + return id; + } + /** * Accepts a visitor to process this message. * diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/LobbyPlayerLeave.java b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/LobbyPlayerLeave.java index f68b7054..7cf928f2 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/LobbyPlayerLeave.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/LobbyPlayerLeave.java @@ -11,7 +11,7 @@ public class LobbyPlayerLeave extends ServerMessage { /** * The name of the player leaving the lobby. */ - private final String name; + private final int id; /** * The color associated with the player leaving the lobby. @@ -21,12 +21,12 @@ public class LobbyPlayerLeave extends ServerMessage { /** * Constructs a new LobbyPlayerLeave instance with the specified player name and color. * - * @param name the name of the player leaving the lobby + * @param id the id of the player leaving the lobby * @param color the color associated with the player leaving the lobby */ - public LobbyPlayerLeave(String name, Color color) { + public LobbyPlayerLeave(int id, Color color) { super(); - this.name = name; + this.id = id; this.color = color; } @@ -34,7 +34,7 @@ public LobbyPlayerLeave(String name, Color color) { * Default constructor for serialization purposes. */ private LobbyPlayerLeave() { - name = null; + id = 0; color = null; } @@ -43,8 +43,8 @@ private LobbyPlayerLeave() { * * @return the name of the player leaving the lobby */ - public String getName() { - return name; + public int getId() { + return id; } /** diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/ServerInterpreter.java b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/ServerInterpreter.java index c83abefd..0b7e26b5 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/ServerInterpreter.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/ServerInterpreter.java @@ -34,11 +34,11 @@ public interface ServerInterpreter { void received(CeremonyMessage msg); /** - * Handles a Dice message received from the server. + * Handles a Die message received from the server. * * @param msg the Dice message received */ - void received(Dice msg); + void received(Die msg); /** * Handles a DiceAgain message received from the server. @@ -193,4 +193,11 @@ public interface ServerInterpreter { * @param msg the WaitPiece message received */ void received(WaitPiece msg); + + /** + * Handles a Spectator message received from the server. + * + * @param msg the Spectator message received. + */ + void received(Spectator msg); } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/Spectator.java b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/Spectator.java new file mode 100644 index 00000000..88c92b77 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/Spectator.java @@ -0,0 +1,32 @@ +package pp.mdga.message.server; + +/** + * + */ +public class Spectator extends ServerMessage { + /** + * Construc + */ + public Spectator() { + super(); + } + + /** + * + * @param interpreter the visitor to process this message + */ + @Override + public void accept(ServerInterpreter interpreter) { + interpreter.received(this); + } + + + /** + * + * @return + */ + @Override + public String getInfoTextKey() { + return ""; + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/UpdateTSK.java b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/UpdateTSK.java index 017dd29b..e6cd5e03 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/UpdateTSK.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/UpdateTSK.java @@ -11,7 +11,7 @@ public class UpdateTSK extends ServerMessage { /** * The name associated with the update. */ - private final String name; + private final int id; /** * The color associated with the update. @@ -21,12 +21,12 @@ public class UpdateTSK extends ServerMessage { /** * Constructs a new UpdateTSK instance with the specified name and color. * - * @param name the name associated with the update + * @param id the name associated with the update * @param color the color associated with the update */ - public UpdateTSK(String name, Color color) { + public UpdateTSK(int id, Color color) { super(); - this.name = name; + this.id = id; this.color = color; } @@ -34,7 +34,7 @@ public UpdateTSK(String name, Color color) { * Default constructor for serialization purposes. */ private UpdateTSK() { - this("", null); + this(0, null); } /** @@ -42,8 +42,8 @@ private UpdateTSK() { * * @return the name */ - public String getName() { - return name; + public int getId() { + return id; } /** diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/Ceremony.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/Ceremony.java deleted file mode 100644 index 35c9b51c..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/Ceremony.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class Ceremony extends ServerState { - public Ceremony(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/ChoosePiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/ChoosePiece.java deleted file mode 100644 index a91abdea..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/ChoosePiece.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class ChoosePiece extends Turn { - public ChoosePiece(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/ChoosePieceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/ChoosePieceState.java new file mode 100644 index 00000000..beb19efa --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/ChoosePieceState.java @@ -0,0 +1,7 @@ +package pp.mdga.server; + +public class ChoosePieceState extends TurnState { + public ChoosePieceState(ServerGameLogic logic) { + super(logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/DetermineStartPlayer.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/DetermineStartPlayer.java deleted file mode 100644 index 3686ab3e..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/DetermineStartPlayer.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class DetermineStartPlayer extends Game { - public DetermineStartPlayer(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/DetermineStartPlayerState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/DetermineStartPlayerState.java new file mode 100644 index 00000000..9f041111 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/DetermineStartPlayerState.java @@ -0,0 +1,9 @@ +package pp.mdga.server; + +import pp.mdga.server.automaton.GameState; + +public class DetermineStartPlayerState extends GameState { + public DetermineStartPlayerState(ServerGameLogic logic) { + super(logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/FirstRoll.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/FirstRoll.java deleted file mode 100644 index 18ceb186..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/FirstRoll.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class FirstRoll extends RollDice { - public FirstRoll(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/FirstRollStateState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/FirstRollStateState.java new file mode 100644 index 00000000..b8d91c26 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/FirstRollStateState.java @@ -0,0 +1,7 @@ +package pp.mdga.server; + +public class FirstRollStateState extends RollDiceState { + public FirstRollStateState(ServerGameLogic logic) { + super(logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/Game.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/Game.java deleted file mode 100644 index ad3f5897..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/Game.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class Game extends ServerState { - public Game(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/Interrupt.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/Interrupt.java deleted file mode 100644 index 1f9e0351..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/Interrupt.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class Interrupt extends ServerState { - public Interrupt(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/Lobby.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/Lobby.java deleted file mode 100644 index 02c32338..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/Lobby.java +++ /dev/null @@ -1,14 +0,0 @@ -package pp.mdga.server; - -public class Lobby extends ServerState { - - - /** - * Constructs a server state of the specified game logic. - * - * @param logic the game logic - */ - public Lobby(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/MovePiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/MovePiece.java deleted file mode 100644 index b536b228..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/MovePiece.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class MovePiece extends Turn { - public MovePiece(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/MovePieceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/MovePieceState.java new file mode 100644 index 00000000..27aac8fd --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/MovePieceState.java @@ -0,0 +1,7 @@ +package pp.mdga.server; + +public class MovePieceState extends TurnState { + public MovePieceState(ServerGameLogic logic) { + super(logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/NoPiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/NoPiece.java deleted file mode 100644 index ea3bdfd2..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/NoPiece.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class NoPiece extends ChoosePiece { - public NoPiece(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/NoPieceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/NoPieceState.java new file mode 100644 index 00000000..a4120ecb --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/NoPieceState.java @@ -0,0 +1,7 @@ +package pp.mdga.server; + +public class NoPieceState extends ChoosePieceState { + public NoPieceState(ServerGameLogic logic) { + super(logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/NoTurn.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/NoTurn.java deleted file mode 100644 index 79c77433..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/NoTurn.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class NoTurn extends ChoosePiece { - public NoTurn(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/NoTurnState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/NoTurnState.java new file mode 100644 index 00000000..d96a3e78 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/NoTurnState.java @@ -0,0 +1,7 @@ +package pp.mdga.server; + +public class NoTurnState extends ChoosePieceState { + public NoTurnState(ServerGameLogic logic) { + super(logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/PowerCard.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/PowerCard.java deleted file mode 100644 index a00592b0..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/PowerCard.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class PowerCard extends Turn { - public PowerCard(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/PowerCardState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/PowerCardState.java new file mode 100644 index 00000000..d5db6a11 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/PowerCardState.java @@ -0,0 +1,7 @@ +package pp.mdga.server; + +public class PowerCardState extends TurnState { + public PowerCardState(ServerGameLogic logic) { + super(logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/RollDice.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/RollDice.java deleted file mode 100644 index f93c7599..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/RollDice.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class RollDice extends Turn { - public RollDice(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/RollDiceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/RollDiceState.java new file mode 100644 index 00000000..cf1edf5c --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/RollDiceState.java @@ -0,0 +1,7 @@ +package pp.mdga.server; + +public class RollDiceState extends TurnState { + public RollDiceState(ServerGameLogic logic) { + super(logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/SecondRoll.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/SecondRoll.java deleted file mode 100644 index 140ac1b9..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/SecondRoll.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class SecondRoll extends RollDice { - public SecondRoll(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/SecondRollState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/SecondRollState.java new file mode 100644 index 00000000..f612cd2c --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/SecondRollState.java @@ -0,0 +1,7 @@ +package pp.mdga.server; + +public class SecondRollState extends RollDiceState { + public SecondRollState(ServerGameLogic logic) { + super(logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/SelectPiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/SelectPiece.java deleted file mode 100644 index d022a16c..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/SelectPiece.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class SelectPiece extends ChoosePiece { - public SelectPiece(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/SelectPieceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/SelectPieceState.java new file mode 100644 index 00000000..37a0c8f9 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/SelectPieceState.java @@ -0,0 +1,7 @@ +package pp.mdga.server; + +public class SelectPieceState extends ChoosePieceState { + public SelectPieceState(ServerGameLogic logic) { + super(logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/ServerGameLogic.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/ServerGameLogic.java index bb754961..3ea9735e 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/ServerGameLogic.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/ServerGameLogic.java @@ -2,128 +2,215 @@ import pp.mdga.game.Game; import pp.mdga.message.client.*; -import pp.mdga.message.server.NoTurn; -import pp.mdga.message.server.StartPiece; +import pp.mdga.server.automaton.*; import java.lang.System.Logger; +/** + * + */ public class ServerGameLogic implements ClientInterpreter { + /** + * Constants. + */ private static final Logger LOGGER = System.getLogger(ServerGameLogic.class.getName()); + /** + * + */ private final ServerSender serverSender; - private final Game game; - private final ServerState state; - - private final ServerState lobby = new Lobby(this); - private final ServerState game = new Game(this); - private final ServerState interrupt = new Interrupt(this); - private final ServerState ceremony = new Ceremony(this); - private final ServerState turn = new Turn(this); - private final ServerState determineStartPlayer = new DetermineStartPlayer(this); - private final ServerState rollDice = new RollDice(this); - private final ServerState powerCard = new PowerCard(this); - private final ServerState movePiece = new MovePiece(this); - private final ServerState choosePiece = new ChoosePiece(this); - private final ServerState firstRoll = new FirstRoll(this); - private final ServerState secondRoll = new SecondRoll(this); - private final ServerState thirdRoll = new ThirdRoll(this); - private final ServerState noPiece = new NoPiece(this); - private final ServerState noTurn = new NoTurn(this); - private final ServerState waitingPiece = new WaitingPiece(this); - private final ServerState startPiece = new StartPiece(this); - private final ServerState selectPiece = new SelectPiece(this); + /** + * States + */ + private ServerState currentState; + private final ServerState lobbyState; + private final ServerState gameState; + private final ServerState interruptState; + private final ServerState ceremonyState; + /** + * Constructor. + * + * @param serverSender + * @param game + */ public ServerGameLogic(ServerSender serverSender, Game game) { this.serverSender = serverSender; this.game = game; - this.state = lobby; + this.lobbyState = new LobbyState(this); + this.gameState = new GameState(this); + this.interruptState = new InterruptState(this); + this.ceremonyState = new CeremonyState(this); + this.currentState = this.lobbyState; } @Override public void received(AnimationEnd msg, int from) { - + this.currentState.received(msg, from); } @Override public void received(DeselectTSK msg, int from) { - + this.currentState.received(msg, from); } @Override - public void received(ForceStartGame msg, int from) { - + public void received(StartGame msg, int from) { + this.currentState.received(msg, from); } @Override public void received(JoinServer msg, int from) { - + this.currentState.received(msg, from); } @Override public void received(LeaveGame msg, int from) { - - } - - @Override - public void received(LobbyNotReady msg, int from) { - + this.currentState.received(msg, from); } @Override public void received(LobbyReady msg, int from) { + this.currentState.received(msg, from); + } + @Override + public void received(LobbyNotReady msg, int from) { + this.currentState.received(msg, from); + } + + @Override + public void received(Disconnected msg, int from) { + this.currentState.received(msg, from); } @Override public void received(RequestBriefing msg, int from) { - + this.currentState.received(msg, from); } @Override - public void received(RequestDice msg, int from) { - + public void received(RequestDie msg, int from) { + this.currentState.received(msg, from); } @Override public void received(RequestMove msg, int from) { - + this.currentState.received(msg, from); } @Override public void received(RequestPlayCard msg, int from) { - + this.currentState.received(msg, from); } @Override public void received(SelectCard msg, int from) { - + this.currentState.received(msg, from); } @Override public void received(SelectTSK msg, int from) { - + this.currentState.received(msg, from); } @Override public void received(ForceContinueGame msg, int from) { - + this.currentState.received(msg, from); } @Override public void received(ClientStartGame msg, int from) { - + this.currentState.received(msg, from); } @Override public void received(NoPowerCard msg, int from) { - + this.currentState.received(msg, from); } @Override public void received(SelectedPieces msg, int from) { + this.currentState.received(msg, from); + } + /** + * This method will be used to return serverSender attribute of ServerGameLogic class. + * + * @return serverSender as a ServerSender object. + */ + public ServerSender getServerSender() { + return this.serverSender; + } + + /** + * This method will be used to return game attribute of ServerGameLogic class. + * + * @return game as a Game object. + */ + public Game getGame() { + return this.game; + } + + /** + * This method will be used to return currentState attribute of ServerGameLogic class. + * + * @return currentState as a ServerState object. + */ + public ServerState getCurrentState() { + return this.currentState; + } + + /** + * This method will be used to return lobbyState attribute of ServerGameLogic class. + * + * @return lobbyState as a ServerState object. + */ + public ServerState getLobbyState() { + return this.lobbyState; + } + + /** + * This method will be used to return gameState attribute of ServerGameLogic class. + * + * @return gameState as a ServerState object. + */ + public ServerState getGameState() { + return this.gameState; + } + + /** + * This method will be used to return interruptState attribute of ServerGameLogic class. + * + * @return interruptState as a ServerState object. + */ + public ServerState getInterruptState() { + return this.interruptState; + } + + /** + * This method will be used to return ceremonyState attribute of ServerGameLogic class. + * + * @return ceremonyState as a ServerState object. + */ + public ServerState getCeremonyState() { + return this.ceremonyState; + } + + /** + * This method will be used to set currentState attribute of ServerGameLogic class to the given state parameter. + * In Addition, the currentState will be exited, changed and entered. + * + * @param state as the new currentState attribute as a ServerState object. + */ + public void setCurrentState(ServerState state) { + if (this.currentState != null) { + this.currentState.exit(); + } + this.currentState = state; + this.currentState.enter(); } } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/ServerSender.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/ServerSender.java index 63ce27b1..7d628e6c 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/ServerSender.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/ServerSender.java @@ -13,4 +13,12 @@ public interface ServerSender { * @param message the message */ void send(int id, ServerMessage message); + + /** + * This method will be used to send the given message parameter to all connected players which are saved inside the + * players attribute of Game class. + * + * @param message as the message which will be sent to all players as a ServerMessage. + */ + void broadcast(ServerMessage message); } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/ServerState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/ServerState.java deleted file mode 100644 index 949eb48f..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/ServerState.java +++ /dev/null @@ -1,25 +0,0 @@ -package pp.mdga.server; - -/** - * Defines the behavior and state transitions for the server-side game logic. - * Different states of the game logic implement this interface to handle various game events and actions. - */ -public class ServerState { - /** - * The server logic object. - */ - private final ServerGameLogic logic; - - /** - * Constructs a server state of the specified game logic. - * - * @param logic the game logic - */ - public ServerState(ServerGameLogic logic) { - this.logic = logic; - } - - - - -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/StartPiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/StartPiece.java deleted file mode 100644 index b3d7a2d5..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/StartPiece.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class StartPiece extends ChoosePiece { - public StartPiece(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/StartPieceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/StartPieceState.java new file mode 100644 index 00000000..fff134ce --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/StartPieceState.java @@ -0,0 +1,7 @@ +package pp.mdga.server; + +public class StartPieceState extends ChoosePieceState { + public StartPieceState(ServerGameLogic logic) { + super(logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/ThirdRoll.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/ThirdRoll.java deleted file mode 100644 index cb588fb0..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/ThirdRoll.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class ThirdRoll extends RollDice { - public ThirdRoll(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/ThirdRollState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/ThirdRollState.java new file mode 100644 index 00000000..d5607225 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/ThirdRollState.java @@ -0,0 +1,7 @@ +package pp.mdga.server; + +public class ThirdRollState extends RollDiceState { + public ThirdRollState(ServerGameLogic logic) { + super(logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/Turn.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/Turn.java deleted file mode 100644 index 77c28708..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/Turn.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class Turn extends Game { - public Turn(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/TurnState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/TurnState.java new file mode 100644 index 00000000..cbf0f999 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/TurnState.java @@ -0,0 +1,9 @@ +package pp.mdga.server; + +import pp.mdga.server.automaton.GameState; + +public class TurnState extends GameState { + public TurnState(ServerGameLogic logic) { + super(logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/WaitingPiece.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/WaitingPiece.java deleted file mode 100644 index ed088e8f..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/WaitingPiece.java +++ /dev/null @@ -1,7 +0,0 @@ -package pp.mdga.server; - -public class WaitingPiece extends ChoosePiece { - public WaitingPiece(ServerGameLogic logic) { - super(logic); - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/WaitingPieceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/WaitingPieceState.java new file mode 100644 index 00000000..64095bf1 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/WaitingPieceState.java @@ -0,0 +1,7 @@ +package pp.mdga.server; + +public class WaitingPieceState extends ChoosePieceState { + public WaitingPieceState(ServerGameLogic logic) { + super(logic); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/CeremonyState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/CeremonyState.java new file mode 100644 index 00000000..4182bdb1 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/CeremonyState.java @@ -0,0 +1,33 @@ +package pp.mdga.server.automaton; + +import pp.mdga.server.ServerGameLogic; + +/** + * + */ +public class CeremonyState extends ServerState { + /** + * Constructor. + * + * @param logic as the server game logic which is the automaton as a ServerGameLogic object. + */ + public CeremonyState(ServerGameLogic logic) { + super(logic); + } + + /** + * This method will be used whenever this state will be entered. + */ + @Override + public void enter() { + // ToDo: Close server. + } + + /** + * This method will be used whenever this state will be exited. + */ + @Override + public void exit() { + + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/GameState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/GameState.java new file mode 100644 index 00000000..f49f50d0 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/GameState.java @@ -0,0 +1,60 @@ +package pp.mdga.server.automaton; + +import pp.mdga.message.client.Disconnected; +import pp.mdga.message.client.LeaveGame; +import pp.mdga.message.server.PauseGame; +import pp.mdga.server.ServerGameLogic; + +/** + * + */ +public class GameState extends ServerState { + /** + * Constructor. + * + * @param logic as the server game logic which is the automaton as a ServerGameLogic object. + */ + public GameState(ServerGameLogic logic) { + super(logic); + } + + /** + * This method will be used whenever this state will be entered. + */ + @Override + public void enter() { + + } + + /** + * This method will be used whenever this state will be exited. + */ + @Override + public void exit() { + + } + + /** + * + * @param msg as the message which was sent by the player as a Disconnected object. + * @param from as the client id of the player as an Integer. + */ + @Override + public void received(Disconnected msg, int from) { + this.logic.getServerSender().broadcast(new PauseGame()); + this.logic.setCurrentState(this.logic.getInterruptState()); + } + + /** + * + * @param msg as the message which was sent by the player as a LeaveGame object. + * @param from as the client id of the player as an Integer. + */ + @Override + public void received(LeaveGame msg, int from) { + this.logic.getGame().updatePlayerActiveState(from, false); + if (this.logic.getGame().getNumberOfActivePlayers() == 1) { + this.logic.setCurrentState(this.logic.getCeremonyState()); + } + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/InterruptState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/InterruptState.java new file mode 100644 index 00000000..b0283d83 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/InterruptState.java @@ -0,0 +1,47 @@ +package pp.mdga.server.automaton; + +import com.jme3.system.Timer; +import pp.mdga.message.client.ForceContinueGame; +import pp.mdga.message.server.ResumeGame; +import pp.mdga.server.ServerGameLogic; + +/** + * + */ +public class InterruptState extends ServerState { + /** + * Attributes. + */ + private Timer timer; + + /** + * Constructor. + * + * @param logic as the server game logic which is the automaton as a ServerGameLogic object. + */ + public InterruptState(ServerGameLogic logic) { + super(logic); + } + + /** + * This method will be used whenever this state will be entered. + */ + @Override + public void enter() { + // Create timer and connect signal. + } + + /** + * This method will be used whenever this state will be exited. + */ + @Override + public void exit() { + + } + + @Override + public void received(ForceContinueGame msg, int from) { + this.logic.getServerSender().broadcast(new ResumeGame()); + this.logic.setCurrentState(this.logic.getGameState()); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/LobbyState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/LobbyState.java new file mode 100644 index 00000000..a41075ea --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/LobbyState.java @@ -0,0 +1,88 @@ +package pp.mdga.server.automaton; + +import pp.mdga.message.client.*; +import pp.mdga.message.server.ServerStartGame; +import pp.mdga.message.server.UpdateReady; +import pp.mdga.message.server.UpdateTSK; +import pp.mdga.server.ServerGameLogic; + +/** + * + */ +public class LobbyState extends ServerState { + /** + * Constructs a server state of the specified game logic. + * + * @param logic the game logic + */ + public LobbyState(ServerGameLogic logic) { + super(logic); + } + + /** + * This method will be used whenever this state will be entered. + */ + @Override + public void enter() { + + } + + /** + * This method will be used whenever this state will be exited. + */ + @Override + public void exit() { + + } + + /** + * + * @param msg as the message which was sent by the player as a SelectTSK object. + * @param from as the client id of the player as an Integer. + */ + @Override + public void received(SelectTSK msg, int from) { + this.logic.getServerSender().broadcast(new UpdateTSK(from, msg.getColor())); + } + + /** + * + * @param msg as the message which was sent by the player as a DeselectTSK object. + * @param from as the client id of the player as an Integer. + */ + @Override + public void received(DeselectTSK msg, int from) { + this.logic.getServerSender().broadcast(new UpdateTSK(from, msg.getColor())); + } + + /** + * + * @param msg as the message which was sent by the player as a LobbyReady object. + * @param from as the client id of the player as an Integer. + */ + @Override + public void received(LobbyReady msg, int from) { + this.logic.getServerSender().broadcast(new UpdateReady(from, true)); + } + + /** + * + * @param msg as the message which was sent by the player as a LobbyNotReady object. + * @param from as the client id of the player as an Integer. + */ + @Override + public void received(LobbyNotReady msg, int from) { + this.logic.getServerSender().broadcast(new UpdateReady(from, false)); + } + + /** + * + * @param msg as the message which was sent by the player as a ForceStartGame object. + * @param from as the client id of the player as an Integer. + */ + @Override + public void received(ForceStartGame msg, int from) { + this.logic.getServerSender().broadcast(new ServerStartGame()); + this.logic.setCurrentState(this.logic.getGameState()); + } +} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/ServerState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/ServerState.java new file mode 100644 index 00000000..ce6a99fd --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/ServerState.java @@ -0,0 +1,196 @@ +package pp.mdga.server.automaton; + +import pp.mdga.message.client.*; +import pp.mdga.server.ServerGameLogic; + +/** + * Defines the behavior and state transitions for the server-side game logic. + * Different states of the game logic implement this interface to handle various game events and actions. + */ +public abstract class ServerState { + /** + * The server logic object. + */ + protected final ServerGameLogic logic; + + /** + * Constructs a server state of the specified game logic. + * + * @param logic the game logic + */ + public ServerState(ServerGameLogic logic) { + this.logic = logic; + } + + /** + * This method will be used whenever this state will be entered. + */ + public abstract void enter(); + + /** + * This method will be used whenever this state will be exited. + */ + public abstract void exit(); + + /** + * This method will be called whenever the server received an AnimationEnd message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a AnimationEnd object. + * @param from as the client id of the player as an Integer. + */ + public void received(AnimationEnd msg, int from) {} + + /** + * This method will be called whenever the server received an DeselectTSK message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a DeselectTSK object. + * @param from as the client id of the player as an Integer. + */ + public void received(DeselectTSK msg, int from) {} + + /** + * This method will be called whenever the server received a StartGame message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a StartGame object. + * @param from as the client id of the player as an Integer. + */ + public void received(StartGame msg, int from) {} + + /** + * This method will be called whenever the server received a JoinServer message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a JoinServer object. + * @param from as the client id of the player as an Integer. + */ + public void received(JoinServer msg, int from) {} + + /** + * This method will be called whenever the server received an LeaveGame message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a LeaveGame object. + * @param from as the client id of the player as an Integer. + */ + public void received(LeaveGame msg, int from) {} + + /** + * This method will be called whenever the server received a LobbyReady message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a LobbyReady object. + * @param from as the client id of the player as an Integer. + */ + public void received(LobbyReady msg, int from) {} + + /** + * This method will be called whenever the server received a LobbyNotReady message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a LobbyNotReady object. + * @param from as the client id of the player as an Integer. + */ + public void received(LobbyNotReady msg, int from) {} + + /** + * This method will be called whenever the server received a Disconnected message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a Disconnected object. + * @param from as the client id of the player as an Integer. + */ + public void received(Disconnected msg, int from) {} + + /** + * This method will be called whenever the server received a Briefing message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a Briefing object. + * @param from as the client id of the player as an Integer. + */ + public void received(RequestBriefing msg, int from) {} + + /** + * This method will be called whenever the server received a Die message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a Die object. + * @param from as the client id of the player as an Integer. + */ + public void received(RequestDie msg, int from) {} + + /** + * This method will be called whenever the server received a RequestMove message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a RequestMove object. + * @param from as the client id of the player as an Integer. + */ + public void received(RequestMove msg, int from) {} + + /** + * This method will be called whenever the server received a PlayCard message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a PlayCard object. + * @param from as the client id of the player as an Integer. + */ + public void received(RequestPlayCard msg, int from) {} + + /** + * This method will be called whenever the server received a SelectCard message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a SelectCard object. + * @param from as the client id of the player as an Integer. + */ + public void received(SelectCard msg, int from) {} + + /** + * This method will be called whenever the server received a SelectTSK message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a SelectTSK object. + * @param from as the client id of the player as an Integer. + */ + public void received(SelectTSK msg, int from) {} + + /** + * This method will be called whenever the server received a ForceContinueGame message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a ForceContinueGame object. + * @param from as the client id of the player as an Integer. + */ + public void received(ForceContinueGame msg, int from) {} + + /** + * This method will be called whenever the server received a ClientStartGame message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a ClientStartGame object. + * @param from as the client id of the player as an Integer. + */ + public void received(ClientStartGame msg, int from) {} + + /** + * This method will be called whenever the server received a NoPowerCard message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a NoPowerCard object. + * @param from as the client id of the player as an Integer. + */ + public void received(NoPowerCard msg, int from) {} + + /** + * This method will be called whenever the server received a SelectedPieces message. + * It will also get the client id of the player who send this message. + * + * @param msg as the message which was sent by the player as a SelectedPieces object. + * @param from as the client id of the player as an Integer. + */ + public void received(SelectedPieces msg, int from) {} +} diff --git a/Projekte/mdga/model/src/test/java/pp/mdga/client/Dialog/LobbyTest.java b/Projekte/mdga/model/src/test/java/pp/mdga/client/Dialog/LobbyStateTest.java similarity index 98% rename from Projekte/mdga/model/src/test/java/pp/mdga/client/Dialog/LobbyTest.java rename to Projekte/mdga/model/src/test/java/pp/mdga/client/Dialog/LobbyStateTest.java index fba98391..c8c2344f 100644 --- a/Projekte/mdga/model/src/test/java/pp/mdga/client/Dialog/LobbyTest.java +++ b/Projekte/mdga/model/src/test/java/pp/mdga/client/Dialog/LobbyStateTest.java @@ -6,7 +6,7 @@ /** * this test-class tests the testcases T084-T095 */ -public class LobbyTest { +public class LobbyStateTest { @Before public void setUp() { diff --git a/Projekte/mdga/model/src/test/java/pp/mdga/client/clientState/ClientStateTest.java b/Projekte/mdga/model/src/test/java/pp/mdga/client/clientState/ClientStateTest.java index d48890a0..0293f46d 100644 --- a/Projekte/mdga/model/src/test/java/pp/mdga/client/clientState/ClientStateTest.java +++ b/Projekte/mdga/model/src/test/java/pp/mdga/client/clientState/ClientStateTest.java @@ -4,10 +4,24 @@ import org.junit.Test; import pp.mdga.client.*; import pp.mdga.client.Ceremony; -import pp.mdga.client.StartPiece; +import pp.mdga.client.ceremonyState.Podium; +import pp.mdga.client.ceremonyState.Statistics; +import pp.mdga.client.dialogState.Lobby; +import pp.mdga.client.dialogState.NetworkDialog; +import pp.mdga.client.dialogState.StartDialog; +import pp.mdga.client.gameState.*; +import pp.mdga.client.gameState.turnState.choosePieceState.*; +import pp.mdga.client.gameState.determineStartPlayer.DetermineStartPlayerStateMachine; +import pp.mdga.client.gameState.turnState.*; +import pp.mdga.client.gameState.turnState.powerCardState.ChoosePowerCard; +import pp.mdga.client.gameState.turnState.powerCardState.Shield; +import pp.mdga.client.gameState.turnState.powerCardState.Swap; +import pp.mdga.client.Settings; +import pp.mdga.client.settingsState.AudioSettings; +import pp.mdga.client.settingsState.MainSettings; +import pp.mdga.client.settingsState.VideoSettings; import pp.mdga.game.BonusCard; import pp.mdga.game.Color; -import pp.mdga.game.Game; import pp.mdga.message.client.ClientMessage; import java.util.ArrayList; @@ -104,12 +118,12 @@ public class ClientStateTest { private BonusCard shieldCard; private BonusCard turboCard; - private Game game; + private pp.mdga.game.Game game; @Before public void setUp() { //initialize the game - game = new Game(); + game = new pp.mdga.game.Game(); //initialize the playerID from=1234; diff --git a/Projekte/mdga/model/src/test/java/pp/mdga/server/serverState/ServerStateTest.java b/Projekte/mdga/model/src/test/java/pp/mdga/server/serverState/ServerStateTest.java index bd3c78e2..f410785c 100644 --- a/Projekte/mdga/model/src/test/java/pp/mdga/server/serverState/ServerStateTest.java +++ b/Projekte/mdga/model/src/test/java/pp/mdga/server/serverState/ServerStateTest.java @@ -5,6 +5,11 @@ import pp.mdga.game.Game; import pp.mdga.message.server.ServerMessage; import pp.mdga.server.*; +import pp.mdga.server.automaton.CeremonyState; +import pp.mdga.server.automaton.InterruptState; +import pp.mdga.server.automaton.LobbyState; +import pp.mdga.server.automaton.ServerAutomaton; + import static org.junit.Assert.*; /** @@ -46,25 +51,25 @@ public class ServerStateTest { //TODO private Animation animation; - private Ceremony ceremony; - private ChoosePiece choosePiece; - private DetermineStartPlayer determineStartPlayer; - private FirstRoll firstRoll; + private CeremonyState ceremonyState; + private ChoosePieceState choosePieceState; + private DetermineStartPlayerState determineStartPlayerState; + private FirstRollStateState firstRollState; private GameState gameState; - private Interrupt interrupt; - private Lobby lobby; - private MovePiece movePiece; - private NoPiece noPiece; - private NoTurn noTurn; + private InterruptState interruptState; + private LobbyState lobbyState; + private MovePieceState movePieceState; + private NoPieceState noPiece; + private NoTurnState noTurnState; private PlayPowerCard playPowerCard; - private PowerCard powerCard; - private RollDice rollDice; - private SecondRoll secondRoll; - private SelectPiece selectPiece; - private StartPiece startPiece; - private ThirdRoll thirdRoll; - private Turn turn; - private WaitingPiece waitingPiece; + private PowerCardState powerCardState; + private RollDiceState rollDiceState; + private SecondRollState secondRoll; + private SelectPieceState selectPiece; + private StartPieceState startPiece; + private ThirdRollState thirdRoll; + private TurnState turnState; + private WaitingPieceState waitingPiece; /** * TODO @@ -115,36 +120,36 @@ public void send(int id, ServerMessage msg) { from = 1234; fromHost = 2345; - choosePieceStateMachine = choosePiece.getChoosePieceMachine(); - rollDiceMachine = rollDice.getRollDicemachine(); - turnStateMachine = turn.getTurnStatemachine(); + choosePieceStateMachine = choosePieceState.getChoosePieceMachine(); + rollDiceMachine = rollDiceState.getRollDicemachine(); + turnStateMachine = turnState.getTurnStatemachine(); serverAutomaton = logic.getServerAutomaton(); gameStateMachine = gameState.getGameStatemachine(); - thirdRoll = new ThirdRoll(rollDiceMachine, logic); - secondRoll = new SecondRoll(rollDiceMachine, logic); - firstRoll = new FirstRoll(rollDiceMachine, logic); + thirdRoll = new ThirdRollState(rollDiceMachine, logic); + secondRoll = new SecondRollState(rollDiceMachine, logic); + firstRollState = new FirstRollStateState(rollDiceMachine, logic); - noPiece = new NoPiece(choosePieceStateMachine, logic); - noTurn = new NoTurn(choosePieceStateMachine, logic); - waitingPiece = new WaitingPiece(choosePieceStateMachine, logic); - startPiece = new StartPiece(choosePieceStateMachine, logic); - selectPiece = new SelectPiece(choosePieceStateMachine, logic); + noPiece = new NoPieceState(choosePieceStateMachine, logic); + noTurnState = new NoTurnState(choosePieceStateMachine, logic); + waitingPiece = new WaitingPieceState(choosePieceStateMachine, logic); + startPiece = new StartPieceState(choosePieceStateMachine, logic); + selectPiece = new SelectPieceState(choosePieceStateMachine, logic); - powerCard = new PowerCard(turnStateMachine, logic); + powerCardState = new PowerCardState(turnStateMachine, logic); playPowerCard = new PlayPowerCard(turnStateMachine, logic); - rollDice = new RollDice(turnStateMachine, logic); - choosePiece = new ChoosePiece(turnStateMachine, logic); - movePiece = new MovePiece(turnStateMachine, logic); + rollDiceState = new RollDiceState(turnStateMachine, logic); + choosePieceState = new ChoosePieceState(turnStateMachine, logic); + movePieceState = new MovePieceState(turnStateMachine, logic); - determineStartPlayer = new DetermineStartPlayer(gameStateMachine, logic); - turn = new Turn(gameStateMachine, logic); + determineStartPlayerState = new DetermineStartPlayerState(gameStateMachine, logic); + turnState = new TurnState(gameStateMachine, logic); animation = new Animation(gameStateMachine, logic); - lobby = new Lobby(serverAutomaton, logic); + lobbyState = new LobbyState(serverAutomaton, logic); gameState = new GameState(serverAutomaton, logic); - ceremony = new Ceremony(serverAutomaton, logic); - interrupt = new Interrupt(serverAutomaton, logic, gameState); + ceremonyState = new CeremonyState(serverAutomaton, logic); + interruptState = new InterruptState(serverAutomaton, logic, gameState); } /** @@ -152,7 +157,7 @@ public void send(int id, ServerMessage msg) { */ @Test public void testInitialStateServerState() { - assertTrue(serverAutomaton.getState() instanceof Lobby); + assertTrue(serverAutomaton.getState() instanceof LobbyState); } /** @@ -162,8 +167,8 @@ public void testInitialStateServerState() { @Test public void testLobbyToDetermineStartPlayer() { //sends the server in the lobby-state - serverAutomaton.gotoState(lobby); - assertTrue(serverAutomaton.getState() instanceof Lobby); + serverAutomaton.gotoState(lobbyState); + assertTrue(serverAutomaton.getState() instanceof LobbyState); //sends the startGame message from the Host to the server logic.received(clientStartGame, from); @@ -172,7 +177,7 @@ public void testLobbyToDetermineStartPlayer() { assertTrue(serverAutomaton.getState() instanceof GameState); GameState gameState1 = (GameState) serverAutomaton.getState();//Todo erzeuge state GameStateMachine gameStateMachine1 = gameState.getGameStateMachine(); - assertTrue(gameStateMachine1.getState() instanceof DetermineStartPlayer); + assertTrue(gameStateMachine1.getState() instanceof DetermineStartPlayerState); } /** @@ -181,8 +186,8 @@ public void testLobbyToDetermineStartPlayer() { @Test public void testStayInLobby() { //sends the server in the lobby-state - serverAutomaton.gotoState(lobby); - assertTrue(serverAutomaton.getState() instanceof Lobby); + serverAutomaton.gotoState(lobbyState); + assertTrue(serverAutomaton.getState() instanceof LobbyState); //TODO logic gets all messages logic.received(animationEnd, from); @@ -203,7 +208,7 @@ public void testStayInLobby() { logic.received(selectTSK, from); //tests if Server is still in Lobby - assertTrue(serverAutomaton.getState() instanceof Lobby); + assertTrue(serverAutomaton.getState() instanceof LobbyState); } /** @@ -218,7 +223,7 @@ public void testServerGameSubStatesToInterrupt() { //TODO create interrupt //tests if the server is in the Interrupt-state - assertTrue(serverAutomaton.getState() instanceof Interrupt); + assertTrue(serverAutomaton.getState() instanceof InterruptState); } /** @@ -233,7 +238,7 @@ public void testServerGameToCeremony() { //Todo game is finished //tests if the server is in the Ceremony-state - assertTrue(serverAutomaton.getState() instanceof Ceremony); + assertTrue(serverAutomaton.getState() instanceof CeremonyState); } /** @@ -242,8 +247,8 @@ public void testServerGameToCeremony() { @Test public void testInterruptToGameContinue() { //sends the server in the Interrupt-State - serverAutomaton.gotoState(interrupt); - assertTrue(serverAutomaton.getState() instanceof Interrupt); + serverAutomaton.gotoState(interruptState); + assertTrue(serverAutomaton.getState() instanceof InterruptState); //sends the continue-message to the server logic.received(forceContinueGame, from); @@ -258,8 +263,8 @@ public void testInterruptToGameContinue() { @Test public void testInterruptToGameReconnect() { //sends the server in the Interrupt-State - serverAutomaton.gotoState(interrupt); - assertTrue(serverAutomaton.getState() instanceof Interrupt); + serverAutomaton.gotoState(interruptState); + assertTrue(serverAutomaton.getState() instanceof InterruptState); //todo implement the timer @@ -273,8 +278,8 @@ public void testInterruptToGameReconnect() { @Test public void testInterruptToGameTimer() { //sends the server in the Interrupt-State - serverAutomaton.gotoState(interrupt); - assertTrue(serverAutomaton.getState() instanceof Interrupt); + serverAutomaton.gotoState(interruptState); + assertTrue(serverAutomaton.getState() instanceof InterruptState); //Todo implement the timer @@ -301,14 +306,14 @@ public void testDetermineStartPlayerToDetermineStartPlayer1() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in DSP-state - gameStateMachine.gotoState(determineStartPlayer); - assertTrue(gameStateMachine.getState() instanceof DetermineStartPlayer); + gameStateMachine.gotoState(determineStartPlayerState); + assertTrue(gameStateMachine.getState() instanceof DetermineStartPlayerState); //TODO sends messages to the server //tests if the server is still in DSP-state assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof DetermineStartPlayer); + assertTrue(gameStateMachine.getState() instanceof DetermineStartPlayerState); } /** @@ -321,14 +326,14 @@ public void testDetermineStartPlayerToDetermineStartPlayer2() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in DSP-state - gameStateMachine.gotoState(determineStartPlayer); - assertTrue(gameStateMachine.getState() instanceof DetermineStartPlayer); + gameStateMachine.gotoState(determineStartPlayerState); + assertTrue(gameStateMachine.getState() instanceof DetermineStartPlayerState); //TODO sends messages 2 RequestDiceMessage, die gleich geränkt werden to the server //tests if the server is still in DSP-state assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof DetermineStartPlayer); + assertTrue(gameStateMachine.getState() instanceof DetermineStartPlayerState); } /** @@ -341,8 +346,8 @@ public void testDetermineStartPlayerToAnimation() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in DSP-state - gameStateMachine.gotoState(determineStartPlayer); - assertTrue(gameStateMachine.getState() instanceof DetermineStartPlayer); + gameStateMachine.gotoState(determineStartPlayerState); + assertTrue(gameStateMachine.getState() instanceof DetermineStartPlayerState); //TODO sends messages 2 RequestDiceMessage, die ungleich geränkt werden, sodass der server weitergeht @@ -375,10 +380,10 @@ public void testAnimationToPowerCard() { //tests if the server is in the PowerCard-state assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - Turn turn1 = (Turn) gameStateMachine.getState(); - TurnStateMachine turnStateMachine = (TurnStateMachine) turn1.getTurnStateMachine(); - assertTrue(turnStateMachine.getState() instanceof PowerCard); + assertTrue(gameStateMachine.getState() instanceof TurnState); + TurnState turnState1 = (TurnState) gameStateMachine.getState(); + TurnStateMachine turnStateMachine = (TurnStateMachine) turnState1.getTurnStateMachine(); + assertTrue(turnStateMachine.getState() instanceof PowerCardState); } /** @@ -392,8 +397,8 @@ public void testTurnToAnimation() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //todo set the turn finished and there are still two players left @@ -413,13 +418,13 @@ public void testTurnToGameEndState() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //todo set the turn finished and there is only one players left //tests if the server is in the end-state of game, Ceremony - assertTrue(serverAutomaton.getState() instanceof Ceremony); + assertTrue(serverAutomaton.getState() instanceof CeremonyState); } /** @@ -433,19 +438,19 @@ public void testStayInPowerCard() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the TurnStateMachine in PowerCard - turnStateMachine.gotoState(powerCard); - assertTrue(turnStateMachine.getState() instanceof PowerCard); + turnStateMachine.gotoState(powerCardState); + assertTrue(turnStateMachine.getState() instanceof PowerCardState); //Todo: receive messages which dont lead to a state change //tests if the server is in PowerCard assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - assertTrue(turnStateMachine.getState() instanceof PowerCard); + assertTrue(gameStateMachine.getState() instanceof TurnState); + assertTrue(turnStateMachine.getState() instanceof PowerCardState); } /** @@ -459,18 +464,18 @@ public void testPowerCardToPlayPowerCard() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the TurnStateMachine in PowerCard - turnStateMachine.gotoState(powerCard); - assertTrue(turnStateMachine.getState() instanceof PowerCard); + turnStateMachine.gotoState(powerCardState); + assertTrue(turnStateMachine.getState() instanceof PowerCardState); //todo //tests if the server is in PlayPowerCard assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); + assertTrue(gameStateMachine.getState() instanceof TurnState); assertTrue(turnStateMachine.getState() instanceof PlayPowerCard); } @@ -485,8 +490,8 @@ public void testPlayPowerCardToRollDice() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the TurnStateMachine in PowerCard turnStateMachine.gotoState(playPowerCard); @@ -495,7 +500,7 @@ public void testPlayPowerCardToRollDice() { //receive first AnimationEndMessage from the host logic.received(animationEnd, fromHost); assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); + assertTrue(gameStateMachine.getState() instanceof TurnState); assertTrue(turnStateMachine.getState() instanceof PlayPowerCard); //receive second AnimationEndMessage @@ -503,11 +508,11 @@ public void testPlayPowerCardToRollDice() { //tests if the server is in RollDice and in FirstRoll assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - assertTrue(turnStateMachine.getState() instanceof RollDice); - RollDice rollDice = (RollDice) turnStateMachine.getState(); - RollDiceMachine rollDiceMachine1 = rollDice.getRollDiceStateMachine(); - assertTrue(rollDiceMachine1.getState() instanceof FirstRoll); + assertTrue(gameStateMachine.getState() instanceof TurnState); + assertTrue(turnStateMachine.getState() instanceof RollDiceState); + RollDiceState rollDiceState = (RollDiceState) turnStateMachine.getState(); + RollDiceMachine rollDiceMachine1 = rollDiceState.getRollDiceStateMachine(); + assertTrue(rollDiceMachine1.getState() instanceof FirstRollStateState); } /** @@ -521,18 +526,18 @@ public void testChoosePieceToMovePiece() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the TurnStateMachine in ChoosePiece - turnStateMachine.gotoState(choosePiece); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); + turnStateMachine.gotoState(choosePieceState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); //Todo ??? assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - assertTrue(turnStateMachine.getState() instanceof MovePiece); + assertTrue(gameStateMachine.getState() instanceof TurnState); + assertTrue(turnStateMachine.getState() instanceof MovePieceState); } /** @@ -546,12 +551,12 @@ public void testMovePieceToTurnEndState() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the TurnStateMachine in MovePiece - turnStateMachine.gotoState(movePiece); - assertTrue(turnStateMachine.getState() instanceof MovePiece); + turnStateMachine.gotoState(movePieceState); + assertTrue(turnStateMachine.getState() instanceof MovePieceState); //Todo no 6 was rolled, so the server looks, if there are 2 or less player are still in the game //TODO @@ -569,21 +574,21 @@ public void testMovePieceToFirstRoll() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the TurnStateMachine in MovePiece - turnStateMachine.gotoState(movePiece); - assertTrue(turnStateMachine.getState() instanceof MovePiece); + turnStateMachine.gotoState(movePieceState); + assertTrue(turnStateMachine.getState() instanceof MovePieceState); //Todo the player rolled a 6 and the player is not finished assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - assertTrue(turnStateMachine.getState() instanceof RollDice); - RollDice rollDice = (RollDice) turnStateMachine.getState(); - RollDiceMachine rollDiceMachine1 = rollDice.getRollDiceStateMachine(); - assertTrue(rollDiceMachine1.getState() instanceof FirstRoll); + assertTrue(gameStateMachine.getState() instanceof TurnState); + assertTrue(turnStateMachine.getState() instanceof RollDiceState); + RollDiceState rollDiceState = (RollDiceState) turnStateMachine.getState(); + RollDiceMachine rollDiceMachine1 = rollDiceState.getRollDiceStateMachine(); + assertTrue(rollDiceMachine1.getState() instanceof FirstRollStateState); } /** @@ -597,26 +602,26 @@ public void testFirstRollToRollDiceEndState() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the TurnStateMachine in RollDice - turnStateMachine.gotoState(rollDice); - assertTrue(turnStateMachine.getState() instanceof RollDice); + turnStateMachine.gotoState(rollDiceState); + assertTrue(turnStateMachine.getState() instanceof RollDiceState); //sends the RollDiceMachine in FirstRoll - rollDiceMachine.gotoState(firstRoll); - assertTrue(rollDiceMachine.getState() instanceof FirstRoll); + rollDiceMachine.gotoState(firstRollState); + assertTrue(rollDiceMachine.getState() instanceof FirstRollStateState); //TODO 2 Möglichkeiten //tests if the server is in NoPiece of ChoosePiece assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); - ChoosePiece choosePiece1 = (ChoosePiece) turnStateMachine.getState(); - ChoosePieceStateMachine choosePieceStateMachine = choosePiece1.getChoosePieceStateMachine(); - assertTrue(choosePieceStateMachine.getState() instanceof NoPiece); + assertTrue(gameStateMachine.getState() instanceof TurnState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); + ChoosePieceState choosePieceState1 = (ChoosePieceState) turnStateMachine.getState(); + ChoosePieceStateMachine choosePieceStateMachine = choosePieceState1.getChoosePieceStateMachine(); + assertTrue(choosePieceStateMachine.getState() instanceof NoPieceState); } /** @@ -630,24 +635,24 @@ public void testFirstRollToSecondRoll() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the TurnStateMachine in RollDice - turnStateMachine.gotoState(rollDice); - assertTrue(turnStateMachine.getState() instanceof RollDice); + turnStateMachine.gotoState(rollDiceState); + assertTrue(turnStateMachine.getState() instanceof RollDiceState); //sends the RollDiceMachine in FirstRoll - rollDiceMachine.gotoState(firstRoll); - assertTrue(rollDiceMachine.getState() instanceof FirstRoll); + rollDiceMachine.gotoState(firstRollState); + assertTrue(rollDiceMachine.getState() instanceof FirstRollStateState); //Todo player has no figures to move and had no 6 //tests if the server is in the SecondRoll assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - assertTrue(turnStateMachine.getState() instanceof RollDice); - assertTrue(rollDiceMachine.getState() instanceof SecondRoll); + assertTrue(gameStateMachine.getState() instanceof TurnState); + assertTrue(turnStateMachine.getState() instanceof RollDiceState); + assertTrue(rollDiceMachine.getState() instanceof SecondRollState); } /** @@ -661,26 +666,26 @@ public void testSecondRollToRollDiceEndState() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the TurnStateMachine in RollDice - turnStateMachine.gotoState(rollDice); - assertTrue(turnStateMachine.getState() instanceof RollDice); + turnStateMachine.gotoState(rollDiceState); + assertTrue(turnStateMachine.getState() instanceof RollDiceState); //sends the RollDiceMachine in SecondRoll rollDiceMachine.gotoState(secondRoll); - assertTrue(rollDiceMachine.getState() instanceof SecondRoll); + assertTrue(rollDiceMachine.getState() instanceof SecondRollState); //Todo //tests if the server is in NoPiece of ChoosePiece assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); - ChoosePiece choosePiece1 = (ChoosePiece) turnStateMachine.getState(); - ChoosePieceStateMachine choosePieceStateMachine = choosePiece1.getChoosePieceStateMachine(); - assertTrue(choosePieceStateMachine.getState() instanceof NoPiece); + assertTrue(gameStateMachine.getState() instanceof TurnState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); + ChoosePieceState choosePieceState1 = (ChoosePieceState) turnStateMachine.getState(); + ChoosePieceStateMachine choosePieceStateMachine = choosePieceState1.getChoosePieceStateMachine(); + assertTrue(choosePieceStateMachine.getState() instanceof NoPieceState); } /** @@ -694,24 +699,24 @@ public void testSecondRollToThirdRoll() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the TurnStateMachine in RollDice - turnStateMachine.gotoState(rollDice); - assertTrue(turnStateMachine.getState() instanceof RollDice); + turnStateMachine.gotoState(rollDiceState); + assertTrue(turnStateMachine.getState() instanceof RollDiceState); //sends the RollDiceMachine in SecondRoll rollDiceMachine.gotoState(secondRoll); - assertTrue(rollDiceMachine.getState() instanceof SecondRoll); + assertTrue(rollDiceMachine.getState() instanceof SecondRollState); //Todo player has no figures to move and had no 6 //tests if the server is in the ThirdRoll assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - assertTrue(turnStateMachine.getState() instanceof RollDice); - assertTrue(rollDiceMachine.getState() instanceof ThirdRoll); + assertTrue(gameStateMachine.getState() instanceof TurnState); + assertTrue(turnStateMachine.getState() instanceof RollDiceState); + assertTrue(rollDiceMachine.getState() instanceof ThirdRollState); } /** @@ -725,26 +730,26 @@ public void testThirdRollToRollDiceEndState() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the TurnStateMachine in RollDice - turnStateMachine.gotoState(rollDice); - assertTrue(turnStateMachine.getState() instanceof RollDice); + turnStateMachine.gotoState(rollDiceState); + assertTrue(turnStateMachine.getState() instanceof RollDiceState); //sends the RollDiceMachine in ThirdRoll rollDiceMachine.gotoState(thirdRoll); - assertTrue(rollDiceMachine.getState() instanceof ThirdRoll); + assertTrue(rollDiceMachine.getState() instanceof ThirdRollState); //Todo //tests if the server is in NoPiece of ChoosePiece assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); - ChoosePiece choosePiece1 = (ChoosePiece) turnStateMachine.getState(); - ChoosePieceStateMachine choosePieceStateMachine = choosePiece1.getChoosePieceStateMachine(); - assertTrue(choosePieceStateMachine.getState() instanceof NoPiece); + assertTrue(gameStateMachine.getState() instanceof TurnState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); + ChoosePieceState choosePieceState1 = (ChoosePieceState) turnStateMachine.getState(); + ChoosePieceStateMachine choosePieceStateMachine = choosePieceState1.getChoosePieceStateMachine(); + assertTrue(choosePieceStateMachine.getState() instanceof NoPieceState); } /** @@ -758,16 +763,16 @@ public void testThirdRollToTurnEndState() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the gameStateMachine in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the TurnStateMachine in RollDice - turnStateMachine.gotoState(rollDice); - assertTrue(turnStateMachine.getState() instanceof RollDice); + turnStateMachine.gotoState(rollDiceState); + assertTrue(turnStateMachine.getState() instanceof RollDiceState); //sends the RollDiceMachine in ThirdRoll rollDiceMachine.gotoState(thirdRoll); - assertTrue(rollDiceMachine.getState() instanceof ThirdRoll); + assertTrue(rollDiceMachine.getState() instanceof ThirdRollState); //Todo } @@ -783,24 +788,24 @@ public void testNoPieceToWaitingPiece() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the server in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the server in ChoosePiece - turnStateMachine.gotoState(choosePiece); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); + turnStateMachine.gotoState(choosePieceState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); //sends the server in NoPiece choosePieceStateMachine.gotoState(noPiece); - assertTrue(choosePieceStateMachine.getState() instanceof NoPiece); + assertTrue(choosePieceStateMachine.getState() instanceof NoPieceState); //TODO //tests if the server is in WaitingPiece assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); - assertTrue(choosePieceStateMachine.getState() instanceof WaitingPiece); + assertTrue(gameStateMachine.getState() instanceof TurnState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); + assertTrue(choosePieceStateMachine.getState() instanceof WaitingPieceState); } @@ -815,24 +820,24 @@ public void testNoPieceToNoTurn() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the server in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the server in ChoosePiece - turnStateMachine.gotoState(choosePiece); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); + turnStateMachine.gotoState(choosePieceState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); //sends the server in NoPiece choosePieceStateMachine.gotoState(noPiece); - assertTrue(choosePieceStateMachine.getState() instanceof NoPiece); + assertTrue(choosePieceStateMachine.getState() instanceof NoPieceState); //TODO //tests if the server is in NoTurn assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); - assertTrue(choosePieceStateMachine.getState() instanceof NoTurn); + assertTrue(gameStateMachine.getState() instanceof TurnState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); + assertTrue(choosePieceStateMachine.getState() instanceof NoTurnState); } /** @@ -846,16 +851,16 @@ public void testNoTurnToTurnEndState() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the server in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the server in ChoosePiece - turnStateMachine.gotoState(choosePiece); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); + turnStateMachine.gotoState(choosePieceState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); //sends the server in NoTurn - choosePieceStateMachine.gotoState(noTurn); - assertTrue(choosePieceStateMachine.getState() instanceof NoTurn); + choosePieceStateMachine.gotoState(noTurnState); + assertTrue(choosePieceStateMachine.getState() instanceof NoTurnState); //TODO } @@ -871,24 +876,24 @@ public void testStayInWaitingPiece() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the server in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the server in ChoosePiece - turnStateMachine.gotoState(choosePiece); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); + turnStateMachine.gotoState(choosePieceState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); //sends the server in WaitingPiece choosePieceStateMachine.gotoState(waitingPiece); - assertTrue(choosePieceStateMachine.getState() instanceof WaitingPiece); + assertTrue(choosePieceStateMachine.getState() instanceof WaitingPieceState); //TODO //tests if the server is in WaitingPiece assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); - assertTrue(choosePieceStateMachine.getState() instanceof WaitingPiece); + assertTrue(gameStateMachine.getState() instanceof TurnState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); + assertTrue(choosePieceStateMachine.getState() instanceof WaitingPieceState); } /** @@ -902,16 +907,16 @@ public void testWaitingPieceToMovePiece() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the server in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the server in ChoosePiece - turnStateMachine.gotoState(choosePiece); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); + turnStateMachine.gotoState(choosePieceState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); //sends the server in WaitingPiece choosePieceStateMachine.gotoState(waitingPiece); - assertTrue(choosePieceStateMachine.getState() instanceof WaitingPiece); + assertTrue(choosePieceStateMachine.getState() instanceof WaitingPieceState); //TODO } @@ -927,24 +932,24 @@ public void testNoPieceToSelectPiece() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the server in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the server in ChoosePiece - turnStateMachine.gotoState(choosePiece); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); + turnStateMachine.gotoState(choosePieceState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); //sends the server in NoPiece choosePieceStateMachine.gotoState(noPiece); - assertTrue(choosePieceStateMachine.getState() instanceof NoPiece); + assertTrue(choosePieceStateMachine.getState() instanceof NoPieceState); //TODO //tests if the server is in SelectPiece assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); - assertTrue(choosePieceStateMachine.getState() instanceof SelectPiece); + assertTrue(gameStateMachine.getState() instanceof TurnState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); + assertTrue(choosePieceStateMachine.getState() instanceof SelectPieceState); } /** @@ -958,24 +963,24 @@ public void testNoPieceToStartPiece() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the server in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the server in ChoosePiece - turnStateMachine.gotoState(choosePiece); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); + turnStateMachine.gotoState(choosePieceState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); //sends the server in NoPiece choosePieceStateMachine.gotoState(noPiece); - assertTrue(choosePieceStateMachine.getState() instanceof NoPiece); + assertTrue(choosePieceStateMachine.getState() instanceof NoPieceState); //TODO //tests if the server is in StartPiece assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); - assertTrue(choosePieceStateMachine.getState() instanceof StartPiece); + assertTrue(gameStateMachine.getState() instanceof TurnState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); + assertTrue(choosePieceStateMachine.getState() instanceof StartPieceState); } /** @@ -989,24 +994,24 @@ public void testStayInSelectPiece() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the server in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the server in ChoosePiece - turnStateMachine.gotoState(choosePiece); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); + turnStateMachine.gotoState(choosePieceState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); //sends the server in SelectPiece choosePieceStateMachine.gotoState(selectPiece); - assertTrue(choosePieceStateMachine.getState() instanceof SelectPiece); + assertTrue(choosePieceStateMachine.getState() instanceof SelectPieceState); //TODO //tests if the server is in SelectPiece assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); - assertTrue(choosePieceStateMachine.getState() instanceof SelectPiece); + assertTrue(gameStateMachine.getState() instanceof TurnState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); + assertTrue(choosePieceStateMachine.getState() instanceof SelectPieceState); } /** @@ -1020,16 +1025,16 @@ public void testSelectPieceToMovePiece() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the server in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the server in ChoosePiece - turnStateMachine.gotoState(choosePiece); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); + turnStateMachine.gotoState(choosePieceState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); //sends the server in SelectPiece choosePieceStateMachine.gotoState(selectPiece); - assertTrue(choosePieceStateMachine.getState() instanceof SelectPiece); + assertTrue(choosePieceStateMachine.getState() instanceof SelectPieceState); //TODO } @@ -1045,24 +1050,24 @@ public void testStayInStartPiece() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the server in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the server in ChoosePiece - turnStateMachine.gotoState(choosePiece); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); + turnStateMachine.gotoState(choosePieceState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); //sends the server in StartPiece choosePieceStateMachine.gotoState(startPiece); - assertTrue(choosePieceStateMachine.getState() instanceof StartPiece); + assertTrue(choosePieceStateMachine.getState() instanceof StartPieceState); //TODO //tests if the server is in StartPiece assertTrue(serverAutomaton.getState() instanceof GameState); - assertTrue(gameStateMachine.getState() instanceof Turn); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); - assertTrue(choosePieceStateMachine.getState() instanceof StartPiece); + assertTrue(gameStateMachine.getState() instanceof TurnState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); + assertTrue(choosePieceStateMachine.getState() instanceof StartPieceState); } /** @@ -1076,16 +1081,16 @@ public void testStartPieceToMovePiece() { assertTrue(serverAutomaton.getState() instanceof GameState); //sends the server in Turn - gameStateMachine.gotoState(turn); - assertTrue(gameStateMachine.getState() instanceof Turn); + gameStateMachine.gotoState(turnState); + assertTrue(gameStateMachine.getState() instanceof TurnState); //sends the server in ChoosePiece - turnStateMachine.gotoState(choosePiece); - assertTrue(turnStateMachine.getState() instanceof ChoosePiece); + turnStateMachine.gotoState(choosePieceState); + assertTrue(turnStateMachine.getState() instanceof ChoosePieceState); //sends the server in StartPiece choosePieceStateMachine.gotoState(startPiece); - assertTrue(choosePieceStateMachine.getState() instanceof StartPiece); + assertTrue(choosePieceStateMachine.getState() instanceof StartPieceState); //TODO }