reworked the client state machine and removed the seperate classes for the statemachines
these machines are now directly included in the parent states
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
<component name="ProjectRunConfigurationManager">
|
||||||
<configuration default="false" name="MdgaApp" type="Application" factoryName="Application" singleton="false" nameIsGenerated="true">
|
<configuration default="false" name="MdgaApp" type="Application" factoryName="Application" singleton="false" nameIsGenerated="true">
|
||||||
|
<option name="ALTERNATIVE_JRE_PATH" value="temurin-20" />
|
||||||
|
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
|
||||||
<option name="MAIN_CLASS_NAME" value="pp.mdga.client.MdgaApp" />
|
<option name="MAIN_CLASS_NAME" value="pp.mdga.client.MdgaApp" />
|
||||||
<module name="Projekte.mdga.client.main" />
|
<module name="Projekte.mdga.client.main" />
|
||||||
<option name="VM_PARAMETERS" value="-Djava.util.logging.config.file=logging.properties -ea" />
|
<option name="VM_PARAMETERS" value="-Djava.util.logging.config.file=logging.properties -ea" />
|
||||||
|
|||||||
@@ -1,16 +1,9 @@
|
|||||||
package pp.mdga.client;
|
package pp.mdga.client;
|
||||||
|
|
||||||
import pp.mdga.client.ceremonyState.CeremonyStateMachine;
|
|
||||||
|
|
||||||
public class Ceremony extends ClientState {
|
public class Ceremony extends ClientState {
|
||||||
private final CeremonyStateMachine ceremonyStateMachine;
|
|
||||||
|
|
||||||
public Ceremony(ClientState parent, ClientGameLogic logic) {
|
public Ceremony(ClientState parent, ClientGameLogic logic) {
|
||||||
super(parent, logic);
|
super(parent, logic);
|
||||||
this.ceremonyStateMachine = new CeremonyStateMachine(parent, logic);
|
|
||||||
}
|
|
||||||
|
|
||||||
public CeremonyStateMachine getCeremonyStateMachine() {
|
|
||||||
return ceremonyStateMachine;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
package pp.mdga.client;
|
|
||||||
|
|
||||||
public class ClientAutomaton extends ClientStateMachine {
|
|
||||||
|
|
||||||
private Dialogs dialogs;
|
|
||||||
private Ceremony ceremony;
|
|
||||||
private Game game;
|
|
||||||
private Interrupt interrupt;
|
|
||||||
|
|
||||||
public ClientAutomaton(ClientGameLogic logic){
|
|
||||||
super(null, logic);
|
|
||||||
dialogs = new Dialogs(this, logic);
|
|
||||||
ceremony = new Ceremony(this, logic);
|
|
||||||
game = new Game(this, logic);
|
|
||||||
entry();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Dialogs initialState(){
|
|
||||||
return dialogs;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,21 +1,27 @@
|
|||||||
package pp.mdga.client;
|
package pp.mdga.client;
|
||||||
|
|
||||||
import pp.mdga.client.gameState.turnState.choosePieceState.StartPiece;
|
import pp.mdga.game.BonusCard;
|
||||||
|
import pp.mdga.game.Color;
|
||||||
import pp.mdga.game.Game;
|
import pp.mdga.game.Game;
|
||||||
|
import pp.mdga.game.Piece;
|
||||||
import pp.mdga.message.client.ClientMessage;
|
import pp.mdga.message.client.ClientMessage;
|
||||||
import pp.mdga.message.server.*;
|
import pp.mdga.message.server.*;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public class ClientGameLogic implements ServerInterpreter {
|
public class ClientGameLogic implements ServerInterpreter {
|
||||||
static final System.Logger LOGGER = System.getLogger(ClientGameLogic.class.getName());
|
static final System.Logger LOGGER = System.getLogger(ClientGameLogic.class.getName());
|
||||||
|
|
||||||
private Game game;
|
private Game game;
|
||||||
private final ClientSender clientSender;
|
private final ClientSender clientSender;
|
||||||
private ClientState state;
|
private ClientState state;
|
||||||
|
private Map<UUID, Piece> pieces;
|
||||||
|
private Map<UUID, BonusCard> cards;
|
||||||
|
|
||||||
public ClientGameLogic(Game game, ClientSender clientSender) {
|
public ClientGameLogic(Game game, ClientSender clientSender) {
|
||||||
this.game = game;
|
this.game = game;
|
||||||
this.clientSender = clientSender;
|
this.clientSender = clientSender;
|
||||||
state = new ClientAutomaton(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void send(ClientMessage msg){
|
public void send(ClientMessage msg){
|
||||||
@@ -169,4 +175,46 @@ public void received(UpdateTSK msg) {
|
|||||||
public void received(WaitPiece msg) {
|
public void received(WaitPiece msg) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void selectPiece(UUID pieceId){
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectCard(UUID cardId){
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectTsk(Color color){
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectDice(){
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectName(String name){
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectReady(boolean ready){
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectHost(){
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectLeave(){
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectJoin(){
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectStart(){
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
package pp.mdga.client;
|
package pp.mdga.client;
|
||||||
|
|
||||||
public abstract class ClientState implements Observer {
|
import pp.mdga.message.server.*;
|
||||||
|
|
||||||
|
import java.lang.System.Logger.Level;
|
||||||
|
|
||||||
|
public abstract class ClientState implements Observer, ServerInterpreter {
|
||||||
protected static final System.Logger LOGGER = System.getLogger(ClientState.class.getName());
|
protected static final System.Logger LOGGER = System.getLogger(ClientState.class.getName());
|
||||||
|
|
||||||
protected ClientState parent;
|
protected ClientState parent;
|
||||||
@@ -12,13 +16,9 @@ protected ClientState(ClientState parent, ClientGameLogic logic){
|
|||||||
this.logic = logic;
|
this.logic = logic;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void entry(){/* do nothing */}
|
public abstract void enter();
|
||||||
|
|
||||||
public void exit() {/* do nothing*/}
|
public abstract void exit();
|
||||||
|
|
||||||
public void gotoState(ClientState newState){
|
|
||||||
throw new IllegalStateException("not in a statemachine");
|
|
||||||
}
|
|
||||||
|
|
||||||
public ClientState getParent(){
|
public ClientState getParent(){
|
||||||
return parent;
|
return parent;
|
||||||
@@ -30,4 +30,139 @@ public void update() {/* do nothing */}
|
|||||||
public String toString(){
|
public String toString(){
|
||||||
return getClass().getSimpleName();
|
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(Dice 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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,16 +1,48 @@
|
|||||||
package pp.mdga.client;
|
package pp.mdga.client;
|
||||||
|
|
||||||
import pp.mdga.client.dialogState.DialogsStateMachine;
|
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 {
|
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) {
|
public Dialogs(ClientState parent, ClientGameLogic logic) {
|
||||||
super(parent, logic);
|
super(parent, logic);
|
||||||
this.dialogsStateMachine = new DialogsStateMachine(parent, logic);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public DialogsStateMachine getDialogsStateMachine() {
|
@Override
|
||||||
return dialogsStateMachine;
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,8 @@
|
|||||||
package pp.mdga.client;
|
package pp.mdga.client;
|
||||||
|
|
||||||
import pp.mdga.client.gameState.GameStateMachine;
|
|
||||||
|
|
||||||
public class Game extends ClientState {
|
public class Game extends ClientState {
|
||||||
private final GameStateMachine gameStateMachine;
|
|
||||||
|
|
||||||
public Game(ClientState parent, ClientGameLogic logic) {
|
public Game(ClientState parent, ClientGameLogic logic) {
|
||||||
super(parent, logic);
|
super(parent, logic);
|
||||||
this.gameStateMachine = new GameStateMachine(parent, logic);
|
|
||||||
}
|
|
||||||
|
|
||||||
public GameStateMachine getGameStateMachine() {
|
|
||||||
return gameStateMachine;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,8 @@
|
|||||||
package pp.mdga.client;
|
package pp.mdga.client;
|
||||||
|
|
||||||
import pp.mdga.client.settingsState.SettingsStateMachine;
|
|
||||||
|
|
||||||
public class Settings extends ClientState {
|
public class Settings extends ClientState {
|
||||||
private final SettingsStateMachine settingsStateMachine;
|
|
||||||
|
|
||||||
public Settings(ClientState parent, ClientGameLogic logic) {
|
public Settings(ClientState parent, ClientGameLogic logic) {
|
||||||
super(parent, logic);
|
super(parent, logic);
|
||||||
this.settingsStateMachine = new SettingsStateMachine(parent, logic);
|
|
||||||
}
|
|
||||||
|
|
||||||
public SettingsStateMachine getSettingsStateMachine() {
|
|
||||||
return settingsStateMachine;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
package pp.mdga.client.ceremonyState;
|
|
||||||
|
|
||||||
import pp.mdga.client.ClientGameLogic;
|
|
||||||
import pp.mdga.client.ClientState;
|
|
||||||
import pp.mdga.client.ClientStateMachine;
|
|
||||||
|
|
||||||
public class CeremonyStateMachine extends ClientStateMachine {
|
|
||||||
|
|
||||||
public CeremonyStateMachine(ClientState parent, ClientGameLogic logic) {
|
|
||||||
super(parent, logic);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Podium initialState() {
|
|
||||||
return new Podium(this, logic);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
package pp.mdga.client.dialogState;
|
|
||||||
|
|
||||||
import pp.mdga.client.ClientGameLogic;
|
|
||||||
import pp.mdga.client.ClientState;
|
|
||||||
import pp.mdga.client.ClientStateMachine;
|
|
||||||
|
|
||||||
public class DialogsStateMachine extends ClientStateMachine {
|
|
||||||
public DialogsStateMachine(ClientState parent, ClientGameLogic logic) {
|
|
||||||
super(parent, logic);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public StartDialog initialState() {
|
|
||||||
return new StartDialog(this, logic);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -2,9 +2,61 @@
|
|||||||
|
|
||||||
import pp.mdga.client.ClientGameLogic;
|
import pp.mdga.client.ClientGameLogic;
|
||||||
import pp.mdga.client.ClientState;
|
import pp.mdga.client.ClientState;
|
||||||
|
import pp.mdga.client.Dialogs;
|
||||||
|
|
||||||
public class NetworkDialog extends DialogStates {
|
public class NetworkDialog extends DialogStates {
|
||||||
|
|
||||||
|
private final Dialogs parent;
|
||||||
|
|
||||||
public NetworkDialog(ClientState parent, ClientGameLogic logic) {
|
public NetworkDialog(ClientState parent, ClientGameLogic logic) {
|
||||||
super(parent, 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());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,9 +2,36 @@
|
|||||||
|
|
||||||
import pp.mdga.client.ClientGameLogic;
|
import pp.mdga.client.ClientGameLogic;
|
||||||
import pp.mdga.client.ClientState;
|
import pp.mdga.client.ClientState;
|
||||||
|
import pp.mdga.client.Dialogs;
|
||||||
|
|
||||||
public class StartDialog extends DialogStates {
|
public class StartDialog extends DialogStates {
|
||||||
|
|
||||||
|
private final Dialogs parent;
|
||||||
|
|
||||||
public StartDialog(ClientState parent, ClientGameLogic logic) {
|
public StartDialog(ClientState parent, ClientGameLogic logic) {
|
||||||
super(parent, 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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,17 +2,10 @@
|
|||||||
|
|
||||||
import pp.mdga.client.ClientGameLogic;
|
import pp.mdga.client.ClientGameLogic;
|
||||||
import pp.mdga.client.ClientState;
|
import pp.mdga.client.ClientState;
|
||||||
import pp.mdga.client.gameState.determineStartPlayer.DetermineStartPlayerStateMachine;
|
|
||||||
|
|
||||||
public class DetermineStartPlayer extends GameStates {
|
public class DetermineStartPlayer extends GameStates {
|
||||||
private final DetermineStartPlayerStateMachine determineStartPlayerStateMachine;
|
|
||||||
|
|
||||||
public DetermineStartPlayer(ClientState parent, ClientGameLogic logic) {
|
public DetermineStartPlayer(ClientState parent, ClientGameLogic logic) {
|
||||||
super(parent, logic);
|
super(parent, logic);
|
||||||
this.determineStartPlayerStateMachine = new DetermineStartPlayerStateMachine(parent, logic);
|
|
||||||
}
|
|
||||||
|
|
||||||
public DetermineStartPlayerStateMachine getDetermineStartPlayerStateMachine() {
|
|
||||||
return determineStartPlayerStateMachine;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
package pp.mdga.client.gameState;
|
|
||||||
|
|
||||||
import pp.mdga.client.ClientGameLogic;
|
|
||||||
import pp.mdga.client.ClientState;
|
|
||||||
import pp.mdga.client.ClientStateMachine;
|
|
||||||
|
|
||||||
public class GameStateMachine extends ClientStateMachine {
|
|
||||||
public GameStateMachine(ClientState parent, ClientGameLogic logic) {
|
|
||||||
super(parent, logic);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ClientState initialState() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -2,17 +2,10 @@
|
|||||||
|
|
||||||
import pp.mdga.client.ClientGameLogic;
|
import pp.mdga.client.ClientGameLogic;
|
||||||
import pp.mdga.client.ClientState;
|
import pp.mdga.client.ClientState;
|
||||||
import pp.mdga.client.gameState.turnState.TurnStateMachine;
|
|
||||||
|
|
||||||
public class Turn extends GameStates {
|
public class Turn extends GameStates {
|
||||||
private final TurnStateMachine turnStateMachine;
|
|
||||||
|
|
||||||
public Turn(ClientState parent, ClientGameLogic logic) {
|
public Turn(ClientState parent, ClientGameLogic logic) {
|
||||||
super(parent, logic);
|
super(parent, logic);
|
||||||
this.turnStateMachine = new TurnStateMachine(parent, logic);
|
|
||||||
}
|
|
||||||
|
|
||||||
public TurnStateMachine getTurnStateMachine() {
|
|
||||||
return turnStateMachine;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
package pp.mdga.client.gameState.determineStartPlayer;
|
|
||||||
|
|
||||||
import pp.mdga.client.ClientGameLogic;
|
|
||||||
import pp.mdga.client.ClientState;
|
|
||||||
import pp.mdga.client.ClientStateMachine;
|
|
||||||
import pp.mdga.client.RollRankingDice;
|
|
||||||
|
|
||||||
public class DetermineStartPlayerStateMachine extends ClientStateMachine {
|
|
||||||
public DetermineStartPlayerStateMachine(ClientState parent, ClientGameLogic logic) {
|
|
||||||
super(parent, logic);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RollRankingDice initialState() {
|
|
||||||
return new RollRankingDice(this, logic);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
import pp.mdga.client.ClientGameLogic;
|
import pp.mdga.client.ClientGameLogic;
|
||||||
import pp.mdga.client.ClientState;
|
import pp.mdga.client.ClientState;
|
||||||
import pp.mdga.client.gameState.determineStartPlayer.DetermineStartPlayerStates;
|
|
||||||
|
|
||||||
public class RollRankingDice extends DetermineStartPlayerStates {
|
public class RollRankingDice extends DetermineStartPlayerStates {
|
||||||
public RollRankingDice(ClientState parent, ClientGameLogic logic) {
|
public RollRankingDice(ClientState parent, ClientGameLogic logic) {
|
||||||
|
|||||||
@@ -1,19 +1,11 @@
|
|||||||
package pp.mdga.client.gameState.turnState;
|
package pp.mdga.client.gameState.turnState;
|
||||||
|
|
||||||
import pp.mdga.client.gameState.turnState.choosePieceState.ChoosePieceStateMachine;
|
|
||||||
import pp.mdga.client.ClientGameLogic;
|
import pp.mdga.client.ClientGameLogic;
|
||||||
import pp.mdga.client.ClientState;
|
import pp.mdga.client.ClientState;
|
||||||
|
|
||||||
public class ChoosePiece extends TurnStates {
|
public class ChoosePiece extends TurnStates {
|
||||||
|
|
||||||
private final ChoosePieceStateMachine choosePieceStateMachine;
|
|
||||||
|
|
||||||
public ChoosePiece(ClientState parent, ClientGameLogic logic) {
|
public ChoosePiece(ClientState parent, ClientGameLogic logic) {
|
||||||
super(parent, logic);
|
super(parent, logic);
|
||||||
this.choosePieceStateMachine = new ChoosePieceStateMachine(parent, logic);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ChoosePieceStateMachine getChoosePieceStateMachine() {
|
|
||||||
return choosePieceStateMachine;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,17 +2,10 @@
|
|||||||
|
|
||||||
import pp.mdga.client.ClientGameLogic;
|
import pp.mdga.client.ClientGameLogic;
|
||||||
import pp.mdga.client.ClientState;
|
import pp.mdga.client.ClientState;
|
||||||
import pp.mdga.client.gameState.turnState.powerCardState.PowerCardStateMachine;
|
|
||||||
|
|
||||||
public class PowerCard extends TurnStates {
|
public class PowerCard extends TurnStates {
|
||||||
private final PowerCardStateMachine powerCardStateMachine;
|
|
||||||
|
|
||||||
public PowerCard(ClientState parent, ClientGameLogic logic) {
|
public PowerCard(ClientState parent, ClientGameLogic logic) {
|
||||||
super(parent, logic);
|
super(parent, logic);
|
||||||
this.powerCardStateMachine = new PowerCardStateMachine(parent, logic);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PowerCardStateMachine getPowerCardStateMachine() {
|
|
||||||
return powerCardStateMachine;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
package pp.mdga.client.gameState.turnState;
|
|
||||||
|
|
||||||
import pp.mdga.client.ClientGameLogic;
|
|
||||||
import pp.mdga.client.ClientState;
|
|
||||||
import pp.mdga.client.ClientStateMachine;
|
|
||||||
|
|
||||||
public class TurnStateMachine extends ClientStateMachine {
|
|
||||||
public TurnStateMachine(ClientState parent, ClientGameLogic logic) {
|
|
||||||
super(parent, logic);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PowerCard initialState() {
|
|
||||||
return new PowerCard(this, logic);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
package pp.mdga.client.gameState.turnState.choosePieceState;
|
|
||||||
|
|
||||||
import pp.mdga.client.ClientGameLogic;
|
|
||||||
import pp.mdga.client.ClientState;
|
|
||||||
import pp.mdga.client.ClientStateMachine;
|
|
||||||
|
|
||||||
public class ChoosePieceStateMachine extends ClientStateMachine {
|
|
||||||
public ChoosePieceStateMachine(ClientState parent, ClientGameLogic logic) {
|
|
||||||
super(parent, logic);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public NoPiece initialState() {
|
|
||||||
return new NoPiece(this, logic);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
package pp.mdga.client.gameState.turnState.powerCardState;
|
|
||||||
|
|
||||||
import pp.mdga.client.ClientGameLogic;
|
|
||||||
import pp.mdga.client.ClientState;
|
|
||||||
import pp.mdga.client.ClientStateMachine;
|
|
||||||
|
|
||||||
public class PowerCardStateMachine extends ClientStateMachine {
|
|
||||||
public PowerCardStateMachine(ClientState parent, ClientGameLogic logic) {
|
|
||||||
super(parent, logic);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ChoosePowerCard initialState() {
|
|
||||||
return new ChoosePowerCard(this, logic);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
package pp.mdga.client.settingsState;
|
|
||||||
|
|
||||||
import pp.mdga.client.ClientGameLogic;
|
|
||||||
import pp.mdga.client.ClientState;
|
|
||||||
import pp.mdga.client.ClientStateMachine;
|
|
||||||
|
|
||||||
public class SettingsStateMachine extends ClientStateMachine {
|
|
||||||
public SettingsStateMachine(ClientState parent, ClientGameLogic logic) {
|
|
||||||
super(parent, logic);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ClientState initialState() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4,10 +4,8 @@
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import pp.mdga.client.*;
|
import pp.mdga.client.*;
|
||||||
import pp.mdga.client.Ceremony;
|
import pp.mdga.client.Ceremony;
|
||||||
import pp.mdga.client.ceremonyState.CeremonyStateMachine;
|
|
||||||
import pp.mdga.client.ceremonyState.Podium;
|
import pp.mdga.client.ceremonyState.Podium;
|
||||||
import pp.mdga.client.ceremonyState.Statistics;
|
import pp.mdga.client.ceremonyState.Statistics;
|
||||||
import pp.mdga.client.dialogState.DialogsStateMachine;
|
|
||||||
import pp.mdga.client.dialogState.Lobby;
|
import pp.mdga.client.dialogState.Lobby;
|
||||||
import pp.mdga.client.dialogState.NetworkDialog;
|
import pp.mdga.client.dialogState.NetworkDialog;
|
||||||
import pp.mdga.client.dialogState.StartDialog;
|
import pp.mdga.client.dialogState.StartDialog;
|
||||||
@@ -16,13 +14,11 @@
|
|||||||
import pp.mdga.client.gameState.determineStartPlayer.DetermineStartPlayerStateMachine;
|
import pp.mdga.client.gameState.determineStartPlayer.DetermineStartPlayerStateMachine;
|
||||||
import pp.mdga.client.gameState.turnState.*;
|
import pp.mdga.client.gameState.turnState.*;
|
||||||
import pp.mdga.client.gameState.turnState.powerCardState.ChoosePowerCard;
|
import pp.mdga.client.gameState.turnState.powerCardState.ChoosePowerCard;
|
||||||
import pp.mdga.client.gameState.turnState.powerCardState.PowerCardStateMachine;
|
|
||||||
import pp.mdga.client.gameState.turnState.powerCardState.Shield;
|
import pp.mdga.client.gameState.turnState.powerCardState.Shield;
|
||||||
import pp.mdga.client.gameState.turnState.powerCardState.Swap;
|
import pp.mdga.client.gameState.turnState.powerCardState.Swap;
|
||||||
import pp.mdga.client.Settings;
|
import pp.mdga.client.Settings;
|
||||||
import pp.mdga.client.settingsState.AudioSettings;
|
import pp.mdga.client.settingsState.AudioSettings;
|
||||||
import pp.mdga.client.settingsState.MainSettings;
|
import pp.mdga.client.settingsState.MainSettings;
|
||||||
import pp.mdga.client.settingsState.SettingsStateMachine;
|
|
||||||
import pp.mdga.client.settingsState.VideoSettings;
|
import pp.mdga.client.settingsState.VideoSettings;
|
||||||
import pp.mdga.game.BonusCard;
|
import pp.mdga.game.BonusCard;
|
||||||
import pp.mdga.game.Color;
|
import pp.mdga.game.Color;
|
||||||
|
|||||||
Reference in New Issue
Block a user