mirror of
				https://athene2.informatik.unibw-muenchen.de/progproj/gruppen-ht24/Gruppe-02.git
				synced 2025-10-31 19:39:02 +01:00 
			
		
		
		
	sellHouse
This commit is contained in:
		| @@ -147,6 +147,11 @@ public class BuyHouse extends Dialog { | |||||||
|         selectionDisplay.setPreferredSize(new Vector3f(300, 30, 0)); |         selectionDisplay.setPreferredSize(new Vector3f(300, 30, 0)); | ||||||
|         dropdownContainer.addChild(selectionDisplay); // Add it to the dropdown container |         dropdownContainer.addChild(selectionDisplay); // Add it to the dropdown container | ||||||
|  |  | ||||||
|  |         // Set initial selection | ||||||
|  |         if (!propertyOptions.isEmpty()) { | ||||||
|  |             onDropdownSelectionChanged(propertySelector); | ||||||
|  |         } | ||||||
|  |  | ||||||
|         return dropdownContainer; |         return dropdownContainer; | ||||||
|     } |     } | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -21,7 +21,7 @@ import pp.dialog.Dialog; | |||||||
| import pp.monopoly.client.MonopolyApp; | import pp.monopoly.client.MonopolyApp; | ||||||
| import pp.monopoly.client.gui.SettingsMenu; | import pp.monopoly.client.gui.SettingsMenu; | ||||||
| import pp.monopoly.game.server.Player; | import pp.monopoly.game.server.Player; | ||||||
| import pp.monopoly.message.client.BuyPropertyResponse; | import pp.monopoly.message.client.AlterProperty; | ||||||
| import pp.monopoly.model.fields.BoardManager; | import pp.monopoly.model.fields.BoardManager; | ||||||
| import pp.monopoly.model.fields.BuildingProperty; | import pp.monopoly.model.fields.BuildingProperty; | ||||||
| import pp.monopoly.notification.Sound; | import pp.monopoly.notification.Sound; | ||||||
| @@ -73,7 +73,7 @@ public class SellHouse extends Dialog { | |||||||
|         Container downContainer = sellhouseContainer.addChild(new Container()); |         Container downContainer = sellhouseContainer.addChild(new Container()); | ||||||
|  |  | ||||||
|         // Text, der auf der Karte steht |         // Text, der auf der Karte steht | ||||||
|         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"))); | ||||||
|         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))); | ||||||
|  |  | ||||||
| @@ -99,9 +99,16 @@ public class SellHouse extends Dialog { | |||||||
|         confirmButton.setFontSize(32); |         confirmButton.setFontSize(32); | ||||||
|         confirmButton.addClickCommands(s -> ifTopDialog( () -> { |         confirmButton.addClickCommands(s -> ifTopDialog( () -> { | ||||||
|             app.getGameLogic().playSound(Sound.BUTTON); |             app.getGameLogic().playSound(Sound.BUTTON); | ||||||
|                 // Send the "alter building" message to the server |             AlterProperty msg = new AlterProperty("SellHouse"); | ||||||
|                //app.getGameLogic().sendMessage(new AlterBuildingMessage(selected.getId(), false)); TODO Message an Server |             for (String string : selectedProperties) { | ||||||
|  |                 System.out.println(string); | ||||||
|  |             } | ||||||
|  |             msg.setProperties(selectedProperties.stream().map(p -> app.getGameLogic().getBoardManager().getFieldByName(p).getId()).map(p -> (Integer) p).collect(Collectors.toSet())); | ||||||
|  |             for (Integer integer : msg.getProperties()) { | ||||||
|  |                 System.out.println("ID des verkaufs: "+integer); | ||||||
|  |             } | ||||||
|  |             app.getGameLogic().send(msg); | ||||||
|  |             close(); | ||||||
|         })); |         })); | ||||||
|  |  | ||||||
|         // Zentriere das Popup |         // Zentriere das Popup | ||||||
| @@ -149,6 +156,11 @@ public class SellHouse extends Dialog { | |||||||
|         selectionDisplay = new TextField(""); // Create TextField for displaying selections |         selectionDisplay = new TextField(""); // Create TextField for displaying selections | ||||||
|         selectionDisplay.setPreferredSize(new Vector3f(300, 30, 0)); |         selectionDisplay.setPreferredSize(new Vector3f(300, 30, 0)); | ||||||
|         dropdownContainer.addChild(selectionDisplay); // Add it to the dropdown container |         dropdownContainer.addChild(selectionDisplay); // Add it to the dropdown container | ||||||
|  |          | ||||||
|  |         // Set initial selection | ||||||
|  |         if (!propertyOptions.isEmpty()) { | ||||||
|  |             onDropdownSelectionChanged(propertySelector); | ||||||
|  |         } | ||||||
|  |  | ||||||
|         return dropdownContainer; |         return dropdownContainer; | ||||||
|     } |     } | ||||||
| @@ -164,6 +176,7 @@ public class SellHouse extends Dialog { | |||||||
|         return boardManager.getPropertyFields(self.getProperties()).stream() |         return boardManager.getPropertyFields(self.getProperties()).stream() | ||||||
|                            .filter(property -> property instanceof BuildingProperty) |                            .filter(property -> property instanceof BuildingProperty) | ||||||
|                            .map(property -> (BuildingProperty) property) |                            .map(property -> (BuildingProperty) property) | ||||||
|  |                            .filter(p -> app.getGameLogic().getBoardManager().canSell(p)) | ||||||
|                            .collect(Collectors.toList()); |                            .collect(Collectors.toList()); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -382,27 +382,32 @@ public class ServerGameLogic implements ClientInterpreter { | |||||||
|     public void received(AlterProperty msg, int from) { |     public void received(AlterProperty msg, int from) { | ||||||
|         Player sender = playerHandler.getPlayerById(from); |         Player sender = playerHandler.getPlayerById(from); | ||||||
|  |  | ||||||
|  |         Set<PropertyField> properties = new HashSet<>(); | ||||||
|  |         for (Integer integer : msg.getProperties()) { | ||||||
|  |             properties.add( (PropertyField)boardManager.getFieldAtIndex(integer)); | ||||||
|  |         }  | ||||||
|  |  | ||||||
|         if (msg.getKeyword().equals("TakeMortage")) { |         if (msg.getKeyword().equals("TakeMortage")) { | ||||||
|             for (PropertyField field : sender.getPropertyFields()) { |             for (PropertyField field : properties) { | ||||||
|                 field.setMortgaged(true); |                 field.setMortgaged(true); | ||||||
|                 sender.earnMoney(field.getHypo()); |                 sender.earnMoney(field.getHypo()); | ||||||
|             } |             } | ||||||
|         } else if (msg.getKeyword().equals("RepayMortage")) { |         } else if (msg.getKeyword().equals("RepayMortage")) { | ||||||
|             for (PropertyField field : sender.getPropertyFields()) { |             for (PropertyField field : properties) { | ||||||
|                 if(sender.getAccountBalance() >= field.getHypo()) { |                 if(sender.getAccountBalance() >= field.getHypo()) { | ||||||
|                     field.setMortgaged(false); |                     field.setMortgaged(false); | ||||||
|                     sender.pay(field.getHypo()); |                     sender.pay(field.getHypo()); | ||||||
|                 } |                 } | ||||||
|             }             |             }             | ||||||
|         } else if(msg.getKeyword().equals("BuyHouse")) { |         } else if(msg.getKeyword().equals("BuyHouse")) { | ||||||
|             for (BuildingProperty field : sender.getPropertyFields().stream().filter(p -> p instanceof BuildingProperty).map(p -> (BuildingProperty) p).collect(Collectors.toList())) { |             for (BuildingProperty field : properties.stream().map(p -> (BuildingProperty) p).collect(Collectors.toList())) { | ||||||
|                 if (boardManager.canBuild(field) && sender.getAccountBalance() >= field.getHousePrice()) { |                 if (boardManager.canBuild(field) && sender.getAccountBalance() >= field.getHousePrice()) { | ||||||
|                     field.build(); |                     field.build(); | ||||||
|                     sender.pay(field.getHousePrice()); |                     sender.pay(field.getHousePrice()); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } else if(msg.getKeyword().equals("SellHouse")) { |         } else if(msg.getKeyword().equals("SellHouse")) { | ||||||
|             for (BuildingProperty field : sender.getPropertyFields().stream().filter(p -> p instanceof BuildingProperty).map(p -> (BuildingProperty) p).collect(Collectors.toList())) { |             for (BuildingProperty field : properties.stream().map(p -> (BuildingProperty) p).collect(Collectors.toList())) { | ||||||
|                 if (boardManager.canSell(field)) { |                 if (boardManager.canSell(field)) { | ||||||
|                     field.sell(); |                     field.sell(); | ||||||
|                     sender.earnMoney(field.getHousePrice()); |                     sender.earnMoney(field.getHousePrice()); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user