Compare commits
10 Commits
Version1.1
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b7a3790f81 | ||
|
|
56112f01bb | ||
|
|
75ce695029 | ||
|
|
9af54051da | ||
|
|
ccf77f052f | ||
|
|
0d3e93b681 | ||
|
|
ab4c7159f3 | ||
|
|
61ea4c3276 | ||
|
|
e8506e607c | ||
|
|
0c46477f01 |
BIN
Dokumente/Abschlusspräsentation_v1.0.2.pdf
Normal file
BIN
Dokumente/Abschlusspräsentation_v1.0.2.pdf
Normal file
Binary file not shown.
@@ -13,6 +13,7 @@
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.prefs.Preferences;
|
||||
@@ -83,7 +84,7 @@ public class MdgaApp extends SimpleApplication {
|
||||
/**
|
||||
* The client game logic.
|
||||
*/
|
||||
private final ClientGameLogic clientGameLogic;
|
||||
private ClientGameLogic clientGameLogic;
|
||||
|
||||
private ExecutorService executor;
|
||||
|
||||
@@ -137,9 +138,11 @@ public static void main(String[] args) {
|
||||
app.setDisplayStatView(false);
|
||||
|
||||
try {
|
||||
settings.setIcons(new BufferedImage[]{
|
||||
ImageIO.read(Thread.currentThread().getContextClassLoader().getResourceAsStream("Images/icon/icon128.png"))
|
||||
});
|
||||
if (!System.getProperty("os.name").toLowerCase().contains("mac")) {
|
||||
settings.setIcons(new BufferedImage[]{
|
||||
ImageIO.read(Objects.requireNonNull(Thread.currentThread().getContextClassLoader().getResourceAsStream("Images/icon/icon128.png")))
|
||||
});
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
@@ -201,6 +204,7 @@ public void enter(MdgaState state) {
|
||||
switch (state) {
|
||||
case MAIN:
|
||||
view = mainView;
|
||||
clientGameLogic = new ClientGameLogic(networkConnection);
|
||||
break;
|
||||
case LOBBY:
|
||||
view = lobbyView;
|
||||
|
||||
@@ -103,11 +103,10 @@ public void shutdownServer() {
|
||||
// Wait for the server to shut down
|
||||
try {
|
||||
serverThread.join(); // Wait for the server thread to finish
|
||||
System.out.println("Server shutdown successfully.");
|
||||
} catch (InterruptedException e) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
|
||||
System.out.println("Server shutdown successfully.");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -285,6 +285,7 @@ public void handleDisconnect(int id) {
|
||||
public void exit() {
|
||||
LOGGER.log(Level.INFO, "Requesting server shutdown"); //NON-NLS
|
||||
running = false;
|
||||
pendingMessages.add(new ReceivedMessage(new AnimationEndMessage(), -1));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -76,6 +76,15 @@ private Piece getPiece(UUID pieceId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void clear(){
|
||||
game = new Game();
|
||||
notifications.clear();
|
||||
setState(dialogsState);
|
||||
isHost = false;
|
||||
ownPlayerID = 0;
|
||||
ownPlayerName = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns the clientSender
|
||||
*
|
||||
|
||||
@@ -50,9 +50,9 @@ public void exit() {
|
||||
*/
|
||||
@Override
|
||||
public void selectLeave() {
|
||||
parent.setState(parent.getStartDialog());
|
||||
logic.addNotification(new StartDialogNotification());
|
||||
logic.send(new LeaveGameMessage());
|
||||
logic.addNotification(new StartDialogNotification());
|
||||
logic.setState(logic.getDialogs());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -175,4 +175,16 @@ public void received(StartGameMessage msg, int from) {
|
||||
this.logic.getServerSender().send(from, new IncorrectRequestMessage(5));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removed the player after receiving a LeaveGameMessage message.
|
||||
*
|
||||
* @param msg as the message which was sent by the player as a LeaveGameMessage object.
|
||||
* @param from as the client id of the player as an Integer.
|
||||
*/
|
||||
@Override
|
||||
public void received(LeaveGameMessage msg, int from) {
|
||||
this.logic.getGame().removePlayer(from);
|
||||
this.logic.getServerSender().broadcast(new LobbyPlayerLeaveMessage(from));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,13 +61,13 @@ public void received(AnimationEndMessage msg, int from) {
|
||||
if (finishedAnimations.size() == logic.getGame().getPlayers().size()) {
|
||||
if (logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).isFinished()) {
|
||||
logic.getGame().getPlayerRanking().put(logic.getGame().getPlayerRanking().size(), logic.getGame().getActivePlayer());
|
||||
logic.getServerSender().send(logic.getGame().getPlayerIdByColor(logic.getGame().getActiveColor()), new SpectatorMessage());
|
||||
setActivePlayer(logic.getGame().getActiveColor());
|
||||
if (logic.getGame().getPlayerRanking().size() == logic.getGame().getPlayers().size() - 1) {
|
||||
logic.getGame().getPlayerRanking().put(logic.getGame().getPlayerRanking().size(), logic.getGame().getActivePlayer());
|
||||
logic.getGame().getPlayerRanking().put(logic.getGame().getPlayerRanking().size(), logic.getGame().getPlayerByColor(logic.getGame().getActiveColor().next(logic.getGame())));
|
||||
logic.setCurrentState(logic.getCeremonyState());
|
||||
return;
|
||||
}
|
||||
logic.getServerSender().send(logic.getGame().getPlayerIdByColor(logic.getGame().getActiveColor()), new SpectatorMessage());
|
||||
setActivePlayer(logic.getGame().getActiveColor());
|
||||
this.turnAutomaton.getGameAutomaton().setCurrentState(this.turnAutomaton.getGameAutomaton().getTurnState());
|
||||
}
|
||||
else if (logic.getGame().getDiceEyes() == 6) {
|
||||
|
||||
@@ -9,4 +9,10 @@ zusätzlichen Features.
|
||||
In dieser Version gibt es ein besonderes Feature: Bonuskarten. Auf
|
||||
bestimmten Feldern können die Spieler Bonuskarten ziehen, die ihnen
|
||||
besondere Vorteile im Spiel verschaffen. Diese Bonuskarten können nur vor
|
||||
dem Wurf des Würfels eingesetzt werden.
|
||||
dem Wurf des Würfels eingesetzt werden.
|
||||
|
||||
**_INSTALLATION_**
|
||||
|
||||
Von der Release [Seite](https://athene2.informatik.unibw-muenchen.de/progproj/gruppen-ht24/Gruppe-01/-/releases) für Windows die .exe Datei runterladen für Linux und Mac die .jar Datei,
|
||||
zum spielen wird dann Java 20 oder höher benötigt.
|
||||
Falls die Dateien nicht mehr zum Dowload bereit stehen, wenden Sie sich bitte an Fleischer Hanno (hanno.fleischer@unibw.de).
|
||||
Reference in New Issue
Block a user