From 91bb72351ead3163da76aafb9250c8012de31d27 Mon Sep 17 00:00:00 2001 From: Solargale Date: Sun, 10 Mar 2019 23:00:25 -0600 Subject: [PATCH] Fixed the Game End screen into Taipan Shop --- src/TaipanShopGUI.java | 9 +- src/WarehouseGUI.java | 227 +++++++++++++++++++++++++++++++++++++---- src/bankGUI.java | 2 - 3 files changed, 213 insertions(+), 25 deletions(-) diff --git a/src/TaipanShopGUI.java b/src/TaipanShopGUI.java index 0a2beee..c400376 100644 --- a/src/TaipanShopGUI.java +++ b/src/TaipanShopGUI.java @@ -65,10 +65,11 @@ public class TaipanShopGUI { /** * This method is evoked if the user is eligible to win, and chooses to end the game (by winning). */ - public void retire(){ + public void retire(Stage stage){ player.setRetire(true); - System.out.println("You win!"); - System.exit(0); + GameEndGUI gameEndGUI = new GameEndGUI(player); + gameEndGUI.initializeGameEndGUI(stage); + stage.show(); } /** @@ -548,7 +549,7 @@ public class TaipanShopGUI { retireButton.setOnAction(new EventHandler() { @Override public void handle(ActionEvent event) { - retire(); + retire(stage); } }); retireButton.setMnemonicParsing(false); diff --git a/src/WarehouseGUI.java b/src/WarehouseGUI.java index f7196a3..0cf711b 100644 --- a/src/WarehouseGUI.java +++ b/src/WarehouseGUI.java @@ -3,8 +3,7 @@ import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; -import javafx.scene.control.Button; -import javafx.scene.control.Label; +import javafx.scene.control.*; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; @@ -38,6 +37,12 @@ public class WarehouseGUI { private Text inUseWarehouse; private Text vacantWarehouse; private BorderPane borderPane; + private TextField textIn; + private SplitMenuButton splitMenu; + private CheckMenuItem general; + private CheckMenuItem arms; + private CheckMenuItem silk; + private CheckMenuItem opium; public WarehouseGUI(Player player) { Player playerDummy = new Player(player); @@ -78,6 +83,15 @@ public class WarehouseGUI { inUseWarehouse = new Text(); vacantWarehouse = new Text(); borderPane = new BorderPane(); + textIn = new TextField(); + splitMenu = new SplitMenuButton(); + general = new CheckMenuItem(); + arms = new CheckMenuItem(); + silk = new CheckMenuItem(); + opium = new CheckMenuItem(); + + borderPane.setPrefHeight(480.0); + borderPane.setPrefWidth(600.0); borderPane.setPrefHeight(480.0); borderPane.setPrefWidth(600.0); @@ -89,40 +103,75 @@ public class WarehouseGUI { title.setTextAlignment(javafx.scene.text.TextAlignment.CENTER); title.setWrappingWidth(393.63671875); title.setFont(new Font(24.0)); + borderPane.setPrefHeight(480.0); + borderPane.setPrefWidth(600.0); + + BorderPane.setAlignment(title, javafx.geometry.Pos.CENTER); + title.setStrokeType(javafx.scene.shape.StrokeType.OUTSIDE); + title.setStrokeWidth(0.0); + title.setText("Hong Kong Warehouse"); + title.setTextAlignment(javafx.scene.text.TextAlignment.CENTER); + title.setWrappingWidth(393.63671875); + title.setFont(new Font(24.0)); borderPane.setTop(title); - borderPane.setAlignment(hBox, javafx.geometry.Pos.CENTER); + BorderPane.setAlignment(hBox, javafx.geometry.Pos.CENTER); hBox.setAlignment(javafx.geometry.Pos.CENTER); hBox.setPrefHeight(100.0); hBox.setPrefWidth(200.0); withdraw.setContentDisplay(javafx.scene.control.ContentDisplay.CENTER); withdraw.setMnemonicParsing(false); - withdraw.setPrefWidth(250.0); withdraw.setText("Withdraw"); + // Set the event handler when the deposit button is clicked withdraw.setOnAction(new EventHandler() { - @Override - public void handle(ActionEvent event) { - //NATHAN WRITE CODE HERE - } - }); - + @Override + public void handle(ActionEvent event) { + int withdraw = Integer.parseInt(textIn.getText()); + if(opium.isSelected()){ + if (player.getwOpium() >= withdraw) { + player.setwOpium(player.getwOpium() - withdraw); + player.setOpiumHeld(player.getOpiumHeld() + withdraw); + } else { + title.setText("You don't have that much opium stored in the warehouse!"); + } + } + } + } + ); deposit.setMnemonicParsing(false); - deposit.setPrefWidth(250.0); deposit.setText("Deposit"); deposit.setTextAlignment(javafx.scene.text.TextAlignment.CENTER); + + // Set the event handler when the deposit button is clicked + deposit.setOnAction(new EventHandler() { + @Override + public void handle(ActionEvent event) { + int deposit = Integer.parseInt(textIn.getText()); + } + } + ); + + + splitMenu.setMnemonicParsing(false); + splitMenu.setText("Item"); + + general.setMnemonicParsing(false); + general.setText("General"); + + arms.setMnemonicParsing(false); + arms.setText("Arms"); + + silk.setMnemonicParsing(false); + silk.setText("Silk"); + + opium.setMnemonicParsing(false); + opium.setText("Opium"); borderPane.setBottom(hBox); - deposit.setOnAction(new EventHandler() { - @Override - public void handle(ActionEvent event) { - //NATHAN WRITE CODE HERE - } - }); - - borderPane.setAlignment(vBox, javafx.geometry.Pos.CENTER_LEFT); + BorderPane.setAlignment(vBox, javafx.geometry.Pos.CENTER_LEFT); vBox.setPrefHeight(156.0); vBox.setPrefWidth(106.0); @@ -210,6 +259,139 @@ public class WarehouseGUI { generalWarehouse.setFont(new Font(18.0)); borderPane.setCenter(vBox0); + BorderPane.setAlignment(vBox1, javafx.geometry.Pos.CENTER); + vBox1.setPrefHeight(48.0); + vBox1.setPrefWidth(152.0); + + inUseWarehouse.setStrokeType(javafx.scene.shape.StrokeType.OUTSIDE); + inUseWarehouse.setStrokeWidth(0.0); + inUseWarehouse.setText("In use:"); + inUseWarehouse.setFont(new Font(18.0)); + + vacantWarehouse.setStrokeType(javafx.scene.shape.StrokeType.OUTSIDE); + vacantWarehouse.setStrokeWidth(0.0); + vacantWarehouse.setText("Vacant:"); + vacantWarehouse.setFont(new Font(18.0)); + borderPane.setRight(vBox1); + borderPane.setTop(title); + + borderPane.setAlignment(hBox, javafx.geometry.Pos.CENTER); + hBox.setAlignment(javafx.geometry.Pos.CENTER); + hBox.setPrefHeight(100.0); + hBox.setPrefWidth(200.0); + + withdraw.setContentDisplay(javafx.scene.control.ContentDisplay.CENTER); + withdraw.setMnemonicParsing(false); + withdraw.setText("Withdraw"); + + deposit.setMnemonicParsing(false); + deposit.setText("Deposit"); + deposit.setTextAlignment(javafx.scene.text.TextAlignment.CENTER); + + splitMenu.setMnemonicParsing(false); + splitMenu.setText("Item"); + + general.setMnemonicParsing(false); + general.setText("General"); + + arms.setMnemonicParsing(false); + arms.setText("Arms"); + + silk.setMnemonicParsing(false); + silk.setText("Silk"); + + opium.setMnemonicParsing(false); + opium.setText("Opium"); + borderPane.setBottom(hBox); + + borderPane.setAlignment(vBox, javafx.geometry.Pos.CENTER_LEFT); + vBox.setPrefHeight(156.0); + vBox.setPrefWidth(106.0); + + playerName.setStrokeType(javafx.scene.shape.StrokeType.OUTSIDE); + playerName.setStrokeWidth(0.0); + playerName.setText("Player"); + playerName.setTextAlignment(javafx.scene.text.TextAlignment.CENTER); + playerName.setWrappingWidth(103.47265625); + playerName.setFont(new Font(18.0)); + + text.setStrokeType(javafx.scene.shape.StrokeType.OUTSIDE); + text.setStrokeWidth(0.0); + text.setTextAlignment(javafx.scene.text.TextAlignment.CENTER); + text.setWrappingWidth(103.47265625); + text.setFont(new Font(18.0)); + + opiumPlayer.setAlignment(javafx.geometry.Pos.CENTER); + opiumPlayer.setContentDisplay(javafx.scene.control.ContentDisplay.CENTER); + opiumPlayer.setPrefWidth(100.0); + opiumPlayer.setText("Opium"); + opiumPlayer.setTextAlignment(javafx.scene.text.TextAlignment.CENTER); + opiumPlayer.setFont(new Font(18.0)); + + silkPlayer.setAlignment(javafx.geometry.Pos.CENTER); + silkPlayer.setPrefWidth(100.0); + silkPlayer.setText("Silk"); + silkPlayer.setFont(new Font(18.0)); + + armsPlayer.setAlignment(javafx.geometry.Pos.CENTER); + armsPlayer.setPrefWidth(100.0); + armsPlayer.setText("Arms"); + armsPlayer.setFont(new Font(18.0)); + + generalPlayer.setAlignment(javafx.geometry.Pos.CENTER); + generalPlayer.setPrefWidth(100.0); + generalPlayer.setText("General"); + generalPlayer.setTextAlignment(javafx.scene.text.TextAlignment.CENTER); + generalPlayer.setFont(new Font(18.0)); + borderPane.setLeft(vBox); + + borderPane.setAlignment(vBox0, javafx.geometry.Pos.TOP_LEFT); + vBox0.setAlignment(javafx.geometry.Pos.CENTER); + vBox0.setPrefHeight(343.0); + vBox0.setPrefWidth(261.0); + + text0.setStrokeType(javafx.scene.shape.StrokeType.OUTSIDE); + text0.setStrokeWidth(0.0); + text0.setText("Warehouse"); + text0.setTextAlignment(javafx.scene.text.TextAlignment.CENTER); + text0.setWrappingWidth(103.47265625); + text0.setFont(new Font(18.0)); + + text1.setStrokeType(javafx.scene.shape.StrokeType.OUTSIDE); + text1.setStrokeWidth(0.0); + text1.setTextAlignment(javafx.scene.text.TextAlignment.CENTER); + text1.setWrappingWidth(103.47265625); + text1.setFont(new Font(18.0)); + + opiumWarehouse.setStrokeType(javafx.scene.shape.StrokeType.OUTSIDE); + opiumWarehouse.setStrokeWidth(0.0); + opiumWarehouse.setText("Opium"); + opiumWarehouse.setTextAlignment(javafx.scene.text.TextAlignment.CENTER); + opiumWarehouse.setWrappingWidth(103.47265625); + opiumWarehouse.setFont(new Font(18.0)); + + silkWarehouse.setStrokeType(javafx.scene.shape.StrokeType.OUTSIDE); + silkWarehouse.setStrokeWidth(0.0); + silkWarehouse.setText("Silk"); + silkWarehouse.setTextAlignment(javafx.scene.text.TextAlignment.CENTER); + silkWarehouse.setWrappingWidth(103.47265625); + silkWarehouse.setFont(new Font(18.0)); + + armsWarehouse.setStrokeType(javafx.scene.shape.StrokeType.OUTSIDE); + armsWarehouse.setStrokeWidth(0.0); + armsWarehouse.setText("Arms"); + armsWarehouse.setTextAlignment(javafx.scene.text.TextAlignment.CENTER); + armsWarehouse.setWrappingWidth(103.47265625); + armsWarehouse.setFont(new Font(18.0)); + + generalWarehouse.setStrokeType(javafx.scene.shape.StrokeType.OUTSIDE); + generalWarehouse.setStrokeWidth(0.0); + generalWarehouse.setText("General"); + generalWarehouse.setTextAlignment(javafx.scene.text.TextAlignment.CENTER); + generalWarehouse.setWrappingWidth(103.47265625); + generalWarehouse.setFont(new Font(18.0)); + borderPane.setCenter(vBox0); + borderPane.setAlignment(vBox1, javafx.geometry.Pos.CENTER); vBox1.setPrefHeight(48.0); vBox1.setPrefWidth(152.0); @@ -225,8 +407,15 @@ public class WarehouseGUI { vacantWarehouse.setFont(new Font(18.0)); borderPane.setRight(vBox1); + + splitMenu.getItems().add(general); + splitMenu.getItems().add(arms); + splitMenu.getItems().add(silk); + splitMenu.getItems().add(opium); + hBox.getChildren().add(textIn); hBox.getChildren().add(withdraw); hBox.getChildren().add(deposit); + hBox.getChildren().add(splitMenu); vBox.getChildren().add(playerName); vBox.getChildren().add(text); vBox.getChildren().add(opiumPlayer); diff --git a/src/bankGUI.java b/src/bankGUI.java index 5c0ad4d..e5e145f 100644 --- a/src/bankGUI.java +++ b/src/bankGUI.java @@ -92,7 +92,6 @@ public class bankGUI{ @Override public void handle(ActionEvent event) { int withdraw = Integer.parseInt(txtField1.getText()); - System.out.println(withdraw); if(withdraw <= player.getBank()){ player.setMoney(withdraw + player.getMoney()); player.setBank(player.getBank()-withdraw); @@ -111,7 +110,6 @@ public class bankGUI{ @Override public void handle(ActionEvent event) { int deposit = Integer.parseInt(txtField1.getText()); - System.out.println(deposit); if(deposit <= player.getMoney()){ player.setBank(deposit + player.getBank()); player.setMoney(player.getMoney()-deposit);