diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/TakeMortage.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/TakeMortage.java index 2790fb2..d3cceb0 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/TakeMortage.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/TakeMortage.java @@ -19,6 +19,7 @@ import pp.monopoly.client.gui.SettingsMenu; import pp.monopoly.game.server.Player; import pp.monopoly.message.client.AlterProperty; import pp.monopoly.model.fields.BoardManager; +import pp.monopoly.model.fields.BuildingProperty; import pp.monopoly.model.fields.PropertyField; import pp.monopoly.model.fields.PropertyField; import pp.monopoly.notification.Sound; @@ -157,6 +158,11 @@ public class TakeMortage extends Dialog { // Populate the dropdown with property names for (PropertyField property : playerProperties) { + if(property instanceof BuildingProperty) { + if (((BuildingProperty)property).getHouses()!=0) { + break; + } + } propertyOptions.add(property.getName()); } diff --git a/Projekte/monopoly/model/src/main/java/pp/monopoly/game/server/ServerGameLogic.java b/Projekte/monopoly/model/src/main/java/pp/monopoly/game/server/ServerGameLogic.java index 4c78a36..4b8f708 100644 --- a/Projekte/monopoly/model/src/main/java/pp/monopoly/game/server/ServerGameLogic.java +++ b/Projekte/monopoly/model/src/main/java/pp/monopoly/game/server/ServerGameLogic.java @@ -391,6 +391,11 @@ public class ServerGameLogic implements ClientInterpreter { if (msg.getKeyword().equals("TakeMortage")) { for (PropertyField field : properties) { + if(field instanceof BuildingProperty) { + if (((BuildingProperty)field).getHouses()!=0) { + break; + } + } field.setMortgaged(true); sender.earnMoney(field.getHypo()); } @@ -431,7 +436,7 @@ public class ServerGameLogic implements ClientInterpreter { bp.setOwner(playerHandler.getPlayerById(0)); playerHandler.getPlayerById(0).addProperty(bp.getId()); } - playerHandler.getPlayerAtIndex(0).earnMoney(20000); + playerHandler.getPlayerById(0).earnMoney(20000); } updateAllPlayers(); diff --git a/Projekte/monopoly/model/src/main/java/pp/monopoly/model/fields/BoardManager.java b/Projekte/monopoly/model/src/main/java/pp/monopoly/model/fields/BoardManager.java index 9ff130d..b07da36 100644 --- a/Projekte/monopoly/model/src/main/java/pp/monopoly/model/fields/BoardManager.java +++ b/Projekte/monopoly/model/src/main/java/pp/monopoly/model/fields/BoardManager.java @@ -118,6 +118,11 @@ public class BoardManager { if (field == null) { return false; // Null check for safety } + + //Check for mortage + // if (field.isMortgaged()) { + // return false; + // } // Get the color group of the property FieldColor groupColor = field.getColor(); @@ -130,7 +135,7 @@ public class BoardManager { .collect(Collectors.toList()); // Check if the player owns all properties in the color group - if (!groupProperties.stream().allMatch(bp -> bp.getOwner() != null && bp.getOwner().getId() == field.getOwner().getId())) { + if (!groupProperties.stream().allMatch(bp -> bp.getOwner() != null && !bp.isMortgaged() && bp.getOwner().getId() == field.getOwner().getId())) { return false; // The player must own all properties in the color group }