mirror of
https://athene2.informatik.unibw-muenchen.de/progproj/gruppen-ht24/Gruppe-02.git
synced 2025-04-17 12:40:59 +02:00
Compare commits
No commits in common. "ecf227daa666aadfde160731a85cf1a335f0fe52" and "1438ae5e4ff0d283b2a7491b3184dfc5527e3e7f" have entirely different histories.
ecf227daa6
...
1438ae5e4f
@ -262,16 +262,6 @@ selector("settings-title", "pp") {
|
|||||||
textHAlignment = HAlignment.Center
|
textHAlignment = HAlignment.Center
|
||||||
textVAlignment = VAlignment.Center
|
textVAlignment = VAlignment.Center
|
||||||
}
|
}
|
||||||
selector("warning-title", "pp") {
|
|
||||||
def outerBackground = new QuadBackgroundComponent(color(1, 0.5, 0, 1)) // Grey inner border
|
|
||||||
def innerBackground = new QuadBackgroundComponent(buttonBgColor) // White outer border background
|
|
||||||
font = font("Interface/Fonts/Metropolis/Metropolis-Bold-42.fnt")
|
|
||||||
background = outerBackground
|
|
||||||
fontSize = 40
|
|
||||||
insets = new Insets3f(3, 3, 3, 3)
|
|
||||||
textHAlignment = HAlignment.Center
|
|
||||||
textVAlignment = VAlignment.Center
|
|
||||||
}
|
|
||||||
|
|
||||||
selector("menu-button", "pp") {
|
selector("menu-button", "pp") {
|
||||||
fontSize = 40 // Set font size
|
fontSize = 40 // Set font size
|
||||||
|
@ -124,7 +124,7 @@ public class MonopolyApp extends SimpleApplication implements MonopolyClient, Ga
|
|||||||
private final ActionListener escapeListener = (name, isPressed, tpf) -> escape(isPressed);
|
private final ActionListener escapeListener = (name, isPressed, tpf) -> escape(isPressed);
|
||||||
|
|
||||||
//TODO temp for testing
|
//TODO temp for testing
|
||||||
private EventCardPopup eventCard;
|
private EventCard eventCard;
|
||||||
private BuildingPropertyCard buildingProperty;
|
private BuildingPropertyCard buildingProperty;
|
||||||
private FoodFieldCard foodField;
|
private FoodFieldCard foodField;
|
||||||
private GateFieldCard gateField;
|
private GateFieldCard gateField;
|
||||||
@ -274,7 +274,7 @@ public class MonopolyApp extends SimpleApplication implements MonopolyClient, Ga
|
|||||||
//logik zum wechselnden erscheinen und verschwinden beim drücken von B //TODO süäter entfernen
|
//logik zum wechselnden erscheinen und verschwinden beim drücken von B //TODO süäter entfernen
|
||||||
private void handleB(boolean isPressed) {
|
private void handleB(boolean isPressed) {
|
||||||
if (isPressed) {
|
if (isPressed) {
|
||||||
Dialog tmp = new TimeOut(this);
|
Dialog tmp = new Bankrupt(this);
|
||||||
tmp.open();
|
tmp.open();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,6 @@ public class BuildingAdminMenu extends Dialog {
|
|||||||
private final Button takeMortgageButton = new Button("Hypothek aufnehmen");
|
private final Button takeMortgageButton = new Button("Hypothek aufnehmen");
|
||||||
private final Button payMortgageButton = new Button("Hypothek bezahlen");
|
private final Button payMortgageButton = new Button("Hypothek bezahlen");
|
||||||
private final Button overviewButton = new Button("Übersicht");
|
private final Button overviewButton = new Button("Übersicht");
|
||||||
private Geometry background;
|
|
||||||
|
|
||||||
public BuildingAdminMenu(MonopolyApp app) {
|
public BuildingAdminMenu(MonopolyApp app) {
|
||||||
super(app.getDialogManager());
|
super(app.getDialogManager());
|
||||||
@ -43,7 +42,7 @@ public class BuildingAdminMenu extends Dialog {
|
|||||||
// Add content
|
// Add content
|
||||||
mainContainer.addChild(createContent());
|
mainContainer.addChild(createContent());
|
||||||
// Attach main container to GUI node
|
// Attach main container to GUI node
|
||||||
attachChild(mainContainer);
|
app.getGuiNode().attachChild(mainContainer);
|
||||||
mainContainer.setLocalTranslation(
|
mainContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - mainContainer.getPreferredSize().x) / 2,
|
(app.getCamera().getWidth() - mainContainer.getPreferredSize().x) / 2,
|
||||||
(app.getCamera().getHeight() + mainContainer.getPreferredSize().y) / 2,
|
(app.getCamera().getHeight() + mainContainer.getPreferredSize().y) / 2,
|
||||||
@ -147,23 +146,29 @@ public class BuildingAdminMenu extends Dialog {
|
|||||||
private void addBackgroundImage() {
|
private void addBackgroundImage() {
|
||||||
Texture backgroundImage = app.getAssetManager().loadTexture("Pictures/unibw-Bib2.png");
|
Texture backgroundImage = app.getAssetManager().loadTexture("Pictures/unibw-Bib2.png");
|
||||||
Quad quad = new Quad(app.getCamera().getWidth(), app.getCamera().getHeight());
|
Quad quad = new Quad(app.getCamera().getWidth(), app.getCamera().getHeight());
|
||||||
background = new Geometry("Background", quad);
|
Geometry background = new Geometry("Background", quad);
|
||||||
Material backgroundMaterial = new Material(app.getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md");
|
Material backgroundMaterial = new Material(app.getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md");
|
||||||
backgroundMaterial.setTexture("ColorMap", backgroundImage);
|
backgroundMaterial.setTexture("ColorMap", backgroundImage);
|
||||||
background.setMaterial(backgroundMaterial);
|
background.setMaterial(backgroundMaterial);
|
||||||
background.setLocalTranslation(0, 0, 6); // Position behind other GUI elements
|
background.setLocalTranslation(0, 0, 6); // Position behind other GUI elements
|
||||||
attachChild(background);
|
app.getGuiNode().attachChild(background);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handles the "Zurück" action.
|
||||||
|
*/
|
||||||
|
private void handleBack() {
|
||||||
|
app.getGameLogic().playSound(Sound.BUTTON);
|
||||||
|
close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void escape() {
|
public void escape() {
|
||||||
new SettingsMenu(app).open();
|
handleBack();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void close() {
|
public void update(float delta) {
|
||||||
detachChild(background);
|
// Periodic updates if necessary
|
||||||
detachChild(mainContainer);
|
|
||||||
super.close();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -93,7 +93,7 @@ public class PropertyOverviewMenu extends Dialog {
|
|||||||
*/
|
*/
|
||||||
private void populatePlayerProperties() {
|
private void populatePlayerProperties() {
|
||||||
// Fetch the current player
|
// Fetch the current player
|
||||||
Player currentPlayer = app.getGameLogic().getPlayerHandler().getPlayerById(app.getId());
|
Player currentPlayer = app.getGameLogic().getPlayerHandler().getPlayers().get(0);
|
||||||
|
|
||||||
// Iterate through the player's properties
|
// Iterate through the player's properties
|
||||||
for (PropertyField property : currentPlayer.getPropertyFields()) {
|
for (PropertyField property : currentPlayer.getPropertyFields()) {
|
||||||
|
@ -4,7 +4,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import pp.monopoly.client.MonopolyApp;
|
import pp.monopoly.client.MonopolyApp;
|
||||||
import pp.monopoly.client.gui.popups.BuyCard;
|
import pp.monopoly.client.gui.popups.BuyCard;
|
||||||
import pp.monopoly.client.gui.popups.EventCardPopup;
|
import pp.monopoly.client.gui.popups.EventCard;
|
||||||
import pp.monopoly.client.gui.popups.FoodFieldCard;
|
import pp.monopoly.client.gui.popups.FoodFieldCard;
|
||||||
import pp.monopoly.client.gui.popups.GateFieldCard;
|
import pp.monopoly.client.gui.popups.GateFieldCard;
|
||||||
import pp.monopoly.client.gui.popups.LooserPopUp;
|
import pp.monopoly.client.gui.popups.LooserPopUp;
|
||||||
@ -98,17 +98,12 @@ public class TestWorld implements GameEventListener{
|
|||||||
Player player = players.get(i);
|
Player player = players.get(i);
|
||||||
try {
|
try {
|
||||||
// Lade das 3D-Modell der Spielfigur
|
// Lade das 3D-Modell der Spielfigur
|
||||||
com.jme3.scene.Spatial model = app.getAssetManager().loadModel("Models/" + player.getFigure().getType() + "/" + player.getFigure().getType() + ".j3o");
|
com.jme3.scene.Spatial model = app.getAssetManager().loadModel("Models/" + player.getFigure().getType() + ".j3O");
|
||||||
model.setLocalScale(0.5f); // Skaliere das Modell
|
model.setLocalScale(0.5f); // Skaliere das Modell
|
||||||
|
model.setLocalTranslation(0, 0, -i * 2); // Positioniere die Figur auf dem Startfeld
|
||||||
// Positioniere die Figur unten rechts
|
|
||||||
float startX = 9.1f; // X-Koordinate für die Ecke unten rechts
|
|
||||||
float startZ = -9.1f; // Z-Koordinate für die Ecke unten rechts
|
|
||||||
float spacing = 0.4f; // Abstand zwischen den Figuren
|
|
||||||
model.setLocalTranslation(startX, 0, startZ - (i * spacing)); // Position anpassen
|
|
||||||
|
|
||||||
app.getRootNode().attachChild(model);
|
app.getRootNode().attachChild(model);
|
||||||
System.out.println("Figur für Spieler " + player.getId() + " positioniert bei (" + startX + ", 0, " + (startZ - (i * spacing)) + ")");
|
System.out.println("Figur für Spieler " + player.getId() + " hinzugefügt.");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.err.println("Fehler beim Laden des Modells für Spieler " + player.getId() + ": " + e.getMessage());
|
System.err.println("Fehler beim Laden des Modells für Spieler " + player.getId() + ": " + e.getMessage());
|
||||||
}
|
}
|
||||||
@ -157,6 +152,6 @@ public class TestWorld implements GameEventListener{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void receivedEvent(EventCardEvent event) {
|
public void receivedEvent(EventCardEvent event) {
|
||||||
new EventCardPopup(app, event.description()).open();
|
new EventCard(app, event.description()).open();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,15 +15,10 @@ import com.simsilica.lemur.style.ElementId;
|
|||||||
import pp.dialog.Dialog;
|
import pp.dialog.Dialog;
|
||||||
import pp.monopoly.client.MonopolyApp;
|
import pp.monopoly.client.MonopolyApp;
|
||||||
import pp.monopoly.game.server.Player;
|
import pp.monopoly.game.server.Player;
|
||||||
import pp.monopoly.game.server.PlayerColor;
|
|
||||||
import pp.monopoly.game.server.PlayerHandler;
|
import pp.monopoly.game.server.PlayerHandler;
|
||||||
import pp.monopoly.message.client.EndTurn;
|
import pp.monopoly.message.client.EndTurn;
|
||||||
import pp.monopoly.message.client.RollDice;
|
import pp.monopoly.message.client.RollDice;
|
||||||
import pp.monopoly.notification.ButtonStatusEvent;
|
import pp.monopoly.notification.*;
|
||||||
import pp.monopoly.notification.DiceRollEvent;
|
|
||||||
import pp.monopoly.notification.GameEventListener;
|
|
||||||
import pp.monopoly.notification.Sound;
|
|
||||||
import pp.monopoly.notification.UpdatePlayerView;
|
|
||||||
|
|
||||||
public class Toolbar extends Dialog implements GameEventListener {
|
public class Toolbar extends Dialog implements GameEventListener {
|
||||||
|
|
||||||
@ -54,53 +49,28 @@ public class Toolbar extends Dialog implements GameEventListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Container createToolbarContainer() {
|
private Container createToolbarContainer() {
|
||||||
// Erstelle den Hauptcontainer
|
|
||||||
Container container = new Container(new SpringGridLayout(Axis.X, Axis.Y), "toolbar");
|
Container container = new Container(new SpringGridLayout(Axis.X, Axis.Y), "toolbar");
|
||||||
container.setLocalTranslation(0, 200, 0);
|
container.setLocalTranslation(0, 200, 0);
|
||||||
container.setPreferredSize(new Vector3f(app.getCamera().getWidth(), 200, 0));
|
container.setPreferredSize(new Vector3f(app.getCamera().getWidth(), 200, 0));
|
||||||
|
|
||||||
// Spielerfarbe abrufen
|
// Create account and overview containers
|
||||||
Player currentPlayer = playerHandler.getPlayerById(app.getId());
|
|
||||||
ColorRGBA playerColor = convertPlayerColor(currentPlayer.getColor());
|
|
||||||
|
|
||||||
// Füge einen farbigen Balken hinzu
|
|
||||||
Container playerColorBar = new Container();
|
|
||||||
playerColorBar.setPreferredSize(new Vector3f(app.getCamera().getWidth(), 40, 0)); // Höhe des Balkens auf 10 festlegen
|
|
||||||
playerColorBar.setBackground(new QuadBackgroundComponent(playerColor));
|
|
||||||
playerColorBar.setLocalTranslation(0, 220, 1); // Positioniere ihn an der oberen Kante der Toolbar
|
|
||||||
app.getGuiNode().attachChild(playerColorBar);
|
|
||||||
|
|
||||||
// Übersicht und Konto
|
|
||||||
accountContainer = container.addChild(new Container());
|
accountContainer = container.addChild(new Container());
|
||||||
overviewContainer = container.addChild(new Container());
|
overviewContainer = container.addChild(new Container());
|
||||||
receivedEvent(new UpdatePlayerView()); // Initiale Aktualisierung
|
receivedEvent(new UpdatePlayerView());
|
||||||
|
|
||||||
// Würfel-Bereich
|
// Dice section
|
||||||
container.addChild(createDiceSection());
|
container.addChild(createDiceSection());
|
||||||
|
|
||||||
// Aktionsmenü
|
// Action menu
|
||||||
Container menuContainer = container.addChild(new Container());
|
Container menuContainer = container.addChild(new Container());
|
||||||
menuContainer.addChild(createTradeButton());
|
menuContainer.addChild(createTradeButton());
|
||||||
menuContainer.addChild(createPropertyMenuButton());
|
menuContainer.addChild(createPropertyMenuButton());
|
||||||
menuContainer.addChild(createEndTurnButton());
|
menuContainer.addChild(createEndTurnButton());
|
||||||
menuContainer.setBackground(createBackground());
|
menuContainer.setBackground(createBackground());
|
||||||
|
|
||||||
return container;
|
return container;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ColorRGBA convertPlayerColor(PlayerColor color) {
|
|
||||||
switch (color) {
|
|
||||||
case CYAN: return new ColorRGBA(0f, 1f, 1f, 1f); // Cyan
|
|
||||||
case YELLOW: return ColorRGBA.Yellow;
|
|
||||||
case RED: return ColorRGBA.Red;
|
|
||||||
case PINK: return new ColorRGBA(1f, 0.75f, 0.8f, 1f); // Pink
|
|
||||||
case GREEN: return ColorRGBA.Green;
|
|
||||||
case PURPLE: return new ColorRGBA(0.5f, 0f, 0.5f, 1f); // Purple
|
|
||||||
default: return ColorRGBA.Gray; // Fallback
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private Container createDiceSection() {
|
private Container createDiceSection() {
|
||||||
Container diceContainer = new Container(new SpringGridLayout(Axis.X, Axis.Y));
|
Container diceContainer = new Container(new SpringGridLayout(Axis.X, Axis.Y));
|
||||||
diceContainer.addChild(createDiceDisplay());
|
diceContainer.addChild(createDiceDisplay());
|
||||||
@ -201,7 +171,7 @@ public class Toolbar extends Dialog implements GameEventListener {
|
|||||||
|
|
||||||
private void animateDice(long startTime) throws InterruptedException {
|
private void animateDice(long startTime) throws InterruptedException {
|
||||||
int[] currentFace = {1};
|
int[] currentFace = {1};
|
||||||
while (System.currentTimeMillis() - startTime < 2000) { // Animation duration
|
while (System.currentTimeMillis() - startTime < 2500) { // Animation duration
|
||||||
currentFace[0] = (currentFace[0] % 6) + 1;
|
currentFace[0] = (currentFace[0] % 6) + 1;
|
||||||
|
|
||||||
String rotatingImage1 = diceToString(currentFace[0]);
|
String rotatingImage1 = diceToString(currentFace[0]);
|
||||||
@ -220,6 +190,7 @@ public class Toolbar extends Dialog implements GameEventListener {
|
|||||||
app.enqueue(() -> {
|
app.enqueue(() -> {
|
||||||
setDiceIcon(imageLabel, diceToString(event.a()));
|
setDiceIcon(imageLabel, diceToString(event.a()));
|
||||||
setDiceIcon(imageLabel2, diceToString(event.b()));
|
setDiceIcon(imageLabel2, diceToString(event.b()));
|
||||||
|
app.getGameLogic().playSound(Sound.BUTTON);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -249,8 +220,6 @@ public class Toolbar extends Dialog implements GameEventListener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void receivedEvent(UpdatePlayerView event) {
|
public void receivedEvent(UpdatePlayerView event) {
|
||||||
|
|
||||||
System.out.println("Update Player View");
|
|
||||||
accountContainer.clearChildren();
|
accountContainer.clearChildren();
|
||||||
overviewContainer.clearChildren();
|
overviewContainer.clearChildren();
|
||||||
|
|
||||||
@ -269,20 +238,10 @@ public class Toolbar extends Dialog implements GameEventListener {
|
|||||||
overviewContainer.addChild(new Label("Übersicht", new ElementId("label-Bold")));
|
overviewContainer.addChild(new Label("Übersicht", new ElementId("label-Bold")));
|
||||||
for (Player player : playerHandler.getPlayers()) {
|
for (Player player : playerHandler.getPlayers()) {
|
||||||
if (player.getId() != app.getId()) {
|
if (player.getId() != app.getId()) {
|
||||||
// Spielerfarbe abrufen
|
overviewContainer.addChild(new Label(
|
||||||
ColorRGBA playerColor = convertPlayerColor(player.getColor());
|
player.getName() + ": " + player.getAccountBalance() + " EUR",
|
||||||
|
new ElementId("label-Text")
|
||||||
// Label für den Spieler erstellen
|
));
|
||||||
Label playerLabel = new Label(
|
|
||||||
player.getName() + ": " + player.getAccountBalance() + " EUR",
|
|
||||||
new ElementId("label-Text")
|
|
||||||
);
|
|
||||||
|
|
||||||
// Farbe setzen
|
|
||||||
playerLabel.setColor(playerColor);
|
|
||||||
|
|
||||||
// Label zum Container hinzufügen
|
|
||||||
overviewContainer.addChild(playerLabel);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
overviewContainer.setBackground(createBackground());
|
overviewContainer.setBackground(createBackground());
|
||||||
@ -307,10 +266,4 @@ public class Toolbar extends Dialog implements GameEventListener {
|
|||||||
public void escape() {
|
public void escape() {
|
||||||
new SettingsMenu(app).open();
|
new SettingsMenu(app).open();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void update() {
|
|
||||||
receivedEvent(new UpdatePlayerView());
|
|
||||||
super.update();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -13,17 +13,13 @@ import com.simsilica.lemur.*;
|
|||||||
import com.simsilica.lemur.component.QuadBackgroundComponent;
|
import com.simsilica.lemur.component.QuadBackgroundComponent;
|
||||||
import com.simsilica.lemur.component.SpringGridLayout;
|
import com.simsilica.lemur.component.SpringGridLayout;
|
||||||
import com.simsilica.lemur.core.VersionedList;
|
import com.simsilica.lemur.core.VersionedList;
|
||||||
import com.simsilica.lemur.core.VersionedReference;
|
|
||||||
import com.simsilica.lemur.style.ElementId;
|
import com.simsilica.lemur.style.ElementId;
|
||||||
import pp.dialog.Dialog;
|
import pp.dialog.Dialog;
|
||||||
import pp.monopoly.client.MonopolyApp;
|
import pp.monopoly.client.MonopolyApp;
|
||||||
import pp.monopoly.game.server.Player;
|
|
||||||
import pp.monopoly.model.TradeHandler;
|
import pp.monopoly.model.TradeHandler;
|
||||||
import pp.monopoly.model.fields.PropertyField;
|
import pp.monopoly.model.fields.PropertyField;
|
||||||
import pp.monopoly.notification.Sound;
|
import pp.monopoly.notification.Sound;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public class TradeMenu extends Dialog {
|
public class TradeMenu extends Dialog {
|
||||||
private final MonopolyApp app;
|
private final MonopolyApp app;
|
||||||
private final TradeHandler tradeHandler;
|
private final TradeHandler tradeHandler;
|
||||||
@ -33,11 +29,6 @@ public class TradeMenu extends Dialog {
|
|||||||
private Selector<String> rightBuildingSelector, rightSpecialCardSelector;
|
private Selector<String> rightBuildingSelector, rightSpecialCardSelector;
|
||||||
private TextField leftSelectionsField, rightSelectionsField;
|
private TextField leftSelectionsField, rightSelectionsField;
|
||||||
private TextField leftCurrencyInput, rightCurrencyInput;
|
private TextField leftCurrencyInput, rightCurrencyInput;
|
||||||
private VersionedReference<Set<Integer>> selectionRef; // Reference to track selector changes
|
|
||||||
private String valueSelected = ""; // To keep track of the last selected value
|
|
||||||
private String buildingSelected = "";
|
|
||||||
private String specialCardSelected = "";
|
|
||||||
|
|
||||||
|
|
||||||
private static final ColorRGBA TRANSLUCENT_WHITE = new ColorRGBA(1, 1, 1, 0.5f);
|
private static final ColorRGBA TRANSLUCENT_WHITE = new ColorRGBA(1, 1, 1, 0.5f);
|
||||||
|
|
||||||
@ -108,7 +99,6 @@ public class TradeMenu extends Dialog {
|
|||||||
|
|
||||||
column.addChild(new Label("Gebäude:"));
|
column.addChild(new Label("Gebäude:"));
|
||||||
Selector<String> buildingSelector = createPropertySelector(isLeft);
|
Selector<String> buildingSelector = createPropertySelector(isLeft);
|
||||||
buildingSelector.getPopupContainer().setBackground(new QuadBackgroundComponent(ColorRGBA.Orange));
|
|
||||||
column.addChild(buildingSelector);
|
column.addChild(buildingSelector);
|
||||||
|
|
||||||
column.addChild(new Label("Währung:"));
|
column.addChild(new Label("Währung:"));
|
||||||
@ -117,7 +107,6 @@ public class TradeMenu extends Dialog {
|
|||||||
|
|
||||||
column.addChild(new Label("Sonderkarten:"));
|
column.addChild(new Label("Sonderkarten:"));
|
||||||
Selector<String> specialCardSelector = createSpecialCardSelector();
|
Selector<String> specialCardSelector = createSpecialCardSelector();
|
||||||
specialCardSelector.getPopupContainer().setBackground(new QuadBackgroundComponent(ColorRGBA.Orange));
|
|
||||||
styleSelector(specialCardSelector);
|
styleSelector(specialCardSelector);
|
||||||
column.addChild(specialCardSelector);
|
column.addChild(specialCardSelector);
|
||||||
|
|
||||||
@ -264,42 +253,4 @@ public class TradeMenu extends Dialog {
|
|||||||
app.getGuiNode().detachChild(mainContainer);
|
app.getGuiNode().detachChild(mainContainer);
|
||||||
super.close();
|
super.close();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
/**
|
|
||||||
* Updates the dialog periodically, called by the dialog manager.
|
|
||||||
*
|
|
||||||
* @param delta The time elapsed since the last update.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void update(float delta) {
|
|
||||||
// Check if the selection has changed
|
|
||||||
// if (selectionRef.update()) {
|
|
||||||
// String selected = playerSelector.getSelectedItem();
|
|
||||||
// if (!selected.equals(lastSelected)) {
|
|
||||||
// lastSelected = selected;
|
|
||||||
// onDropdownSelectionChanged(selected);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handles dropdown selection changes and updates the trade handler.
|
|
||||||
*
|
|
||||||
* @param selected The selected item from the dropdown.
|
|
||||||
*/
|
|
||||||
/* private void onDropdownSelectionChanged(String selected) {
|
|
||||||
app.getGameLogic().playSound(Sound.BUTTON);
|
|
||||||
int idStart = selected.indexOf("(ID: ") + 5; // Find start of the ID
|
|
||||||
int idEnd = selected.indexOf(")", idStart); // Find end of the ID
|
|
||||||
String idStr = selected.substring(idStart, idEnd); // Extract the ID as a string
|
|
||||||
int playerId = Integer.parseInt(idStr); // Convert the ID to an integer
|
|
||||||
|
|
||||||
// Find the player by ID
|
|
||||||
Player selectedPlayer = app.getGameLogic().getPlayerHandler().getPlayerById(playerId);
|
|
||||||
|
|
||||||
if (selectedPlayer != null) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ import pp.dialog.Dialog;
|
|||||||
import pp.monopoly.client.MonopolyApp;
|
import pp.monopoly.client.MonopolyApp;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bankrupt is a Warning-Popup which appears when the balance is negative at the end of a player´s turn
|
* Bankrupt is a Warning-Popup, which appears, if the balance is negative at the end of a player´s turn // TODO welche menü-Klasse
|
||||||
*/
|
*/
|
||||||
public class Bankrupt extends Dialog {
|
public class Bankrupt extends Dialog {
|
||||||
private final MonopolyApp app;
|
private final MonopolyApp app;
|
||||||
@ -49,7 +49,7 @@ public class Bankrupt extends Dialog {
|
|||||||
backgroundContainer.setPreferredSize(bankruptContainer.getPreferredSize().addLocal(padding, padding, 0));
|
backgroundContainer.setPreferredSize(bankruptContainer.getPreferredSize().addLocal(padding, padding, 0));
|
||||||
|
|
||||||
// Titel
|
// Titel
|
||||||
Label gateFieldTitle = bankruptContainer.addChild(new Label("Vorsicht !", new ElementId("warning-title")));
|
Label gateFieldTitle = bankruptContainer.addChild(new Label("Vorsicht !", new ElementId("settings-title"))); //TODO Dicke Schrift
|
||||||
gateFieldTitle.setFontSize(48);
|
gateFieldTitle.setFontSize(48);
|
||||||
gateFieldTitle.setColor(ColorRGBA.Black);
|
gateFieldTitle.setColor(ColorRGBA.Black);
|
||||||
|
|
||||||
@ -67,14 +67,14 @@ public class Bankrupt extends Dialog {
|
|||||||
quitButton.addClickCommands(source -> close());
|
quitButton.addClickCommands(source -> close());
|
||||||
|
|
||||||
|
|
||||||
// Zentriere das Popup
|
// Zentriere den Container
|
||||||
bankruptContainer.setLocalTranslation(
|
bankruptContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - bankruptContainer.getPreferredSize().x) / 2,
|
(app.getCamera().getWidth() - bankruptContainer.getPreferredSize().x) / 2,
|
||||||
(app.getCamera().getHeight() + bankruptContainer.getPreferredSize().y) / 2,
|
(app.getCamera().getHeight() + bankruptContainer.getPreferredSize().y) / 2,
|
||||||
8
|
8
|
||||||
);
|
);
|
||||||
|
|
||||||
// Zentriere das Popup
|
// Zentriere den Container
|
||||||
backgroundContainer.setLocalTranslation(
|
backgroundContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - bankruptContainer.getPreferredSize().x - padding) / 2,
|
(app.getCamera().getWidth() - bankruptContainer.getPreferredSize().x - padding) / 2,
|
||||||
(app.getCamera().getHeight() + bankruptContainer.getPreferredSize().y+ padding) / 2,
|
(app.getCamera().getHeight() + bankruptContainer.getPreferredSize().y+ padding) / 2,
|
||||||
|
@ -16,7 +16,8 @@ import pp.monopoly.client.gui.SettingsMenu;
|
|||||||
import pp.monopoly.model.fields.BuildingProperty;
|
import pp.monopoly.model.fields.BuildingProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BuildingPropertyCard creates the popup for field information
|
* TODO Kommentare fixen
|
||||||
|
* SettingsMenu ist ein Overlay-Menü, das durch ESC aufgerufen werden kann.
|
||||||
*/
|
*/
|
||||||
public class BuildingPropertyCard extends Dialog {
|
public class BuildingPropertyCard extends Dialog {
|
||||||
private final MonopolyApp app;
|
private final MonopolyApp app;
|
||||||
@ -45,9 +46,6 @@ public class BuildingPropertyCard extends Dialog {
|
|||||||
buildingPropertyContainer = new Container();
|
buildingPropertyContainer = new Container();
|
||||||
buildingPropertyContainer.setBackground(new QuadBackgroundComponent(field.getColor().getColor()));
|
buildingPropertyContainer.setBackground(new QuadBackgroundComponent(field.getColor().getColor()));
|
||||||
|
|
||||||
float padding = 10; // Passt den backgroundContainer an die Größe des buildingPropertyContainer an
|
|
||||||
backgroundContainer.setPreferredSize(buildingPropertyContainer.getPreferredSize().addLocal(padding, padding, 0));
|
|
||||||
|
|
||||||
|
|
||||||
Label settingsTitle = buildingPropertyContainer.addChild(new Label( field.getName(), new ElementId("settings-title")));
|
Label settingsTitle = buildingPropertyContainer.addChild(new Label( field.getName(), new ElementId("settings-title")));
|
||||||
settingsTitle.setFontSize(48);
|
settingsTitle.setFontSize(48);
|
||||||
@ -68,14 +66,28 @@ public class BuildingPropertyCard extends Dialog {
|
|||||||
propertyValuesContainer.addChild(new Label("„Hypothek: " + field.getHypo() + " EUR", new ElementId("label-Text")));
|
propertyValuesContainer.addChild(new Label("„Hypothek: " + field.getHypo() + " EUR", new ElementId("label-Text")));
|
||||||
propertyValuesContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f)));
|
propertyValuesContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f)));
|
||||||
|
|
||||||
// Zentriere das Popup
|
//TODO eventuell diese Stelle löschen, da nur die BuyCard Kaufen und beenden hat
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Beenden-Button
|
||||||
|
Button quitButton = foodFieldContainer.addChild(new Button("Beenden", new ElementId("button")));
|
||||||
|
quitButton.setFontSize(32);
|
||||||
|
// Kaufen-Button
|
||||||
|
Button buyButton = foodFieldContainer.addChild(new Button("Kaufen", new ElementId("button")));
|
||||||
|
buyButton.setFontSize(32);
|
||||||
|
*/
|
||||||
|
|
||||||
|
float padding = 10; // Padding around the settingsContainer for the background
|
||||||
|
backgroundContainer.setPreferredSize(buildingPropertyContainer.getPreferredSize().addLocal(padding, padding, 0));
|
||||||
|
|
||||||
|
|
||||||
|
// Zentriere das Menü
|
||||||
buildingPropertyContainer.setLocalTranslation(
|
buildingPropertyContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - buildingPropertyContainer.getPreferredSize().x) / 2,
|
(app.getCamera().getWidth() - buildingPropertyContainer.getPreferredSize().x) / 2,
|
||||||
(app.getCamera().getHeight() + buildingPropertyContainer.getPreferredSize().y) / 2,
|
(app.getCamera().getHeight() + buildingPropertyContainer.getPreferredSize().y) / 2,
|
||||||
8
|
8
|
||||||
);
|
);
|
||||||
|
|
||||||
// Zentriere das Popup
|
|
||||||
backgroundContainer.setLocalTranslation(
|
backgroundContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - buildingPropertyContainer.getPreferredSize().x - padding) / 2,
|
(app.getCamera().getWidth() - buildingPropertyContainer.getPreferredSize().x - padding) / 2,
|
||||||
(app.getCamera().getHeight() + buildingPropertyContainer.getPreferredSize().y+ padding) / 2,
|
(app.getCamera().getHeight() + buildingPropertyContainer.getPreferredSize().y+ padding) / 2,
|
||||||
|
@ -15,7 +15,7 @@ import pp.monopoly.model.fields.BuildingProperty;
|
|||||||
import pp.monopoly.notification.Sound;
|
import pp.monopoly.notification.Sound;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BuyCard is a popup that appears when a player lands on a field that is still available for purchase.
|
* SettingsMenu ist ein Overlay-Menü, das durch ESC aufgerufen werden kann.
|
||||||
*/
|
*/
|
||||||
public class BuyCard extends Dialog {
|
public class BuyCard extends Dialog {
|
||||||
private final MonopolyApp app;
|
private final MonopolyApp app;
|
||||||
@ -28,7 +28,7 @@ public class BuyCard extends Dialog {
|
|||||||
this.app = app;
|
this.app = app;
|
||||||
|
|
||||||
//Generate the corresponfing field
|
//Generate the corresponfing field
|
||||||
int index = app.getGameLogic().getPlayerHandler().getPlayerById(app.getId()).getFieldID();
|
int index = app.getGameLogic().getPlayerHandler().getPlayers().get(0).getFieldID();;
|
||||||
BuildingProperty field = (BuildingProperty) new BoardManager().getFieldAtIndex(index);
|
BuildingProperty field = (BuildingProperty) new BoardManager().getFieldAtIndex(index);
|
||||||
|
|
||||||
// Create the background container
|
// Create the background container
|
||||||
@ -38,16 +38,13 @@ public class BuyCard extends Dialog {
|
|||||||
|
|
||||||
// Hauptcontainer für die Gebäudekarte
|
// Hauptcontainer für die Gebäudekarte
|
||||||
buyCardContainer = new Container();
|
buyCardContainer = new Container();
|
||||||
|
|
||||||
float padding = 10; // Passt den backgroundContainer an die Größe des buyCardContainers an
|
|
||||||
backgroundContainer.setPreferredSize(buyCardContainer.getPreferredSize().addLocal(padding, padding, 0));
|
|
||||||
|
|
||||||
// Titel
|
|
||||||
Label title = buyCardContainer.addChild(new Label( field.getName(), new ElementId("label-Bold")));
|
Label title = buyCardContainer.addChild(new Label( field.getName(), new ElementId("label-Bold")));
|
||||||
title.setBackground(new QuadBackgroundComponent(field.getColor().getColor()));
|
title.setBackground(new QuadBackgroundComponent(field.getColor().getColor()));
|
||||||
title.setFontSize(48);
|
title.setFontSize(48);
|
||||||
|
|
||||||
// Text, der auf dem Popup steht
|
// Text, der auf der Karte steht
|
||||||
// Die Preise werden dynamisch dem BoardManager entnommen
|
// Die Preise werden dynamisch dem BoardManager entnommen
|
||||||
Container propertyValuesContainer = buyCardContainer.addChild(new Container());
|
Container propertyValuesContainer = buyCardContainer.addChild(new Container());
|
||||||
propertyValuesContainer.addChild(new Label("„Grundstückswert: " + field.getPrice() + " EUR", new ElementId("label-Text")));
|
propertyValuesContainer.addChild(new Label("„Grundstückswert: " + field.getPrice() + " EUR", new ElementId("label-Text")));
|
||||||
@ -80,14 +77,17 @@ public class BuyCard extends Dialog {
|
|||||||
app.getGameLogic().send(new BuyPropertyResponse());
|
app.getGameLogic().send(new BuyPropertyResponse());
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Zentriere das Popup
|
float padding = 10; // Padding around the settingsContainer for the background
|
||||||
|
backgroundContainer.setPreferredSize(buyCardContainer.getPreferredSize().addLocal(padding, padding, 0));
|
||||||
|
|
||||||
|
|
||||||
|
// Zentriere das Menü
|
||||||
buyCardContainer.setLocalTranslation(
|
buyCardContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - buyCardContainer.getPreferredSize().x) / 2,
|
(app.getCamera().getWidth() - buyCardContainer.getPreferredSize().x) / 2,
|
||||||
(app.getCamera().getHeight() + buyCardContainer.getPreferredSize().y) / 2,
|
(app.getCamera().getHeight() + buyCardContainer.getPreferredSize().y) / 2,
|
||||||
8
|
8
|
||||||
);
|
);
|
||||||
|
|
||||||
// Zentriere das Popup
|
|
||||||
backgroundContainer.setLocalTranslation(
|
backgroundContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - buyCardContainer.getPreferredSize().x - padding) / 2,
|
(app.getCamera().getWidth() - buyCardContainer.getPreferredSize().x - padding) / 2,
|
||||||
(app.getCamera().getHeight() + buyCardContainer.getPreferredSize().y+ padding) / 2,
|
(app.getCamera().getHeight() + buyCardContainer.getPreferredSize().y+ padding) / 2,
|
||||||
|
@ -12,7 +12,7 @@ import pp.monopoly.client.gui.SettingsMenu;
|
|||||||
import pp.monopoly.notification.Sound;
|
import pp.monopoly.notification.Sound;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ConfirmTrade is a popup which appears when a trade is proposed to this certain player.
|
* SettingsMenu ist ein Overlay-Menü, das durch ESC aufgerufen werden kann.
|
||||||
*/
|
*/
|
||||||
public class ConfirmTrade extends Dialog {
|
public class ConfirmTrade extends Dialog {
|
||||||
private final MonopolyApp app;
|
private final MonopolyApp app;
|
||||||
@ -23,25 +23,26 @@ public class ConfirmTrade extends Dialog {
|
|||||||
public ConfirmTrade(MonopolyApp app) {
|
public ConfirmTrade(MonopolyApp app) {
|
||||||
super(app.getDialogManager());
|
super(app.getDialogManager());
|
||||||
this.app = app;
|
this.app = app;
|
||||||
|
|
||||||
|
//Generate the corresponfing field
|
||||||
|
//int index = app.getGameLogic().getPlayerHandler().getPlayers().get(0).getFieldID();;
|
||||||
|
// BuildingProperty field = (BuildingProperty) new BoardManager().getFieldAtIndex(index);
|
||||||
|
|
||||||
// Create the background container
|
// Create the background container
|
||||||
backgroundContainer = new Container();
|
backgroundContainer = new Container();
|
||||||
backgroundContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.8657f, 0.8735f, 0.8892f, 1.0f))); // Darker background
|
backgroundContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.8657f, 0.8735f, 0.8892f, 1.0f))); // Darker background
|
||||||
attachChild(backgroundContainer);
|
attachChild(backgroundContainer);
|
||||||
|
|
||||||
// Hauptcontainer für das Bestätigungspopup
|
// Hauptcontainer für die Gebäudekarte
|
||||||
confirmTradeContainer = new Container();
|
confirmTradeContainer = new Container();
|
||||||
|
|
||||||
float padding = 10; // Passt den backgroundContainer an die Größe des confirmTradeContainer an
|
|
||||||
backgroundContainer.setPreferredSize(confirmTradeContainer.getPreferredSize().addLocal(padding, padding, 0));
|
|
||||||
|
|
||||||
// Titel
|
|
||||||
Label title = confirmTradeContainer.addChild(new Label( "Handel", new ElementId("label-Bold")));
|
Label title = confirmTradeContainer.addChild(new Label( "Handel", new ElementId("label-Bold"))); //TODO ggf die Buttons Sprachabhängig von den Properties machen
|
||||||
title.setFontSize(48);
|
title.setFontSize(48);
|
||||||
title.setColor(ColorRGBA.Black);
|
title.setColor(ColorRGBA.Black);
|
||||||
|
|
||||||
// Text, der auf der Karte steht
|
// Text, der auf der Karte steht
|
||||||
// Die Werte werden dem Handel entnommen (Iwas auch immer da dann ist)
|
// Die Preise werden dynamisch dem BoardManager entnommen
|
||||||
Container propertyValuesContainer = confirmTradeContainer.addChild(new Container());
|
Container propertyValuesContainer = confirmTradeContainer.addChild(new Container());
|
||||||
propertyValuesContainer.addChild(new Label("„Spieler XXX möchte:", new ElementId("label-Text"))); //TODO hier überall die entsprechenden Variablen einfügen
|
propertyValuesContainer.addChild(new Label("„Spieler XXX möchte:", new ElementId("label-Text"))); //TODO hier überall die entsprechenden Variablen einfügen
|
||||||
propertyValuesContainer.addChild(new Label("", new ElementId("label-Text")));// Leerzeile
|
propertyValuesContainer.addChild(new Label("", new ElementId("label-Text")));// Leerzeile
|
||||||
@ -58,26 +59,30 @@ public class ConfirmTrade extends Dialog {
|
|||||||
propertyValuesContainer.addChild(new Label("tauschen, willst du das Angebot annehmen?", new ElementId("label-Text")));
|
propertyValuesContainer.addChild(new Label("tauschen, willst du das Angebot annehmen?", new ElementId("label-Text")));
|
||||||
propertyValuesContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f)));
|
propertyValuesContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f)));
|
||||||
|
|
||||||
// Ablehnen-Button
|
// Beenden-Button
|
||||||
Button declineButton = confirmTradeContainer.addChild(new Button("Ablehnen", new ElementId("button")));
|
Button declineButton = confirmTradeContainer.addChild(new Button("Ablehnen", new ElementId("button"))); //TODO ggf die Buttons Sprachabhängig von den Properties machen
|
||||||
declineButton.setFontSize(32);
|
declineButton.setFontSize(32);
|
||||||
declineButton.addClickCommands(s -> ifTopDialog(() -> { //TODO Buttonfunktion prüfen
|
declineButton.addClickCommands(s -> ifTopDialog(() -> {
|
||||||
app.getGameLogic().playSound(Sound.BUTTON);
|
app.getGameLogic().playSound(Sound.BUTTON);
|
||||||
close();
|
close();
|
||||||
}));
|
}));
|
||||||
// Verhandeln-Button
|
// Kaufen-Button
|
||||||
Button negotiateButton = confirmTradeContainer.addChild(new Button("Verhandeln", new ElementId("button")));
|
Button negotiateButton = confirmTradeContainer.addChild(new Button("Verhandeln", new ElementId("button"))); //TODO ggf die Buttons Sprachabhängig von den Properties machen
|
||||||
negotiateButton.setFontSize(32);
|
negotiateButton.setFontSize(32);
|
||||||
negotiateButton.addClickCommands(s -> ifTopDialog( () -> { //TODO Buttonfunktion prüfen
|
negotiateButton.addClickCommands(s -> ifTopDialog( () -> { //TODO Buttonfunktion prüfen
|
||||||
app.getGameLogic().playSound(Sound.BUTTON);
|
app.getGameLogic().playSound(Sound.BUTTON);
|
||||||
}));
|
}));
|
||||||
// Confirm-Button
|
// Kaufen-Button
|
||||||
Button confirmButton = confirmTradeContainer.addChild(new Button("Bestätigen", new ElementId("button")));
|
Button confirmButton = confirmTradeContainer.addChild(new Button("Bestätigen", new ElementId("button"))); //TODO ggf die Buttons Sprachabhängig von den Properties machen
|
||||||
confirmButton.setFontSize(32);
|
confirmButton.setFontSize(32);
|
||||||
confirmButton.addClickCommands(s -> ifTopDialog( () -> { //TODO Buttonfunktion prüfen
|
confirmButton.addClickCommands(s -> ifTopDialog( () -> {
|
||||||
app.getGameLogic().playSound(Sound.BUTTON);
|
app.getGameLogic().playSound(Sound.BUTTON);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
float padding = 10; // Padding around the settingsContainer for the background
|
||||||
|
backgroundContainer.setPreferredSize(confirmTradeContainer.getPreferredSize().addLocal(padding, padding, 0));
|
||||||
|
|
||||||
|
|
||||||
// Zentriere das Menü
|
// Zentriere das Menü
|
||||||
confirmTradeContainer.setLocalTranslation(
|
confirmTradeContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - confirmTradeContainer.getPreferredSize().x) / 2,
|
(app.getCamera().getWidth() - confirmTradeContainer.getPreferredSize().x) / 2,
|
||||||
@ -85,7 +90,6 @@ public class ConfirmTrade extends Dialog {
|
|||||||
8
|
8
|
||||||
);
|
);
|
||||||
|
|
||||||
// Zentriere das Menü
|
|
||||||
backgroundContainer.setLocalTranslation(
|
backgroundContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - confirmTradeContainer.getPreferredSize().x - padding) / 2,
|
(app.getCamera().getWidth() - confirmTradeContainer.getPreferredSize().x - padding) / 2,
|
||||||
(app.getCamera().getHeight() + confirmTradeContainer.getPreferredSize().y+ padding) / 2,
|
(app.getCamera().getHeight() + confirmTradeContainer.getPreferredSize().y+ padding) / 2,
|
||||||
|
@ -13,11 +13,11 @@ import com.simsilica.lemur.component.QuadBackgroundComponent;
|
|||||||
import com.simsilica.lemur.style.ElementId;
|
import com.simsilica.lemur.style.ElementId;
|
||||||
import pp.dialog.Dialog;
|
import pp.dialog.Dialog;
|
||||||
import pp.monopoly.client.MonopolyApp;
|
import pp.monopoly.client.MonopolyApp;
|
||||||
|
import pp.monopoly.client.gui.SettingsMenu;
|
||||||
/**
|
/**
|
||||||
* EventCardPopup is a popup which appears when a certain EventCard is triggered by entering a EventCardField
|
* SettingsMenu ist ein Overlay-Menü, das durch ESC aufgerufen werden kann.
|
||||||
*/
|
*/
|
||||||
public class EventCardPopup extends Dialog {
|
public class EventCard extends Dialog {
|
||||||
private final MonopolyApp app;
|
private final MonopolyApp app;
|
||||||
private final Geometry overlayBackground;
|
private final Geometry overlayBackground;
|
||||||
private final Container eventCardContainer;
|
private final Container eventCardContainer;
|
||||||
@ -25,7 +25,7 @@ public class EventCardPopup extends Dialog {
|
|||||||
private final String description;
|
private final String description;
|
||||||
|
|
||||||
|
|
||||||
public EventCardPopup(MonopolyApp app, String description) {
|
public EventCard(MonopolyApp app, String description) {
|
||||||
super(app.getDialogManager());
|
super(app.getDialogManager());
|
||||||
this.app = app;
|
this.app = app;
|
||||||
this.description = description;
|
this.description = description;
|
||||||
@ -39,21 +39,19 @@ public class EventCardPopup extends Dialog {
|
|||||||
backgroundContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.8657f, 0.8735f, 0.8892f, 1.0f))); // Darker background
|
backgroundContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.8657f, 0.8735f, 0.8892f, 1.0f))); // Darker background
|
||||||
app.getGuiNode().attachChild(backgroundContainer);
|
app.getGuiNode().attachChild(backgroundContainer);
|
||||||
|
|
||||||
// Hauptcontainer für die Eventcard
|
// Hauptcontainer für die Gebäudekarte
|
||||||
eventCardContainer = new Container();
|
eventCardContainer = new Container();
|
||||||
eventCardContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.8657f, 0.8735f, 0.8892f, 1.0f)));
|
eventCardContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.8657f, 0.8735f, 0.8892f, 1.0f)));
|
||||||
eventCardContainer.setPreferredSize(new Vector3f(550,400,10));
|
eventCardContainer.setPreferredSize(new Vector3f(550,400,10));
|
||||||
|
|
||||||
float padding = 10; // Passt den backgroundContainer an die Größe des eventCardContainers an
|
|
||||||
backgroundContainer.setPreferredSize(eventCardContainer.getPreferredSize().addLocal(padding, padding, 0));
|
|
||||||
|
|
||||||
// Titel
|
// Titel
|
||||||
|
// Die Namen werden dynamisch dem BoardManager entnommen
|
||||||
Label gateFieldTitle = eventCardContainer.addChild(new Label("Ereigniskarte", new ElementId("settings-title")));
|
Label gateFieldTitle = eventCardContainer.addChild(new Label("Ereigniskarte", new ElementId("settings-title")));
|
||||||
gateFieldTitle.setFontSize(48);
|
gateFieldTitle.setFontSize(48);
|
||||||
gateFieldTitle.setColor(ColorRGBA.Black);
|
gateFieldTitle.setColor(ColorRGBA.Black);
|
||||||
|
|
||||||
// Text, der auf der Karte steht
|
// Text, der auf der Karte steht
|
||||||
// Die Erklärungsfelder werden automatisch den descriptions der Message entnommen
|
// Die Preise werden dynamisch dem BoardManager entnommen
|
||||||
Container propertyValuesContainer = eventCardContainer.addChild(new Container());
|
Container propertyValuesContainer = eventCardContainer.addChild(new Container());
|
||||||
propertyValuesContainer.addChild(new Label(description, new ElementId("label-Text")));
|
propertyValuesContainer.addChild(new Label(description, new ElementId("label-Text")));
|
||||||
propertyValuesContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f)));
|
propertyValuesContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f)));
|
||||||
@ -64,14 +62,17 @@ public class EventCardPopup extends Dialog {
|
|||||||
quitButton.setFontSize(32);
|
quitButton.setFontSize(32);
|
||||||
quitButton.addClickCommands(source -> close());
|
quitButton.addClickCommands(source -> close());
|
||||||
|
|
||||||
// Zentriere das Popup
|
float padding = 10; // Padding around the settingsContainer for the background
|
||||||
|
backgroundContainer.setPreferredSize(eventCardContainer.getPreferredSize().addLocal(padding, padding, 0));
|
||||||
|
|
||||||
|
|
||||||
|
// Zentriere das Menü
|
||||||
eventCardContainer.setLocalTranslation(
|
eventCardContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - eventCardContainer.getPreferredSize().x) / 2,
|
(app.getCamera().getWidth() - eventCardContainer.getPreferredSize().x) / 2,
|
||||||
(app.getCamera().getHeight() + eventCardContainer.getPreferredSize().y) / 2,
|
(app.getCamera().getHeight() + eventCardContainer.getPreferredSize().y) / 2,
|
||||||
8
|
8
|
||||||
);
|
);
|
||||||
|
|
||||||
// Zentriere das Popup
|
|
||||||
backgroundContainer.setLocalTranslation(
|
backgroundContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - eventCardContainer.getPreferredSize().x - padding) / 2,
|
(app.getCamera().getWidth() - eventCardContainer.getPreferredSize().x - padding) / 2,
|
||||||
(app.getCamera().getHeight() + eventCardContainer.getPreferredSize().y+ padding) / 2,
|
(app.getCamera().getHeight() + eventCardContainer.getPreferredSize().y+ padding) / 2,
|
@ -19,7 +19,7 @@ import pp.monopoly.model.fields.FoodField;
|
|||||||
import pp.monopoly.notification.Sound;
|
import pp.monopoly.notification.Sound;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FoodFieldCard creates the popup for field information
|
* FoodFieldCard erstellt die Geböudekarte vom Brandl und der Truppenküche
|
||||||
*/
|
*/
|
||||||
public class FoodFieldCard extends Dialog {
|
public class FoodFieldCard extends Dialog {
|
||||||
private final MonopolyApp app;
|
private final MonopolyApp app;
|
||||||
@ -32,7 +32,7 @@ public class FoodFieldCard extends Dialog {
|
|||||||
this.app = app;
|
this.app = app;
|
||||||
|
|
||||||
//Generate the corresponfing field
|
//Generate the corresponfing field
|
||||||
int index = app.getGameLogic().getPlayerHandler().getPlayerById(app.getId()).getFieldID();
|
int index = app.getGameLogic().getPlayerHandler().getPlayers().get(0).getFieldID();
|
||||||
FoodField field = (FoodField) app.getGameLogic().getBoardManager().getFieldAtIndex(index);
|
FoodField field = (FoodField) app.getGameLogic().getBoardManager().getFieldAtIndex(index);
|
||||||
|
|
||||||
// Halbtransparentes Overlay hinzufügen
|
// Halbtransparentes Overlay hinzufügen
|
||||||
@ -48,8 +48,7 @@ public class FoodFieldCard extends Dialog {
|
|||||||
foodFieldContainer = new Container();
|
foodFieldContainer = new Container();
|
||||||
foodFieldContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.1f, 0.1f, 0.1f, 0.9f)));
|
foodFieldContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.1f, 0.1f, 0.1f, 0.9f)));
|
||||||
|
|
||||||
float padding = 10; // Passt den backgroundContainer an die Größe des foodFieldContainers an
|
|
||||||
backgroundContainer.setPreferredSize(foodFieldContainer.getPreferredSize().addLocal(padding, padding, 0));
|
|
||||||
|
|
||||||
// Titel, bestehend aus dynamischen Namen anhand der ID und der Schriftfarbe/größe
|
// Titel, bestehend aus dynamischen Namen anhand der ID und der Schriftfarbe/größe
|
||||||
Label settingsTitle = foodFieldContainer.addChild(new Label(field.getName(), new ElementId("settings-title")));
|
Label settingsTitle = foodFieldContainer.addChild(new Label(field.getName(), new ElementId("settings-title")));
|
||||||
@ -87,14 +86,16 @@ public class FoodFieldCard extends Dialog {
|
|||||||
app.getGameLogic().send(new BuyPropertyResponse());
|
app.getGameLogic().send(new BuyPropertyResponse());
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Zentriere das Popup
|
float padding = 10; // Padding around the settingsContainer for the background
|
||||||
|
backgroundContainer.setPreferredSize(foodFieldContainer.getPreferredSize().addLocal(padding, padding, 0));
|
||||||
|
|
||||||
|
// Zentriere das Menü
|
||||||
foodFieldContainer.setLocalTranslation(
|
foodFieldContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - foodFieldContainer.getPreferredSize().x) / 2,
|
(app.getCamera().getWidth() - foodFieldContainer.getPreferredSize().x) / 2,
|
||||||
(app.getCamera().getHeight() + foodFieldContainer.getPreferredSize().y) / 2,
|
(app.getCamera().getHeight() + foodFieldContainer.getPreferredSize().y) / 2,
|
||||||
8
|
8
|
||||||
);
|
);
|
||||||
|
|
||||||
// Zentriere das Popup
|
|
||||||
backgroundContainer.setLocalTranslation(
|
backgroundContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - foodFieldContainer.getPreferredSize().x - padding) / 2,
|
(app.getCamera().getWidth() - foodFieldContainer.getPreferredSize().x - padding) / 2,
|
||||||
(app.getCamera().getHeight() + foodFieldContainer.getPreferredSize().y+ padding) / 2,
|
(app.getCamera().getHeight() + foodFieldContainer.getPreferredSize().y+ padding) / 2,
|
||||||
|
@ -18,7 +18,7 @@ import pp.monopoly.model.fields.GateField;
|
|||||||
import pp.monopoly.notification.Sound;
|
import pp.monopoly.notification.Sound;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GateFieldCard creates the popup for field information
|
* SettingsMenu ist ein Overlay-Menü, das durch ESC aufgerufen werden kann.
|
||||||
*/
|
*/
|
||||||
public class GateFieldCard extends Dialog {
|
public class GateFieldCard extends Dialog {
|
||||||
private final MonopolyApp app;
|
private final MonopolyApp app;
|
||||||
@ -31,7 +31,7 @@ public class GateFieldCard extends Dialog {
|
|||||||
this.app = app;
|
this.app = app;
|
||||||
|
|
||||||
//Generate the corresponfing field
|
//Generate the corresponfing field
|
||||||
int index = app.getGameLogic().getPlayerHandler().getPlayerById(app.getId()).getFieldID();
|
int index = app.getGameLogic().getPlayerHandler().getPlayers().get(0).getFieldID();
|
||||||
GateField field = (GateField) app.getGameLogic().getBoardManager().getFieldAtIndex(index);
|
GateField field = (GateField) app.getGameLogic().getBoardManager().getFieldAtIndex(index);
|
||||||
|
|
||||||
// Halbtransparentes Overlay hinzufügen
|
// Halbtransparentes Overlay hinzufügen
|
||||||
@ -47,10 +47,6 @@ public class GateFieldCard extends Dialog {
|
|||||||
gateFieldContainer = new Container();
|
gateFieldContainer = new Container();
|
||||||
gateFieldContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.8657f, 0.8735f, 0.8892f, 1.0f)));
|
gateFieldContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.8657f, 0.8735f, 0.8892f, 1.0f)));
|
||||||
|
|
||||||
float padding = 10; // Passt den backgroundContainer an die Größe des gateFieldContainers an
|
|
||||||
backgroundContainer.setPreferredSize(gateFieldContainer.getPreferredSize().addLocal(padding, padding, 0));
|
|
||||||
|
|
||||||
|
|
||||||
// Titel
|
// Titel
|
||||||
// Die Namen werden dynamisch dem BoardManager entnommen
|
// Die Namen werden dynamisch dem BoardManager entnommen
|
||||||
Label gateFieldTitle = gateFieldContainer.addChild(new Label(field.getName(), new ElementId("settings-title")));
|
Label gateFieldTitle = gateFieldContainer.addChild(new Label(field.getName(), new ElementId("settings-title")));
|
||||||
@ -84,16 +80,19 @@ public class GateFieldCard extends Dialog {
|
|||||||
app.getGameLogic().playSound(Sound.BUTTON);
|
app.getGameLogic().playSound(Sound.BUTTON);
|
||||||
app.getGameLogic().send(new BuyPropertyResponse());
|
app.getGameLogic().send(new BuyPropertyResponse());
|
||||||
close();
|
close();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Zentriere das Popup
|
float padding = 10; // Padding around the settingsContainer for the background
|
||||||
|
backgroundContainer.setPreferredSize(gateFieldContainer.getPreferredSize().addLocal(padding, padding, 0));
|
||||||
|
|
||||||
|
|
||||||
|
// Zentriere das Menü
|
||||||
gateFieldContainer.setLocalTranslation(
|
gateFieldContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - gateFieldContainer.getPreferredSize().x) / 2,
|
(app.getCamera().getWidth() - gateFieldContainer.getPreferredSize().x) / 2,
|
||||||
(app.getCamera().getHeight() + gateFieldContainer.getPreferredSize().y) / 2,
|
(app.getCamera().getHeight() + gateFieldContainer.getPreferredSize().y) / 2,
|
||||||
8
|
8
|
||||||
);
|
);
|
||||||
|
|
||||||
// Zentriere das Popup
|
|
||||||
backgroundContainer.setLocalTranslation(
|
backgroundContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - gateFieldContainer.getPreferredSize().x - padding) / 2,
|
(app.getCamera().getWidth() - gateFieldContainer.getPreferredSize().x - padding) / 2,
|
||||||
(app.getCamera().getHeight() + gateFieldContainer.getPreferredSize().y+ padding) / 2,
|
(app.getCamera().getHeight() + gateFieldContainer.getPreferredSize().y+ padding) / 2,
|
||||||
|
@ -25,7 +25,7 @@ import java.util.List;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SellHouse is a popup which appears when a player clicks on the demolish-button in the BuildingAdminMenu
|
* SettingsMenu ist ein Overlay-Menü, das durch ESC aufgerufen werden kann.
|
||||||
*/
|
*/
|
||||||
public class SellHouse extends Dialog {
|
public class SellHouse extends Dialog {
|
||||||
private final MonopolyApp app;
|
private final MonopolyApp app;
|
||||||
@ -36,42 +36,65 @@ public class SellHouse extends Dialog {
|
|||||||
public SellHouse(MonopolyApp app) {
|
public SellHouse(MonopolyApp app) {
|
||||||
super(app.getDialogManager());
|
super(app.getDialogManager());
|
||||||
this.app = app;
|
this.app = app;
|
||||||
|
|
||||||
|
//Generate the corresponfing field
|
||||||
|
//int index = app.getGameLogic().getPlayerHandler().getPlayers().get(0).getFieldID();;
|
||||||
|
// BuildingProperty field = (BuildingProperty) new BoardManager().getFieldAtIndex(index);
|
||||||
|
|
||||||
// Create the background container
|
// Create the background container
|
||||||
backgroundContainer = new Container();
|
backgroundContainer = new Container();
|
||||||
backgroundContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.8657f, 0.8735f, 0.8892f, 1.0f))); // Darker background
|
backgroundContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.8657f, 0.8735f, 0.8892f, 1.0f))); // Darker background
|
||||||
attachChild(backgroundContainer);
|
attachChild(backgroundContainer);
|
||||||
|
|
||||||
// Hauptcontainer für das Menü
|
// Hauptcontainer für die Gebäudekarte
|
||||||
sellhouseContainer = new Container();
|
sellhouseContainer = new Container();
|
||||||
sellhouseContainer.setPreferredSize(new Vector3f(800, 600, 0));
|
sellhouseContainer.setPreferredSize(new Vector3f(800, 600, 0));
|
||||||
|
|
||||||
float padding = 10; // Passt den backgroundContainer an die Größe des sellhouseContainers an
|
|
||||||
backgroundContainer.setPreferredSize(sellhouseContainer.getPreferredSize().addLocal(padding, padding, 0));
|
Label title = sellhouseContainer.addChild(new Label( "Gebäude Abreißen", new ElementId("label-Bold"))); //TODO ggf die Buttons Sprachabhängig von den Properties machen
|
||||||
|
|
||||||
// Titel
|
|
||||||
Label title = sellhouseContainer.addChild(new Label( "Gebäude Abreißen", new ElementId("warining-Bold")));
|
|
||||||
title.setFontSize(48);
|
title.setFontSize(48);
|
||||||
title.setColor(ColorRGBA.Black);
|
title.setColor(ColorRGBA.Black);
|
||||||
|
|
||||||
//Unterteilund des sellHouseContainer in drei "Untercontainer"
|
|
||||||
Container upContainer = sellhouseContainer.addChild(new Container());
|
Container upContainer = sellhouseContainer.addChild(new Container());
|
||||||
Container middleContainer = sellhouseContainer.addChild(new Container());
|
Container middleContainer = sellhouseContainer.addChild(new Container());
|
||||||
Container downContainer = sellhouseContainer.addChild(new Container());
|
Container downContainer = sellhouseContainer.addChild(new Container());
|
||||||
|
|
||||||
// Text, der auf der Karte steht
|
// Text, der auf der Karte steht
|
||||||
|
// Die Preise werden dynamisch dem BoardManager entnommen
|
||||||
upContainer.addChild(new Label("„Grundstück wählen:", new ElementId("label-Text"))); //TODO hier überall die entsprechenden Variablen einfügen
|
upContainer.addChild(new Label("„Grundstück wählen:", new ElementId("label-Text"))); //TODO hier überall die entsprechenden Variablen einfügen
|
||||||
upContainer.addChild(new Label("", new ElementId("label-Text")));// Leerzeile
|
upContainer.addChild(new Label("", new ElementId("label-Text")));// Leerzeile
|
||||||
upContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f)));
|
upContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f)));
|
||||||
|
|
||||||
middleContainer.setPreferredSize(new Vector3f(100, 150, 0));
|
middleContainer.setPreferredSize(new Vector3f(100, 150, 0));
|
||||||
middleContainer.setBackground(new QuadBackgroundComponent(ColorRGBA.Orange));
|
middleContainer.setBackground(new QuadBackgroundComponent(ColorRGBA.Orange));
|
||||||
|
/*
|
||||||
|
// Create a VersionedList for the ListBox model
|
||||||
|
VersionedList<String> checkboxListModel = new VersionedList<>();
|
||||||
|
for (int i = 1; i <= 10; i++) {
|
||||||
|
checkboxListModel.add("Option " + i); // Add items to the list
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a ListBox with the "glass" style and the model
|
||||||
|
ListBox<String> checkboxListBox = new ListBox<>(checkboxListModel, "glass");
|
||||||
|
checkboxListBox.setPreferredSize(new Vector3f(300, 200, 0)); // Adjust size as needed
|
||||||
|
|
||||||
|
// Add the ListBox to the middle container
|
||||||
|
middleContainer.addChild(checkboxListBox);
|
||||||
|
|
||||||
|
// If you need separate checkboxes (optional), render them separately
|
||||||
|
for (String option : checkboxListModel) {
|
||||||
|
Checkbox checkbox = new Checkbox(option);
|
||||||
|
checkbox.setFontSize(16); // Optional: adjust font size
|
||||||
|
middleContainer.addChild(checkbox); // Add it to the middle container
|
||||||
|
}
|
||||||
|
// Add the ListBox to the middle container
|
||||||
|
middleContainer.addChild(checkboxListBox); */
|
||||||
|
|
||||||
// Create a VersionedList for the ListBox model
|
// Create a VersionedList for the ListBox model
|
||||||
VersionedList<BuildingProperty> listModel = new VersionedList<>();
|
VersionedList<BuildingProperty> listModel = new VersionedList<>();
|
||||||
|
|
||||||
// Retrieve current player and their properties
|
// Retrieve current player and their properties
|
||||||
Player currentPlayer = app.getGameLogic().getPlayerHandler().getPlayerById(app.getId());
|
Player currentPlayer = app.getGameLogic().getPlayerHandler().getPlayers().get(0);
|
||||||
BoardManager boardManager = app.getGameLogic().getBoardManager();
|
BoardManager boardManager = app.getGameLogic().getBoardManager();
|
||||||
|
|
||||||
List<BuildingProperty> playerProperties = boardManager.getPropertyFields(
|
List<BuildingProperty> playerProperties = boardManager.getPropertyFields(
|
||||||
@ -106,14 +129,14 @@ public class SellHouse extends Dialog {
|
|||||||
downContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f)));
|
downContainer.setBackground(new QuadBackgroundComponent(new ColorRGBA(0.4657f, 0.4735f, 0.4892f, 1.0f)));
|
||||||
|
|
||||||
// Beenden-Button
|
// Beenden-Button
|
||||||
Button cancelButton = sellhouseContainer.addChild(new Button("Abbrechen", new ElementId("button")));
|
Button cancelButton = sellhouseContainer.addChild(new Button("Abbrechen", new ElementId("button"))); //TODO ggf die Buttons Sprachabhängig von den Properties machen
|
||||||
cancelButton.setFontSize(32);
|
cancelButton.setFontSize(32);
|
||||||
cancelButton.addClickCommands(s -> ifTopDialog(() -> {
|
cancelButton.addClickCommands(s -> ifTopDialog(() -> {
|
||||||
app.getGameLogic().playSound(Sound.BUTTON);
|
app.getGameLogic().playSound(Sound.BUTTON);
|
||||||
close();
|
close();
|
||||||
}));
|
}));
|
||||||
// Kaufen-Button
|
// Kaufen-Button
|
||||||
Button confirmButton = sellhouseContainer.addChild(new Button("Bestätigen", new ElementId("button")));
|
Button confirmButton = sellhouseContainer.addChild(new Button("Bestätigen", new ElementId("button"))); //TODO ggf die Buttons Sprachabhängig von den Properties machen
|
||||||
confirmButton.setFontSize(32);
|
confirmButton.setFontSize(32);
|
||||||
confirmButton.addClickCommands(s -> ifTopDialog( () -> {
|
confirmButton.addClickCommands(s -> ifTopDialog( () -> {
|
||||||
app.getGameLogic().playSound(Sound.BUTTON);
|
app.getGameLogic().playSound(Sound.BUTTON);
|
||||||
@ -125,14 +148,19 @@ public class SellHouse extends Dialog {
|
|||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Zentriere das Popup
|
|
||||||
|
|
||||||
|
float padding = 10; // Padding around the settingsContainer for the background
|
||||||
|
backgroundContainer.setPreferredSize(sellhouseContainer.getPreferredSize().addLocal(padding, padding, 0));
|
||||||
|
|
||||||
|
|
||||||
|
// Zentriere das Menü
|
||||||
sellhouseContainer.setLocalTranslation(
|
sellhouseContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - sellhouseContainer.getPreferredSize().x) / 2,
|
(app.getCamera().getWidth() - sellhouseContainer.getPreferredSize().x) / 2,
|
||||||
(app.getCamera().getHeight() + sellhouseContainer.getPreferredSize().y) / 2,
|
(app.getCamera().getHeight() + sellhouseContainer.getPreferredSize().y) / 2,
|
||||||
8
|
8
|
||||||
);
|
);
|
||||||
|
|
||||||
// Zentriere das Popup
|
|
||||||
backgroundContainer.setLocalTranslation(
|
backgroundContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - sellhouseContainer.getPreferredSize().x - padding) / 2,
|
(app.getCamera().getWidth() - sellhouseContainer.getPreferredSize().x - padding) / 2,
|
||||||
(app.getCamera().getHeight() + sellhouseContainer.getPreferredSize().y+ padding) / 2,
|
(app.getCamera().getHeight() + sellhouseContainer.getPreferredSize().y+ padding) / 2,
|
||||||
|
@ -52,7 +52,7 @@ public class TimeOut extends Dialog {
|
|||||||
backgroundContainer.setPreferredSize(timeOutContainer.getPreferredSize().addLocal(padding, padding, 0));
|
backgroundContainer.setPreferredSize(timeOutContainer.getPreferredSize().addLocal(padding, padding, 0));
|
||||||
|
|
||||||
// Titel
|
// Titel
|
||||||
Label gateFieldTitle = timeOutContainer.addChild(new Label("Vorsicht !", new ElementId("warning-title")));
|
Label gateFieldTitle = timeOutContainer.addChild(new Label("Vorsicht !", new ElementId("settings-title"))); //TODO dicke Schrift
|
||||||
gateFieldTitle.setFontSize(48);
|
gateFieldTitle.setFontSize(48);
|
||||||
gateFieldTitle.setColor(ColorRGBA.Black);
|
gateFieldTitle.setColor(ColorRGBA.Black);
|
||||||
|
|
||||||
@ -68,14 +68,14 @@ public class TimeOut extends Dialog {
|
|||||||
quitButton.addClickCommands(source -> close());
|
quitButton.addClickCommands(source -> close());
|
||||||
|
|
||||||
|
|
||||||
// Zentriere das Popup
|
// Zentriere den Container
|
||||||
timeOutContainer.setLocalTranslation(
|
timeOutContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - timeOutContainer.getPreferredSize().x) / 2,
|
(app.getCamera().getWidth() - timeOutContainer.getPreferredSize().x) / 2,
|
||||||
(app.getCamera().getHeight() + timeOutContainer.getPreferredSize().y) / 2,
|
(app.getCamera().getHeight() + timeOutContainer.getPreferredSize().y) / 2,
|
||||||
8
|
8
|
||||||
);
|
);
|
||||||
|
|
||||||
// Zentriere das Popup
|
// Zentriere den Container
|
||||||
backgroundContainer.setLocalTranslation(
|
backgroundContainer.setLocalTranslation(
|
||||||
(app.getCamera().getWidth() - timeOutContainer.getPreferredSize().x - padding) / 2,
|
(app.getCamera().getWidth() - timeOutContainer.getPreferredSize().x - padding) / 2,
|
||||||
(app.getCamera().getHeight() + timeOutContainer.getPreferredSize().y+ padding) / 2,
|
(app.getCamera().getHeight() + timeOutContainer.getPreferredSize().y+ padding) / 2,
|
||||||
|
@ -269,7 +269,6 @@ public class ClientGameLogic implements ServerInterpreter, GameEventBroker {
|
|||||||
@Override
|
@Override
|
||||||
public void received(PlayerStatusUpdate msg) {
|
public void received(PlayerStatusUpdate msg) {
|
||||||
playerHandler = msg.getPlayerHandler();
|
playerHandler = msg.getPlayerHandler();
|
||||||
System.out.println("Update Player");
|
|
||||||
notifyListeners(new UpdatePlayerView());
|
notifyListeners(new UpdatePlayerView());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,7 +152,6 @@ public class ServerGameLogic implements ClientInterpreter {
|
|||||||
System.out.println("Properties:" +player.getProperties().toString());
|
System.out.println("Properties:" +player.getProperties().toString());
|
||||||
LOGGER.log(Level.INFO, "Player {0} bought property {1}", player.getName(), property.getName());
|
LOGGER.log(Level.INFO, "Player {0} bought property {1}", player.getName(), property.getName());
|
||||||
}
|
}
|
||||||
updateAllPlayers();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -174,7 +173,6 @@ public class ServerGameLogic implements ClientInterpreter {
|
|||||||
send(player, new PlayerStatusUpdate(playerHandler));
|
send(player, new PlayerStatusUpdate(playerHandler));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
updateAllPlayers();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -220,7 +218,6 @@ public class ServerGameLogic implements ClientInterpreter {
|
|||||||
if (player != null) {
|
if (player != null) {
|
||||||
send(player, player.rollDice());
|
send(player, player.rollDice());
|
||||||
}
|
}
|
||||||
updateAllPlayers();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -269,13 +266,9 @@ public class ServerGameLogic implements ClientInterpreter {
|
|||||||
if (sender != null) {
|
if (sender != null) {
|
||||||
LOGGER.log(Level.DEBUG, "Processing ViewAssetsRequest for player {0}", sender.getName());
|
LOGGER.log(Level.DEBUG, "Processing ViewAssetsRequest for player {0}", sender.getName());
|
||||||
send(sender, new ViewAssetsResponse(boardManager));
|
send(sender, new ViewAssetsResponse(boardManager));
|
||||||
updateAllPlayers();
|
for (Player player : playerHandler.getPlayers()) {
|
||||||
}
|
send(player, new PlayerStatusUpdate(playerHandler));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateAllPlayers() {
|
|
||||||
for (Player player : playerHandler.getPlayers()) {
|
|
||||||
send(player, new PlayerStatusUpdate(playerHandler));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user