Compare commits
	
		
			6 Commits
		
	
	
		
			42fefb2899
			...
			170afe2718
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					170afe2718 | ||
| 
						 | 
					17220c228b | ||
| 
						 | 
					0f1be83064 | ||
| 
						 | 
					e0ab09295d | ||
| 
						 | 
					758e9b8397 | ||
| 
						 | 
					b3fe289fbe | 
@@ -218,7 +218,6 @@ selector("button", "pp") {
 | 
				
			|||||||
    insets = new Insets3f(3, 3, 3, 3) // Adjust the border thickness
 | 
					    insets = new Insets3f(3, 3, 3, 3) // Adjust the border thickness
 | 
				
			||||||
    textHAlignment = HAlignment.Center
 | 
					    textHAlignment = HAlignment.Center
 | 
				
			||||||
    textVAlignment = VAlignment.Center
 | 
					    textVAlignment = VAlignment.Center
 | 
				
			||||||
    buttonCommands = stdButtonCommands
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
selector("slider", "pp") {
 | 
					selector("slider", "pp") {
 | 
				
			||||||
@@ -387,7 +386,7 @@ selector("button-toolbar", "pp") {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
selector("button-toolbar2", "pp") { playerColor ->
 | 
					selector("button-clear", "pp") { playerColor ->
 | 
				
			||||||
    def validColor = playerColor ?: new ColorRGBA(0, 0, 0, 0) // Vollständig transparent
 | 
					    def validColor = playerColor ?: new ColorRGBA(0, 0, 0, 0) // Vollständig transparent
 | 
				
			||||||
    def playerGradientBackground = new QuadBackgroundComponent(validColor)
 | 
					    def playerGradientBackground = new QuadBackgroundComponent(validColor)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -395,12 +394,7 @@ selector("button-toolbar2", "pp") { playerColor ->
 | 
				
			|||||||
    playerGradientBackground.setColor(new ColorRGBA(0, 0, 0, 0)) // RGBA (Rot, Grün, Blau, Alpha)
 | 
					    playerGradientBackground.setColor(new ColorRGBA(0, 0, 0, 0)) // RGBA (Rot, Grün, Blau, Alpha)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    background = playerGradientBackground.clone() // Setze den Hintergrund
 | 
					    background = playerGradientBackground.clone() // Setze den Hintergrund
 | 
				
			||||||
    insets = new Insets3f(3, 3, 3, 3) // Optional: Ränder
 | 
					    insets = new Insets3f(-3, -3, -3, -3) // Optional: Ränder
 | 
				
			||||||
    textHAlignment = HAlignment.Center // Text-Zentrierung
 | 
					    textHAlignment = HAlignment.Center // Text-Zentrierung
 | 
				
			||||||
    textVAlignment = VAlignment.Center // Text-Zentrierung
 | 
					    textVAlignment = VAlignment.Center // Text-Zentrierung
 | 
				
			||||||
    
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,38 +2,92 @@ package pp.monopoly.client.gui;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.jme3.texture.Texture;
 | 
					import com.jme3.texture.Texture;
 | 
				
			||||||
import com.simsilica.lemur.Button;
 | 
					import com.simsilica.lemur.Button;
 | 
				
			||||||
 | 
					import com.simsilica.lemur.Command;
 | 
				
			||||||
import com.simsilica.lemur.component.QuadBackgroundComponent;
 | 
					import com.simsilica.lemur.component.QuadBackgroundComponent;
 | 
				
			||||||
import com.simsilica.lemur.style.ElementId;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import pp.monopoly.client.MonopolyApp;
 | 
					import pp.monopoly.client.MonopolyApp;
 | 
				
			||||||
 | 
					import pp.monopoly.game.server.Player;
 | 
				
			||||||
 | 
					import pp.monopoly.game.server.PlayerColor;
 | 
				
			||||||
 | 
					import pp.monopoly.notification.Sound;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class ImageButton extends Button {
 | 
					public class ImageButton extends Button {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private final String file;
 | 
					    private final MonopolyApp app;
 | 
				
			||||||
    private static MonopolyApp app;
 | 
					    private final String functionality;
 | 
				
			||||||
    
 | 
					    private final PlayerColor playerColor;
 | 
				
			||||||
    public ImageButton( String s, String file, MonopolyApp app ) {
 | 
					
 | 
				
			||||||
        this(s, true, new ElementId(ELEMENT_ID), null, file, app);
 | 
					    public ImageButton(String functionality, MonopolyApp app) {
 | 
				
			||||||
    }
 | 
					        super("", "button-clear");
 | 
				
			||||||
    
 | 
					        this.app = app;
 | 
				
			||||||
    public ImageButton( String s, String style, String file, MonopolyApp app ) {
 | 
					        this.functionality = functionality;
 | 
				
			||||||
        this(s, true, new ElementId(ELEMENT_ID), style, file, app);
 | 
					        this.playerColor = Player.getColor(app.getId());
 | 
				
			||||||
    }
 | 
					
 | 
				
			||||||
    
 | 
					        updateButtonAppearance(ButtonState.ENABLED);
 | 
				
			||||||
    public ImageButton( String s, ElementId elementId, String file, MonopolyApp app ) {
 | 
					        addButtonCommands();
 | 
				
			||||||
        this(s, true, elementId, null, file, app);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
    public ImageButton( String s, ElementId elementId, String style, String file, MonopolyApp app ) {
 | 
					 | 
				
			||||||
        this(s, true, elementId, style, file, app);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    protected ImageButton( String s, boolean applyStyles, ElementId elementId, String style, String file, MonopolyApp app ) {
 | 
					 | 
				
			||||||
        super(s, false, elementId, style);
 | 
					 | 
				
			||||||
        this.file = file;
 | 
					 | 
				
			||||||
        ImageButton.app = app;
 | 
					 | 
				
			||||||
        Texture backgroundImage = app.getAssetManager().loadTexture("Pictures/Buttons/"+file+".png");
 | 
					 | 
				
			||||||
        setBackground(new QuadBackgroundComponent(backgroundImage));
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Updates the button's appearance based on its state.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param state the current button state
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private void updateButtonAppearance(ButtonState state) {
 | 
				
			||||||
 | 
					        setBackgroundTexture(state.name().toLowerCase());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Adds button commands for state-specific actions like hover, press, enable, and disable.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private void addButtonCommands() {
 | 
				
			||||||
 | 
					        addCommands(ButtonAction.Enabled, source -> updateButtonAppearance(ButtonState.ENABLED));
 | 
				
			||||||
 | 
					        addCommands(ButtonAction.Disabled, source -> updateButtonAppearance(ButtonState.DISABLED));
 | 
				
			||||||
 | 
					        addCommands(ButtonAction.Hover, source -> {
 | 
				
			||||||
 | 
					            if (isEnabled()) {
 | 
				
			||||||
 | 
					                updateButtonAppearance(ButtonState.HOVER);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					        addCommands(ButtonAction.HighlightOff, source -> updateButtonAppearance(isEnabled() ? ButtonState.ENABLED : ButtonState.DISABLED));
 | 
				
			||||||
 | 
					        addCommands(ButtonAction.Up, source -> updateButtonAppearance(isEnabled() ? ButtonState.ENABLED : ButtonState.DISABLED));
 | 
				
			||||||
 | 
					        addCommands(ButtonAction.Down, source -> {
 | 
				
			||||||
 | 
					            if (isEnabled()) {
 | 
				
			||||||
 | 
					                app.getGameLogic().playSound(Sound.BUTTON);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Sets the background texture for the button based on the given state.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param state the button state (e.g., "enabled", "disabled", "hover")
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private void setBackgroundTexture(String state) {
 | 
				
			||||||
 | 
					        String texturePath = buildTexturePath(state);
 | 
				
			||||||
 | 
					        Texture texture = app.getAssetManager().loadTexture(texturePath);
 | 
				
			||||||
 | 
					        setBackground(new QuadBackgroundComponent(texture));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Builds the file path for the button texture.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param state the button state (e.g., "enabled", "disabled", "hover")
 | 
				
			||||||
 | 
					     * @return the full file path to the texture
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String buildTexturePath(String state) {
 | 
				
			||||||
 | 
					        return String.format("Pictures/Buttons/Button_%s_%s_%s.png", functionality, playerColor.getColorName(), state);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Button states for handling appearance transitions.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private enum ButtonState {
 | 
				
			||||||
 | 
					        ENABLED, DISABLED, HOVER
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void addClickCommands( Command<? super Button> command ) {
 | 
				
			||||||
 | 
					        super.addCommands(ButtonAction.Down, command);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @SuppressWarnings("unchecked") // because Java doesn't like var-arg generics
 | 
				
			||||||
 | 
					    public void addClickCommands( Command<? super Button>... commands ) {
 | 
				
			||||||
 | 
					        super.addCommands(ButtonAction.Down, commands);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -79,6 +79,8 @@ public class Toolbar extends Dialog implements GameEventListener {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        toolbarContainer = setupToolbar();
 | 
					        toolbarContainer = setupToolbar();
 | 
				
			||||||
        app.getGuiNode().attachChild(toolbarContainer);
 | 
					        app.getGuiNode().attachChild(toolbarContainer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        endTurnButton.setEnabled(false);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@@ -175,9 +177,9 @@ public class Toolbar extends Dialog implements GameEventListener {
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    private void setupActionMenu(Container container) {
 | 
					    private void setupActionMenu(Container container) {
 | 
				
			||||||
        Container menuContainer = container.addChild(new Container());
 | 
					        Container menuContainer = container.addChild(new Container());
 | 
				
			||||||
        menuContainer.addChild(createTradeButton(getCurrentPlayerColor()));
 | 
					        menuContainer.addChild(createTradeButton());
 | 
				
			||||||
        menuContainer.addChild(createPropertyMenuButton(getCurrentPlayerColor()));
 | 
					        menuContainer.addChild(createPropertyMenuButton());
 | 
				
			||||||
        menuContainer.addChild(createEndTurnButton(getCurrentPlayerColor()));
 | 
					        menuContainer.addChild(createEndTurnButton());
 | 
				
			||||||
        menuContainer.setBackground(null);
 | 
					        menuContainer.setBackground(null);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -278,58 +280,65 @@ public class Toolbar extends Dialog implements GameEventListener {
 | 
				
			|||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * Creates a trade button with the specified player color.
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @param playerColor The color of the player.
 | 
					 | 
				
			||||||
     * @return The button representing the trade action.
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Button createTradeButton(ColorRGBA playerColor) {
 | 
					 | 
				
			||||||
        return createActionButton(playerColor, "icons/icon-handeln.png", 100, () -> new ChoosePartner(app).open());
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    private Button createTradeButton() {
 | 
				
			||||||
     * Creates a property menu button with the specified player color.
 | 
					        String iconPath = "icons/icon-handeln.png";
 | 
				
			||||||
     *
 | 
					        // createActionButton(playerColor, "icons/icon-handeln.png", 100, () -> new ChoosePartner(app).open());
 | 
				
			||||||
     * @param playerColor The color of the player.
 | 
					        tradeButton = new ImageButton("generic", app);
 | 
				
			||||||
     * @return The button representing the property menu action.
 | 
					        tradeButton.setPreferredSize(new Vector3f(150, 50, 0));
 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Button createPropertyMenuButton(ColorRGBA playerColor) {
 | 
					 | 
				
			||||||
        return createActionButton(playerColor, "icons/icon-gebaude.png", 75, () -> new BuildingAdminMenu(app).open());
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * Creates an end turn button with the specified player color.
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @param playerColor The color of the player.
 | 
					 | 
				
			||||||
     * @return The button representing the end turn action.
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Button createEndTurnButton(ColorRGBA playerColor) {
 | 
					 | 
				
			||||||
        return createActionButton(playerColor, "icons/icon-zugbeenden.png", 75, () -> handleEndTurn());
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * Creates an action button with the specified color, icon path, icon size, and action.
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @param color    The color of the button.
 | 
					 | 
				
			||||||
     * @param iconPath The path to the icon image.
 | 
					 | 
				
			||||||
     * @param iconSize The size of the icon.
 | 
					 | 
				
			||||||
     * @param action   The action to perform when the button is clicked.
 | 
					 | 
				
			||||||
     * @return The button representing the action.
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private Button createActionButton(ColorRGBA color, String iconPath, int iconSize, Runnable action) {
 | 
					 | 
				
			||||||
        Button button = new Button("", new ElementId("button-toolbar2"));
 | 
					 | 
				
			||||||
        button.setPreferredSize(new Vector3f(150, 50, 0));
 | 
					 | 
				
			||||||
        button.setBackground(createButtonBackground(color));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        IconComponent icon = new IconComponent(iconPath);
 | 
					        IconComponent icon = new IconComponent(iconPath);
 | 
				
			||||||
        icon.setHAlignment(HAlignment.Center);
 | 
					        icon.setHAlignment(HAlignment.Center);
 | 
				
			||||||
        icon.setVAlignment(VAlignment.Center);
 | 
					        icon.setVAlignment(VAlignment.Center);
 | 
				
			||||||
        icon.setIconSize(new Vector2f(iconSize, iconSize));
 | 
					        icon.setIconSize(new Vector2f(75 , 75));
 | 
				
			||||||
        button.setIcon(icon);
 | 
					        tradeButton.setIcon(icon);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        button.addClickCommands(source -> ifTopDialog(action));
 | 
					        tradeButton.addClickCommands(s -> ifTopDialog(() -> {
 | 
				
			||||||
        return button;
 | 
					            new ChoosePartner(app).open();
 | 
				
			||||||
 | 
					        }));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return tradeButton;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private Button createPropertyMenuButton() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        String iconPath = "icons/icon-gebaude.png";
 | 
				
			||||||
 | 
					        propertyMenuButton = new ImageButton("generic", app);
 | 
				
			||||||
 | 
					        propertyMenuButton.setPreferredSize(new Vector3f(150, 50, 0));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        IconComponent icon = new IconComponent(iconPath);
 | 
				
			||||||
 | 
					        icon.setHAlignment(HAlignment.Center);
 | 
				
			||||||
 | 
					        icon.setVAlignment(VAlignment.Center);
 | 
				
			||||||
 | 
					        icon.setIconSize(new Vector2f(50 , 50));
 | 
				
			||||||
 | 
					        propertyMenuButton.setIcon(icon);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        propertyMenuButton.addClickCommands(s -> ifTopDialog(() -> {
 | 
				
			||||||
 | 
					            new BuildingAdminMenu(app).open();
 | 
				
			||||||
 | 
					        }));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return propertyMenuButton;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private Button createEndTurnButton() {
 | 
				
			||||||
 | 
					        // return createActionButton(playerColor, "icons/icon-zugbeenden.png", 75, () -> handleEndTurn());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        String iconPath = "icons/icon-zugbeenden.png";
 | 
				
			||||||
 | 
					        endTurnButton = new ImageButton("generic", app);
 | 
				
			||||||
 | 
					        endTurnButton.setPreferredSize(new Vector3f(150, 50, 0));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        IconComponent icon = new IconComponent(iconPath);
 | 
				
			||||||
 | 
					        icon.setHAlignment(HAlignment.Center);
 | 
				
			||||||
 | 
					        icon.setVAlignment(VAlignment.Center);
 | 
				
			||||||
 | 
					        icon.setIconSize(new Vector2f(50 , 50));
 | 
				
			||||||
 | 
					        endTurnButton.setIcon(icon);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        endTurnButton.addClickCommands(s -> ifTopDialog(() -> {
 | 
				
			||||||
 | 
					            app.getGameLogic().send(new EndTurn());
 | 
				
			||||||
 | 
					            receivedEvent(new ButtonStatusEvent(false));
 | 
				
			||||||
 | 
					        }));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return endTurnButton;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@@ -517,11 +526,12 @@ public class Toolbar extends Dialog implements GameEventListener {
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void receivedEvent(ButtonStatusEvent event) {
 | 
					    public void receivedEvent(ButtonStatusEvent event) {
 | 
				
			||||||
 | 
					        System.out.println("Button status event received: " + event.buttonsEnabled()+ "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG");
 | 
				
			||||||
        boolean enabled = event.buttonsEnabled();
 | 
					        boolean enabled = event.buttonsEnabled();
 | 
				
			||||||
        canRollDice = enabled;
 | 
					        canRollDice = enabled;
 | 
				
			||||||
        if (tradeButton != null) tradeButton.setEnabled(enabled);
 | 
					        tradeButton.setEnabled(enabled);
 | 
				
			||||||
        if (propertyMenuButton != null) propertyMenuButton.setEnabled(enabled);
 | 
					        propertyMenuButton.setEnabled(enabled);
 | 
				
			||||||
        if (endTurnButton != null) endTurnButton.setEnabled(false);
 | 
					        endTurnButton.setEnabled(false);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 
 | 
				
			|||||||
| 
		 After Width: | Height: | Size: 25 KiB  | 
| 
		 After Width: | Height: | Size: 17 KiB  | 
| 
		 After Width: | Height: | Size: 39 KiB  | 
| 
		 After Width: | Height: | Size: 26 KiB  | 
| 
		 After Width: | Height: | Size: 17 KiB  | 
| 
		 After Width: | Height: | Size: 46 KiB  | 
| 
		 After Width: | Height: | Size: 27 KiB  | 
| 
		 After Width: | Height: | Size: 18 KiB  | 
| 
		 After Width: | Height: | Size: 49 KiB  | 
| 
		 After Width: | Height: | Size: 26 KiB  | 
| 
		 After Width: | Height: | Size: 18 KiB  | 
| 
		 After Width: | Height: | Size: 46 KiB  | 
| 
		 After Width: | Height: | Size: 24 KiB  | 
| 
		 After Width: | Height: | Size: 16 KiB  | 
| 
		 After Width: | Height: | Size: 37 KiB  | 
| 
		 After Width: | Height: | Size: 27 KiB  | 
| 
		 After Width: | Height: | Size: 17 KiB  | 
| 
		 After Width: | Height: | Size: 48 KiB  | 
@@ -447,16 +447,99 @@ public class ServerGameLogic implements ClientInterpreter {
 | 
				
			|||||||
        } else if (msg.getKeyword().equals("PayJail")) {
 | 
					        } else if (msg.getKeyword().equals("PayJail")) {
 | 
				
			||||||
            playerHandler.getPlayerById(from).payBail();
 | 
					            playerHandler.getPlayerById(from).payBail();
 | 
				
			||||||
        } else if(msg.getKeyword().equals("hack")) {
 | 
					        } else if(msg.getKeyword().equals("hack")) {
 | 
				
			||||||
            // for (BuildingProperty bp : boardManager.getPropertyFields( List.of(1,3)).stream().filter(p -> p instanceof BuildingProperty).map(p -> (BuildingProperty) p).collect(Collectors.toList())) {
 | 
					            generatePredefinedGameState();
 | 
				
			||||||
            //     bp.build();
 | 
					 | 
				
			||||||
            // }
 | 
					 | 
				
			||||||
            for(PropertyField field : boardManager.getBoard().stream().filter(p -> p instanceof PropertyField).map(p -> (PropertyField) p).collect(Collectors.toList())) {
 | 
					 | 
				
			||||||
                field.setOwner(playerHandler.getPlayerById(0));
 | 
					 | 
				
			||||||
                playerHandler.getPlayerById(0).addProperty(field.getId());
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            playerHandler.getPlayerById(0).earnMoney(20000);
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        updateAllPlayers();
 | 
					        updateAllPlayers();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void generatePredefinedGameState() {
 | 
				
			||||||
 | 
					        // Ensure at least two players exist
 | 
				
			||||||
 | 
					        if (playerHandler.getPlayers().size() < 2) {
 | 
				
			||||||
 | 
					            Player player1 = new Player(0, "Player1", playerHandler);
 | 
				
			||||||
 | 
					            Player player2 = new Player(1, "Player2", playerHandler);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					            playerHandler.addPlayer(player1);
 | 
				
			||||||
 | 
					            playerHandler.addPlayer(player2);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        Player p1 = playerHandler.getPlayerById(0);
 | 
				
			||||||
 | 
					        Player p2 = playerHandler.getPlayerById(1);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        // Reset properties and balances for a clean state
 | 
				
			||||||
 | 
					        p1.getProperties().clear();
 | 
				
			||||||
 | 
					        p2.getProperties().clear();
 | 
				
			||||||
 | 
					        boardManager.getBoard().forEach(field -> {
 | 
				
			||||||
 | 
					            if (field instanceof PropertyField) {
 | 
				
			||||||
 | 
					                ((PropertyField) field).setOwner(null);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        // Define properties to assign
 | 
				
			||||||
 | 
					        Set<Integer> p1Properties = Set.of(1, 3, 6, 8); // Gym, Sportplatz, Studium+, PhysikHörsaal
 | 
				
			||||||
 | 
					        Set<Integer> p2Properties = Set.of(21, 23, 24, 9); // Red set + Audimax
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        // Assign properties via AlterProperty
 | 
				
			||||||
 | 
					        assignProperties(p1, p1Properties);
 | 
				
			||||||
 | 
					        assignProperties(p2, p2Properties);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        // Player 1 builds houses on Gym and Sportplatz
 | 
				
			||||||
 | 
					        buildHouses(p1, Set.of(1, 3));
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        // Player 2 builds houses on the Red set
 | 
				
			||||||
 | 
					        buildHouses(p2, Set.of(21, 23, 24));
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        // Set player balances
 | 
				
			||||||
 | 
					        p1.setAccountBalance(12325);
 | 
				
			||||||
 | 
					        p2.setAccountBalance(26750);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        // Add Get Out of Jail cards
 | 
				
			||||||
 | 
					        p1.addJailCard();
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        // Set player positions
 | 
				
			||||||
 | 
					        p1.setPosition(6); // Near Studium+
 | 
				
			||||||
 | 
					        p2.setPosition(25); // Near Nordtor
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        LOGGER.log(Level.INFO, "Predefined game state generated.");
 | 
				
			||||||
 | 
					        updateAllPlayers();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Assigns properties to a player using AlterProperty messages.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param player     the player to assign properties to
 | 
				
			||||||
 | 
					     * @param properties the set of property IDs to assign
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private void assignProperties(Player player, Set<Integer> properties) {
 | 
				
			||||||
 | 
					        AlterProperty alterProperty = new AlterProperty("AssignProperties");
 | 
				
			||||||
 | 
					        alterProperty.setProperties(properties);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        for (Integer propertyId : properties) {
 | 
				
			||||||
 | 
					            PropertyField field = (PropertyField) boardManager.getFieldAtIndex(propertyId);
 | 
				
			||||||
 | 
					            field.setOwner(player);
 | 
				
			||||||
 | 
					            player.addProperty(propertyId);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        LOGGER.log(Level.DEBUG, "Properties assigned to player {0}: {1}", player.getName(), properties);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Builds houses for a player on specific properties using AlterProperty messages.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param player     the player building houses
 | 
				
			||||||
 | 
					     * @param properties the set of property IDs to build houses on
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private void buildHouses(Player player, Set<Integer> properties) {
 | 
				
			||||||
 | 
					        AlterProperty alterProperty = new AlterProperty("BuyHouse");
 | 
				
			||||||
 | 
					        alterProperty.setProperties(properties);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        for (Integer propertyId : properties) {
 | 
				
			||||||
 | 
					            BuildingProperty field = (BuildingProperty) boardManager.getFieldAtIndex(propertyId);
 | 
				
			||||||
 | 
					            if (boardManager.canBuild(field) && player.getAccountBalance() >= field.getHousePrice()) {
 | 
				
			||||||
 | 
					                field.build();
 | 
				
			||||||
 | 
					                player.pay(field.getHousePrice());
 | 
				
			||||||
 | 
					                LOGGER.log(Level.DEBUG, "House built on property {0} for player {1}.", field.getName(), player.getName());
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -90,7 +90,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        // Arrange: Spieler initialisieren und Position setzen
 | 
					        // Arrange: Spieler initialisieren und Position setzen
 | 
				
			||||||
        Player player = new Player(1, "Testspieler", mock(PlayerHandler.class)); // Spieler-Objekt erstellen
 | 
					        Player player = new Player(1, "Testspieler", mock(PlayerHandler.class)); // Spieler-Objekt erstellen
 | 
				
			||||||
        Figure figure = mock(Figure.class); // Mock für die Spielfigur
 | 
					        Figure figure = mock(Figure.class); // Mock für die Spielfigur
 | 
				
			||||||
        player.setFigure(figure); // Mock-Figur dem Spieler zuweisen
 | 
					        
 | 
				
			||||||
        int initialFieldID = player.getFieldID(); // Startfeld
 | 
					        int initialFieldID = player.getFieldID(); // Startfeld
 | 
				
			||||||
        DiceResult diceResult = new DiceResult(3, 4); // Würfel: 3 und 4
 | 
					        DiceResult diceResult = new DiceResult(3, 4); // Würfel: 3 und 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -106,7 +106,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        // Assert: Position überprüfen und sicherstellen, dass `figure.moveTo` aufgerufen wurde
 | 
					        // Assert: Position überprüfen und sicherstellen, dass `figure.moveTo` aufgerufen wurde
 | 
				
			||||||
        assertEquals(expectedFieldID, player.getFieldID()); // Überprüfen, ob der Spieler auf dem erwarteten Feld ist
 | 
					        assertEquals(expectedFieldID, player.getFieldID()); // Überprüfen, ob der Spieler auf dem erwarteten Feld ist
 | 
				
			||||||
        verify(figure).moveTo(expectedFieldID); // Sicherstellen, dass die Figur bewegt wurde
 | 
					        
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@@ -748,7 +748,6 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        // Create a player with mocked handler
 | 
					        // Create a player with mocked handler
 | 
				
			||||||
        Player player = new Player(1, "Spieler 1", handler);
 | 
					        Player player = new Player(1, "Spieler 1", handler);
 | 
				
			||||||
        player.setFigure(figure); // Set the mocked figure
 | 
					 | 
				
			||||||
        // player.setPosition(5); // Set the initial position
 | 
					        // player.setPosition(5); // Set the initial position
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Stub handler.getLogic() to return mocked ServerGameLogic
 | 
					        // Stub handler.getLogic() to return mocked ServerGameLogic
 | 
				
			||||||
@@ -1028,7 +1027,11 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        player.jail();
 | 
					        player.jail();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        player.payBail();
 | 
					        try {
 | 
				
			||||||
 | 
					            player.payBail();
 | 
				
			||||||
 | 
					        } catch (Exception e) {
 | 
				
			||||||
 | 
					            e.printStackTrace();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        // Assert: Spieler ist nicht mehr im Gulag und Geld wurde abgezogen
 | 
					        // Assert: Spieler ist nicht mehr im Gulag und Geld wurde abgezogen
 | 
				
			||||||
        assertTrue(player.canFinishTurn()); // Spieler kann den Zug beenden
 | 
					        assertTrue(player.canFinishTurn()); // Spieler kann den Zug beenden
 | 
				
			||||||
@@ -1231,10 +1234,6 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        handler.addPlayer(player2);
 | 
					        handler.addPlayer(player2);
 | 
				
			||||||
        handler.addPlayer(player3);
 | 
					        handler.addPlayer(player3);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        player1.setFigure(figure); // Zuweisung einer Spielfigur
 | 
					 | 
				
			||||||
        player2.setFigure(figure);
 | 
					 | 
				
			||||||
        player3.setFigure(figure);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Card card = null;
 | 
					        Card card = null;
 | 
				
			||||||
@@ -1263,7 +1262,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        // Arrange
 | 
					        // Arrange
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(null);
 | 
					        PlayerHandler handler = new PlayerHandler(null);
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure);
 | 
					        
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Card card = null;
 | 
					        Card card = null;
 | 
				
			||||||
@@ -1290,7 +1289,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        // Arrange
 | 
					        // Arrange
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(null);
 | 
					        PlayerHandler handler = new PlayerHandler(null);
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Zuweisung einer Spielfigur
 | 
					        
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Card card = null;
 | 
					        Card card = null;
 | 
				
			||||||
@@ -1316,7 +1315,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        // Arrange
 | 
					        // Arrange
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(null);
 | 
					        PlayerHandler handler = new PlayerHandler(null);
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Zuweisung einer Spielfigur
 | 
					        
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Card card = null;
 | 
					        Card card = null;
 | 
				
			||||||
@@ -1346,7 +1345,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Zuweisung einer Spielfigur
 | 
					        
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Card card = null;
 | 
					        Card card = null;
 | 
				
			||||||
@@ -1370,7 +1369,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Zuweisung einer Spielfigur
 | 
					        
 | 
				
			||||||
        handler.addPlayer(player); // Spieler zur Liste hinzufügen
 | 
					        handler.addPlayer(player); // Spieler zur Liste hinzufügen
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1395,7 +1394,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Zuweisung einer Spielfigur
 | 
					        
 | 
				
			||||||
        handler.addPlayer(player); // Spieler zur Liste hinzufügen
 | 
					        handler.addPlayer(player); // Spieler zur Liste hinzufügen
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1422,7 +1421,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Zuweisung einer Spielfigur
 | 
					        
 | 
				
			||||||
        handler.addPlayer(player); // Spieler zur Liste hinzufügen
 | 
					        handler.addPlayer(player); // Spieler zur Liste hinzufügen
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1449,7 +1448,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Zuweisung einer Spielfigur
 | 
					        
 | 
				
			||||||
        handler.addPlayer(player); // Spieler zur Liste hinzufügen
 | 
					        handler.addPlayer(player); // Spieler zur Liste hinzufügen
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1484,7 +1483,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Zuweisung einer Spielfigur
 | 
					        
 | 
				
			||||||
        player.setAccountBalance(1500); // Startguthaben
 | 
					        player.setAccountBalance(1500); // Startguthaben
 | 
				
			||||||
        handler.addPlayer(player); // Spieler zur Liste hinzufügen
 | 
					        handler.addPlayer(player); // Spieler zur Liste hinzufügen
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
@@ -1511,7 +1510,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Zuweisung einer Spielfigur
 | 
					        
 | 
				
			||||||
        handler.addPlayer(player); // Spieler zur Liste hinzufügen
 | 
					        handler.addPlayer(player); // Spieler zur Liste hinzufügen
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1542,7 +1541,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Zuweisung einer Spielfigur
 | 
					        
 | 
				
			||||||
        handler.addPlayer(player); // Spieler zur Liste hinzufügen
 | 
					        handler.addPlayer(player); // Spieler zur Liste hinzufügen
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1565,7 +1564,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Zuweisung einer Spielfigur
 | 
					        
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            player.setPosition(10); // Starte auf Position 10
 | 
					            player.setPosition(10); // Starte auf Position 10
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
@@ -1594,7 +1593,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Übergebe den Mock
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Zuweisung einer Spielfigur
 | 
					        
 | 
				
			||||||
        handler.addPlayer(player); // Spieler zur Liste hinzufügen
 | 
					        handler.addPlayer(player); // Spieler zur Liste hinzufügen
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1619,7 +1618,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Spielfigur setzen
 | 
					        
 | 
				
			||||||
        handler.addPlayer(player); // Spieler hinzufügen
 | 
					        handler.addPlayer(player); // Spieler hinzufügen
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1644,7 +1643,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Spielfigur setzen
 | 
					        
 | 
				
			||||||
        handler.addPlayer(player); // Spieler hinzufügen
 | 
					        handler.addPlayer(player); // Spieler hinzufügen
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1673,7 +1672,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Spielfigur setzen
 | 
					        
 | 
				
			||||||
        handler.addPlayer(player); // Spieler 1 hinzufügen
 | 
					        handler.addPlayer(player); // Spieler 1 hinzufügen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1698,7 +1697,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Spielfigur setzen
 | 
					        
 | 
				
			||||||
        player.setAccountBalance(1500); // Startsaldo setzen
 | 
					        player.setAccountBalance(1500); // Startsaldo setzen
 | 
				
			||||||
        handler.addPlayer(player); // Spieler hinzufügen
 | 
					        handler.addPlayer(player); // Spieler hinzufügen
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
@@ -1725,7 +1724,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Spielfigur setzen
 | 
					        
 | 
				
			||||||
        player.setAccountBalance(1500); // Startsaldo setzen
 | 
					        player.setAccountBalance(1500); // Startsaldo setzen
 | 
				
			||||||
        handler.addPlayer(player); // Spieler hinzufügen
 | 
					        handler.addPlayer(player); // Spieler hinzufügen
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
@@ -1753,7 +1752,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Spielfigur setzen
 | 
					        
 | 
				
			||||||
        handler.addPlayer(player); // Spieler hinzufügen
 | 
					        handler.addPlayer(player); // Spieler hinzufügen
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1780,7 +1779,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Spielfigur setzen
 | 
					        
 | 
				
			||||||
        handler.addPlayer(player); // Spieler hinzufügen
 | 
					        handler.addPlayer(player); // Spieler hinzufügen
 | 
				
			||||||
        player.setAccountBalance(15000); // Anfangsstand des Kontos
 | 
					        player.setAccountBalance(15000); // Anfangsstand des Kontos
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
@@ -1806,7 +1805,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Spielfigur setzen
 | 
					        
 | 
				
			||||||
        handler.addPlayer(player); // Spieler hinzufügen
 | 
					        handler.addPlayer(player); // Spieler hinzufügen
 | 
				
			||||||
        player.setAccountBalance(15000); // Anfangsstand des Kontos
 | 
					        player.setAccountBalance(15000); // Anfangsstand des Kontos
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
@@ -1833,7 +1832,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Spielfigur setzen
 | 
					        
 | 
				
			||||||
        handler.addPlayer(player); // Spieler hinzufügen
 | 
					        handler.addPlayer(player); // Spieler hinzufügen
 | 
				
			||||||
        player.setAccountBalance(15000); // Anfangsstand des Kontos
 | 
					        player.setAccountBalance(15000); // Anfangsstand des Kontos
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
@@ -1860,7 +1859,7 @@ public class ServerGameLogicTest {
 | 
				
			|||||||
        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
					        ServerGameLogic logic = mock(ServerGameLogic.class); // Mock der ServerGameLogic
 | 
				
			||||||
        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
					        PlayerHandler handler = new PlayerHandler(logic); // Mock-Logik übergeben
 | 
				
			||||||
        Player player = new Player(1, handler);
 | 
					        Player player = new Player(1, handler);
 | 
				
			||||||
        player.setFigure(figure); // Spielfigur setzen
 | 
					        
 | 
				
			||||||
        handler.addPlayer(player); // Spieler hinzufügen
 | 
					        handler.addPlayer(player); // Spieler hinzufügen
 | 
				
			||||||
        player.setAccountBalance(15000); // Startguthaben des Spielers
 | 
					        player.setAccountBalance(15000); // Startguthaben des Spielers
 | 
				
			||||||
        DeckHelper deckHelper = new DeckHelper();
 | 
					        DeckHelper deckHelper = new DeckHelper();
 | 
				
			||||||
 
 | 
				
			|||||||