Merge development

This commit is contained in:
Felix
2024-11-19 18:40:08 +01:00
141 changed files with 1497 additions and 113 deletions

View File

@@ -6,7 +6,7 @@
<option name="WORKING_DIRECTORY" value="$MODULE_WORKING_DIR$" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="pp.mdga.client.Board.*" />
<option name="PATTERN" value="pp.mdga.client.board.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>

View File

@@ -1,4 +0,0 @@
package pp.mdga.client.Animation;
public enum MdgaAnimation {
}

View File

@@ -1,5 +0,0 @@
package pp.mdga.client.Board;
class PileControl {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client.Acoustic;
package pp.mdga.client.acoustic;
import com.jme3.system.NanoTimer;
import pp.mdga.client.MdgaApp;

View File

@@ -1,4 +1,4 @@
package pp.mdga.client.Acoustic;
package pp.mdga.client.acoustic;
import com.jme3.audio.AudioData;
import com.jme3.audio.AudioNode;

View File

@@ -1,4 +1,4 @@
package pp.mdga.client.Acoustic;
package pp.mdga.client.acoustic;
import com.jme3.audio.AudioData;
import com.jme3.audio.AudioNode;

View File

@@ -1,4 +1,4 @@
package pp.mdga.client.Acoustic;
package pp.mdga.client.acoustic;
/**
* Enum representing the various sound effects used in the game.

View File

@@ -1,4 +1,4 @@
package pp.mdga.client.Acoustic;
package pp.mdga.client.acoustic;
/**
* Enum representing various music assets used in the game.

View File

@@ -1,4 +1,4 @@
package pp.mdga.client.Acoustic;
package pp.mdga.client.acoustic;
/**
* Enum representing various sound assets used in the game.

View File

@@ -1,4 +1,4 @@
package pp.mdga.client.Acoustic;
package pp.mdga.client.acoustic;
/**
* A record that encapsulates a sound asset along with its playback settings:

View File

@@ -1,6 +1,7 @@
package pp.mdga.client.Animation;
package pp.mdga.client.animation;
abstract class Animation {
abstract void play();
abstract void stop();

View File

@@ -1,4 +1,4 @@
package pp.mdga.client.Animation;
package pp.mdga.client.animation;
import pp.mdga.client.MdgaApp;

View File

@@ -1,4 +1,4 @@
package pp.mdga.client.Animation;
package pp.mdga.client.animation;
class EmptyAnimation extends Animation {
@Override

View File

@@ -0,0 +1,4 @@
package pp.mdga.client.animation;
public enum MdgaAnimation {
}

View File

@@ -1,3 +1,3 @@
package pp.mdga.client.Board;
package pp.mdga.client.board;
record AssetOnMap(BoardAsset asset, int x, int y, float rot) {}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client.Board;
package pp.mdga.client.board;
enum BoardAsset {
bigTent,

View File

@@ -1,4 +1,4 @@
package pp.mdga.client.Board;
package pp.mdga.client.board;
import com.jme3.light.AmbientLight;
import com.jme3.light.DirectionalLight;

View File

@@ -1,4 +1,4 @@
package pp.mdga.client.Board;
package pp.mdga.client.board;
import java.io.BufferedReader;
import java.io.IOException;

View File

@@ -1,4 +1,4 @@
package pp.mdga.client.Board;
package pp.mdga.client.board;
import com.jme3.renderer.RenderManager;
import com.jme3.renderer.ViewPort;

View File

@@ -1,4 +1,4 @@
package pp.mdga.client.Board;
package pp.mdga.client.board;
import com.jme3.renderer.RenderManager;
import com.jme3.renderer.ViewPort;

View File

@@ -0,0 +1,5 @@
package pp.mdga.client.board;
class PileControl {
}

View File

@@ -0,0 +1,5 @@
package pp.mdga.client.dialog;
public class Dialog {
}

View File

@@ -0,0 +1,5 @@
package pp.mdga.client.dialog;
public class MenuDialog {
}

View File

@@ -0,0 +1,5 @@
package pp.mdga.client.dialog;
public class NetworkDialog {
}

View File

@@ -0,0 +1,5 @@
package pp.mdga.client.gui;
public class GuiView {
}

View File

@@ -0,0 +1,4 @@
package pp.mdga.client;
public class Animation extends ClientState {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class AudioSettings extends Settings {
public class AudioSettings extends ClientState {
}

View File

@@ -1,4 +1,5 @@
package pp.mdga.client;
public class Ceremony extends ClientState {
private final CeremonyStateMachine ceremonyStateMachine = new CeremonyStateMachine();
}

View File

@@ -0,0 +1,4 @@
package pp.mdga.client;
public class CeremonyStateMachine extends ClientStateMachine {
}

View File

@@ -1,4 +1,5 @@
package pp.mdga.client;
public class ChoosePiece extends Turn {
public class ChoosePiece extends ClientState {
private final ChoosePieceStateMachine choosePieceStateMachine = new ChoosePieceStateMachine();
}

View File

@@ -0,0 +1,4 @@
package pp.mdga.client;
public class ChoosePieceStateMachine extends ClientStateMachine{
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class ChoosePowerCard extends PowerCard {
public class ChoosePowerCard extends ClientState {
}

View File

@@ -0,0 +1,4 @@
package pp.mdga.client;
public class ClientAutomaton extends ClientStateMachine {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class ClientState {
public abstract class ClientState {
}

View File

@@ -0,0 +1,4 @@
package pp.mdga.client;
public abstract class ClientStateMachine extends ClientState {
}

View File

@@ -1,4 +1,5 @@
package pp.mdga.client;
public class DetermineStartPlayer {
public class DetermineStartPlayer extends ClientState {
private final DetermineStartPlayerStateMachine determineStartPlayerStateMachine = new DetermineStartPlayerStateMachine();
}

View File

@@ -0,0 +1,4 @@
package pp.mdga.client;
public class DetermineStartPlayerStateMachine extends ClientStateMachine{
}

View File

@@ -1,4 +1,5 @@
package pp.mdga.client;
public class Dialogs extends ClientState {
private final DialogsStateMachine dialogsStateMachine = new DialogsStateMachine();
}

View File

@@ -0,0 +1,4 @@
package pp.mdga.client;
public class DialogsStateMachine extends ClientStateMachine {
}

View File

@@ -1,4 +0,0 @@
package pp.mdga.client;
public class Game extends ClientState {
}

View File

@@ -0,0 +1,5 @@
package pp.mdga.client;
public class GameState extends ClientState {
private final GameStateMachine gameStateMachine = new GameStateMachine();
}

View File

@@ -0,0 +1,4 @@
package pp.mdga.client;
public class GameStateMachine extends ClientStateMachine {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class Lobby extends Dialogs {
public class Lobby extends ClientState {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class MainSettings extends Settings {
public class MainSettings extends ClientState {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class MovePiece extends Turn {
public class MovePiece extends ClientState {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class NetworkDialog extends Dialogs {
public class NetworkDialog extends ClientState {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class NoPiece extends ChoosePiece {
public class NoPiece extends ClientState {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class PlayPowerCard extends PowerCard {
public class PlayPowerCard extends ClientState {
}

View File

@@ -0,0 +1,4 @@
package pp.mdga.client;
public class Podium extends ClientState {
}

View File

@@ -1,4 +1,5 @@
package pp.mdga.client;
public class PowerCard extends Turn {
public class PowerCard extends ClientState {
private final PowerCardStateMachine powerCardStateMachine = new PowerCardStateMachine();
}

View File

@@ -0,0 +1,4 @@
package pp.mdga.client;
public class PowerCardStateMachine extends ClientStateMachine {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class RollDice extends Turn {
public class RollDice extends ClientState {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class RollRankingDice extends DetermineStartPlayer {
public class RollRankingDice extends ClientState {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class SelectPiece extends ChoosePiece {
public class SelectPiece extends ClientState {
}

View File

@@ -1,4 +1,5 @@
package pp.mdga.client;
public class Settings {
public class Settings extends ClientState {
private final SettingsStateMachine settingsStateMachine = new SettingsStateMachine();
}

View File

@@ -0,0 +1,4 @@
package pp.mdga.client;
public class SettingsStateMachine extends ClientStateMachine {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class Shield extends PowerCard {
public class Shield extends ClientState {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class Spectator {
public class Spectator extends ClientState {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class StartPiece extends ChoosePiece {
public class StartPiece extends ClientState {
}

View File

@@ -0,0 +1,4 @@
package pp.mdga.client;
public class Statistics extends ClientState {
}

View File

@@ -0,0 +1,4 @@
package pp.mdga.client;
public class Swap extends ClientState {
}

View File

@@ -1,4 +0,0 @@
package pp.mdga.client;
public class SwitchEnemy extends PowerCard {
}

View File

@@ -1,4 +0,0 @@
package pp.mdga.client;
public class SwitchOwn extends PowerCard {
}

View File

@@ -1,4 +1,5 @@
package pp.mdga.client;
public class Turn {
public class Turn extends ClientState {
private final TurnStateMachine turnStateMachine = new TurnStateMachine();
}

View File

@@ -0,0 +1,4 @@
package pp.mdga.client;
public class TurnStateMachine extends ClientStateMachine {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class VideoSettings extends Settings {
public class VideoSettings extends ClientState {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class WaitRanking extends DetermineStartPlayer {
public class WaitRanking extends ClientState {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class Waiting {
public class Waiting extends ClientState {
}

View File

@@ -1,4 +1,4 @@
package pp.mdga.client;
public class WaitingPiece extends ChoosePiece {
public class WaitingPiece extends ClientState {
}

View File

@@ -17,10 +17,10 @@ public Board() {
for (int i = 0; i < 40; i++) {
if (i % 10 == 0) {
infield[i] = new StartNode(
i == 0 ? Color.ARMY :
i == 10 ? Color.AIRFORCE :
i == 20 ? Color.CYBER :
Color.NAVY
i == 0 ? Color.AIRFORCE :
i == 10 ? Color.CYBER :
i == 20 ? Color.NAVY :
Color.ARMY
);
} else if (i == 4 || i == 14 || i == 24 || i == 34) {
infield[i] = new BonusNode();
@@ -47,4 +47,14 @@ public Map<Color, PlayerData> getPlayerData() {
public Node[] getInfield() {
return infield;
}
/**
* This method sets a piece on a specific Node in the infield
*
* @param index the index of the node
* @param piece the piece to be set
*/
public void setPieceOnBoard(int index, Piece piece) {
infield[index].setOccupant(piece);
}
}

