diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 0000000..3bf3f74
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,10 @@
+
+
+
+
+ Fiasko pages
+
+
+ Javadoc
+
+
\ No newline at end of file
diff --git a/src/main/java/inf112/fiasko/roborally/Main.java b/src/main/java/inf112/fiasko/roborally/Main.java
index bb47ba0..ac253b3 100644
--- a/src/main/java/inf112/fiasko/roborally/Main.java
+++ b/src/main/java/inf112/fiasko/roborally/Main.java
@@ -9,12 +9,12 @@ import inf112.fiasko.roborally.ui.RoboRallyWrapper;
*/
public class Main {
public static void main(String[] args) {
- LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
- cfg.title = "Robo Rally";
- cfg.width = 900;
- cfg.height = 900;
- cfg.samples = 3;
+ LwjglApplicationConfiguration configuration = new LwjglApplicationConfiguration();
+ configuration.title = "Robo Rally";
+ configuration.width = 900;
+ configuration.height = 900;
+ configuration.samples = 3;
- new LwjglApplication(new RoboRallyWrapper(), cfg);
+ new LwjglApplication(new RoboRallyWrapper(), configuration);
}
}
\ No newline at end of file
diff --git a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClientListener.java b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClientListener.java
index 07e3bf0..105f64c 100644
--- a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClientListener.java
+++ b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClientListener.java
@@ -104,7 +104,7 @@ class RoboRallyClientListener extends Listener {
*/
private void receiveHand(HandResponse newHand) {
new Thread(() -> {
- //Prevents a bug where the game
+ //Prevents a bug where the game enters an infinite loading screen
while (wrapper.getGame().getGameState() != GameState.WAITING_FOR_CARDS_FROM_SERVER) {
try {
TimeUnit.MILLISECONDS.sleep(100);
diff --git a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServerListener.java b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServerListener.java
index 51e3227..fefcba7 100644
--- a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServerListener.java
+++ b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServerListener.java
@@ -7,7 +7,7 @@ import inf112.fiasko.roborally.networking.containers.ErrorResponse;
import inf112.fiasko.roborally.networking.containers.HurryResponse;
import inf112.fiasko.roborally.networking.containers.OkayResponse;
import inf112.fiasko.roborally.networking.containers.PowerDownContainerResponse;
-import inf112.fiasko.roborally.networking.containers.ProgramAndPowerdownRequest;
+import inf112.fiasko.roborally.networking.containers.ProgramAndPowerDownRequest;
import inf112.fiasko.roborally.networking.containers.ProgramsContainerResponse;
import inf112.fiasko.roborally.networking.containers.UsernameRequest;
import inf112.fiasko.roborally.objects.ProgrammingCard;
@@ -28,7 +28,7 @@ class RoboRallyServerListener extends Listener {
private final RoboRallyServer server;
private Connection host;
private Map stayInPowerDown;
- private Map programs;
+ private Map programs;
private boolean gameStarted = false;
/**
@@ -111,8 +111,8 @@ class RoboRallyServerListener extends Listener {
receivedUsername(connection, (UsernameRequest) object);
} else if (object instanceof Boolean) {
receiveContinuePowerDown(connection, (Boolean) object);
- } else if (object instanceof ProgramAndPowerdownRequest) {
- receiveProgramAndPowerDownRequest(connection, (ProgramAndPowerdownRequest) object);
+ } else if (object instanceof ProgramAndPowerDownRequest) {
+ receiveProgramAndPowerDownRequest(connection, (ProgramAndPowerDownRequest) object);
}
}
@@ -157,14 +157,14 @@ class RoboRallyServerListener extends Listener {
* @param connection The connection sending the program and power down request
* @param request The program and power down request received
*/
- private void receiveProgramAndPowerDownRequest(Connection connection, ProgramAndPowerdownRequest request) {
+ private void receiveProgramAndPowerDownRequest(Connection connection, ProgramAndPowerDownRequest request) {
programs.put(connection, request);
connection.sendTCP(new OkayResponse());
if (receivedDataFromAllConnections(programs)) {
Map powerDown = new HashMap<>();
Map> program = new HashMap<>();
for (Connection connected : programs.keySet()) {
- powerDown.put(playerNames.get(connected), programs.get(connected).getPowerdown());
+ powerDown.put(playerNames.get(connected), programs.get(connected).getPowerDown());
program.put(playerNames.get(connected), programs.get(connected).getProgram());
}
server.sendToAllClients(new ProgramsContainerResponse(program, powerDown));
diff --git a/src/main/java/inf112/fiasko/roborally/networking/containers/ErrorResponse.java b/src/main/java/inf112/fiasko/roborally/networking/containers/ErrorResponse.java
index 2b4a538..9f765c4 100644
--- a/src/main/java/inf112/fiasko/roborally/networking/containers/ErrorResponse.java
+++ b/src/main/java/inf112/fiasko/roborally/networking/containers/ErrorResponse.java
@@ -21,7 +21,6 @@ public class ErrorResponse {
* Empty constructor required by KryoNet. DO NOT REMOVE THIS!!!
*/
public ErrorResponse() {
-
}
/**
diff --git a/src/main/java/inf112/fiasko/roborally/networking/containers/ProgramAndPowerDownRequest.java b/src/main/java/inf112/fiasko/roborally/networking/containers/ProgramAndPowerDownRequest.java
new file mode 100644
index 0000000..684e6fe
--- /dev/null
+++ b/src/main/java/inf112/fiasko/roborally/networking/containers/ProgramAndPowerDownRequest.java
@@ -0,0 +1,48 @@
+package inf112.fiasko.roborally.networking.containers;
+
+import inf112.fiasko.roborally.objects.ProgrammingCard;
+
+import java.util.List;
+
+/**
+ * A request containing a player's program and whether it wants to enter power down next round
+ */
+public class ProgramAndPowerDownRequest {
+ private Boolean powerDown;
+ private List program;
+
+ /**
+ * Empty constructor required by KryoNet. DO NOT REMOVE THIS!!!
+ */
+ public ProgramAndPowerDownRequest() {
+ }
+
+ /**
+ * Instantiates a new program and power down request
+ *
+ * @param powerDown Whether the player wants to enter power down next round
+ * @param program The program the player has programmed
+ */
+ public ProgramAndPowerDownRequest(Boolean powerDown, List program) {
+ this.program = program;
+ this.powerDown = powerDown;
+ }
+
+ /**
+ * Gets the program contained within this request
+ *
+ * @return The program sent by the player
+ */
+ public List getProgram() {
+ return program;
+ }
+
+ /**
+ * Gets the power down status contained within this request
+ *
+ * @return Whether the player wants to power down next round
+ */
+ public Boolean getPowerDown() {
+ return powerDown;
+ }
+}
diff --git a/src/main/java/inf112/fiasko/roborally/networking/containers/ProgramAndPowerdownRequest.java b/src/main/java/inf112/fiasko/roborally/networking/containers/ProgramAndPowerdownRequest.java
deleted file mode 100644
index 112e148..0000000
--- a/src/main/java/inf112/fiasko/roborally/networking/containers/ProgramAndPowerdownRequest.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package inf112.fiasko.roborally.networking.containers;
-
-import inf112.fiasko.roborally.objects.ProgrammingCard;
-
-import java.util.List;
-
-public class ProgramAndPowerdownRequest {
- private Boolean powerdown;
- private List program;
-
- /**
- * Empty constructor required by KryoNet. DO NOT REMOVE THIS!!!
- */
- public ProgramAndPowerdownRequest() {
- }
-
- public ProgramAndPowerdownRequest(Boolean powerdown, List program) {
- this.program = program;
- this.powerdown = powerdown;
- }
-
- public List getProgram() {
- return program;
- }
-
- public Boolean getPowerdown() {
- return powerdown;
- }
-}
diff --git a/src/main/java/inf112/fiasko/roborally/networking/containers/UsernameRequest.java b/src/main/java/inf112/fiasko/roborally/networking/containers/UsernameRequest.java
index 472c225..96b57fc 100644
--- a/src/main/java/inf112/fiasko/roborally/networking/containers/UsernameRequest.java
+++ b/src/main/java/inf112/fiasko/roborally/networking/containers/UsernameRequest.java
@@ -10,7 +10,6 @@ public class UsernameRequest {
* Empty constructor required by KryoNet. DO NOT REMOVE THIS!!!
*/
public UsernameRequest() {
-
}
/**
diff --git a/src/main/java/inf112/fiasko/roborally/objects/AbstractDeck.java b/src/main/java/inf112/fiasko/roborally/objects/AbstractDeck.java
index c0a6b6a..f24ed1a 100644
--- a/src/main/java/inf112/fiasko/roborally/objects/AbstractDeck.java
+++ b/src/main/java/inf112/fiasko/roborally/objects/AbstractDeck.java
@@ -10,6 +10,9 @@ import java.util.Random;
public abstract class AbstractDeck implements Deck {
private final List cardList;
+ /**
+ * Empty constructor required by KryoNet. DO NOT REMOVE THIS!!!
+ */
public AbstractDeck() {
this.cardList = new ArrayList<>();
}
diff --git a/src/main/java/inf112/fiasko/roborally/objects/Board.java b/src/main/java/inf112/fiasko/roborally/objects/Board.java
index c1807de..272ff04 100644
--- a/src/main/java/inf112/fiasko/roborally/objects/Board.java
+++ b/src/main/java/inf112/fiasko/roborally/objects/Board.java
@@ -26,8 +26,8 @@ public class Board {
private Map robots;
private List deadRobots;
private List realDeadRobots;
- private List dangerousTiles;
private List> wallLasers;
+ private List> repairTiles;
/**
* Initializes the board
@@ -54,22 +54,10 @@ public class Board {
this.particles = new ListGrid<>(tiles.getWidth(), tiles.getHeight());
this.deadRobots = new ArrayList<>();
this.realDeadRobots = new ArrayList<>();
- this.dangerousTiles = new ArrayList<>();
- loadDangerousTileTypes();
wallLasers = getPositionsOfWallsOnBoard(WallType.WALL_LASER_SINGLE,
WallType.WALL_LASER_DOUBLE, WallType.WALL_LASER_TRIPLE);
- }
-
- /**
- * Adds tile types which will kill the robot to the dangerousTiles list
- */
- private void loadDangerousTileTypes() {
- dangerousTiles.add(TileType.HOLE);
- dangerousTiles.add(TileType.PIT_CORNER);
- dangerousTiles.add(TileType.PIT_EMPTY);
- dangerousTiles.add(TileType.PIT_FULL);
- dangerousTiles.add(TileType.PIT_NORMAL);
- dangerousTiles.add(TileType.PIT_U);
+ repairTiles = getPositionsOfTilesOnBoard(TileType.WRENCH,
+ TileType.WRENCH_AND_HAMMER, TileType.FLAG_1, TileType.FLAG_2, TileType.FLAG_3, TileType.FLAG_4);
}
/**
@@ -241,7 +229,7 @@ public class Board {
/**
* Removes one damage for a given robot given that it has taken som damage before
*
- * @param robotID the ID of the robot
+ * @param robotID The ID of the robot
*/
public void repairRobotOnTile(RobotID robotID) {
Robot robot = robots.get(robotID);
@@ -264,7 +252,7 @@ public class Board {
* Get the damage of a specific robot
*
* @param robot The RobotID of a robot
- * @return The amount of damage the robot has currently
+ * @return The amount of damage the robot currently has
*/
public int getRobotDamage(RobotID robot) {
return robots.get(robot).getDamageTaken();
@@ -299,7 +287,7 @@ public class Board {
}
robot.setPosition(newPosition);
//Some tiles may kill the robot if stepped on.
- killRobotIfStepsOnDangerousTile(robot, newPosition);
+ killRobotIfStepsInHole(robot, newPosition);
return true;
}
@@ -443,7 +431,7 @@ public class Board {
/**
* Moves all dead robots to their backups and makes them part of the board again, and if a robot has no lives
- * it will be removed from the game.
+ * it will be removed from the game
*/
public void respawnRobots() {
for (Robot robot : deadRobots) {
@@ -478,14 +466,14 @@ public class Board {
}
return;
}
- int circleSize = 1;
+ int squareSize = 1;
boolean hasRespawned = false;
while (!hasRespawned) {
- hasRespawned = tryRobotRespawn(robot, circleSize, startX, startY, Direction.NORTH) ||
- tryRobotRespawn(robot, circleSize, startX, startY, Direction.EAST) ||
- tryRobotRespawn(robot, circleSize, startX, startY, Direction.SOUTH) ||
- tryRobotRespawn(robot, circleSize, startX, startY, Direction.WEST);
- circleSize++;
+ hasRespawned = tryRobotRespawn(robot, squareSize, startX, startY, Direction.NORTH) ||
+ tryRobotRespawn(robot, squareSize, startX, startY, Direction.EAST) ||
+ tryRobotRespawn(robot, squareSize, startX, startY, Direction.SOUTH) ||
+ tryRobotRespawn(robot, squareSize, startX, startY, Direction.WEST);
+ squareSize++;
}
}
@@ -560,8 +548,6 @@ public class Board {
* Updates backup position of all robots on a repair tile
*/
public void updateRobotBackups() {
- List> repairTiles = getPositionsOfTilesOnBoard(TileType.WRENCH,
- TileType.WRENCH_AND_HAMMER, TileType.FLAG_1, TileType.FLAG_2, TileType.FLAG_3, TileType.FLAG_4);
for (BoardElementContainer repairTile : repairTiles) {
Position position = repairTile.getPosition();
if (hasRobotOnPosition(position)) {
@@ -751,13 +737,8 @@ public class Board {
* @param robot The robot attempting to move
* @param newPosition The position the robot is attempting to move to
*/
- private void killRobotIfStepsOnDangerousTile(Robot robot, Position newPosition) {
- Tile tileRobotStepsOn = tiles.getElement(newPosition.getXCoordinate(), newPosition.getYCoordinate());
- if (tileRobotStepsOn == null) {
- throw new IllegalArgumentException("The game board is missing a tile. This should not happen.");
- }
- TileType tileTypeRobotStepsOn = tileRobotStepsOn.getType();
- if (dangerousTiles.contains(tileTypeRobotStepsOn)) {
+ private void killRobotIfStepsInHole(Robot robot, Position newPosition) {
+ if (hasHole(newPosition)) {
killRobot(robot);
}
}
@@ -815,12 +796,16 @@ public class Board {
* @param wallLaser The wall laser being fired
*/
private void fireWallLaser(BoardElementContainer wallLaser) {
+ //Reverses direction since a laser points the opposite direction of the wall it's attached to
Direction laserDirection = Direction.getReverseDirection(wallLaser.getElement().getDirection());
List laserTargets = new ArrayList<>();
+ //Stores all positions visited by the laser beam in laserTargets
getLaserTarget(laserDirection, wallLaser.getPosition(), laserTargets);
Position hitPosition = laserTargets.get(laserTargets.size() - 1);
WallType laserType = wallLaser.getElement().getType();
+ //Displays the laser beam in the particle grid
updateLaserDisplay(laserTargets, laserDirection, laserType);
+ //Applies damage if the laser stops because it hits a robot
if (getRobotOnPosition(hitPosition) != null) {
applyLaserDamage(laserType, robots.get(getRobotOnPosition(hitPosition)));
}
diff --git a/src/main/java/inf112/fiasko/roborally/objects/Phase.java b/src/main/java/inf112/fiasko/roborally/objects/Phase.java
index 183dd31..5ef104d 100644
--- a/src/main/java/inf112/fiasko/roborally/objects/Phase.java
+++ b/src/main/java/inf112/fiasko/roborally/objects/Phase.java
@@ -148,15 +148,22 @@ public class Phase {
List playerProgram = player.getProgram();
if (!playerProgram.isEmpty()) {
ProgrammingCard programmingCard = playerProgram.get(phase - 1);
+ //Stores the original priority of the program
originalPriority.add(programmingCard.getPriority());
+ //Stores the player's robot
robotsToDoAction.add(player.getRobotID());
+ //Stores the programming card to be run
programToBeRun.add(programmingCard);
}
}
+ //Sorts the programming cards
Collections.sort(programToBeRun);
for (ProgrammingCard card : programToBeRun) {
- int i = originalPriority.indexOf(card.getPriority());
- RobotID robot = robotsToDoAction.get(i);
+ //Gets the index of the priority of the card which is equal to the index of the robot
+ int robotIndex = originalPriority.indexOf(card.getPriority());
+ //Gets the robot belonging to the player which played the programming card
+ RobotID robot = robotsToDoAction.get(robotIndex);
+ //Moves the robot according to the programming card
makeMove(robot, card.getAction());
}
}
@@ -253,6 +260,7 @@ public class Phase {
if (game != null) {
game.setWinningPlayerName(player.getName());
game.setGameState(GameState.GAME_IS_WON);
+ //Sleeps to prevent the game state to change before the wrapper catches up
try {
Thread.sleep(1000 * cycleDelay);
} catch (InterruptedException e) {
diff --git a/src/main/java/inf112/fiasko/roborally/objects/Player.java b/src/main/java/inf112/fiasko/roborally/objects/Player.java
index eae25b2..a473f42 100644
--- a/src/main/java/inf112/fiasko/roborally/objects/Player.java
+++ b/src/main/java/inf112/fiasko/roborally/objects/Player.java
@@ -30,7 +30,7 @@ public class Player {
}
/**
- * Empty constructor required by kryo
+ * Empty constructor required by KryoNet. DO NOT REMOVE THIS!!!
*/
public Player() {
}
diff --git a/src/main/java/inf112/fiasko/roborally/ui/screens/BoardActiveScreen.java b/src/main/java/inf112/fiasko/roborally/ui/screens/BoardActiveScreen.java
index af3acb7..40ff273 100644
--- a/src/main/java/inf112/fiasko/roborally/ui/screens/BoardActiveScreen.java
+++ b/src/main/java/inf112/fiasko/roborally/ui/screens/BoardActiveScreen.java
@@ -8,7 +8,6 @@ import com.badlogic.gdx.math.Vector3;
import com.badlogic.gdx.utils.Disposable;
import com.badlogic.gdx.utils.viewport.ExtendViewport;
import inf112.fiasko.roborally.objects.DrawableGame;
-import inf112.fiasko.roborally.ui.DrawableObject;
import inf112.fiasko.roborally.objects.InteractableGame;
import inf112.fiasko.roborally.objects.Player;
import inf112.fiasko.roborally.objects.Robot;
@@ -17,6 +16,7 @@ import inf112.fiasko.roborally.objects.properties.Direction;
import inf112.fiasko.roborally.objects.properties.GameState;
import inf112.fiasko.roborally.objects.properties.RobotID;
import inf112.fiasko.roborally.objects.properties.TileType;
+import inf112.fiasko.roborally.ui.DrawableObject;
import inf112.fiasko.roborally.ui.RoboRallyWrapper;
import inf112.fiasko.roborally.utility.IOUtil;
import inf112.fiasko.roborally.utility.TextureConverterUtil;
diff --git a/src/main/java/inf112/fiasko/roborally/ui/screens/CardChoiceScreen.java b/src/main/java/inf112/fiasko/roborally/ui/screens/CardChoiceScreen.java
index aeed900..4e83f44 100644
--- a/src/main/java/inf112/fiasko/roborally/ui/screens/CardChoiceScreen.java
+++ b/src/main/java/inf112/fiasko/roborally/ui/screens/CardChoiceScreen.java
@@ -12,7 +12,7 @@ import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
import com.badlogic.gdx.utils.viewport.FitViewport;
-import inf112.fiasko.roborally.networking.containers.ProgramAndPowerdownRequest;
+import inf112.fiasko.roborally.networking.containers.ProgramAndPowerDownRequest;
import inf112.fiasko.roborally.objects.InteractableGame;
import inf112.fiasko.roborally.objects.ProgrammingCard;
import inf112.fiasko.roborally.objects.ProgrammingCardDeck;
@@ -121,7 +121,9 @@ public class CardChoiceScreen extends InteractiveScreen {
}
/**
- * Confirm cards and send to server if all are chosen
+ * Confirm cards and send to server together with power down choice if all are chosen
+ *
+ * @param requestPowerDown Whether the user wants to enter power down
*/
private void confirmCards(Boolean requestPowerDown) {
if (chosenCards.size() == maxCards) {
@@ -131,7 +133,7 @@ public class CardChoiceScreen extends InteractiveScreen {
game.setProgram(newProgram);
game.setGameState(GameState.WAITING_FOR_OTHER_PLAYERS_PROGRAMS);
roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getLoadingScreen(this.roboRallyWrapper));
- roboRallyWrapper.client.sendElement(new ProgramAndPowerdownRequest(requestPowerDown, newProgram));
+ roboRallyWrapper.client.sendElement(new ProgramAndPowerDownRequest(requestPowerDown, newProgram));
} else {
JOptionPane.showMessageDialog(null, "You need to choose all your cards"
+ " before confirming.");
diff --git a/src/main/java/inf112/fiasko/roborally/ui/screens/IPAddressScreen.java b/src/main/java/inf112/fiasko/roborally/ui/screens/IPAddressScreen.java
index a4ed368..1c098f7 100644
--- a/src/main/java/inf112/fiasko/roborally/ui/screens/IPAddressScreen.java
+++ b/src/main/java/inf112/fiasko/roborally/ui/screens/IPAddressScreen.java
@@ -51,7 +51,27 @@ public class IPAddressScreen extends AbstractScreen {
stage.addActor(selectBox);
- joinButton.addListener(new ClickListener() {
+ joinButton.addListener(getJoinButtonListener(selectBox));
+ textInput = new TextField("", skin);
+ textInput.setPosition(applicationWidth / 2f - textInput.getWidth() / 2f, 250);
+ textInput.setSize(150, 40);
+ stage.addActor(textInput);
+ stage.addActor(joinButton);
+
+ viewport = new FitViewport(applicationWidth, applicationHeight, camera);
+ this.roboRallyWrapper = roboRallyWrapper;
+ camera.setToOrtho(false, applicationWidth, applicationHeight);
+ stage.setViewport(viewport);
+ }
+
+ /**
+ * Gets the listener to use for the join button
+ *
+ * @param selectBox The select box containing ip addresses of local servers
+ * @return A click listener to trigger on the join button
+ */
+ private ClickListener getJoinButtonListener(SelectBox selectBox) {
+ return new ClickListener() {
@Override
public boolean touchDown(InputEvent e, float x, float y, int point, int button) {
return true;
@@ -77,21 +97,11 @@ public class IPAddressScreen extends AbstractScreen {
roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getUsernameScreen(roboRallyWrapper));
} catch (IOException | NumberFormatException ex) {
JOptionPane.showMessageDialog(null, "Could not connect to the server."
- + " Please make sure the ip address you typed is correct, and that the server is online.",
- "Error", JOptionPane.ERROR_MESSAGE);
+ + " Please make sure the ip address you typed is correct, and that the server is " +
+ "online.", "Error", JOptionPane.ERROR_MESSAGE);
}
}
- });
- textInput = new TextField("", skin);
- textInput.setPosition(applicationWidth / 2f - textInput.getWidth() / 2f, 250);
- textInput.setSize(150, 40);
- stage.addActor(textInput);
- stage.addActor(joinButton);
-
- viewport = new FitViewport(applicationWidth, applicationHeight, camera);
- this.roboRallyWrapper = roboRallyWrapper;
- camera.setToOrtho(false, applicationWidth, applicationHeight);
- stage.setViewport(viewport);
+ };
}
@Override
diff --git a/src/main/java/inf112/fiasko/roborally/ui/screens/LoadingScreen.java b/src/main/java/inf112/fiasko/roborally/ui/screens/LoadingScreen.java
index 6fbf83c..8d1dbf2 100644
--- a/src/main/java/inf112/fiasko/roborally/ui/screens/LoadingScreen.java
+++ b/src/main/java/inf112/fiasko/roborally/ui/screens/LoadingScreen.java
@@ -3,7 +3,7 @@ package inf112.fiasko.roborally.ui.screens;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.utils.viewport.ExtendViewport;
-import inf112.fiasko.roborally.networking.containers.ProgramAndPowerdownRequest;
+import inf112.fiasko.roborally.networking.containers.ProgramAndPowerDownRequest;
import inf112.fiasko.roborally.objects.properties.GameState;
import inf112.fiasko.roborally.ui.RoboRallyWrapper;
@@ -68,7 +68,7 @@ public class LoadingScreen extends AbstractScreen {
case SKIP_STAY_IN_POWER_DOWN:
return "Waiting for players to choose whether to stay in power down...";
default:
- return "Waiting for something...";
+ return "Loading...";
}
}
@@ -94,7 +94,7 @@ public class LoadingScreen extends AbstractScreen {
case SKIP_POWER_DOWN_SCREEN:
roboRallyWrapper.roboRallyGame.setGameState(GameState.WAITING_FOR_OTHER_PLAYERS_PROGRAMS);
roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getLoadingScreen(this.roboRallyWrapper));
- roboRallyWrapper.client.sendElement(new ProgramAndPowerdownRequest(false, new ArrayList<>()));
+ roboRallyWrapper.client.sendElement(new ProgramAndPowerDownRequest(false, new ArrayList<>()));
break;
default:
//Ignored
diff --git a/src/main/java/inf112/fiasko/roborally/ui/screens/StartMenuScreen.java b/src/main/java/inf112/fiasko/roborally/ui/screens/StartMenuScreen.java
index c53f4e0..95e179d 100644
--- a/src/main/java/inf112/fiasko/roborally/ui/screens/StartMenuScreen.java
+++ b/src/main/java/inf112/fiasko/roborally/ui/screens/StartMenuScreen.java
@@ -42,7 +42,32 @@ public class StartMenuScreen extends AbstractScreen {
textInput.setText(String.valueOf(roboRallyWrapper.networkPort));
stage.addActor(textInput);
- serverButton.addListener(new ClickListener() {
+ serverButton.addListener(getCreateButtonListener());
+
+ TextButton clientButton = new SimpleButton("Join", roboRallyWrapper.font).getButton();
+ stage.addActor(clientButton);
+ clientButton.setY(applicationHeight / 2f);
+ camera.setToOrtho(false, applicationWidth, applicationHeight);
+ Gdx.input.setInputProcessor(stage);
+ clientButton.addListener(getJoinButtonListener());
+
+ TextButton quitButton = new SimpleButton("Quit", roboRallyWrapper.font).getButton();
+ stage.addActor(quitButton);
+ quitButton.setY(applicationHeight / 2f);
+ camera.setToOrtho(false, applicationWidth, applicationHeight);
+ quitButton.addListener(getQuitButtonListener());
+ serverButton.setX(applicationWidth / 2f - serverButton.getWidth() - clientButton.getWidth() / 2 - 10);
+ clientButton.setX(applicationWidth / 2f - clientButton.getWidth() / 2);
+ quitButton.setX(applicationWidth / 2f + clientButton.getWidth() / 2 + 10);
+ }
+
+ /**
+ * Gets the listener for the create button
+ *
+ * @return A click listener to trigger on the create button
+ */
+ private ClickListener getCreateButtonListener() {
+ return new ClickListener() {
@Override
public boolean touchDown(InputEvent e, float x, float y, int point, int button) {
return true;
@@ -61,14 +86,16 @@ public class StartMenuScreen extends AbstractScreen {
roboRallyWrapper.quit("Server could not be started");
}
}
- });
+ };
+ }
- TextButton clientButton = new SimpleButton("Join", roboRallyWrapper.font).getButton();
- stage.addActor(clientButton);
- clientButton.setY(applicationHeight / 2f);
- camera.setToOrtho(false, applicationWidth, applicationHeight);
- Gdx.input.setInputProcessor(stage);
- clientButton.addListener(new ClickListener() {
+ /**
+ * Gets the listener for the join button
+ *
+ * @return A click listener to trigger on the join button
+ */
+ private ClickListener getJoinButtonListener() {
+ return new ClickListener() {
@Override
public boolean touchDown(InputEvent e, float x, float y, int point, int button) {
return true;
@@ -78,13 +105,16 @@ public class StartMenuScreen extends AbstractScreen {
public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getIPAddressScreen(roboRallyWrapper));
}
- });
+ };
+ }
- TextButton quitButton = new SimpleButton("Quit", roboRallyWrapper.font).getButton();
- stage.addActor(quitButton);
- quitButton.setY(applicationHeight / 2f);
- camera.setToOrtho(false, applicationWidth, applicationHeight);
- quitButton.addListener(new ClickListener() {
+ /**
+ * Gets the listener for the quit button
+ *
+ * @return A click listener to trigger on the quit button
+ */
+ private ClickListener getQuitButtonListener() {
+ return new ClickListener() {
@Override
public boolean touchDown(InputEvent e, float x, float y, int point, int button) {
return true;
@@ -94,10 +124,7 @@ public class StartMenuScreen extends AbstractScreen {
public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
roboRallyWrapper.quit();
}
- });
- serverButton.setX(applicationWidth / 2f - serverButton.getWidth() - clientButton.getWidth() / 2 - 10);
- clientButton.setX(applicationWidth / 2f - clientButton.getWidth() / 2);
- quitButton.setX(applicationWidth / 2f + clientButton.getWidth() / 2 + 10);
+ };
}
@Override
diff --git a/src/main/java/inf112/fiasko/roborally/ui/screens/UsernameScreen.java b/src/main/java/inf112/fiasko/roborally/ui/screens/UsernameScreen.java
index f0bf907..ca3717b 100644
--- a/src/main/java/inf112/fiasko/roborally/ui/screens/UsernameScreen.java
+++ b/src/main/java/inf112/fiasko/roborally/ui/screens/UsernameScreen.java
@@ -32,7 +32,26 @@ public class UsernameScreen extends AbstractScreen {
TextButton confirm = new TextButton("Confirm", skin);
confirm.setSize(300, 60);
confirm.setPosition(applicationWidth / 2f - confirm.getWidth() / 2, 300);
- confirm.addListener(new ClickListener() {
+ confirm.addListener(getConfirmButtonClickListener());
+ textInput = new TextField("", skin);
+ textInput.setPosition(applicationWidth / 2f - textInput.getWidth() / 2, 250);
+ textInput.setSize(150, 40);
+ stage.addActor(textInput);
+ stage.addActor(confirm);
+
+ viewport = new FitViewport(applicationWidth, applicationHeight, camera);
+ this.roboRallyWrapper = roboRallyWrapper;
+ camera.setToOrtho(false, applicationWidth, applicationHeight);
+ stage.setViewport(viewport);
+ }
+
+ /**
+ * Gets the listener for the confirm button
+ *
+ * @return A click listener to trigger on the confirm button
+ */
+ private ClickListener getConfirmButtonClickListener() {
+ return new ClickListener() {
@Override
public boolean touchDown(InputEvent e, float x, float y, int point, int button) {
return true;
@@ -52,17 +71,7 @@ public class UsernameScreen extends AbstractScreen {
}
}
- });
- textInput = new TextField("", skin);
- textInput.setPosition(applicationWidth / 2f - textInput.getWidth() / 2, 250);
- textInput.setSize(150, 40);
- stage.addActor(textInput);
- stage.addActor(confirm);
-
- viewport = new FitViewport(applicationWidth, applicationHeight, camera);
- this.roboRallyWrapper = roboRallyWrapper;
- camera.setToOrtho(false, applicationWidth, applicationHeight);
- stage.setViewport(viewport);
+ };
}
/**
diff --git a/src/main/java/inf112/fiasko/roborally/ui/screens/WinnerScreen.java b/src/main/java/inf112/fiasko/roborally/ui/screens/WinnerScreen.java
index d9dee33..0925e4c 100644
--- a/src/main/java/inf112/fiasko/roborally/ui/screens/WinnerScreen.java
+++ b/src/main/java/inf112/fiasko/roborally/ui/screens/WinnerScreen.java
@@ -26,7 +26,19 @@ public class WinnerScreen extends AbstractScreen {
stage.addActor(quitButton);
quitButton.setY(applicationHeight / 2f);
camera.setToOrtho(false, applicationWidth, applicationHeight);
- quitButton.addListener(new ClickListener() {
+ quitButton.addListener(getQuitButtonListener());
+ quitButton.setX(applicationWidth / 2f + quitButton.getWidth() / 2);
+ this.roboRallyWrapper = roboRallyWrapper;
+ camera.setToOrtho(false, applicationWidth, applicationHeight);
+ }
+
+ /**
+ * Gets the listener for the quit button
+ *
+ * @return A click listener to trigger on the quit button
+ */
+ private ClickListener getQuitButtonListener() {
+ return new ClickListener() {
@Override
public boolean touchDown(InputEvent e, float x, float y, int point, int button) {
return true;
@@ -36,10 +48,7 @@ public class WinnerScreen extends AbstractScreen {
public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
Gdx.app.exit();
}
- });
- quitButton.setX(applicationWidth / 2f + quitButton.getWidth() / 2);
- this.roboRallyWrapper = roboRallyWrapper;
- camera.setToOrtho(false, applicationWidth, applicationHeight);
+ };
}
@Override
diff --git a/src/main/java/inf112/fiasko/roborally/utility/DeckLoaderUtil.java b/src/main/java/inf112/fiasko/roborally/utility/DeckLoaderUtil.java
index 5b0e363..7759231 100644
--- a/src/main/java/inf112/fiasko/roborally/utility/DeckLoaderUtil.java
+++ b/src/main/java/inf112/fiasko/roborally/utility/DeckLoaderUtil.java
@@ -15,6 +15,9 @@ import java.util.List;
*/
public final class DeckLoaderUtil {
+ private DeckLoaderUtil() {
+ }
+
/**
* Returns a programming card deck containing all official programming cards
*
diff --git a/src/main/java/inf112/fiasko/roborally/utility/GridUtil.java b/src/main/java/inf112/fiasko/roborally/utility/GridUtil.java
index 5de6498..5683592 100644
--- a/src/main/java/inf112/fiasko/roborally/utility/GridUtil.java
+++ b/src/main/java/inf112/fiasko/roborally/utility/GridUtil.java
@@ -13,6 +13,9 @@ import java.util.List;
*/
public final class GridUtil {
+ private GridUtil() {
+ }
+
/**
* Gets all elements in a grid
*
diff --git a/src/main/java/inf112/fiasko/roborally/utility/IOUtil.java b/src/main/java/inf112/fiasko/roborally/utility/IOUtil.java
index 641eb17..7f1d2b4 100644
--- a/src/main/java/inf112/fiasko/roborally/utility/IOUtil.java
+++ b/src/main/java/inf112/fiasko/roborally/utility/IOUtil.java
@@ -3,7 +3,6 @@ package inf112.fiasko.roborally.utility;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.esotericsoftware.kryonet.Connection;
import inf112.fiasko.roborally.objects.DrawableGame;
-import inf112.fiasko.roborally.ui.DrawableObject;
import inf112.fiasko.roborally.objects.Particle;
import inf112.fiasko.roborally.objects.Player;
import inf112.fiasko.roborally.objects.Robot;
@@ -12,6 +11,7 @@ import inf112.fiasko.roborally.objects.Wall;
import inf112.fiasko.roborally.objects.properties.Direction;
import inf112.fiasko.roborally.objects.properties.Position;
import inf112.fiasko.roborally.objects.properties.RobotID;
+import inf112.fiasko.roborally.ui.DrawableObject;
import java.util.ArrayList;
import java.util.List;
@@ -21,6 +21,7 @@ import java.util.Map;
* This class helps with tasks which mix primitive classes and classes from external libraries
*/
public final class IOUtil {
+
private IOUtil() {
}
diff --git a/src/main/java/inf112/fiasko/roborally/utility/LaserHelper.java b/src/main/java/inf112/fiasko/roborally/utility/LaserHelper.java
index 8186cf5..cadadfb 100644
--- a/src/main/java/inf112/fiasko/roborally/utility/LaserHelper.java
+++ b/src/main/java/inf112/fiasko/roborally/utility/LaserHelper.java
@@ -10,6 +10,9 @@ import inf112.fiasko.roborally.objects.properties.WallType;
*/
public final class LaserHelper {
+ private LaserHelper() {
+ }
+
/**
* Gets the correct particle type from a laser type
*
diff --git a/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java b/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java
index fe49400..20d22a3 100644
--- a/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java
+++ b/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java
@@ -7,7 +7,7 @@ import inf112.fiasko.roborally.networking.containers.HandResponse;
import inf112.fiasko.roborally.networking.containers.HurryResponse;
import inf112.fiasko.roborally.networking.containers.OkayResponse;
import inf112.fiasko.roborally.networking.containers.PowerDownContainerResponse;
-import inf112.fiasko.roborally.networking.containers.ProgramAndPowerdownRequest;
+import inf112.fiasko.roborally.networking.containers.ProgramAndPowerDownRequest;
import inf112.fiasko.roborally.networking.containers.ProgramsContainerResponse;
import inf112.fiasko.roborally.networking.containers.UsernameRequest;
import inf112.fiasko.roborally.objects.Deck;
@@ -25,6 +25,9 @@ import java.util.HashMap;
*/
public final class NetworkUtil {
+ private NetworkUtil() {
+ }
+
/**
* Registers all classes which can be sent between a server and a client
*
@@ -40,7 +43,7 @@ public final class NetworkUtil {
kryo.register(RobotID.class);
kryo.register(ProgrammingCardDeck.class);
kryo.register(Action.class);
- kryo.register(ProgramAndPowerdownRequest.class);
+ kryo.register(ProgramAndPowerDownRequest.class);
kryo.register(ProgramsContainerResponse.class);
kryo.register(PowerDownContainerResponse.class);
kryo.register(HashMap.class);
diff --git a/src/main/java/inf112/fiasko/roborally/utility/ResourceUtil.java b/src/main/java/inf112/fiasko/roborally/utility/ResourceUtil.java
index 01723aa..fd80d20 100644
--- a/src/main/java/inf112/fiasko/roborally/utility/ResourceUtil.java
+++ b/src/main/java/inf112/fiasko/roborally/utility/ResourceUtil.java
@@ -6,6 +6,7 @@ import java.io.InputStream;
* This class helps with tasks related to resource loading
*/
public final class ResourceUtil {
+
private ResourceUtil() {
}
diff --git a/src/main/java/inf112/fiasko/roborally/utility/StringUtil.java b/src/main/java/inf112/fiasko/roborally/utility/StringUtil.java
index 24ea79e..d798ec3 100644
--- a/src/main/java/inf112/fiasko/roborally/utility/StringUtil.java
+++ b/src/main/java/inf112/fiasko/roborally/utility/StringUtil.java
@@ -1,7 +1,13 @@
package inf112.fiasko.roborally.utility;
+/**
+ * This class helps with tasks related to string manipulation
+ */
public final class StringUtil {
+ private StringUtil() {
+ }
+
/**
* Adds zeros to a number until it reaches a set length and converts it to a string
*