merge dev into test #28
@@ -139,10 +139,14 @@ private void tryJoin() {
|
||||
joinDialog.setPortNumber(port);
|
||||
// Validate the IP address
|
||||
if (isValidIpAddress(ip)) {
|
||||
joinDialog.setHostname(ip);
|
||||
app.getModelSynchronize().setName(startDialog.getName());
|
||||
app.getModelSynchronize().setJoin(ip, port);
|
||||
joinDialog.setHostname(ip);
|
||||
joinDialog.connectToServer();
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException ignored) {
|
||||
}
|
||||
app.getModelSynchronize().setJoin(ip, port);
|
||||
return;
|
||||
}
|
||||
} catch (IllegalArgumentException e) {
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package pp.mdga.client;
|
||||
|
||||
import pp.mdga.client.ceremonystate.CeremonyStates;
|
||||
import pp.mdga.client.ceremonystate.PodiumState;
|
||||
import pp.mdga.client.ceremonystate.StatisticsState;
|
||||
import pp.mdga.client.ceremonyState.CeremonyStates;
|
||||
import pp.mdga.client.ceremonyState.PodiumState;
|
||||
import pp.mdga.client.ceremonyState.StatisticsState;
|
||||
import pp.mdga.notification.CeremonyNotification;
|
||||
|
||||
public class CeremonyState extends ClientState {
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package pp.mdga.client;
|
||||
|
||||
import pp.mdga.client.dialogstate.DialogStates;
|
||||
import pp.mdga.client.dialogstate.LobbyState;
|
||||
import pp.mdga.client.dialogstate.NetworkDialogState;
|
||||
import pp.mdga.client.dialogstate.StartDialogState;
|
||||
import pp.mdga.client.dialogState.DialogStates;
|
||||
import pp.mdga.client.dialogState.LobbyState;
|
||||
import pp.mdga.client.dialogState.NetworkDialogState;
|
||||
import pp.mdga.client.dialogState.StartDialogState;
|
||||
import pp.mdga.game.Color;
|
||||
import pp.mdga.message.server.*;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package pp.mdga.client;
|
||||
|
||||
import pp.mdga.client.gamestate.*;
|
||||
import pp.mdga.client.gameState.*;
|
||||
import pp.mdga.game.BonusCard;
|
||||
import pp.mdga.game.Piece;
|
||||
import pp.mdga.message.server.*;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package pp.mdga.client;
|
||||
|
||||
import pp.mdga.client.settingsstate.AudioSettingsState;
|
||||
import pp.mdga.client.settingsstate.MainSettingsState;
|
||||
import pp.mdga.client.settingsstate.SettingStates;
|
||||
import pp.mdga.client.settingsstate.VideoSettingsState;
|
||||
import pp.mdga.client.settingsState.AudioSettingsState;
|
||||
import pp.mdga.client.settingsState.MainSettingsState;
|
||||
import pp.mdga.client.settingsState.SettingStates;
|
||||
import pp.mdga.client.settingsState.VideoSettingsState;
|
||||
|
||||
public class SettingsState extends ClientState {
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package pp.mdga.client.ceremonyState;
|
||||
|
||||
import pp.mdga.client.CeremonyState;
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
|
||||
public class PodiumState extends CeremonyStates {
|
||||
|
||||
private final CeremonyState parent;
|
||||
|
||||
public PodiumState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (CeremonyState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectNext(){
|
||||
parent.setState(parent.getStatisticsState());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package pp.mdga.client.ceremonyState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
|
||||
public class StatisticsState extends CeremonyStates {
|
||||
public StatisticsState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectNext(){
|
||||
logic.setState(logic.getDialogs());
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
package pp.mdga.client.dialogState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.DialogsState;
|
||||
import pp.mdga.game.Color;
|
||||
import pp.mdga.game.Player;
|
||||
import pp.mdga.message.client.*;
|
||||
import pp.mdga.message.server.LobbyPlayerJoinedMessage;
|
||||
import pp.mdga.message.server.LobbyPlayerLeaveMessage;
|
||||
import pp.mdga.message.server.ServerStartGameMessage;
|
||||
import pp.mdga.message.server.UpdateReadyMessage;
|
||||
import pp.mdga.message.server.UpdateTSKMessage;
|
||||
import pp.mdga.notification.LobbyReadyNotification;
|
||||
import pp.mdga.notification.TskSelectNotification;
|
||||
import pp.mdga.notification.TskUnselectNotification;
|
||||
|
||||
public class LobbyState extends DialogStates {
|
||||
|
||||
private final DialogsState parent;
|
||||
|
||||
public LobbyState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (DialogsState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
logic.send(new JoinedLobbyMessage(parent.getOwnPlayerName()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectLeave() {
|
||||
parent.setState(parent.getStartDialog());
|
||||
logic.send(new LeaveGameMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectTSK(Color color) {
|
||||
logic.send(new SelectTSKMessage(color));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deselectTSK(Color color) {
|
||||
logic.send(new DeselectTSKMessage(color));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectReady() {
|
||||
logic.send(new LobbyReadyMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectUnready(){
|
||||
logic.send(new LobbyNotReadyMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectStart(){
|
||||
if(logic.isHost() && logic.getGame().allReady()){
|
||||
logic.send(new StartGameMessage(false));
|
||||
} else if(logic.isHost() && !logic.getGame().allReady()) {
|
||||
logic.send(new StartGameMessage(true));
|
||||
} else {
|
||||
LOGGER.log(System.Logger.Level.ERROR, "You are not the host");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(ServerStartGameMessage msg){
|
||||
parent.startGame();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(LobbyPlayerJoinedMessage msg){
|
||||
logic.addNotification(new TskSelectNotification(msg.getPlayer().getColor(), msg.getPlayer().getName(), parent.getOwnPlayerId()== msg.getId()));
|
||||
logic.getGame().getPlayers().put(msg.getId(), msg.getPlayer());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(UpdateTSKMessage msg){
|
||||
logic.addNotification(new TskUnselectNotification(logic.getGame().getPlayers().get(msg.getId()).getColor()));
|
||||
logic.getGame().getPlayers().get(msg.getId()).setColor(msg.getColor());
|
||||
logic.addNotification(new TskSelectNotification(msg.getColor(), logic.getGame().getPlayers().get(msg.getId()).getName(), parent.getOwnPlayerId()== msg.getId()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(LobbyPlayerLeaveMessage msg){
|
||||
logic.addNotification(new TskUnselectNotification(logic.getGame().getPlayers().get(msg.getId()).getColor()));
|
||||
logic.getGame().getPlayers().remove(msg.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(UpdateReadyMessage msg){
|
||||
logic.addNotification(new LobbyReadyNotification(logic.getGame().getPlayers().get(msg.getPlayerId()).getColor(), msg.isReady()));
|
||||
logic.getGame().getPlayers().get(msg.getPlayerId()).setReady(msg.isReady());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package pp.mdga.client.dialogState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.DialogsState;
|
||||
import pp.mdga.notification.LobbyDialogNotification;
|
||||
|
||||
public class NetworkDialogState extends DialogStates {
|
||||
|
||||
private final DialogsState parent;
|
||||
|
||||
public NetworkDialogState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (DialogsState) 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() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectLeave() {
|
||||
parent.setState(parent.getStartDialog());
|
||||
}
|
||||
|
||||
public void selectJoin(String IP) {
|
||||
parent.setState(parent.getLobby());
|
||||
logic.addNotification(new LobbyDialogNotification());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package pp.mdga.client.dialogState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.DialogsState;
|
||||
|
||||
public class StartDialogState extends DialogStates {
|
||||
|
||||
private final DialogsState parent;
|
||||
|
||||
public StartDialogState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (DialogsState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectJoin(String name) {
|
||||
parent.setOwnPlayerName(name);
|
||||
parent.setState(parent.getNetworkDialog());
|
||||
logic.setHost(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectHost(String name) {
|
||||
parent.setOwnPlayerName(name);
|
||||
parent.setState(parent.getLobby());
|
||||
logic.setHost(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setName(String name) {
|
||||
parent.setState(parent.getNetworkDialog());
|
||||
parent.setOwnPlayerName(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectLeave() {
|
||||
parent.exit();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package pp.mdga.client.gameState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.GameState;
|
||||
import pp.mdga.message.client.AnimationEndMessage;
|
||||
|
||||
public class AnimationState extends GameStates {
|
||||
|
||||
private final GameState parent;
|
||||
|
||||
public AnimationState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (GameState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectAnimationEnd(){
|
||||
logic.send(new AnimationEndMessage());
|
||||
parent.setState(parent.getWaiting());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
package pp.mdga.client.gameState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.GameState;
|
||||
import pp.mdga.client.gameState.determineStartPlayerState.DetermineStartPlayerStates;
|
||||
import pp.mdga.client.gameState.determineStartPlayerState.RollRankingDiceState;
|
||||
import pp.mdga.client.gameState.determineStartPlayerState.WaitRankingState;
|
||||
import pp.mdga.message.server.DieMessage;
|
||||
import pp.mdga.message.server.RankingResponseMessage;
|
||||
import pp.mdga.message.server.RankingRollAgainMessage;
|
||||
|
||||
public class DetermineStartPlayerState extends GameStates {
|
||||
|
||||
private final GameState parent;
|
||||
private DetermineStartPlayerStates state;
|
||||
|
||||
private final RollRankingDiceState rollRankingDiceState = new RollRankingDiceState(this, logic);
|
||||
private final WaitRankingState waitRankingState = new WaitRankingState(this, logic);
|
||||
|
||||
public DetermineStartPlayerState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (GameState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
state = rollRankingDiceState;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
state = null;
|
||||
}
|
||||
|
||||
public void setState(DetermineStartPlayerStates state) {
|
||||
this.state.exit();
|
||||
state.enter();
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectDice() {
|
||||
state.selectDice();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(DieMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(RankingRollAgainMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(RankingResponseMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
public RollRankingDiceState getRollRankingDice() {
|
||||
return rollRankingDiceState;
|
||||
}
|
||||
|
||||
public WaitRankingState getWaitRanking() {
|
||||
return waitRankingState;
|
||||
}
|
||||
|
||||
public DetermineStartPlayerStates getState(){
|
||||
return state;
|
||||
}
|
||||
|
||||
public GameState getParent() {
|
||||
return parent;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package pp.mdga.client.gameState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.game.BonusCard;
|
||||
import pp.mdga.game.Piece;
|
||||
import pp.mdga.game.PieceState;
|
||||
import pp.mdga.game.ShieldState;
|
||||
import pp.mdga.message.server.PlayCardMessage;
|
||||
import pp.mdga.notification.ShieldActiveNotification;
|
||||
import pp.mdga.notification.ShieldSuppressedNotification;
|
||||
import pp.mdga.notification.SwapPieceNotification;
|
||||
import pp.mdga.notification.ThrowPieceNotification;
|
||||
|
||||
public abstract class GameStates extends ClientState {
|
||||
public GameStates(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
}
|
||||
|
||||
protected void handlePowerCard(PlayCardMessage msg){
|
||||
if (msg.getCard().equals(BonusCard.TURBO)){
|
||||
logic.getGame().setDiceModifier(msg.getDiceModifier());
|
||||
} else if (msg.getCard().equals(BonusCard.SHIELD)){
|
||||
if (logic.getGame().getBoard().getInfieldIndexOfPiece(logic.getGame().getPieceThroughUUID(msg.getPieceIdentifier())) % 10 != 0) {
|
||||
logic.getGame().getPieceThroughUUID(msg.getPieceIdentifier()).setShield(ShieldState.SUPPRESSED);
|
||||
logic.addNotification(new ShieldSuppressedNotification(logic.getGame().getPieceThroughUUID(msg.getPieceIdentifier()).getUuid()));
|
||||
} else {
|
||||
logic.getGame().getPieceThroughUUID(msg.getPieceIdentifier()).setShield(ShieldState.ACTIVE);
|
||||
logic.addNotification(new ShieldActiveNotification(logic.getGame().getPieceThroughUUID(msg.getPieceIdentifier()).getUuid()));
|
||||
}
|
||||
} else {
|
||||
Piece ownPiece = logic.getGame().getPieceThroughUUID(msg.getPieceIdentifier());
|
||||
Piece enemyPiece = logic.getGame().getPieceThroughUUID(msg.getPieceIdentifierEnemy());
|
||||
int ownIndex = logic.getGame().getBoard().getInfieldIndexOfPiece(ownPiece);
|
||||
logic.addNotification(new SwapPieceNotification(ownPiece.getUuid(), enemyPiece.getUuid()));
|
||||
logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(enemyPiece)].setOccupant(ownPiece);
|
||||
logic.getGame().getBoard().getInfield()[ownIndex].setOccupant(enemyPiece);
|
||||
}
|
||||
logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).removeHandCard(msg.getCard());
|
||||
logic.getGame().getDiscardPile().add(msg.getCard());
|
||||
}
|
||||
|
||||
protected void throwPiece(Piece piece){
|
||||
logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(piece)].clearOccupant();
|
||||
logic.getGame().getBoard().getPlayerData().get(piece.getColor()).addWaitingPiece(piece);
|
||||
logic.addNotification(new ThrowPieceNotification(piece.getUuid()));
|
||||
logic.getGame().getPlayerByColor(piece.getColor()).getPlayerStatistic().increasePiecesBeingThrown();
|
||||
logic.getGame().getGameStatistics().increasePiecesBeingThrown();
|
||||
piece.setState(PieceState.WAITING);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
package pp.mdga.client.gameState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.GameState;
|
||||
import pp.mdga.game.Piece;
|
||||
import pp.mdga.message.server.*;
|
||||
import pp.mdga.notification.*;
|
||||
|
||||
public class SpectatorState extends GameStates {
|
||||
|
||||
private final GameState parent;
|
||||
|
||||
public SpectatorState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (GameState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(CeremonyMessage msg){
|
||||
logic.setState(logic.getCeremony());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(DieMessage msg){
|
||||
logic.getGame().setDiceEyes(msg.getDiceEye());
|
||||
// logic.addNotification(new RollDiceNotification(logic.getGame().getActiveColor(), logic.getGame().getDiceEyes(), logic.getGame().getDiceEyes() * logic.getGame().getDiceModifier()));
|
||||
if(msg.getDiceEye() == 6){
|
||||
logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increaseDiced6();
|
||||
logic.getGame().getGameStatistics().increaseDiced6();
|
||||
}
|
||||
parent.setState(parent.getAnimation());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(PlayCardMessage msg){
|
||||
logic.addNotification(new PlayCardNotification(logic.getGame().getActiveColor(), msg.getCard()));
|
||||
handlePowerCard(msg);
|
||||
logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increaseCardsPlayed();
|
||||
logic.getGame().getGameStatistics().increaseCardsPlayed();
|
||||
parent.setState(parent.getAnimation());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(ActivePlayerMessage msg){
|
||||
logic.addNotification(new ActivePlayerNotification(msg.getColor()));
|
||||
logic.getGame().setActiveColor(msg.getColor());
|
||||
parent.setState(parent.getAnimation());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(MoveMessage msg){
|
||||
Piece pieceToMove = logic.getGame().getPieceThroughUUID(msg.getIdentifier());
|
||||
if (msg.isHomeMove()){
|
||||
logic.addNotification(new HomeMoveNotification(pieceToMove.getUuid(), msg.getTargetIndex()));
|
||||
logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(pieceToMove)].clearOccupant();
|
||||
logic.getGame().getBoard().getPlayerData().get(pieceToMove.getColor()).setPieceInHome(msg.getTargetIndex(), pieceToMove);
|
||||
} else {
|
||||
if (logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].isOccupied()) {
|
||||
throwPiece(logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].getOccupant());
|
||||
logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increasePiecesThrown();
|
||||
logic.getGame().getGameStatistics().increasePiecesThrown();
|
||||
}
|
||||
if(logic.getGame().getBoard().getPlayerData().get(pieceToMove.getColor()).getStartNodeIndex() == logic.getGame().getBoard().getInfieldIndexOfPiece(pieceToMove)){
|
||||
logic.addNotification(new MovePieceNotification(pieceToMove.getUuid(), msg.getTargetIndex(), true));
|
||||
logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].setOccupant(pieceToMove);
|
||||
} else {
|
||||
logic.addNotification(new MovePieceNotification(pieceToMove.getUuid(), logic.getGame().getBoard().getInfieldIndexOfPiece(pieceToMove), msg.getTargetIndex()));
|
||||
logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].setOccupant(pieceToMove);
|
||||
}
|
||||
}
|
||||
parent.setState(parent.getAnimation());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,155 @@
|
||||
package pp.mdga.client.gameState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.GameState;
|
||||
import pp.mdga.client.gameState.turnState.ChoosePieceState;
|
||||
import pp.mdga.client.gameState.turnState.MovePieceState;
|
||||
import pp.mdga.client.gameState.turnState.PlayPowerCardState;
|
||||
import pp.mdga.client.gameState.turnState.PowerCardState;
|
||||
import pp.mdga.client.gameState.turnState.RollDiceState;
|
||||
import pp.mdga.client.gameState.turnState.TurnStates;
|
||||
import pp.mdga.game.BonusCard;
|
||||
import pp.mdga.game.Piece;
|
||||
import pp.mdga.message.server.*;
|
||||
|
||||
public class TurnState extends GameStates {
|
||||
|
||||
private GameState parent;
|
||||
private TurnStates state;
|
||||
|
||||
private final ChoosePieceState choosePieceState = new ChoosePieceState(this, logic);
|
||||
private final MovePieceState movePieceState = new MovePieceState(this, logic);
|
||||
private final PlayPowerCardState playPowerCardState = new PlayPowerCardState(this, logic);
|
||||
private final PowerCardState powerCardState = new PowerCardState(this, logic);
|
||||
private final RollDiceState rollDiceState = new RollDiceState(this, logic);
|
||||
|
||||
public TurnState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (GameState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
state = powerCardState;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
state = null;
|
||||
}
|
||||
|
||||
public void setState(TurnStates state){
|
||||
this.state.exit();
|
||||
state.enter();
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectPiece(Piece piece){
|
||||
state.selectPiece(piece);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectCard(BonusCard card){
|
||||
state.selectCard(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectAnimationEnd(){
|
||||
state.selectAnimationEnd();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(SelectPieceMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(WaitPieceMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(StartPieceMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(NoTurnMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(MoveMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(CeremonyMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(EndOfTurnMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(SpectatorMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(DiceAgainMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(PossibleCardMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(PlayCardMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(DiceNowMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(DieMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
public ChoosePieceState getChoosePiece() {
|
||||
return choosePieceState;
|
||||
}
|
||||
|
||||
public MovePieceState getMovePiece() {
|
||||
return movePieceState;
|
||||
}
|
||||
|
||||
public PlayPowerCardState getPlayPowerCard() {
|
||||
return playPowerCardState;
|
||||
}
|
||||
|
||||
public PowerCardState getPowerCard() {
|
||||
return powerCardState;
|
||||
}
|
||||
|
||||
public RollDiceState getRollDice() {
|
||||
return rollDiceState;
|
||||
}
|
||||
|
||||
public GameState getParent(){
|
||||
return parent;
|
||||
}
|
||||
|
||||
public TurnStates getState(){
|
||||
return state;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package pp.mdga.client.gameState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.GameState;
|
||||
import pp.mdga.game.*;
|
||||
import pp.mdga.message.server.*;
|
||||
import pp.mdga.notification.*;
|
||||
|
||||
public class WaitingState extends GameStates {
|
||||
|
||||
private final GameState parent;
|
||||
|
||||
public WaitingState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (GameState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(CeremonyMessage msg){
|
||||
logic.setState(logic.getCeremony());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(DiceNowMessage msg){
|
||||
logic.addNotification(new DiceNowNotification());
|
||||
parent.setState(parent.getTurn());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(DieMessage msg){
|
||||
logic.getGame().setDiceEyes(msg.getDiceEye());
|
||||
// logic.addNotification(new RollDiceNotification(logic.getGame().getActiveColor(), logic.getGame().getDiceEyes(), logic.getGame().getDiceEyes() * logic.getGame().getDiceModifier()));
|
||||
if(msg.getDiceEye() == 6){
|
||||
logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increaseDiced6();
|
||||
logic.getGame().getGameStatistics().increaseDiced6();
|
||||
}
|
||||
parent.setState(parent.getAnimation());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(PlayCardMessage msg){
|
||||
logic.addNotification(new PlayCardNotification(logic.getGame().getActiveColor(), msg.getCard()));
|
||||
handlePowerCard(msg);
|
||||
logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increaseCardsPlayed();
|
||||
logic.getGame().getGameStatistics().increaseCardsPlayed();
|
||||
parent.setState(parent.getAnimation());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(ActivePlayerMessage msg){
|
||||
logic.addNotification(new ActivePlayerNotification(msg.getColor()));
|
||||
logic.getGame().setActiveColor(msg.getColor());
|
||||
parent.setState(parent.getAnimation());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(MoveMessage msg){
|
||||
Piece pieceToMove = logic.getGame().getPieceThroughUUID(msg.getIdentifier());
|
||||
if (msg.isHomeMove()){
|
||||
logic.addNotification(new HomeMoveNotification(pieceToMove.getUuid(), msg.getTargetIndex()));
|
||||
logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(pieceToMove)].clearOccupant();
|
||||
logic.getGame().getBoard().getPlayerData().get(pieceToMove.getColor()).setPieceInHome(msg.getTargetIndex(), pieceToMove);
|
||||
for(int i = msg.getTargetIndex() + 1; i < 4; i++){
|
||||
if(!logic.getGame().getBoard().getPlayerData().get(pieceToMove.getColor()).getHomeNodes()[i].isOccupied()){
|
||||
pieceToMove.setState(PieceState.HOME);
|
||||
break;
|
||||
}
|
||||
pieceToMove.setState(PieceState.HOMEFINISHED);
|
||||
}
|
||||
} else {
|
||||
if (logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].isOccupied()) {
|
||||
throwPiece(logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].getOccupant());
|
||||
logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increasePiecesThrown();
|
||||
logic.getGame().getGameStatistics().increasePiecesThrown();
|
||||
}
|
||||
if(logic.getGame().getBoard().getPlayerData().get(pieceToMove.getColor()).getStartNodeIndex() == logic.getGame().getBoard().getInfieldIndexOfPiece(pieceToMove)){
|
||||
logic.addNotification(new MovePieceNotification(pieceToMove.getUuid(), msg.getTargetIndex(), true));
|
||||
logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].setOccupant(pieceToMove);
|
||||
} else {
|
||||
logic.addNotification(new MovePieceNotification(pieceToMove.getUuid(), logic.getGame().getBoard().getInfieldIndexOfPiece(pieceToMove), msg.getTargetIndex()));
|
||||
logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].setOccupant(pieceToMove);
|
||||
}
|
||||
}
|
||||
parent.setState(parent.getAnimation());
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package pp.mdga.client.gameState.determineStartPlayerState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.gameState.DetermineStartPlayerState;
|
||||
import pp.mdga.message.client.RequestDieMessage;
|
||||
import pp.mdga.message.server.DieMessage;
|
||||
import pp.mdga.notification.DiceNowNotification;
|
||||
|
||||
public class RollRankingDiceState extends DetermineStartPlayerStates {
|
||||
|
||||
private final DetermineStartPlayerState parent;
|
||||
|
||||
public RollRankingDiceState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (DetermineStartPlayerState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
logic.addNotification(new DiceNowNotification());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectDice(){
|
||||
logic.send(new RequestDieMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(DieMessage msg){
|
||||
parent.setState(parent.getWaitRanking());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package pp.mdga.client.gameState.determineStartPlayerState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.gameState.DetermineStartPlayerState;
|
||||
import pp.mdga.message.server.RankingResponseMessage;
|
||||
import pp.mdga.message.server.RankingRollAgainMessage;
|
||||
import pp.mdga.notification.ActivePlayerNotification;
|
||||
|
||||
public class WaitRankingState extends DetermineStartPlayerStates {
|
||||
|
||||
private final DetermineStartPlayerState parent;
|
||||
|
||||
public WaitRankingState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (DetermineStartPlayerState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(RankingRollAgainMessage msg){
|
||||
parent.setState(parent.getRollRankingDice());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(RankingResponseMessage msg){
|
||||
logic.addNotification(new ActivePlayerNotification(logic.getGame().getPlayers().get(msg.getStartingPlayerId()).getColor()));
|
||||
logic.getGame().setActiveColor(logic.getGame().getPlayers().get(msg.getStartingPlayerId()).getColor());
|
||||
parent.getParent().setState(parent.getParent().getWaiting());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package pp.mdga.client.gameState.turnState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.gameState.TurnState;
|
||||
import pp.mdga.client.gameState.turnState.choosePieceState.*;
|
||||
import pp.mdga.game.Piece;
|
||||
import pp.mdga.message.server.*;
|
||||
|
||||
public class ChoosePieceState extends TurnStates {
|
||||
|
||||
private TurnState parent;
|
||||
private ChoosePieceStates currentState;
|
||||
|
||||
private final NoPieceState noPieceState = new NoPieceState(this, logic);
|
||||
private final SelectPieceState selectPieceState = new SelectPieceState(this, logic);
|
||||
private final StartPieceState startPieceState = new StartPieceState(this, logic);
|
||||
private final WaitingPieceState waitingPieceState = new WaitingPieceState(this, logic);
|
||||
|
||||
public ChoosePieceState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (TurnState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
currentState = noPieceState;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
currentState.exit();
|
||||
currentState= null;
|
||||
}
|
||||
|
||||
public void setState(ChoosePieceStates state){
|
||||
currentState.exit();
|
||||
currentState = state;
|
||||
currentState.enter();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectPiece(Piece piece){
|
||||
currentState.selectPiece(piece);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(SelectPieceMessage msg){
|
||||
currentState.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(WaitPieceMessage msg){
|
||||
currentState.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(StartPieceMessage msg){
|
||||
currentState.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(NoTurnMessage msg){
|
||||
currentState.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(MoveMessage msg){
|
||||
currentState.received(msg);
|
||||
}
|
||||
|
||||
public NoPieceState getNoPiece(){
|
||||
return noPieceState;
|
||||
}
|
||||
|
||||
public SelectPieceState getSelectPiece(){
|
||||
return selectPieceState;
|
||||
}
|
||||
|
||||
public StartPieceState getStartPiece(){
|
||||
return startPieceState;
|
||||
}
|
||||
|
||||
public WaitingPieceState getWaitingPiece(){
|
||||
return waitingPieceState;
|
||||
}
|
||||
|
||||
public ChoosePieceStates getState(){
|
||||
return currentState;
|
||||
}
|
||||
|
||||
public TurnState getParent(){
|
||||
return parent;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package pp.mdga.client.gameState.turnState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.gameState.TurnState;
|
||||
import pp.mdga.message.client.AnimationEndMessage;
|
||||
import pp.mdga.message.server.*;
|
||||
|
||||
public class MovePieceState extends TurnStates {
|
||||
|
||||
private final TurnState parent;
|
||||
|
||||
public MovePieceState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (TurnState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectAnimationEnd(){
|
||||
logic.send(new AnimationEndMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(CeremonyMessage msg){
|
||||
logic.setState(logic.getCeremony());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(EndOfTurnMessage msg){
|
||||
parent.getParent().setState(parent.getParent().getWaiting());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(SpectatorMessage msg){
|
||||
parent.getParent().setState(parent.getParent().getSpectator());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(DiceAgainMessage msg){
|
||||
parent.setState(parent.getRollDice());
|
||||
}
|
||||
|
||||
public TurnState getParent() {
|
||||
return parent;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package pp.mdga.client.gameState.turnState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.gameState.TurnState;
|
||||
import pp.mdga.message.client.AnimationEndMessage;
|
||||
import pp.mdga.message.server.PlayCardMessage;
|
||||
import pp.mdga.notification.PlayCardNotification;
|
||||
|
||||
public class PlayPowerCardState extends TurnStates {
|
||||
|
||||
private final TurnState parent;
|
||||
|
||||
private PlayCardMessage playCardMessage;
|
||||
|
||||
public PlayPowerCardState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (TurnState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
logic.addNotification(new PlayCardNotification(logic.getGame().getActiveColor() , playCardMessage.getCard()));
|
||||
handlePowerCard(playCardMessage);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
playCardMessage = null;
|
||||
}
|
||||
|
||||
public void setPlayCard(PlayCardMessage playCardMessage) {
|
||||
this.playCardMessage = playCardMessage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectAnimationEnd(){
|
||||
parent.setState(parent.getRollDice());
|
||||
logic.send(new AnimationEndMessage());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package pp.mdga.client.gameState.turnState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.gameState.TurnState;
|
||||
import pp.mdga.client.gameState.turnState.powerCardState.ChoosePowerCardState;
|
||||
import pp.mdga.client.gameState.turnState.powerCardState.PowerCardStates;
|
||||
import pp.mdga.client.gameState.turnState.powerCardState.ShieldState;
|
||||
import pp.mdga.client.gameState.turnState.powerCardState.SwapState;
|
||||
import pp.mdga.game.BonusCard;
|
||||
import pp.mdga.game.Piece;
|
||||
import pp.mdga.message.server.DiceNowMessage;
|
||||
import pp.mdga.message.server.PlayCardMessage;
|
||||
import pp.mdga.message.server.PossibleCardMessage;
|
||||
import pp.mdga.message.server.PossiblePieceMessage;
|
||||
|
||||
public class PowerCardState extends TurnStates {
|
||||
|
||||
private final TurnState parent;
|
||||
private PowerCardStates state;
|
||||
|
||||
private final ChoosePowerCardState choosePowerCardState = new ChoosePowerCardState(this, logic);
|
||||
private final ShieldState shieldState = new ShieldState(this, logic);
|
||||
private final SwapState swapState = new SwapState(this, logic);
|
||||
|
||||
|
||||
public PowerCardState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (TurnState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
state = choosePowerCardState;
|
||||
}
|
||||
|
||||
public void exit() {
|
||||
state.exit();
|
||||
state = null;
|
||||
}
|
||||
|
||||
public void setState(PowerCardStates state) {
|
||||
this.state.exit();
|
||||
state.enter();
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(PossibleCardMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(PlayCardMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(DiceNowMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(PossiblePieceMessage msg){
|
||||
state.received(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectCard(BonusCard card) {
|
||||
state.selectCard(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectPiece(Piece piece) {
|
||||
state.selectPiece(piece);
|
||||
}
|
||||
|
||||
public ChoosePowerCardState getChoosePowerCard() {
|
||||
return choosePowerCardState;
|
||||
}
|
||||
|
||||
public ShieldState getShield() {
|
||||
return shieldState;
|
||||
}
|
||||
|
||||
public SwapState getSwap() {
|
||||
return swapState;
|
||||
}
|
||||
|
||||
public TurnState getParent() {
|
||||
return parent;
|
||||
}
|
||||
|
||||
public PowerCardStates getState() {
|
||||
return state;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package pp.mdga.client.gameState.turnState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.gameState.TurnState;
|
||||
import pp.mdga.message.server.DieMessage;
|
||||
import pp.mdga.message.server.NoTurnMessage;
|
||||
|
||||
public class RollDiceState extends TurnStates {
|
||||
|
||||
private final TurnState parent;
|
||||
|
||||
public RollDiceState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (TurnState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
logic.getGame().setDiceModifier(1);
|
||||
}
|
||||
|
||||
public TurnState getParent() {
|
||||
return parent;
|
||||
}
|
||||
|
||||
public void received(DieMessage msg){
|
||||
logic.getGame().setDiceEyes(msg.getDiceEye());
|
||||
parent.setState(parent.getChoosePiece());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(NoTurnMessage msg){
|
||||
parent.getParent().setState(parent.getParent().getWaiting());
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package pp.mdga.client.gameState.turnState.choosePieceState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.gameState.turnState.ChoosePieceState;
|
||||
import pp.mdga.game.Piece;
|
||||
import pp.mdga.message.server.*;
|
||||
import pp.mdga.message.server.StartPieceMessage;
|
||||
import pp.mdga.notification.MovePieceNotification;
|
||||
import pp.mdga.notification.SelectableMoveNotification;
|
||||
import pp.mdga.notification.WaitMoveNotification;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class NoPieceState extends ChoosePieceStates {
|
||||
|
||||
private final ChoosePieceState parent;
|
||||
|
||||
public NoPieceState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (ChoosePieceState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(SelectPieceMessage msg) {
|
||||
parent.setState(parent.getSelectPiece());
|
||||
ArrayList<Piece> pieces = msg.getPieces().stream().map(piece -> logic.getGame().getPieceThroughUUID(piece)).collect(Collectors.toCollection(ArrayList::new));
|
||||
parent.getSelectPiece().setPossiblePieces(pieces);
|
||||
logic.addNotification(new SelectableMoveNotification(pieces.stream().map(Piece::getUuid).collect(Collectors.toCollection(ArrayList::new)), msg.getTargetIndex(), msg.getIsHomeMove()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(WaitPieceMessage msg){
|
||||
logic.addNotification(new WaitMoveNotification(msg.getPieceID()));
|
||||
parent.setState(parent.getWaitingPiece());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(StartPieceMessage msg){
|
||||
Piece piece = logic.getGame().getPieceThroughUUID(msg.getPieceIdentifier());
|
||||
List<UUID> listPiece = new ArrayList<>();
|
||||
List<Integer> listIndex = new ArrayList<>();
|
||||
List<Boolean> homeMove = new ArrayList<>();
|
||||
listPiece.add(piece.getUuid());
|
||||
listIndex.add(msg.getTargetIndex());
|
||||
homeMove.add(false);
|
||||
logic.addNotification(new SelectableMoveNotification(listPiece, listIndex, homeMove));
|
||||
parent.setState(parent.getStartPiece());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(NoTurnMessage msg){
|
||||
parent.getParent().getParent().setState(parent.getParent().getParent().getWaiting());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package pp.mdga.client.gameState.turnState.choosePieceState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.gameState.turnState.ChoosePieceState;
|
||||
import pp.mdga.game.Piece;
|
||||
import pp.mdga.message.client.SelectedPiecesMessage;
|
||||
import pp.mdga.message.server.MoveMessage;
|
||||
import pp.mdga.notification.HomeMoveNotification;
|
||||
import pp.mdga.notification.MovePieceNotification;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class SelectPieceState extends ChoosePieceStates {
|
||||
|
||||
private final ChoosePieceState parent;
|
||||
private ArrayList<Piece> possiblePieces;
|
||||
|
||||
public SelectPieceState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (ChoosePieceState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
possiblePieces = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
|
||||
}
|
||||
|
||||
public void setPossiblePieces(ArrayList<Piece> possiblePieces){
|
||||
this.possiblePieces = possiblePieces;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectPiece(Piece piece){
|
||||
if(possiblePieces.contains(piece)){
|
||||
logic.send(new SelectedPiecesMessage(piece.getUuid()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(MoveMessage msg){
|
||||
Piece piece = logic.getGame().getPieceThroughUUID(msg.getIdentifier());
|
||||
if(msg.isHomeMove()){
|
||||
logic.addNotification(new HomeMoveNotification(piece.getUuid(), msg.getTargetIndex()));
|
||||
logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(piece)].clearOccupant();
|
||||
logic.getGame().getBoard().getPlayerData().get(piece.getColor()).setPieceInHome(msg.getTargetIndex(), piece);
|
||||
} else {
|
||||
if (logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].isOccupied()) {
|
||||
throwPiece(logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].getOccupant());
|
||||
logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increasePiecesThrown();
|
||||
logic.getGame().getGameStatistics().increasePiecesThrown();
|
||||
}
|
||||
logic.addNotification(new MovePieceNotification(piece.getUuid(), logic.getGame().getBoard().getInfieldIndexOfPiece(piece), msg.getTargetIndex()));
|
||||
}
|
||||
parent.getParent().setState(parent.getParent().getMovePiece());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package pp.mdga.client.gameState.turnState.choosePieceState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.gameState.turnState.ChoosePieceState;
|
||||
import pp.mdga.game.Piece;
|
||||
import pp.mdga.message.client.SelectedPiecesMessage;
|
||||
import pp.mdga.message.server.MoveMessage;
|
||||
|
||||
public class StartPieceState extends ChoosePieceStates {
|
||||
|
||||
private final ChoosePieceState parent;
|
||||
private Piece moveablePiece;
|
||||
|
||||
|
||||
public StartPieceState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (ChoosePieceState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectPiece(Piece piece){
|
||||
if(moveablePiece.equals(piece)){
|
||||
logic.send(new SelectedPiecesMessage(piece.getUuid()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(MoveMessage msg){
|
||||
parent.getParent().setState(parent.getParent().getMovePiece());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package pp.mdga.client.gameState.turnState.choosePieceState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.gameState.turnState.ChoosePieceState;
|
||||
import pp.mdga.game.Piece;
|
||||
import pp.mdga.game.PieceState;
|
||||
import pp.mdga.message.client.SelectedPiecesMessage;
|
||||
import pp.mdga.message.server.MoveMessage;
|
||||
|
||||
public class WaitingPieceState extends ChoosePieceStates {
|
||||
|
||||
private final ChoosePieceState parent;
|
||||
private Piece moveablePiece;
|
||||
|
||||
public WaitingPieceState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (ChoosePieceState) parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
moveablePiece = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectPiece(Piece piece){
|
||||
if(moveablePiece.equals(piece)){
|
||||
logic.send(new SelectedPiecesMessage(piece.getUuid()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(MoveMessage msg){
|
||||
Piece pieceToMove = logic.getGame().getPieceThroughUUID(msg.getIdentifier());
|
||||
pieceToMove.setState(PieceState.ACTIVE);
|
||||
parent.getParent().setState(parent.getParent().getMovePiece());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
package pp.mdga.client.gameState.turnState.powerCardState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.gameState.turnState.PowerCardState;
|
||||
import pp.mdga.game.BonusCard;
|
||||
import pp.mdga.message.client.NoPowerCardMessage;
|
||||
import pp.mdga.message.client.SelectCardMessage;
|
||||
import pp.mdga.message.server.DiceNowMessage;
|
||||
import pp.mdga.message.server.PlayCardMessage;
|
||||
import pp.mdga.message.server.PossibleCardMessage;
|
||||
import pp.mdga.message.server.PossiblePieceMessage;
|
||||
import pp.mdga.notification.SelectableCardsNotification;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* State where the player can choose a power card
|
||||
*/
|
||||
public class ChoosePowerCardState extends PowerCardStates {
|
||||
|
||||
private final PowerCardState parent;
|
||||
private ArrayList<BonusCard> possibleCards;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
* @param parent parent state
|
||||
* @param logic game logic
|
||||
*/
|
||||
public ChoosePowerCardState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (PowerCardState) parent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enter the state
|
||||
*/
|
||||
@Override
|
||||
public void enter() {
|
||||
possibleCards = new ArrayList<>();
|
||||
//TODO: logic.send(new RequestPossibleCardsMessage());
|
||||
}
|
||||
|
||||
/**
|
||||
* Exit the state
|
||||
*/
|
||||
@Override
|
||||
public void exit() {
|
||||
possibleCards = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the possible cards
|
||||
* @param msg possible cards message
|
||||
*/
|
||||
@Override
|
||||
public void received(PossibleCardMessage msg){
|
||||
possibleCards = (ArrayList<BonusCard>) msg.getPossibleCards();
|
||||
logic.addNotification(new SelectableCardsNotification(possibleCards));
|
||||
}
|
||||
|
||||
/**
|
||||
* Select a card
|
||||
* @param card card to select
|
||||
*/
|
||||
@Override
|
||||
public void selectCard(BonusCard card){
|
||||
if(card != null){
|
||||
logic.send(new SelectCardMessage(card));
|
||||
} else {
|
||||
logic.send(new NoPowerCardMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Receive a card
|
||||
* @param msg card message
|
||||
*/
|
||||
@Override
|
||||
public void received(PlayCardMessage msg){
|
||||
if(msg.getCard().equals(BonusCard.TURBO)){
|
||||
logic.getGame().setDiceModifier(msg.getDiceModifier());
|
||||
} else {
|
||||
LOGGER.log(System.Logger.Level.ERROR, "Received card that is not turbo");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Receive a die now message
|
||||
* @param msg dice now message
|
||||
*/
|
||||
@Override
|
||||
public void received(DiceNowMessage msg){
|
||||
parent.getParent().setState(parent.getParent().getRollDice());
|
||||
}
|
||||
|
||||
/**
|
||||
* Receive a possible piece message and decide if the player can swap or shield
|
||||
* @param msg possible piece message
|
||||
*/
|
||||
@Override
|
||||
public void received(PossiblePieceMessage msg){
|
||||
if (msg.getEnemyPossiblePieces().isEmpty()){
|
||||
parent.getShield().setPossiblePieces(msg.getOwnPossiblePieces().stream().map(piece -> logic.getGame().getPieceThroughUUID(piece)).collect(Collectors.toCollection(ArrayList::new)));
|
||||
parent.setState(parent.getShield());
|
||||
} else {
|
||||
parent.getSwap().setPossibleOwnPieces(msg.getOwnPossiblePieces().stream().map(piece -> logic.getGame().getPieceThroughUUID(piece)).collect(Collectors.toCollection(ArrayList::new)));
|
||||
parent.getSwap().setPossibleEnemyPieces(msg.getEnemyPossiblePieces().stream().map(piece -> logic.getGame().getPieceThroughUUID(piece)).collect(Collectors.toCollection(ArrayList::new)));
|
||||
parent.setState(parent.getSwap());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package pp.mdga.client.gameState.turnState.powerCardState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.gameState.turnState.PowerCardState;
|
||||
import pp.mdga.game.Piece;
|
||||
import pp.mdga.message.client.RequestPlayCardMessage;
|
||||
import pp.mdga.message.server.PlayCardMessage;
|
||||
|
||||
import java.lang.System.Logger.Level;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class ShieldState extends PowerCardStates {
|
||||
|
||||
private final PowerCardState parent;
|
||||
|
||||
private ArrayList<Piece> possiblePieces;
|
||||
|
||||
public ShieldState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (PowerCardState) parent;
|
||||
possiblePieces = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
logic.addNotification(null);
|
||||
//TODO: selectable piece notification
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
possiblePieces = null;
|
||||
}
|
||||
|
||||
public void setPossiblePieces(ArrayList<Piece> possiblePieces) {
|
||||
this.possiblePieces = possiblePieces;
|
||||
}
|
||||
|
||||
public void selectPiece(Piece piece) {
|
||||
if (possiblePieces.contains(piece)) {
|
||||
logic.send(RequestPlayCardMessage.requestPlayShield(piece.getUuid()));
|
||||
} else {
|
||||
LOGGER.log(Level.DEBUG, "Invalid piece selected");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void received(PlayCardMessage msg) {
|
||||
parent.getParent().getPlayPowerCard().setPlayCard(msg);
|
||||
parent.getParent().setState(parent.getParent().getPlayPowerCard());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package pp.mdga.client.gameState.turnState.powerCardState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
import pp.mdga.client.gameState.turnState.PowerCardState;
|
||||
import pp.mdga.game.Piece;
|
||||
import pp.mdga.message.client.RequestPlayCardMessage;
|
||||
import pp.mdga.message.server.PlayCardMessage;
|
||||
import pp.mdga.notification.SelectableSwapNotification;
|
||||
|
||||
import java.util.UUID;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class SwapState extends PowerCardStates {
|
||||
|
||||
private final PowerCardState parent;
|
||||
|
||||
private ArrayList<Piece> possibleOwnPieces;
|
||||
private ArrayList<Piece> possibleEnemyPieces;
|
||||
private Piece selectedOwnPiece;
|
||||
private Piece selectedEnemyPiece;
|
||||
|
||||
public SwapState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
this.parent = (PowerCardState) parent;
|
||||
possibleOwnPieces = new ArrayList<>();
|
||||
possibleEnemyPieces = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
ArrayList<UUID> ownPieces = new ArrayList<>(possibleOwnPieces.stream().map(Piece::getUuid).toList());
|
||||
ArrayList<UUID> enemyPieces = new ArrayList<>(possibleEnemyPieces.stream().map(Piece::getUuid).toList());
|
||||
logic.addNotification(new SelectableSwapNotification(ownPieces, enemyPieces));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
possibleOwnPieces = null;
|
||||
possibleEnemyPieces = null;
|
||||
}
|
||||
|
||||
public void setPossibleOwnPieces(ArrayList<Piece> possibleOwnPieces) {
|
||||
this.possibleOwnPieces = possibleOwnPieces;
|
||||
}
|
||||
|
||||
public void setPossibleEnemyPieces(ArrayList<Piece> possibleEnemyPieces) {
|
||||
this.possibleEnemyPieces = possibleEnemyPieces;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectPiece(Piece piece){
|
||||
if (possibleOwnPieces.contains(piece)){
|
||||
selectedOwnPiece = piece;
|
||||
} else if (possibleEnemyPieces.contains(piece)){
|
||||
selectedEnemyPiece = piece;
|
||||
}
|
||||
if (selectedOwnPiece != null && selectedEnemyPiece != null){
|
||||
logic.send(RequestPlayCardMessage.requestPlaySwap(selectedOwnPiece.getUuid(), selectedEnemyPiece.getUuid()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void received(PlayCardMessage msg) {
|
||||
parent.getParent().getPlayPowerCard().setPlayCard(msg);
|
||||
parent.getParent().setState(parent.getParent().getPlayPowerCard());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package pp.mdga.client.settingsState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
|
||||
public class AudioSettingsState extends SettingStates {
|
||||
public AudioSettingsState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package pp.mdga.client.settingsState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
|
||||
public class MainSettingsState extends SettingStates {
|
||||
public MainSettingsState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package pp.mdga.client.settingsState;
|
||||
|
||||
import pp.mdga.client.ClientGameLogic;
|
||||
import pp.mdga.client.ClientState;
|
||||
|
||||
public class VideoSettingsState extends SettingStates {
|
||||
public VideoSettingsState(ClientState parent, ClientGameLogic logic) {
|
||||
super(parent, logic);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exit() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -45,7 +45,7 @@ public void exit() {
|
||||
|
||||
/**
|
||||
* This method will be called whenever the server received a JoinedLobbyMessage message.
|
||||
* It will also get the client id of the player who send this messag
|
||||
* 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 JoinedLobbyMessage object.
|
||||
* @param from as the client id of the player as an Integer.
|
||||
|
||||
Reference in New Issue
Block a user