Added a css file for the game Made it so that you can press enter to continue forwars Made folder for both images and save files
121 lines
3.8 KiB
Java
121 lines
3.8 KiB
Java
import javafx.geometry.Insets;
|
|
import javafx.scene.Scene;
|
|
import javafx.scene.control.Label;
|
|
import javafx.scene.layout.BorderPane;
|
|
import javafx.scene.layout.VBox;
|
|
import javafx.scene.text.Font;
|
|
import javafx.stage.Stage;
|
|
|
|
/**
|
|
* 2019-03-10
|
|
* Authors: Harkamal, Vikram, Haris, Siddhant, Nathan
|
|
* GameEndGUI class, Initializes and displays the graphical interface for when you lose
|
|
*
|
|
*/
|
|
public class GameEndGUI extends Player{
|
|
|
|
private Label title;
|
|
private VBox vBox;
|
|
private Label firmName;
|
|
private Label gunsHeld;
|
|
private Label netWorth;
|
|
private BorderPane borderPane;
|
|
|
|
public GameEndGUI(Player player) {
|
|
Player playerDummy = new Player(player);
|
|
setPlayer(playerDummy);
|
|
}
|
|
|
|
/**
|
|
* Sets up the graphical part of GameEndGUI and includes all logic for the class
|
|
*
|
|
* @param stage sets the stage to which we will execute the scene of the GameEndGUI class
|
|
* @return stage so that another class can switch to the stage
|
|
*/
|
|
public Stage initializeGameEndGUI(Stage stage) {
|
|
|
|
//Creating all the nodes
|
|
title = new Label();
|
|
vBox = new VBox();
|
|
firmName = new Label();
|
|
gunsHeld = new Label();
|
|
netWorth = new Label();
|
|
borderPane = new BorderPane();
|
|
int netWorthInt = 0;
|
|
|
|
borderPane.setPrefHeight(480.0);
|
|
borderPane.setPrefWidth(600.0);
|
|
|
|
//Setting positions and names of all the nodes
|
|
BorderPane.setAlignment(title, javafx.geometry.Pos.CENTER);
|
|
title.setText("Game Over!");
|
|
title.setFont(new Font(43.0));
|
|
BorderPane.setMargin(title, new Insets(0.0));
|
|
title.setPadding(new Insets(50.0, 0.0, 0.0, 0.0));
|
|
borderPane.setTop(title);
|
|
|
|
BorderPane.setAlignment(vBox, javafx.geometry.Pos.CENTER);
|
|
vBox.setAlignment(javafx.geometry.Pos.CENTER);
|
|
vBox.setPrefHeight(200.0);
|
|
vBox.setPrefWidth(100.0);
|
|
|
|
firmName.setText("Name:");
|
|
firmName.setFont(new Font(22.0));
|
|
|
|
gunsHeld.setText("Guns Held:");
|
|
gunsHeld.setFont(new Font(22.0));
|
|
|
|
netWorth.setText("Net Worth:");
|
|
netWorth.setFont(new Font(22.0));
|
|
borderPane.setCenter(vBox);
|
|
|
|
|
|
//Adding the labels to the character's stats to the VBox which will show up on the screen
|
|
vBox.getChildren().add(firmName);
|
|
vBox.getChildren().add(gunsHeld);
|
|
vBox.getChildren().add(netWorth);
|
|
|
|
/**
|
|
* If health is below or equal to 0 then the game will either show the gameOver screen or the win screen
|
|
* */
|
|
if (getHP() <= 0) {
|
|
title.setText("Game Over!");
|
|
} else {
|
|
title.setText("Congratulations!");
|
|
}
|
|
|
|
/**
|
|
* Calculates the networth of the player by the end of the game
|
|
* */
|
|
netWorthInt = getMoney() + (getOpiumHeld() * 16000) + (getSilkHeld() * 160) + (getArmsHeld() * 160) + (getGeneralHeld() * 8);
|
|
netWorthInt += (getwOpium() * 16000) + (getwSilk() * 160) + (getwArms() * 160) + (getwGeneral() * 8);
|
|
netWorthInt -= getDebt();
|
|
|
|
|
|
//Updating the endgame stats of the player
|
|
firmName.setText("Firm Name: " + getName());
|
|
gunsHeld.setText("Guns Held: " + getGuns());
|
|
netWorth.setText("Net Worth: " + netWorthInt);
|
|
|
|
Scene root = new Scene(borderPane, 600, 480);
|
|
root.getStylesheets().add("styleguide.css");
|
|
|
|
stage.setTitle("End Game Stats");
|
|
stage.setResizable(false);
|
|
stage.setScene(root);
|
|
|
|
return stage;
|
|
}
|
|
|
|
/**
|
|
* sets scene and runs stage
|
|
*
|
|
* @param primaryStage the stage in which the scene may be run and switched to
|
|
*/
|
|
public void start(Stage primaryStage) {
|
|
GameEndGUI gameEndGUI = new GameEndGUI(getPlayer());
|
|
gameEndGUI.initializeGameEndGUI(primaryStage);
|
|
primaryStage.show();
|
|
}
|
|
}
|