View File

@@ -1,8 +1,8 @@
package pp.mdga.game;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Map;
import java.util.*;
import pp.mdga.server.Observer;
/**
* The Game class represents the game state of the Ludo game.
@@ -12,7 +12,7 @@
public class Game {
private int diceModifier = 1;
private int diceEyes;
private Map <Color, Player> players;
private Map<Color, Player> players = new HashMap<Color, Player>();
private Statistic gameStatistics;
private ArrayList<BonusCard> drawPile;
private ArrayList<BonusCard> discardPile = new ArrayList<>();
@@ -21,13 +21,17 @@ public class Game {
private LinkedList<Color> order;
private Map<Color, Integer> playerConnectionID;
private ArrayList<Observer> observers = new ArrayList<>();
private Boolean gameHasStarted = false;
private Boolean playerHasDisconnected = false;
private static final int AMOUNT_OF_TURBO_CARDS = 16;
private static final int AMOUNT_OF_SHIELD_AND_SWAP_CARDS = 12;
/**
* This constructor creates a new Game object.
*/
public Game(){
public Game() {
gameStatistics = new Statistic();
drawPile = new ArrayList<>();
for (int i = 0; i < AMOUNT_OF_TURBO_CARDS; i++) {
@@ -223,7 +227,7 @@ public void setPlayerConnectionID(Map<Color, Integer> playerConnectionID) {
/**
* This method sets the player connection ID.
*
* @param color the color of the player
* @param color the color of the player
* @param connectionID the new connection ID
*/
public void setPlayerConnectionID(Color color, int connectionID) {
@@ -243,7 +247,7 @@ public int getPlayerConnectionID(Color color) {
/**
* This method adds a player to the game.
*
* @param color the color of the player
* @param color the color of the player
* @param player the player to be added
*/
public void addPlayer(Color color, Player player) {
@@ -258,4 +262,71 @@ public void addPlayer(Color color, Player player) {
public void removePlayer(Color color) {
players.remove(color);
}
/**
* This method adds an observer to the game.
*
* @param observer the observer to be added
*/
public void addObserver(Observer observer) {
observers.add(observer);
}
/**
* This method removes an observer from the game.
*
* @param observer the observer to be removed
*/
public void removeObserver(Observer observer) {
observers.remove(observer);
}
/**
* This method returns the game has started.
*
* @return the game has started
*/
public Boolean getGameHasStarted() {
return gameHasStarted;
}
/**
* This method sets the game has started.
*
* @param gameHasStarted the new game has started
*/
public void setGameHasStarted(Boolean gameHasStarted) {
this.gameHasStarted = gameHasStarted;
if (gameHasStarted) notifyObservers();
}
/**
* This method returns the player has disconnected.
*
* @return the player has disconnected
*/
public Boolean playerHasDisconnected() {
return playerHasDisconnected;
}
/**
* This method sets the player has disconnected.
*
* @param playerHasDisconnected the new player has disconnected
*/
public void setPlayerHasDisconnected(Boolean playerHasDisconnected) {
this.playerHasDisconnected = playerHasDisconnected;
if (playerHasDisconnected) {
notifyObservers();
}
}
/**
* This method notifies the observers.
*/
public void notifyObservers() {
for (Observer observer : new ArrayList<>(observers)) {
observer.update();
}
}
}

View File

@@ -79,4 +79,13 @@ public BonusCard removeHandCard(BonusCard card) {
}
return cardToRemove;
}
/**
* Returns the id of the connection to the client represented by this player.
*
* @return the id
*/
public int getId() {
return id;
}
}

View File

@@ -98,4 +98,14 @@ public Piece removePieceFromWaitingArea() {
}
return null;
}
/**
* This method sets a piece at the given index in the home area
*
* @param index the index of the node
* @param piece the piece to be set at the given index
*/
public void setPieceInHome(int index, Piece piece) {
homeNodes[index].setOccupant(piece);
}
}

View File

@@ -28,4 +28,10 @@ public interface ClientInterpreter {
void received(SelectTSK selectTSK , int from);
void received(ForceContinueGame forceContinueGame, int from);
void received(ClientStartGame clientStartGame, int from);
void received(NoPowerCard noPowerCard, int from);
void received(SelectedPieces selectedPieces, int from);
}

View File

@@ -3,7 +3,6 @@
import com.jme3.network.AbstractMessage;
public abstract class ClientMessage extends AbstractMessage {
protected ClientMessage() {
super(true);
}

View File

@@ -0,0 +1,13 @@
package pp.mdga.message.client;
public class ClientStartGame extends ClientMessage {
@Override
public String toString() {
return "null";
}
@Override
public void accept(ClientInterpreter interpreter, int from) {
interpreter.received(this, from);
}
}

View File

@@ -0,0 +1,13 @@
package pp.mdga.message.client;
public class NoPowerCard extends ClientMessage {
@Override
public String toString() {
return "null";
}
@Override
public void accept(ClientInterpreter interpreter, int from) {
interpreter.received(this, from);
}
}

View File

@@ -0,0 +1,13 @@
package pp.mdga.message.client;
public class SelectedPieces extends ClientMessage {
@Override
public String toString() {
return "null";
}
@Override
public void accept(ClientInterpreter interpreter, int from) {
interpreter.received(this, from);
}
}

View File

@@ -1,6 +1,6 @@
package pp.mdga.message.server;
public class StartGame extends ServerMessage {
public class ServerStartGame extends ServerMessage {
@Override
public void accept(ServerInterpreter interpreter) {

View File

@@ -0,0 +1,27 @@
package pp.mdga.notification;
import java.util.UUID;
/**
* Notification that is sent when a card is acquired.
*/
public class AcquireCardNotification extends Notification{
private UUID cardId;
/**
* Constructor.
* @param cardId The id of the card that was acquired.
*/
public AcquireCardNotification(UUID cardId) {
this.cardId = cardId;
}
/**
* Get the id of the card that was acquired.
* @return The id of the card that was acquired.
*/
public UUID getCardId() {
return cardId;
}
}

View File

@@ -2,8 +2,24 @@
import pp.mdga.game.Color;
/**
* Notification that the active player has changed
*/
public class ActivePlayerNotification extends Notification {
ActivePlayerNotification(Color color) {
/**
* The color of the active player
*/
private Color color;
ActivePlayerNotification(Color color) {
this.color = color;
}
/**
* @return the color of the active player
*/
public Color getColor() {
return color;
}
}

View File

@@ -0,0 +1,12 @@
package pp.mdga.notification;
/**
* Class CeremonyNotification
*/
public class CeremonyNotification extends Notification{
/**
* Constructor
*/
CeremonyNotification() {
}
}

View File

@@ -0,0 +1,13 @@
package pp.mdga.notification;
/**
* Notification that the dice is now.
*/
public class DiceNowNotification extends Notification {
/**
* Constructor.
*/
DiceNowNotification() {
}
}

View File

@@ -0,0 +1,27 @@
package pp.mdga.notification;
import pp.mdga.game.Color;
/**
* Notification that is sent when a player has diced.
*/
public class DicingNotification extends Notification{
private Color color;
/**
* Constructor.
* @param color The color of the player that diced.
*/
DicingNotification(Color color) {
this.color = color;
}
/**
* Get the color of the player that diced.
* @return The color of the player that diced.
*/
public Color getColor() {
return color;
}
}

View File

@@ -3,8 +3,34 @@
import pp.mdga.game.BonusCard;
import pp.mdga.game.Color;
/**
* Notification that a card has been drawn
*/
public class DrawCardNotification extends Notification {
DrawCardNotification(Color color, BonusCard card) {
private Color color;
private BonusCard card;
/**
* @param color the color of the player who drew the card
* @param card the card that was drawn
*/
DrawCardNotification(Color color, BonusCard card) {
this.color = color;
this.card = card;
}
/**
* @return the color of the player who drew the card
*/
public Color getColor() {
return color;
}
/**
* @return the card that was drawn
*/
public BonusCard getCard() {
return card;
}
}

View File

@@ -0,0 +1,12 @@
package pp.mdga.notification;
/**
* GameNotification class
*/
public class GameNotification extends Notification{
/**
* Constructor
*/
GameNotification() {
}
}

View File

@@ -0,0 +1,41 @@
package pp.mdga.notification;
import java.util.UUID;
/**
* Notification that a piece has moved to a home.
*/
public class HomeMoveNotification extends Notification {
private UUID pieceId;
private int homeIndex;
/**
* Constructor.
*
* @param pieceId the piece id
* @param homeIndex the home index
*/
HomeMoveNotification(UUID pieceId, int homeIndex) {
this.pieceId = pieceId;
this.homeIndex = homeIndex;
}
/**
* Get the piece id.
*
* @return the piece id
*/
public UUID getPieceId() {
return pieceId;
}
/**
* Get the home index.
*
* @return the home index
*/
public int getHomeIndex() {
return homeIndex;
}
}

View File

@@ -2,8 +2,24 @@
import pp.mdga.game.Color;
/**
* Notification that a card has been drawn
*/
public class InterruptNotification extends Notification {
InterruptNotification(Color color) {
private Color color;
/**
* @param color the color of the player who drew the card
*/
InterruptNotification(Color color) {
this.color = color;
}
/**
* @return the color of the player who drew the card
*/
public Color getColor() {
return color;
}
}

View File

@@ -0,0 +1,12 @@
package pp.mdga.notification;
/**
* Notification that a dialog has been started
*/
public class LobbyDialogNotification extends Notification{
/**
* Constructor
*/
LobbyDialogNotification() {
}
}

View File

@@ -2,8 +2,37 @@
import pp.mdga.game.Color;
/**
* Notification that a piece has been moved.
*/
public class MovePieceNotification extends Notification {
MovePieceNotification(Color color, int nodeIndex) {
private Color color;
private int nodeIndex;
/**
* Constructor.
* @param color the color of the piece that has been moved.
* @param nodeIndex the index of the node the piece has been moved to.
*/
MovePieceNotification(Color color, int nodeIndex) {
this.color = color;
this.nodeIndex = nodeIndex;
}
/**
* Get the color of the piece that has been moved.
* @return the color of the piece that has been moved.
*/
public Color getColor() {
return color;
}
/**
* Get the index of the node the piece has been moved to.
* @return the index of the node the piece has been moved to.
*/
public int getNodeIndex() {
return nodeIndex;
}
}

View File

@@ -0,0 +1,64 @@
package pp.mdga.notification;
import pp.mdga.game.Color;
import java.util.UUID;
public class MoveThrowPieceNotification extends Notification{
private UUID pieceId1;
private UUID pieceId2;
private int nodeIndex;
private Color colorPiece2;
/**
* This constructor is used to create a new MoveThrowPieceNotification
*
* @param pieceId1 the pieceId1
* @param pieceId2 the pieceId2
* @param nodeIndex the nodeIndex
* @param colorPiece2 the color
*/
public MoveThrowPieceNotification(UUID pieceId1, UUID pieceId2, int nodeIndex, Color colorPiece2) {
this.pieceId1 = pieceId1;
this.pieceId2 = pieceId2;
this.nodeIndex = nodeIndex;
this.colorPiece2 = colorPiece2;
}
/**
* This method returns the pieceId1
*
* @return the pieceId1
*/
public UUID getPieceId1() {
return pieceId1;
}
/**
* This method returns the pieceId2
*
* @return the pieceId2
*/
public UUID getPieceId2() {
return pieceId2;
}
/**
* This method returns the nodeIndex
*
* @return the nodeIndex
*/
public int getNodeIndex() {
return nodeIndex;
}
/**
* This method returns the color
*
* @return the color
*/
public Color getColor() {
return colorPiece2;
}
}

View File

@@ -0,0 +1,27 @@
package pp.mdga.notification;
import java.util.UUID;
/**
* Notification that a piece has no shield.
*/
public class NoShieldNotification extends Notification{
private UUID pieceId;
/**
* Constructor.
* @param pieceId the id of the piece that has no shield.
*/
public NoShieldNotification(UUID pieceId) {
this.pieceId = pieceId;
}
/**
* Get the id of the piece that has no shield.
* @return the id of the piece that has no shield.
*/
public UUID getPieceId() {
return pieceId;
}
}

View File

@@ -4,8 +4,34 @@
import java.util.UUID;
/**
* Notification that a piece is in the game
*/
public class PieceInGameNotification extends Notification{
PieceInGameNotification(Color color, UUID id) {
private Color color;
private UUID id;
/**
* Constructor
* @param color the color of the piece
* @param id the id of the piece
*/
PieceInGameNotification(Color color, UUID id) {
this.color = color;
this.id = id;
}
/**
* @return the color of the piece
*/
public Color getColor() {
return null;
}
/**
* @return the id of the piece
*/
public UUID getId() {
return null;
}
}

View File

@@ -3,8 +3,37 @@
import pp.mdga.game.BonusCard;
import pp.mdga.game.Color;
/**
* Notification that a card has been played.
*/
public class PlayCardNotification extends Notification {
PlayCardNotification(Color color, BonusCard card) {
private Color color;
private BonusCard card;
/**
* Constructor.
* @param color the color of the player that played the card.
* @param card the card that was played.
*/
PlayCardNotification(Color color, BonusCard card) {
this.color = color;
this.card = card;
}
/**
* Get the color of the player that played the card.
* @return the color of the player that played the card.
*/
public Color getColor() {
return color;
}
/**
* Get the card that was played.
* @return the card that was played.
*/
public BonusCard getCard() {
return card;
}
}

View File

@@ -2,8 +2,37 @@
import pp.mdga.game.Color;
/**
* Notification that a player is in the game.
*/
public class PlayerInGameNotification extends Notification {
PlayerInGameNotification(Color color, String name) {
private Color color;
private String name;
/**
* Constructor.
* @param color the color of the player that is in the game.
* @param name the name of the player that is in the game.
*/
PlayerInGameNotification(Color color, String name) {
this.color = color;
this.name = name;
}
/**
* Get the color of the player that is in the game.
* @return the color of the player that is in the game.
*/
public Color getColor() {
return color;
}
/**
* Get the name of the player that is in the game.
* @return the name of the player that is in the game.
*/
public String getName() {
return name;
}
}

Some files were not shown because too many files have changed in this diff Show More