From ec6e3deaadbd9f4dd4c551c7a1d9e54990663314 Mon Sep 17 00:00:00 2001 From: GabrielMagnus Date: Tue, 31 Mar 2020 14:34:46 +0200 Subject: [PATCH 01/92] =?UTF-8?q?Laget=20format=20og=20delvis=20implementa?= =?UTF-8?q?sjon=20av=20runTurn,=20som=20kj=C3=B8rer=20en=20runde=20i=20spi?= =?UTF-8?q?llet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roborally/objects/RoboRallyGame.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index 6b0c8ab..658ea7d 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -196,6 +196,55 @@ public class RoboRallyGame implements IDrawableGame { respawnRobots(); } + /** + * Runs all the steps of one turn in the game + * @throws InterruptedException If interrupted while trying to sleep + */ + private void runTurn() throws InterruptedException { + // The method should follow this sequence: + /* + Tilegne programeringskort + + Programmer roboten + + Gå i power down + + Kjør 5 faser + + Flagg + reprasjonstiles reparerer + + Fjerner ulåste programmeringskort + + Spør om de i power down skal fortsette i power down + + Respawn roboter + */ + + // Sets the power down status to true on robots that have players who planned one this turn. + // Resets players power down for next turn to false. + updateRobotPowerDown(); + // Set damage of robots in power down to 0 + gameBoard.executePowerdown(); + if (host) { + // TODO: Distribute programming cards to players not in power down + } + // TODO: Make program for this player, if not in power down + // TODO: Ask player for new power down + // Run the phases of the game + runPhase(1); + runPhase(2); + runPhase(3); + runPhase(4); + runPhase(5); + + // Repair robots on repair tiles + repairAllRobotsOnReparerTiles(); + // TODO: Remove non-locked programming cards + // TODO: If this player is in power down, ask if it shall continue + // Respawn dead robots, as long as they have more lives left + respawnRobots(); + } + /** * Runs one phase as defined in the Robo Rally rulebook * @param phaseNumber The number of the phase to run From 768c85cc595375d52e389e3749086ac5ffca1016 Mon Sep 17 00:00:00 2001 From: GabrielMagnus Date: Tue, 31 Mar 2020 14:36:38 +0200 Subject: [PATCH 02/92] =?UTF-8?q?Endret=20navn=20p=C3=A5=20metodekall,=20s?= =?UTF-8?q?=C3=A5=20det=20matcher=20metoden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/inf112/fiasko/roborally/objects/RoboRallyGame.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index 7349b82..d5d4602 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -238,7 +238,7 @@ public class RoboRallyGame implements IDrawableGame { runPhase(5); // Repair robots on repair tiles - repairAllRobotsOnReparerTiles(); + repairAllRobotsOnRepairTiles(); // TODO: Remove non-locked programming cards // TODO: If this player is in power down, ask if it shall continue // Respawn dead robots, as long as they have more lives left From 4b1bb423618c3a0ed8cbc844715a77115789cd40 Mon Sep 17 00:00:00 2001 From: GabrielMagnus Date: Tue, 31 Mar 2020 14:55:52 +0200 Subject: [PATCH 03/92] =?UTF-8?q?Lagd=20metode=20for=20=C3=A5=20f=C3=A5=20?= =?UTF-8?q?damage=20fra=20en=20spesifikk=20robot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/inf112/fiasko/roborally/objects/Board.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/objects/Board.java b/src/main/java/inf112/fiasko/roborally/objects/Board.java index 95a57a3..e4e9051 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/Board.java +++ b/src/main/java/inf112/fiasko/roborally/objects/Board.java @@ -172,6 +172,16 @@ 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 + */ + public int getRobotDamage(RobotID robot) { + return robots.get(robot).getDamageTaken(); + } + /** * Moves a robot one unit in a specified direction * @param robotID ID of the robot to move From 4bcadf106e7e488c2dd624fe85c4d2627ba80fb9 Mon Sep 17 00:00:00 2001 From: GabrielMagnus Date: Tue, 31 Mar 2020 15:50:00 +0200 Subject: [PATCH 04/92] Legger til locked deck i player MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Parprogrammering med Torbjørn --- .../inf112/fiasko/roborally/objects/Player.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/objects/Player.java b/src/main/java/inf112/fiasko/roborally/objects/Player.java index 6141910..a5d29c1 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/Player.java +++ b/src/main/java/inf112/fiasko/roborally/objects/Player.java @@ -14,6 +14,7 @@ public class Player { private final String name; private boolean powerDownNextRound = false; private ProgrammingCardDeck playerDeck; + private ProgrammingCardDeck lockedPlayerDeck; private List program; /** @@ -66,6 +67,22 @@ public class Player { return playerDeck; } + /** + * Gives you the player deck with locked cards + * @return a deck with locked cards + */ + public ProgrammingCardDeck getLockedPlayerDeck() { + return lockedPlayerDeck; + } + + /** + * Set the players locked deck to the given deck + * @param lockedPlayerDeck A deck of locked cards kept by the player + */ + public void setLockedPlayerDeck(ProgrammingCardDeck lockedPlayerDeck) { + this.lockedPlayerDeck = lockedPlayerDeck; + } + /** * Gives you the players power down status * @return Whether the player is to power down From 7312347615a4afea311ee908b695df9a36d9f0fe Mon Sep 17 00:00:00 2001 From: GabrielMagnus Date: Tue, 31 Mar 2020 15:52:03 +0200 Subject: [PATCH 05/92] =?UTF-8?q?Legger=20til=20funksjonalitet=20for=20?= =?UTF-8?q?=C3=A5=20dele=20ut=20kort=20til=20aktive=20spillere?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Parprogrammering med Torbjørn --- .../roborally/objects/RoboRallyGame.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index d5d4602..24554b1 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -26,6 +26,7 @@ public class RoboRallyGame implements IDrawableGame { private List> fastConveyorBelts; private List playerList; private final boolean host; + private Deck mainDeck; /** * Instantiates a new robo rally game * @param debug Whether to start the game in debugging mode @@ -123,6 +124,7 @@ public class RoboRallyGame implements IDrawableGame { initializePlayers(); gameBoard = BoardLoaderUtil.loadBoard("boards/Checkmate.txt", robots); generateTileLists(); + mainDeck = DeckLoaderUtil.loadProgrammingCardsDeck(); new Thread(() -> { try { @@ -227,6 +229,7 @@ public class RoboRallyGame implements IDrawableGame { gameBoard.executePowerdown(); if (host) { // TODO: Distribute programming cards to players not in power down + distributeProgrammingCardsToPlayers(); } // TODO: Make program for this player, if not in power down // TODO: Ask player for new power down @@ -239,12 +242,34 @@ public class RoboRallyGame implements IDrawableGame { // Repair robots on repair tiles repairAllRobotsOnRepairTiles(); + // TODO: Update locked cards deck // TODO: Remove non-locked programming cards // TODO: If this player is in power down, ask if it shall continue // Respawn dead robots, as long as they have more lives left respawnRobots(); } + private void distributeProgrammingCardsToPlayers() { + int robotDamage; + ProgrammingCardDeck playerDeck; + mainDeck.shuffle(); + + for (Player player : playerList) { + RobotID robot = player.getRobotID(); + playerDeck = player.getPlayerDeck(); + if (gameBoard.getPowerDown(robot)) { + continue; + } + robotDamage = gameBoard.getRobotDamage(robot); + if (robotDamage >= 9) { + continue; + } + if (playerDeck.isEmpty()) { + playerDeck.draw(mainDeck,9-robotDamage); + } else throw new IllegalStateException("Player deck must be empty!"); + } + } + /** * Runs one phase as defined in the Robo Rally rulebook * @param phaseNumber The number of the phase to run From a47857381b87191a3b0d5303aa7e614951405c60 Mon Sep 17 00:00:00 2001 From: GabrielMagnus Date: Tue, 31 Mar 2020 15:53:46 +0200 Subject: [PATCH 06/92] Kommentert distributeProgrammingCardsToPlayers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Parprogrammering med Torbjørn --- .../java/inf112/fiasko/roborally/objects/RoboRallyGame.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index 24554b1..7ea1d10 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -249,6 +249,9 @@ public class RoboRallyGame implements IDrawableGame { respawnRobots(); } + /** + * Deals correct amount of cards to active players, based on their robots damage + */ private void distributeProgrammingCardsToPlayers() { int robotDamage; ProgrammingCardDeck playerDeck; From 6b3e15dcd77ff53cd24147280c6304d0826ad2c4 Mon Sep 17 00:00:00 2001 From: GabrielMagnus Date: Thu, 2 Apr 2020 10:29:37 +0200 Subject: [PATCH 07/92] =?UTF-8?q?Byttet=20s=C3=A5=20mainDeck=20bare=20init?= =?UTF-8?q?ialiseres=20av=20host?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/inf112/fiasko/roborally/objects/RoboRallyGame.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index 7ea1d10..80519c8 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -124,7 +124,10 @@ public class RoboRallyGame implements IDrawableGame { initializePlayers(); gameBoard = BoardLoaderUtil.loadBoard("boards/Checkmate.txt", robots); generateTileLists(); - mainDeck = DeckLoaderUtil.loadProgrammingCardsDeck(); + + if (host) { + mainDeck = DeckLoaderUtil.loadProgrammingCardsDeck(); + } new Thread(() -> { try { From 15a0782998530ee5e271593826827fe2b620adb4 Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Thu, 2 Apr 2020 12:11:24 +0200 Subject: [PATCH 08/92] =?UTF-8?q?Referat=20fra=20m=C3=B8te.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/team/referater/referat_02_04_2020.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 docs/team/referater/referat_02_04_2020.md diff --git a/docs/team/referater/referat_02_04_2020.md b/docs/team/referater/referat_02_04_2020.md new file mode 100644 index 0000000..6e95378 --- /dev/null +++ b/docs/team/referater/referat_02_04_2020.md @@ -0,0 +1,13 @@ +## Oppmøte +Tilstede: Steinar, Gabriel, Kristian, Torbjørn, Petter +Ikke tilstede: + +## Agenda +- Hørre om det er noen utfordringer/spørmsål + +- Fortsette arbeidet + +## Møte +Starter møte med å gå igjennom mail som sier noe om endring av prosjekt. Prosjekteleder gir uttrykk for hvordan han +tenker vi burde gå frem. Enighet i gruppen. +Etter dette deler vi opp i grupper og jobber videre. \ No newline at end of file From 4738ce6baa54fc2b9b4aca372f24f0d347596200 Mon Sep 17 00:00:00 2001 From: GabrielMagnus Date: Thu, 2 Apr 2020 12:27:50 +0200 Subject: [PATCH 09/92] Update RoboRallyGame.java Implenterer updatePlayerLockedProgrammingCards og removeNonLockedProgrammingCardsFromPlayers Co-Authored-By: torlunjen --- .../roborally/objects/RoboRallyGame.java | 52 +++++++++++++++++-- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index 80519c8..75a1414 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -124,7 +124,7 @@ public class RoboRallyGame implements IDrawableGame { initializePlayers(); gameBoard = BoardLoaderUtil.loadBoard("boards/Checkmate.txt", robots); generateTileLists(); - + if (host) { mainDeck = DeckLoaderUtil.loadProgrammingCardsDeck(); } @@ -231,7 +231,6 @@ public class RoboRallyGame implements IDrawableGame { // Set damage of robots in power down to 0 gameBoard.executePowerdown(); if (host) { - // TODO: Distribute programming cards to players not in power down distributeProgrammingCardsToPlayers(); } // TODO: Make program for this player, if not in power down @@ -245,17 +244,60 @@ public class RoboRallyGame implements IDrawableGame { // Repair robots on repair tiles repairAllRobotsOnRepairTiles(); - // TODO: Update locked cards deck - // TODO: Remove non-locked programming cards + if (host) { + updatePlayerLockedProgrammingCards(); + removeNonLockedProgrammingCardsFromPlayers(); + } // TODO: If this player is in power down, ask if it shall continue // Respawn dead robots, as long as they have more lives left respawnRobots(); } + /** + * Locks the players programming cards in relation to the robots damage + */ + private void updatePlayerLockedProgrammingCards() { + for (Player player : playerList) { + List playerProgram = player.getProgram(); + ProgrammingCardDeck playerDeck = player.getPlayerDeck(); + ProgrammingCardDeck lockedPlayerDeck = player.getLockedPlayerDeck(); + int robotDamage = gameBoard.getRobotDamage(player.getRobotID()); + + if (robotDamage <= 4) { + lockedPlayerDeck.emptyInto(player.getPlayerDeck()); + player.setLockedPlayerDeck(lockedPlayerDeck); + continue; + } + + for (int i = 1; i <= (robotDamage-4); i++) { + ProgrammingCard card = playerProgram.get(playerProgram.size()-i); + + if (card.compareTo(playerDeck.peekTop()) == 0) { + lockedPlayerDeck.draw(playerDeck); + } else { + playerDeck.draw(playerDeck); + } + } + player.setPlayerDeck(playerDeck); + player.setLockedPlayerDeck(lockedPlayerDeck); + } + } + + /** + * Moves non-locked player programming cards from their hand back to the main deck + */ + private void removeNonLockedProgrammingCardsFromPlayers() { + for (Player player : playerList) { + ProgrammingCardDeck playerDeck = player.getPlayerDeck(); + playerDeck.emptyInto(mainDeck); + player.setPlayerDeck(playerDeck); + } + } + /** * Deals correct amount of cards to active players, based on their robots damage */ - private void distributeProgrammingCardsToPlayers() { + public void distributeProgrammingCardsToPlayers() { int robotDamage; ProgrammingCardDeck playerDeck; mainDeck.shuffle(); From 03a2dfebcbf15726a751099a29e48d5638533f10 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Thu, 2 Apr 2020 12:46:47 +0200 Subject: [PATCH 10/92] lagde en username screen --- .../game_wrapper/UsernameScreen.java | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 src/main/java/inf112/fiasko/roborally/game_wrapper/UsernameScreen.java diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/UsernameScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/UsernameScreen.java new file mode 100644 index 0000000..c799297 --- /dev/null +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/UsernameScreen.java @@ -0,0 +1,76 @@ +package inf112.fiasko.roborally.game_wrapper; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.OrthographicCamera; +import com.badlogic.gdx.scenes.scene2d.InputEvent; +import com.badlogic.gdx.scenes.scene2d.InputListener; +import com.badlogic.gdx.scenes.scene2d.Stage; +import com.badlogic.gdx.scenes.scene2d.ui.Skin; +import com.badlogic.gdx.scenes.scene2d.ui.TextButton; +import com.badlogic.gdx.scenes.scene2d.ui.TextField; +import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; +import com.badlogic.gdx.utils.viewport.FitViewport; +import com.badlogic.gdx.utils.viewport.Viewport; + +public class UsernameScreen extends AbstractScreen { + private final RoboRallyWrapper roboRallyWrapper; + + private final OrthographicCamera camera; + private final Viewport viewport; + private final Stage stage; + private final int applicationWidth = 600; + private final int applicationHeight = 800; + private TextField txtinput; + private TextButton loginbutton; + public UsernameScreen(final RoboRallyWrapper roboRallyWrapper) { + + stage = new Stage(); + + Skin skin =new Skin(Gdx.files.internal("uiskin.json")); + loginbutton = new TextButton("click",skin); + loginbutton.setSize(300,60); + loginbutton.setPosition(300,300); + loginbutton.addListener(new ClickListener(){ + @Override + public void touchUp(InputEvent e, float x, float y, int point, int button){ + System.out.println(txtinput.getText()); + roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getLoadingScreen(roboRallyWrapper)); + } + }); + txtinput = new TextField("",skin); + txtinput.setPosition(300,250); + txtinput.setSize(150,40); + stage.addActor(txtinput); + stage.addActor(loginbutton); + + camera = new OrthographicCamera(); + viewport = new FitViewport(applicationWidth, applicationHeight, camera); + this.roboRallyWrapper = roboRallyWrapper; + camera.setToOrtho(false, applicationWidth, applicationHeight); + Gdx.input.setInputProcessor(stage); + + } + + + @Override + public void render(float delta) { + Gdx.gl.glClearColor(0.5f, 0.5f, 0.5f, 0.5f); + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + camera.update(); + roboRallyWrapper.batch.setProjectionMatrix(camera.combined); + + roboRallyWrapper.batch.begin(); + roboRallyWrapper.font.draw(roboRallyWrapper.batch, "Click the button to enter username", + applicationWidth/2f-380/2f,applicationHeight/2f + 100,380, 1, true); + roboRallyWrapper.batch.end(); + stage.draw(); + + } + + @Override + public void resize(int width, int height) { + viewport.update(width, height); + } + +} From 733960bebc0065004785ee4ebc9b979df6464ce0 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Thu, 2 Apr 2020 12:47:10 +0200 Subject: [PATCH 11/92] lagde en ip address screen --- .../game_wrapper/IPAddressScreen.java | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/main/java/inf112/fiasko/roborally/game_wrapper/IPAddressScreen.java diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/IPAddressScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/IPAddressScreen.java new file mode 100644 index 0000000..ba0dcde --- /dev/null +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/IPAddressScreen.java @@ -0,0 +1,74 @@ +package inf112.fiasko.roborally.game_wrapper; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.OrthographicCamera; +import com.badlogic.gdx.scenes.scene2d.InputEvent; +import com.badlogic.gdx.scenes.scene2d.Stage; +import com.badlogic.gdx.scenes.scene2d.ui.Skin; +import com.badlogic.gdx.scenes.scene2d.ui.TextButton; +import com.badlogic.gdx.scenes.scene2d.ui.TextField; +import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; +import com.badlogic.gdx.utils.viewport.FitViewport; +import com.badlogic.gdx.utils.viewport.Viewport; + +public class IPAddressScreen extends AbstractScreen { + private final RoboRallyWrapper roboRallyWrapper; + + private final OrthographicCamera camera; + private final Viewport viewport; + private final Stage stage; + private final int applicationWidth = 600; + private final int applicationHeight = 800; + private TextField txtinput; + private TextButton loginbutton; + public IPAddressScreen(final RoboRallyWrapper roboRallyWrapper) { + + stage = new Stage(); + + Skin skin =new Skin(Gdx.files.internal("uiskin.json")); + loginbutton = new TextButton("click",skin); + loginbutton.setSize(300,60); + loginbutton.setPosition(300,300); + loginbutton.addListener(new ClickListener(){ + @Override + public void touchUp(InputEvent e, float x, float y, int point, int button){ + System.out.println(txtinput.getText()); + roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getUsernameScreen(roboRallyWrapper)); + } + }); + txtinput = new TextField("",skin); + txtinput.setPosition(300,250); + txtinput.setSize(150,40); + stage.addActor(txtinput); + stage.addActor(loginbutton); + + camera = new OrthographicCamera(); + viewport = new FitViewport(applicationWidth, applicationHeight, camera); + this.roboRallyWrapper = roboRallyWrapper; + camera.setToOrtho(false, applicationWidth, applicationHeight); + Gdx.input.setInputProcessor(stage); + + } + + + @Override + public void render(float delta) { + Gdx.gl.glClearColor(0.5f, 0.5f, 0.5f, 0.5f); + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + camera.update(); + roboRallyWrapper.batch.setProjectionMatrix(camera.combined); + + roboRallyWrapper.batch.begin(); + roboRallyWrapper.font.draw(roboRallyWrapper.batch, "Click the button to enter IP to join server", + applicationWidth/2f-380/2f,applicationHeight/2f + 100,380, 1, true); + roboRallyWrapper.batch.end(); + stage.draw(); + + } + + @Override + public void resize(int width, int height) { + viewport.update(width, height); + } +} From 94ed63be3c5869640814efe3b88eaba5bc2e6932 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Thu, 2 Apr 2020 12:47:42 +0200 Subject: [PATCH 12/92] refactorerte code --- .../roborally/game_wrapper/PowerDownScreen.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/PowerDownScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/PowerDownScreen.java index 4a94e5d..1a6d1b2 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/PowerDownScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/PowerDownScreen.java @@ -19,7 +19,6 @@ public class PowerDownScreen extends AbstractScreen { private long startTime; private final int applicationWidth = 600; private final int applicationHeight = 800; - private Boolean buttonPressed = false; public PowerDownScreen(final RoboRallyWrapper roboRallyWrapper) { camera = new OrthographicCamera(); viewport = new FitViewport(applicationWidth, applicationHeight, camera); @@ -35,7 +34,7 @@ public class PowerDownScreen extends AbstractScreen { powerDownButton.addListener(new InputListener() { @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { - buttonPressed = true; + roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getLoadingScreen(roboRallyWrapper)); return true;//her we do stuff } }); @@ -60,11 +59,7 @@ public class PowerDownScreen extends AbstractScreen { stage.draw(); if (elapsedTime > 10) { - roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getMainMenuScreen(this.roboRallyWrapper)); - dispose(); - } else if (buttonPressed) { roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getLoadingScreen(this.roboRallyWrapper)); - dispose(); } } @@ -73,4 +68,9 @@ public class PowerDownScreen extends AbstractScreen { viewport.update(width, height); } + @Override + public void show(){ + startTime = System.currentTimeMillis(); + } + } From 5573d571bcd6184615222ddb25cb3383f81a4986 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Thu, 2 Apr 2020 12:48:28 +0200 Subject: [PATCH 13/92] endret timerenen og la til show funksjon --- .../fiasko/roborally/game_wrapper/LoadingScreen.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/LoadingScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/LoadingScreen.java index b2fa4e7..e2160c2 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/LoadingScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/LoadingScreen.java @@ -38,9 +38,8 @@ public class LoadingScreen extends AbstractScreen { applicationHeight/2f,380, 1, true); roboRallyWrapper.batch.end(); long time = System.currentTimeMillis(); - if (time-startTime>10000){ - roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getMainMenuScreen(this.roboRallyWrapper)); - dispose(); + if (time-startTime>5000){ + roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getStartMenuScreen(this.roboRallyWrapper)); } } @@ -49,4 +48,9 @@ public class LoadingScreen extends AbstractScreen { viewport.update(width, height); } + @Override + public void show(){ + startTime = System.currentTimeMillis(); + } + } From 25da1cb9fa134578049445167248926c0122298f Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Thu, 2 Apr 2020 12:50:06 +0200 Subject: [PATCH 14/92] la til username og ipaddress screen --- .../game_wrapper/StartMenuScreen.java | 43 ++++--------------- 1 file changed, 8 insertions(+), 35 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/StartMenuScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/StartMenuScreen.java index 62b2b50..c0955c0 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/StartMenuScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/StartMenuScreen.java @@ -2,7 +2,6 @@ package inf112.fiasko.roborally.game_wrapper; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; -import com.badlogic.gdx.Screen; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.scenes.scene2d.InputEvent; @@ -20,54 +19,30 @@ public class StartMenuScreen extends AbstractScreen { private final Stage stage; private final int applicationWidth = 600; private final int applicationHeight = 800; + private TextButton serverButton; + private TextButton clientButton; + private TextButton quitButton; public StartMenuScreen(final RoboRallyWrapper roboRallyWrapper) { camera = new OrthographicCamera(); viewport = new FitViewport(applicationWidth, applicationHeight, camera); stage = new Stage(); - - TextButton serverButton = new SimpleButton("Create", roboRallyWrapper.font).getButton(); + serverButton = new SimpleButton("Create", roboRallyWrapper.font).getButton(); stage.addActor(serverButton); serverButton.setY(applicationHeight/2f); serverButton.setX(applicationWidth/2f); this.roboRallyWrapper = roboRallyWrapper; camera.setToOrtho(false, applicationWidth, applicationHeight); Gdx.input.setInputProcessor(stage); - Input.TextInputListener nameInputClient = new Input.TextInputListener() { - @Override - public void input(String name) { - //TODO: do something with the name - roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getMainMenuScreen(roboRallyWrapper)); - dispose(); - } - - @Override - public void canceled() { - - } - }; - Input.TextInputListener nameInputServer = new Input.TextInputListener() { - @Override - public void input(String name) { - //TODO: do something with the name - roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getLoadingScreen(roboRallyWrapper)); - dispose(); - } - - @Override - public void canceled() { - - } - }; serverButton.addListener(new InputListener() { @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { - Gdx.input.getTextInput(nameInputServer, "Name input", "input name her", ""); + roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getPowerDownScreen(roboRallyWrapper)); return true; // Here do stuff } }); - TextButton clientButton = new SimpleButton("Join", roboRallyWrapper.font).getButton(); + clientButton = new SimpleButton("Join", roboRallyWrapper.font).getButton(); stage.addActor(clientButton); clientButton.setY(applicationHeight/2f); clientButton.setX(applicationWidth/2f+serverButton.getWidth()+20); @@ -76,12 +51,12 @@ public class StartMenuScreen extends AbstractScreen { clientButton.addListener(new InputListener() { @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { - Gdx.input.getTextInput(nameInputClient, "Name input", "input name her", ""); + roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getIPAddressScreen(roboRallyWrapper)); return true;// Here we do stuff } }); - TextButton quitButton = new SimpleButton("Quit", roboRallyWrapper.font).getButton(); + quitButton = new SimpleButton("Quit", roboRallyWrapper.font).getButton(); stage.addActor(quitButton); quitButton.setY(applicationHeight/2f); quitButton.setX(applicationWidth/2f+serverButton.getWidth()+40+clientButton.getWidth()); @@ -94,7 +69,6 @@ public class StartMenuScreen extends AbstractScreen { return true;//her we do stuff } }); - } @Override @@ -115,5 +89,4 @@ public class StartMenuScreen extends AbstractScreen { public void resize(int width, int height) { viewport.update(width, height); } - } From 1fa42ed074424988b034311544dc4e4709d3e97e Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Thu, 2 Apr 2020 12:50:38 +0200 Subject: [PATCH 15/92] la til render funksjon --- .../fiasko/roborally/game_wrapper/RoboRallyWrapper.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java index 19727d2..e858552 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java @@ -37,4 +37,9 @@ public class RoboRallyWrapper extends Game { public void dispose() { batch.dispose(); } + + @Override + public void render() { + super.render(); //important! + } } From 447cf22b161b83b61d5356fc37a54efc835b18fa Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Thu, 2 Apr 2020 12:51:13 +0200 Subject: [PATCH 16/92] la til username og ipaddress screen --- .../roborally/game_wrapper/ScreenManager.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java index f35a839..50e0fc0 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java @@ -10,6 +10,8 @@ public class ScreenManager { private PowerDownScreen powerDownScreen; private LoadingScreen loadingScreen; private StartMenuScreen startMenuScreen; + private UsernameScreen usernameScreen; + private IPAddressScreen ipAddressScreen; /** * Gets an instance of the main menu screen @@ -23,6 +25,20 @@ public class ScreenManager { return powerDownScreen; } + public synchronized IPAddressScreen getIPAddressScreen(RoboRallyWrapper roboRallyWrapper) { + if (this.ipAddressScreen == null) { + this.ipAddressScreen = new IPAddressScreen(roboRallyWrapper); + } + return ipAddressScreen; + } + + public synchronized UsernameScreen getUsernameScreen(RoboRallyWrapper roboRallyWrapper) { + if (this.usernameScreen == null) { + this.usernameScreen = new UsernameScreen(roboRallyWrapper); + } + return usernameScreen; + } + public synchronized StartMenuScreen getStartMenuScreen(RoboRallyWrapper roboRallyWrapper) { if (this.startMenuScreen == null) { this.startMenuScreen = new StartMenuScreen(roboRallyWrapper); From 2cc8cd8d6973d80efee4b98dafb86c524e9dfaf9 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 15:15:41 +0200 Subject: [PATCH 17/92] =?UTF-8?q?la=20til=20egenskap=20til=20=C3=A5=20kobl?= =?UTF-8?q?e=20til=20en=20server?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inf112/fiasko/roborally/networking/RoboRallyClient.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java index 1307ef1..d904c08 100644 --- a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java +++ b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java @@ -8,11 +8,11 @@ import inf112.fiasko.roborally.utility.NetworkUtil; import java.io.IOException; public class RoboRallyClient { - public RoboRallyClient() throws IOException { + public RoboRallyClient(String IPaddresse) throws IOException { Client client = new Client(); client.start(); NetworkUtil.registerClasses(client.getKryo()); - client.connect(5000, "127.0.0.1", 54555, 54777); + client.connect(5000, IPaddresse, 54555, 54777); SomeRequest request = new SomeRequest(); request.text = "Here is the request"; From c2dc12ad87533f0aa1901eada744af81c910e965 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 15:16:59 +0200 Subject: [PATCH 18/92] =?UTF-8?q?fikk=20skjermen=20til=20=C3=A5=20g=C3=A5?= =?UTF-8?q?=20til=20forskjelige=20skjermer=20utifra=20om=20du=20var=20serv?= =?UTF-8?q?er=20eller=20klient?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fiasko/roborally/game_wrapper/UsernameScreen.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/UsernameScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/UsernameScreen.java index c799297..256bc7b 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/UsernameScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/UsernameScreen.java @@ -35,7 +35,12 @@ public class UsernameScreen extends AbstractScreen { @Override public void touchUp(InputEvent e, float x, float y, int point, int button){ System.out.println(txtinput.getText()); - roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getLoadingScreen(roboRallyWrapper)); + if (roboRallyWrapper.server == null) { + roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getLoadingScreen(roboRallyWrapper)); + } + else{ + roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getLobbyScreen(roboRallyWrapper)); + } } }); txtinput = new TextField("",skin); From 1601ba78ee5faf345ddc3de02791075876d0429e Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 15:18:01 +0200 Subject: [PATCH 19/92] =?UTF-8?q?la=20til=20funksjonalitet=20til=20=C3=A5?= =?UTF-8?q?=20skape=20en=20server?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roborally/game_wrapper/StartMenuScreen.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/StartMenuScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/StartMenuScreen.java index c0955c0..eb492cb 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/StartMenuScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/StartMenuScreen.java @@ -10,6 +10,10 @@ import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; +import inf112.fiasko.roborally.networking.RoboRallyClient; +import inf112.fiasko.roborally.networking.RoboRallyServer; + +import java.io.IOException; public class StartMenuScreen extends AbstractScreen { private final RoboRallyWrapper roboRallyWrapper; @@ -37,7 +41,13 @@ public class StartMenuScreen extends AbstractScreen { serverButton.addListener(new InputListener() { @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { - roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getPowerDownScreen(roboRallyWrapper)); + try { + roboRallyWrapper.server = new RoboRallyServer(); + roboRallyWrapper.client = new RoboRallyClient("127.0.0.1"); + roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getUsernameScreen(roboRallyWrapper)); + } catch (IOException e) { + e.printStackTrace(); + } return true; // Here do stuff } }); From f0fe3aa19f147bcac053055ef8b50efb03867803 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 15:18:23 +0200 Subject: [PATCH 20/92] la til lobby screen --- .../fiasko/roborally/game_wrapper/ScreenManager.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java index 50e0fc0..0091314 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java @@ -12,6 +12,7 @@ public class ScreenManager { private StartMenuScreen startMenuScreen; private UsernameScreen usernameScreen; private IPAddressScreen ipAddressScreen; + private LobbyScreen lobbyScreen; /** * Gets an instance of the main menu screen @@ -24,6 +25,12 @@ public class ScreenManager { } return powerDownScreen; } + public synchronized LobbyScreen getLobbyScreen(RoboRallyWrapper roboRallyWrapper) { + if (this.lobbyScreen == null) { + this.lobbyScreen = new LobbyScreen(roboRallyWrapper); + } + return lobbyScreen; + } public synchronized IPAddressScreen getIPAddressScreen(RoboRallyWrapper roboRallyWrapper) { if (this.ipAddressScreen == null) { From 3059b0a031faa1b606f1146d25bdd9b09182a1c1 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 15:18:47 +0200 Subject: [PATCH 21/92] la til server og client variabler --- .../roborally/game_wrapper/RoboRallyWrapper.java | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java index e858552..8fa1e66 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java @@ -16,6 +16,8 @@ public class RoboRallyWrapper extends Game { public BitmapFont font; public ScreenManager screenManager; public IDrawableGame roboRallyGame; + public RoboRallyServer server; + public RoboRallyClient client; @Override public void create() { @@ -23,15 +25,6 @@ public class RoboRallyWrapper extends Game { font = new BitmapFont(Gdx.files.internal("assets/Montserrat-Regular.fnt")); this.screenManager = new ScreenManager(); this.setScreen(screenManager.getStartMenuScreen(this)); - try { - RoboRallyServer server = new RoboRallyServer(); - RoboRallyClient client = new RoboRallyClient(); - SomeResponse response = new SomeResponse(); - response.text = "ÆÆÆÆÆÆÆÆÆ"; - server.sendToAllClients(response); - } catch (IOException e) { - e.printStackTrace(); - } } public void dispose() { From 9950e671163cc3271dca3bc26bb2aa4defec7e85 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 15:19:02 +0200 Subject: [PATCH 22/92] lagde et lobby screen --- .../roborally/game_wrapper/LobbyScreen.java | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/main/java/inf112/fiasko/roborally/game_wrapper/LobbyScreen.java diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/LobbyScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/LobbyScreen.java new file mode 100644 index 0000000..46c592c --- /dev/null +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/LobbyScreen.java @@ -0,0 +1,63 @@ +package inf112.fiasko.roborally.game_wrapper; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.OrthographicCamera; +import com.badlogic.gdx.scenes.scene2d.InputEvent; +import com.badlogic.gdx.scenes.scene2d.InputListener; +import com.badlogic.gdx.scenes.scene2d.Stage; +import com.badlogic.gdx.scenes.scene2d.ui.TextButton; +import com.badlogic.gdx.utils.viewport.FitViewport; +import com.badlogic.gdx.utils.viewport.Viewport; + +public class LobbyScreen extends AbstractScreen { + private final RoboRallyWrapper roboRallyWrapper; + + private final OrthographicCamera camera; + private final Viewport viewport; + private final Stage stage; + private final int applicationWidth = 600; + private final int applicationHeight = 800; + public LobbyScreen(final RoboRallyWrapper roboRallyWrapper) { + camera = new OrthographicCamera(); + viewport = new FitViewport(applicationWidth, applicationHeight, camera); + stage = new Stage(); + TextButton startGameButton= new SimpleButton("Start", roboRallyWrapper.font).getButton(); + stage.addActor(startGameButton); + startGameButton.setY(applicationHeight / 2f); + startGameButton.setX(applicationWidth / 2f + startGameButton.getWidth() / 4f); + this.roboRallyWrapper = roboRallyWrapper; + camera.setToOrtho(false, applicationWidth, applicationHeight); + Gdx.input.setInputProcessor(stage); + startGameButton.addListener(new InputListener() { + @Override + public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { + roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getBoardActiveScreen(roboRallyWrapper)); + return true;//her we do stuff + } + }); + } + + + @Override + public void render(float delta) { + Gdx.gl.glClearColor(0.5f, 0.5f, 0.5f, 0.5f); + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + camera.update(); + roboRallyWrapper.batch.setProjectionMatrix(camera.combined); + + + roboRallyWrapper.batch.begin(); + roboRallyWrapper.font.draw(roboRallyWrapper.batch, "Click the button to start game", + applicationWidth/2f-380/2f,applicationHeight/2f + 100,380, 1, true); + roboRallyWrapper.batch.end(); + stage.draw(); + + } + + @Override + public void resize(int width, int height) { + viewport.update(width, height); + } + +} From a6a4abe57f5331512c22f4f8d85444f9ac2b6d58 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 15:19:27 +0200 Subject: [PATCH 23/92] endret skjermen loading screen gikk til --- .../inf112/fiasko/roborally/game_wrapper/LoadingScreen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/LoadingScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/LoadingScreen.java index e2160c2..cbfa93c 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/LoadingScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/LoadingScreen.java @@ -39,7 +39,7 @@ public class LoadingScreen extends AbstractScreen { roboRallyWrapper.batch.end(); long time = System.currentTimeMillis(); if (time-startTime>5000){ - roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getStartMenuScreen(this.roboRallyWrapper)); + roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getBoardActiveScreen(this.roboRallyWrapper)); } } From 1291212e08b8650fbecd645f85e1c084271d9b6f Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 15:19:55 +0200 Subject: [PATCH 24/92] =?UTF-8?q?la=20til=20funksjonalitet=20til=20=C3=A5?= =?UTF-8?q?=20koble=20til=20en=20server?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roborally/game_wrapper/IPAddressScreen.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/IPAddressScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/IPAddressScreen.java index ba0dcde..48221d1 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/IPAddressScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/IPAddressScreen.java @@ -11,6 +11,11 @@ import com.badlogic.gdx.scenes.scene2d.ui.TextField; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; +import inf112.fiasko.roborally.networking.RoboRallyClient; + + +import javax.swing.*; +import java.io.IOException; public class IPAddressScreen extends AbstractScreen { private final RoboRallyWrapper roboRallyWrapper; @@ -33,8 +38,13 @@ public class IPAddressScreen extends AbstractScreen { loginbutton.addListener(new ClickListener(){ @Override public void touchUp(InputEvent e, float x, float y, int point, int button){ - System.out.println(txtinput.getText()); - roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getUsernameScreen(roboRallyWrapper)); + try { + roboRallyWrapper.client = new RoboRallyClient(txtinput.getText()); + roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getUsernameScreen(roboRallyWrapper)); + } catch (IOException ex) { + ex.printStackTrace(); + JOptionPane.showMessageDialog(null, "A basic JOptionPane message dialog"); + } } }); txtinput = new TextField("",skin); From 51ca039a95a0f72fa5a5569ec35504e6893f1375 Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Mon, 6 Apr 2020 15:23:11 +0200 Subject: [PATCH 25/92] =?UTF-8?q?Referat=20fra=20m=C3=B8te.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/team/referater/referat_06_04_2020.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 docs/team/referater/referat_06_04_2020.md diff --git a/docs/team/referater/referat_06_04_2020.md b/docs/team/referater/referat_06_04_2020.md new file mode 100644 index 0000000..7aa4be7 --- /dev/null +++ b/docs/team/referater/referat_06_04_2020.md @@ -0,0 +1,15 @@ +## Oppmøte +Tilstede: Steinar, Gabriel, Kristian, Torbjørn, Petter +Ikke tilstede: + +## Agenda +- Få opp en fungerende server/client + +- Diskutere designvalg og class layout angående server/client kommunikasjon + +## Møte +Startet møte ved å ta valg anngående møtetid i ferien. Blir bestemt å fjerne faste møter, men istedenfor +holde arbeidet litt mer flytende, gjerne avtaler for møter 2 og 2. +Vi jobbet me å få startet en server og koble til den via LAN, og diskuterte hvordan koden skulle håndtere +kommunikasjon mellom hverandre og hvordan man skulle koble til hverandre. +Kodet i plenum. \ No newline at end of file From 5de72ba1a477fe0db3b3be9d358dfee2996bd738 Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Mon, 6 Apr 2020 16:14:01 +0200 Subject: [PATCH 26/92] La til en funksjon som lager players. --- .../fiasko/roborally/utility/IOUtil.java | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/utility/IOUtil.java b/src/main/java/inf112/fiasko/roborally/utility/IOUtil.java index 8fecadb..f17f5d8 100644 --- a/src/main/java/inf112/fiasko/roborally/utility/IOUtil.java +++ b/src/main/java/inf112/fiasko/roborally/utility/IOUtil.java @@ -3,20 +3,26 @@ package inf112.fiasko.roborally.utility; import com.badlogic.gdx.graphics.g2d.TextureRegion; import inf112.fiasko.roborally.element_properties.Direction; import inf112.fiasko.roborally.element_properties.Position; -import inf112.fiasko.roborally.objects.IDrawableGame; -import inf112.fiasko.roborally.objects.DrawableObject; -import inf112.fiasko.roborally.objects.IDrawableObject; -import inf112.fiasko.roborally.objects.Particle; -import inf112.fiasko.roborally.objects.Robot; -import inf112.fiasko.roborally.objects.Tile; -import inf112.fiasko.roborally.objects.Wall; - +import inf112.fiasko.roborally.element_properties.RobotID; +import inf112.fiasko.roborally.objects.*; +import com.esotericsoftware.kryonet.Connection; import java.util.ArrayList; import java.util.List; +import java.util.Map; public final class IOUtil { private IOUtil() {} + + public static List playerGenerator(Map playerNames, Map robotIDs) { + List playerList = new ArrayList<>(); + for (Connection connection: playerNames.keySet()) { + Player player = new Player(robotIDs.get(connection), playerNames.get(connection)); + playerList.add(player); + } + return playerList; + } + /** * Gets a list of all elements which should be drawn from the game provided * @param game A game implementing IDrawableGame From 208cf0332d7ddbecf2e3a5ecb4aedce3f1b65ee9 Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Mon, 6 Apr 2020 16:14:53 +0200 Subject: [PATCH 27/92] La til en liste for players slik vi kan gi den videre til gamet. --- .../fiasko/roborally/objects/RoboRallyGame.java | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index 75a1414..f24797c 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -31,8 +31,9 @@ public class RoboRallyGame implements IDrawableGame { * Instantiates a new robo rally game * @param debug Whether to start the game in debugging mode */ - public RoboRallyGame(boolean debug) { + public RoboRallyGame(List playerList, boolean debug) { this.host=false; + this.playerList = playerList; if (debug) { initializeDebugMode(); } else { @@ -43,8 +44,9 @@ public class RoboRallyGame implements IDrawableGame { /** * Instantiates a new robo rally game */ - public RoboRallyGame() { + public RoboRallyGame(List playerList) { this.host=false; + this.playerList = playerList; initializeGame(); } @@ -146,15 +148,6 @@ public class RoboRallyGame implements IDrawableGame { * @throws IOException If interrupted while trying to sleep */ private void initializePlayers() throws IOException { - playerList = new ArrayList<>(); - playerList.add(new Player(RobotID.ROBOT_1, "Player1")); - playerList.add(new Player(RobotID.ROBOT_2, "Player2")); - playerList.add(new Player(RobotID.ROBOT_3, "Player3")); - playerList.add(new Player(RobotID.ROBOT_4, "Player4")); - playerList.add(new Player(RobotID.ROBOT_5, "Player5")); - playerList.add(new Player(RobotID.ROBOT_6, "Player6")); - playerList.add(new Player(RobotID.ROBOT_7, "Player7")); - playerList.add(new Player(RobotID.ROBOT_8, "Player8")); Deck cards = DeckLoaderUtil.loadProgrammingCardsDeck(); for (Player player : playerList) { cards.shuffle(); From 3e024d0b8929be540ed1ef5e81237893f700fa9e Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Mon, 6 Apr 2020 16:15:44 +0200 Subject: [PATCH 28/92] =?UTF-8?q?La=20til=20noen=20metoder=20for=20=C3=A5?= =?UTF-8?q?=20gi=20spillernavn=20videre=20til=20de=20klassene=20som=20tren?= =?UTF-8?q?ger=20dem.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roborally/networking/RoboRallyClient.java | 9 ++++++-- .../roborally/networking/RoboRallyServer.java | 21 +++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java index d904c08..0c1f806 100644 --- a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java +++ b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java @@ -8,8 +8,9 @@ import inf112.fiasko.roborally.utility.NetworkUtil; import java.io.IOException; public class RoboRallyClient { + Client client; public RoboRallyClient(String IPaddresse) throws IOException { - Client client = new Client(); + client = new Client(); client.start(); NetworkUtil.registerClasses(client.getKryo()); client.connect(5000, IPaddresse, 54555, 54777); @@ -20,6 +21,9 @@ public class RoboRallyClient { client.addListener(new RoboRallyClientListener()); } + public void sendElement(Object obj) { + client.sendTCP(obj); + } } class RoboRallyClientListener extends Listener { @@ -33,4 +37,5 @@ class RoboRallyClientListener extends Listener { System.out.println(errorResponse.getErrorMessage()); } } -} \ No newline at end of file +} + diff --git a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java index ad6ccf6..b0f8e22 100644 --- a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java +++ b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java @@ -30,6 +30,13 @@ public class RoboRallyServer { programmingCardDeck = DeckLoaderUtil.loadProgrammingCardsDeck(); } + public Map getRobotID() { + return listener.getRobotID(); + } + + public Map getPlayerNames() { + return listener.getPlayerNames(); + } /** * Sends an object to all clients * @param object The object to send @@ -54,10 +61,20 @@ public class RoboRallyServer { class RoboRallyServerListener extends Listener { protected Connection host; protected Map clients; + protected Map playerNames; public RoboRallyServerListener() { super(); clients = new HashMap<>(); + playerNames = new HashMap<>(); + } + + public Map getPlayerNames() { + return playerNames; + } + + public Map getRobotID() { + return clients; } @Override @@ -70,6 +87,10 @@ class RoboRallyServerListener extends Listener { response.text = "Thanks"; connection.sendTCP(response); } + else if (object instanceof String) { + String playerName = (String) object; + playerNames.put(connection, playerName); + } } @Override From a6e3ac11735bcfb8bd2b5d850ac60a497ac339f0 Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Mon, 6 Apr 2020 16:16:06 +0200 Subject: [PATCH 29/92] Fikset imports --- .../java/inf112/fiasko/roborally/game_wrapper/LobbyScreen.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/LobbyScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/LobbyScreen.java index 46c592c..01f7b56 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/LobbyScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/LobbyScreen.java @@ -9,6 +9,7 @@ import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; +import inf112.fiasko.roborally.utility.IOUtil; public class LobbyScreen extends AbstractScreen { private final RoboRallyWrapper roboRallyWrapper; @@ -32,6 +33,7 @@ public class LobbyScreen extends AbstractScreen { startGameButton.addListener(new InputListener() { @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { + IOUtil.playerGenerator(roboRallyWrapper.server.getPlayerNames(), roboRallyWrapper.server.getRobotID()); roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getBoardActiveScreen(roboRallyWrapper)); return true;//her we do stuff } From 37912a8ebbb0beded0bfd54d9dd8268bd61a11e9 Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Mon, 6 Apr 2020 16:16:38 +0200 Subject: [PATCH 30/92] Fjernet ubrukt kode --- .../inf112/fiasko/roborally/game_wrapper/BoardActiveScreen.java | 2 -- .../inf112/fiasko/roborally/game_wrapper/UsernameScreen.java | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/BoardActiveScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/BoardActiveScreen.java index ce8d276..ce77025 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/BoardActiveScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/BoardActiveScreen.java @@ -37,8 +37,6 @@ public class BoardActiveScreen extends AbstractScreen implements InputProcessor public BoardActiveScreen(final RoboRallyWrapper roboRallyWrapper) { this.roboRallyWrapper = roboRallyWrapper; - roboRallyWrapper.roboRallyGame = new RoboRallyGame(); - debugGame = new RoboRallyGame(true); camera = new OrthographicCamera(); camera.setToOrtho(false, viewPortWidth, viewPortHeight); diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/UsernameScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/UsernameScreen.java index 256bc7b..8e7ddab 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/UsernameScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/UsernameScreen.java @@ -34,7 +34,7 @@ public class UsernameScreen extends AbstractScreen { loginbutton.addListener(new ClickListener(){ @Override public void touchUp(InputEvent e, float x, float y, int point, int button){ - System.out.println(txtinput.getText()); + roboRallyWrapper.client.sendElement(txtinput.getText()); if (roboRallyWrapper.server == null) { roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getLoadingScreen(roboRallyWrapper)); } From 63188b2abbd3a3670f74ae6315b3d4c50973b00c Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Mon, 6 Apr 2020 16:17:04 +0200 Subject: [PATCH 31/92] =?UTF-8?q?Fikset=20import=20og=20konstrukt=C3=B8r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inf112/fiasko/roborally/objects/RoboRallyGameTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java b/src/test/java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java index 882f46f..0c9a88d 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java @@ -5,12 +5,14 @@ import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; +import java.util.ArrayList; + public class RoboRallyGameTest { private IDrawableGame game; @Before public void setUp() { - game = new RoboRallyGame(); + game = new RoboRallyGame(new ArrayList<>()); } @Test From 9d2aeee355e3b49e81689492ef62fdb56fbdb405 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 17:08:43 +0200 Subject: [PATCH 32/92] la til ekstra info --- .../inf112/fiasko/roborally/utility/NetworkUtil.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java b/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java index 93579c2..4141c92 100644 --- a/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java +++ b/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java @@ -1,12 +1,17 @@ package inf112.fiasko.roborally.utility; import com.esotericsoftware.kryo.Kryo; +import inf112.fiasko.roborally.element_properties.RobotID; import inf112.fiasko.roborally.networking.ErrorResponse; +import inf112.fiasko.roborally.networking.GameStartInfo; import inf112.fiasko.roborally.networking.SomeRequest; import inf112.fiasko.roborally.networking.SomeResponse; import inf112.fiasko.roborally.objects.IDeck; +import inf112.fiasko.roborally.objects.Player; import inf112.fiasko.roborally.objects.ProgrammingCard; +import java.util.ArrayList; + public final class NetworkUtil { /** @@ -19,5 +24,9 @@ public final class NetworkUtil { kryo.register(ErrorResponse.class); kryo.register(IDeck.class); kryo.register(ProgrammingCard.class); + kryo.register(GameStartInfo.class); + kryo.register(ArrayList.class); + kryo.register(Player.class); + kryo.register(RobotID.class); } } From 165ea68f3b3ed55266e4e0ef9ec2d01cc968c527 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 17:09:05 +0200 Subject: [PATCH 33/92] la til ekstra info --- .../roborally/objects/RoboRallyGame.java | 48 ++++++------------- 1 file changed, 14 insertions(+), 34 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index f24797c..02ffa72 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -31,23 +31,23 @@ public class RoboRallyGame implements IDrawableGame { * Instantiates a new robo rally game * @param debug Whether to start the game in debugging mode */ - public RoboRallyGame(List playerList, boolean debug) { - this.host=false; + public RoboRallyGame(List playerList, String boardName, boolean host, boolean debug) { + this.host=host; this.playerList = playerList; if (debug) { initializeDebugMode(); } else { - initializeGame(); + initializeGame(boardName); } } /** * Instantiates a new robo rally game */ - public RoboRallyGame(List playerList) { - this.host=false; + public RoboRallyGame(List playerList, String boardName,boolean host) { + this.host=host; this.playerList = playerList; - initializeGame(); + initializeGame(boardName); } @Override @@ -111,20 +111,17 @@ public class RoboRallyGame implements IDrawableGame { /** * Initializes the game with a playable board */ - private void initializeGame() { + private void initializeGame(String boardName) { try { List robots = new ArrayList<>(); - robots.add(new Robot(RobotID.ROBOT_1, new Position(1, 1))); - robots.add(new Robot(RobotID.ROBOT_2, new Position(1, 2))); - robots.add(new Robot(RobotID.ROBOT_3, new Position(1, 3))); - robots.add(new Robot(RobotID.ROBOT_4, new Position(4, 8))); - robots.add(new Robot(RobotID.ROBOT_5, new Position(6, 6))); - robots.add(new Robot(RobotID.ROBOT_6, new Position(7, 7))); - robots.add(new Robot(RobotID.ROBOT_7, new Position(6, 7))); - robots.add(new Robot(RobotID.ROBOT_8, new Position(6, 8))); + int noe = 1; + for (Player player:playerList) { + Position spawn = new Position(noe,1); + robots.add(new Robot(player.getRobotID(),spawn)); + noe++; + } - initializePlayers(); - gameBoard = BoardLoaderUtil.loadBoard("boards/Checkmate.txt", robots); + gameBoard = BoardLoaderUtil.loadBoard("boards/"+boardName, robots); generateTileLists(); if (host) { @@ -143,23 +140,6 @@ public class RoboRallyGame implements IDrawableGame { } } - /** - * Initializes all players - * @throws IOException If interrupted while trying to sleep - */ - private void initializePlayers() throws IOException { - Deck cards = DeckLoaderUtil.loadProgrammingCardsDeck(); - for (Player player : playerList) { - cards.shuffle(); - List testProgram = new ArrayList<>(); - for (int i = 0; i < 5; i++) { - cards.shuffle(); - testProgram.add(cards.peekTop()); - } - player.setInProgram(testProgram); - } - } - /** * Generates lists containing board element containers with all tiles of certain types */ From b644617a18b06d0909f1c5049c1bf7456050f451 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 17:09:43 +0200 Subject: [PATCH 34/92] la til ekstra metoder --- .../java/inf112/fiasko/roborally/objects/Player.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/Player.java b/src/main/java/inf112/fiasko/roborally/objects/Player.java index a5d29c1..6bac5d8 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/Player.java +++ b/src/main/java/inf112/fiasko/roborally/objects/Player.java @@ -10,8 +10,8 @@ import java.util.List; */ public class Player { - private final RobotID robotID; - private final String name; + private RobotID robotID; + private String name; private boolean powerDownNextRound = false; private ProgrammingCardDeck playerDeck; private ProgrammingCardDeck lockedPlayerDeck; @@ -26,6 +26,14 @@ public class Player { this.robotID = robotID; this.name = name; } + public Player(){} + public void setRobotID(RobotID robotID){ + this.robotID=robotID; + } + public void setName(String name){ + this.name=name; + } + /** * Gives you the RobotID of a player From 700ebdeb6bf8a07e1afa720c30e1b4949a0d4fd9 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 17:10:11 +0200 Subject: [PATCH 35/92] =?UTF-8?q?la=20til=20ekstra=20information=20til=20c?= =?UTF-8?q?onstukt=C3=B8r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roborally/networking/RoboRallyClient.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java index 0c1f806..e151ab4 100644 --- a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java +++ b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java @@ -3,14 +3,18 @@ package inf112.fiasko.roborally.networking; import com.esotericsoftware.kryonet.Client; import com.esotericsoftware.kryonet.Connection; import com.esotericsoftware.kryonet.Listener; +import inf112.fiasko.roborally.game_wrapper.RoboRallyWrapper; +import inf112.fiasko.roborally.objects.RoboRallyGame; import inf112.fiasko.roborally.utility.NetworkUtil; import java.io.IOException; public class RoboRallyClient { Client client; - public RoboRallyClient(String IPaddresse) throws IOException { + RoboRallyWrapper wrapper; + public RoboRallyClient(String IPaddresse,RoboRallyWrapper wrapper) throws IOException { client = new Client(); + this.wrapper=wrapper; client.start(); NetworkUtil.registerClasses(client.getKryo()); client.connect(5000, IPaddresse, 54555, 54777); @@ -19,7 +23,7 @@ public class RoboRallyClient { request.text = "Here is the request"; client.sendTCP(request); - client.addListener(new RoboRallyClientListener()); + client.addListener(new RoboRallyClientListener(wrapper)); } public void sendElement(Object obj) { client.sendTCP(obj); @@ -27,6 +31,11 @@ public class RoboRallyClient { } class RoboRallyClientListener extends Listener { + RoboRallyWrapper wrapper; + public RoboRallyClientListener( RoboRallyWrapper wrapper){ + super(); + this.wrapper=wrapper; + } @Override public void received (Connection connection, Object object) { if (object instanceof SomeResponse) { @@ -36,6 +45,11 @@ class RoboRallyClientListener extends Listener { ErrorResponse errorResponse = (ErrorResponse) object; System.out.println(errorResponse.getErrorMessage()); } + else if(object instanceof GameStartInfo){ + GameStartInfo info = (GameStartInfo) object; + wrapper.roboRallyGame = new RoboRallyGame(info.getPlayerlist(),info.getBoardname(), + wrapper.server!=null); + } } } From ce72d848b87d5dc739c4d1854f17e3887fa89a94 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 17:10:44 +0200 Subject: [PATCH 36/92] la til en ny klasse som skal sends over serveren --- .../roborally/networking/GameStartInfo.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/main/java/inf112/fiasko/roborally/networking/GameStartInfo.java diff --git a/src/main/java/inf112/fiasko/roborally/networking/GameStartInfo.java b/src/main/java/inf112/fiasko/roborally/networking/GameStartInfo.java new file mode 100644 index 0000000..7dbb429 --- /dev/null +++ b/src/main/java/inf112/fiasko/roborally/networking/GameStartInfo.java @@ -0,0 +1,31 @@ +package inf112.fiasko.roborally.networking; + +import inf112.fiasko.roborally.objects.Player; + +import java.util.List; + +public class GameStartInfo { + private String boardname; + private List playerlist; + public GameStartInfo(){} + + public void setBoardname(String boardname) { + this.boardname = boardname; + } + + public void setPlayerlist(List playerlist) { + this.playerlist = playerlist; + } + + public GameStartInfo(String boardname, List playerlist){ + this.boardname=boardname; + this.playerlist=playerlist; + } + public List getPlayerlist(){ + return playerlist; + } + public String getBoardname(){ + return boardname; + } + +} From 3f4387a525fa490642251dda2ea2806622416789 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 17:11:23 +0200 Subject: [PATCH 37/92] =?UTF-8?q?la=20til=20en=20roborallywrapper=20i=20co?= =?UTF-8?q?nstruikt=C3=B8ren?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java b/src/test/java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java index 0c9a88d..4b1ca66 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java @@ -12,7 +12,7 @@ public class RoboRallyGameTest { @Before public void setUp() { - game = new RoboRallyGame(new ArrayList<>()); + game = new RoboRallyGame(new ArrayList<>(),"",false); } @Test From dd9a8f6dbdd988797718570f68e2c212d7b5632a Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 17:11:51 +0200 Subject: [PATCH 38/92] =?UTF-8?q?la=20til=20info=20i=20konstukt=C3=B8ren?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inf112/fiasko/roborally/game_wrapper/StartMenuScreen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/StartMenuScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/StartMenuScreen.java index eb492cb..abaec7d 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/StartMenuScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/StartMenuScreen.java @@ -43,7 +43,7 @@ public class StartMenuScreen extends AbstractScreen { public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { try { roboRallyWrapper.server = new RoboRallyServer(); - roboRallyWrapper.client = new RoboRallyClient("127.0.0.1"); + roboRallyWrapper.client = new RoboRallyClient("127.0.0.1",roboRallyWrapper); roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getUsernameScreen(roboRallyWrapper)); } catch (IOException e) { e.printStackTrace(); From c3604b97306c34ccf58d2c882cca862219758d1b Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 17:12:18 +0200 Subject: [PATCH 39/92] =?UTF-8?q?la=20til=20funksjonalitet=20til=20=C3=A5?= =?UTF-8?q?=20starte=20et=20nytt=20game?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fiasko/roborally/game_wrapper/LobbyScreen.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/LobbyScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/LobbyScreen.java index 01f7b56..78ed5d2 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/LobbyScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/LobbyScreen.java @@ -9,8 +9,12 @@ import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; +import inf112.fiasko.roborally.networking.GameStartInfo; +import inf112.fiasko.roborally.objects.Player; import inf112.fiasko.roborally.utility.IOUtil; +import java.util.List; + public class LobbyScreen extends AbstractScreen { private final RoboRallyWrapper roboRallyWrapper; @@ -33,8 +37,10 @@ public class LobbyScreen extends AbstractScreen { startGameButton.addListener(new InputListener() { @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { - IOUtil.playerGenerator(roboRallyWrapper.server.getPlayerNames(), roboRallyWrapper.server.getRobotID()); - roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getBoardActiveScreen(roboRallyWrapper)); + List playerlist = IOUtil.playerGenerator(roboRallyWrapper.server.getPlayerNames(), + roboRallyWrapper.server.getRobotID()); + roboRallyWrapper.server.sendToAllClients(new GameStartInfo("Checkmate.txt",playerlist)); + roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getLoadingScreen(roboRallyWrapper)); return true;//her we do stuff } }); From 12605fedfb89a87a861df68f7d26e14b7fd4ee6d Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 17:13:21 +0200 Subject: [PATCH 40/92] =?UTF-8?q?la=20til=20ekstra=20info=20i=20konstrukt?= =?UTF-8?q?=C3=B8ren?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inf112/fiasko/roborally/game_wrapper/IPAddressScreen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/IPAddressScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/IPAddressScreen.java index 48221d1..cf9ccc3 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/IPAddressScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/IPAddressScreen.java @@ -39,7 +39,7 @@ public class IPAddressScreen extends AbstractScreen { @Override public void touchUp(InputEvent e, float x, float y, int point, int button){ try { - roboRallyWrapper.client = new RoboRallyClient(txtinput.getText()); + roboRallyWrapper.client = new RoboRallyClient(txtinput.getText(),roboRallyWrapper); roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getUsernameScreen(roboRallyWrapper)); } catch (IOException ex) { ex.printStackTrace(); From f035094789c1dd06adcca8a210342ea65895751f Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 6 Apr 2020 17:30:34 +0200 Subject: [PATCH 41/92] fikset feil i test --- .../java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java b/src/test/java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java index 4b1ca66..16ad48c 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/RoboRallyGameTest.java @@ -12,7 +12,7 @@ public class RoboRallyGameTest { @Before public void setUp() { - game = new RoboRallyGame(new ArrayList<>(),"",false); + game = new RoboRallyGame(new ArrayList<>(),"Checkmate.txt",false); } @Test From 5c3d6bcd5ece02ecfbf1857931c4bb6ae30d167d Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 13:32:51 +0200 Subject: [PATCH 42/92] Legger til manglende kommentar for AbstractScreen --- .../inf112/fiasko/roborally/game_wrapper/AbstractScreen.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/AbstractScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/AbstractScreen.java index 104ce25..9f1cfd5 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/AbstractScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/AbstractScreen.java @@ -2,6 +2,9 @@ package inf112.fiasko.roborally.game_wrapper; import com.badlogic.gdx.Screen; +/** + * This class overrides methods of screens which are often unused + */ public abstract class AbstractScreen implements Screen { @Override public void show() { From 95f3d3dd3e10a7d940a37ccd02b29377dbe3b3b8 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 13:34:45 +0200 Subject: [PATCH 43/92] Rydder opp i BoardActiveScreen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Legger til manglende kommentar for klasse Legger til mellomrom på begge sider av matematiske tegn --- .../game_wrapper/BoardActiveScreen.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/BoardActiveScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/BoardActiveScreen.java index ce77025..f421529 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/BoardActiveScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/BoardActiveScreen.java @@ -21,6 +21,9 @@ import inf112.fiasko.roborally.utility.TextureConverterUtil; import java.util.List; +/** + * This screen shows the game board in real time + */ public class BoardActiveScreen extends AbstractScreen implements InputProcessor { private final RoboRallyWrapper roboRallyWrapper; private final OrthographicCamera camera; @@ -35,12 +38,12 @@ public class BoardActiveScreen extends AbstractScreen implements InputProcessor private final int viewPortHeight = 12 * tileDimensions; private final Viewport viewport; - public BoardActiveScreen(final RoboRallyWrapper roboRallyWrapper) { + BoardActiveScreen(final RoboRallyWrapper roboRallyWrapper) { this.roboRallyWrapper = roboRallyWrapper; camera = new OrthographicCamera(); camera.setToOrtho(false, viewPortWidth, viewPortHeight); - camera.position.set(viewPortWidth/2f, viewPortHeight/2f, 0); + camera.position.set(viewPortWidth / 2f, viewPortHeight / 2f, 0); viewport = new ExtendViewport(viewPortWidth, viewPortHeight, camera); Gdx.input.setInputProcessor(this); @@ -78,13 +81,13 @@ public class BoardActiveScreen extends AbstractScreen implements InputProcessor } @Override - public boolean keyDown(int keycode) { + public boolean keyDown(int keyCode) { return false; } @Override - public boolean keyUp(int keycode) { - if (keycode == Input.Keys.HOME) { + public boolean keyUp(int keyCode) { + if (keyCode == Input.Keys.HOME) { IDrawableGame temp = roboRallyWrapper.roboRallyGame; roboRallyWrapper.roboRallyGame = debugGame; this.debugGame = temp; @@ -98,7 +101,7 @@ public class BoardActiveScreen extends AbstractScreen implements InputProcessor if (character == 'r') { //camera.rotate(-90); camera.rotateAround( - new Vector3(viewPortWidth/2f, viewPortHeight/2f, 0), + new Vector3(viewPortWidth / 2f, viewPortHeight / 2f, 0), new Vector3(0, 0, 1), 90); return true; } else if (character == 'q') { @@ -150,7 +153,7 @@ public class BoardActiveScreen extends AbstractScreen implements InputProcessor camera.up.x = 0; camera.up.y = 1; cameraZoom = 1; - camera.position.set(viewPortWidth/2f, viewPortHeight/2f, 0); + camera.position.set(viewPortWidth / 2f, viewPortHeight / 2f, 0); } /** @@ -163,7 +166,7 @@ public class BoardActiveScreen extends AbstractScreen implements InputProcessor for (IDrawableObject object : elementsToDraw) { TextureRegion objectTextureRegion = object.getTexture(); batch.draw(objectTextureRegion.getTexture(), object.getXPosition(), object.getYPosition(), - (float)object.getWidth()/2, (float)object.getHeight()/2, + (float)object.getWidth() / 2, (float)object.getHeight() / 2, object.getWidth(), object.getHeight(), 1, 1, object.getRotation(), objectTextureRegion.getRegionX(), objectTextureRegion.getRegionY(), objectTextureRegion.getRegionWidth(), objectTextureRegion.getRegionHeight(), From 931ba6e6d7791f3f04266fa51eba12891bb56379 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 14:07:59 +0200 Subject: [PATCH 44/92] Rydder opp i RoboRallyServer Legger til manglende kommentarer Fjerner ubrukte metoder Fjerner debug kode --- .../roborally/networking/RoboRallyServer.java | 67 +++++++++---------- 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java index b0f8e22..2690406 100644 --- a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java +++ b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java @@ -4,20 +4,18 @@ import com.esotericsoftware.kryonet.Connection; import com.esotericsoftware.kryonet.Listener; import com.esotericsoftware.kryonet.Server; import inf112.fiasko.roborally.element_properties.RobotID; -import inf112.fiasko.roborally.objects.IDeck; -import inf112.fiasko.roborally.objects.ProgrammingCard; -import inf112.fiasko.roborally.objects.ProgrammingCardDeck; -import inf112.fiasko.roborally.utility.DeckLoaderUtil; +import inf112.fiasko.roborally.networking.containers.ErrorResponse; import inf112.fiasko.roborally.utility.NetworkUtil; import java.io.IOException; -import java.util.ArrayList; import java.util.HashMap; import java.util.Map; +/** + * This class represents a Robo Rally Server + */ public class RoboRallyServer { private Server server; - private IDeck programmingCardDeck; private RoboRallyServerListener listener; public RoboRallyServer() throws IOException { @@ -27,13 +25,20 @@ public class RoboRallyServer { server.bind(54555, 54777); listener = new RoboRallyServerListener(); server.addListener(listener); - programmingCardDeck = DeckLoaderUtil.loadProgrammingCardsDeck(); } + /** + * Gets a map between connections and their robot id + * @return A mapping between connections and robot ids + */ public Map getRobotID() { return listener.getRobotID(); } + /** + * Gets a map between connections and their player name + * @return A mapping between connections and robot ids + */ public Map getPlayerNames() { return listener.getPlayerNames(); } @@ -44,50 +49,44 @@ public class RoboRallyServer { public void sendToAllClients(Object object) { server.sendToAllTCP(object); } - - /** - * Deals cards to all players - */ - public void dealCards() { - programmingCardDeck.shuffle(); - for (Connection connection : server.getConnections()) { - IDeck hand = new ProgrammingCardDeck(new ArrayList<>()); - hand.draw(programmingCardDeck, 9); - connection.sendTCP(hand); - } - } } +/** + * This listener handles all sending and responses for the server + */ class RoboRallyServerListener extends Listener { - protected Connection host; - protected Map clients; - protected Map playerNames; + private Connection host; + private Map clients; + private Map playerNames; - public RoboRallyServerListener() { + /** + * Instantiates a new Robo Rally server listener + */ + RoboRallyServerListener() { super(); clients = new HashMap<>(); playerNames = new HashMap<>(); } - public Map getPlayerNames() { + /** + * Gets a map between connections and their player name + * @return A mapping between connections and robot ids + */ + Map getPlayerNames() { return playerNames; } - public Map getRobotID() { + /** + * Gets a map between connections and their robot id + * @return A mapping between connections and robot ids + */ + Map getRobotID() { return clients; } @Override public void received (Connection connection, Object object) { - if (object instanceof SomeRequest) { - SomeRequest request = (SomeRequest)object; - System.out.println(request.text); - - SomeResponse response = new SomeResponse(); - response.text = "Thanks"; - connection.sendTCP(response); - } - else if (object instanceof String) { + if (object instanceof String) { String playerName = (String) object; playerNames.put(connection, playerName); } From d8e180cc8e0dd09b89ae6d3ba416906eb2adfb41 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 14:08:40 +0200 Subject: [PATCH 45/92] =?UTF-8?q?Legger=20til=20standardverdier=20for=20ap?= =?UTF-8?q?plikasjonsst=C3=B8rrelse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roborally/game_wrapper/{ => screens}/AbstractScreen.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) rename src/main/java/inf112/fiasko/roborally/game_wrapper/{ => screens}/AbstractScreen.java (79%) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/AbstractScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/AbstractScreen.java similarity index 79% rename from src/main/java/inf112/fiasko/roborally/game_wrapper/AbstractScreen.java rename to src/main/java/inf112/fiasko/roborally/game_wrapper/screens/AbstractScreen.java index 9f1cfd5..b11db14 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/AbstractScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/AbstractScreen.java @@ -1,4 +1,4 @@ -package inf112.fiasko.roborally.game_wrapper; +package inf112.fiasko.roborally.game_wrapper.screens; import com.badlogic.gdx.Screen; @@ -6,6 +6,9 @@ import com.badlogic.gdx.Screen; * This class overrides methods of screens which are often unused */ public abstract class AbstractScreen implements Screen { + final int applicationWidth = 600; + final int applicationHeight = 800; + @Override public void show() { //Nothing to do From e37adf77d8e2967bd4ade90787f9d2066164f3a1 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 14:10:44 +0200 Subject: [PATCH 46/92] Rydder opp i IPAddressScreen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Retter tekst som blir vist når en server ikke kan kobles til Legger til manglende kommentarer Fjerner unødvendige feltvariabler --- .../{ => screens}/IPAddressScreen.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) rename src/main/java/inf112/fiasko/roborally/game_wrapper/{ => screens}/IPAddressScreen.java (77%) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/IPAddressScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/IPAddressScreen.java similarity index 77% rename from src/main/java/inf112/fiasko/roborally/game_wrapper/IPAddressScreen.java rename to src/main/java/inf112/fiasko/roborally/game_wrapper/screens/IPAddressScreen.java index cf9ccc3..76c0a3f 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/IPAddressScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/IPAddressScreen.java @@ -1,4 +1,4 @@ -package inf112.fiasko.roborally.game_wrapper; +package inf112.fiasko.roborally.game_wrapper.screens; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL20; @@ -11,28 +11,30 @@ import com.badlogic.gdx.scenes.scene2d.ui.TextField; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; +import inf112.fiasko.roborally.game_wrapper.RoboRallyWrapper; import inf112.fiasko.roborally.networking.RoboRallyClient; import javax.swing.*; import java.io.IOException; +/** + * This screen allows the user to enter the ip address to connect to + */ public class IPAddressScreen extends AbstractScreen { private final RoboRallyWrapper roboRallyWrapper; private final OrthographicCamera camera; private final Viewport viewport; private final Stage stage; - private final int applicationWidth = 600; - private final int applicationHeight = 800; private TextField txtinput; - private TextButton loginbutton; + public IPAddressScreen(final RoboRallyWrapper roboRallyWrapper) { stage = new Stage(); - Skin skin =new Skin(Gdx.files.internal("uiskin.json")); - loginbutton = new TextButton("click",skin); + Skin skin = new Skin(Gdx.files.internal("uiskin.json")); + TextButton loginbutton = new TextButton("click", skin); loginbutton.setSize(300,60); loginbutton.setPosition(300,300); loginbutton.addListener(new ClickListener(){ @@ -43,7 +45,8 @@ public class IPAddressScreen extends AbstractScreen { roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getUsernameScreen(roboRallyWrapper)); } catch (IOException ex) { ex.printStackTrace(); - JOptionPane.showMessageDialog(null, "A basic JOptionPane message dialog"); + 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."); } } }); @@ -70,8 +73,8 @@ public class IPAddressScreen extends AbstractScreen { roboRallyWrapper.batch.setProjectionMatrix(camera.combined); roboRallyWrapper.batch.begin(); - roboRallyWrapper.font.draw(roboRallyWrapper.batch, "Click the button to enter IP to join server", - applicationWidth/2f-380/2f,applicationHeight/2f + 100,380, 1, true); + roboRallyWrapper.font.draw(roboRallyWrapper.batch, "Enter IP address and click the button to join a server", + applicationWidth / 2f - 380 / 2f,applicationHeight / 2f + 100,380, 1, true); roboRallyWrapper.batch.end(); stage.draw(); From a46243a9f7e0b918227066577ef444faeaf1bd33 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 14:11:41 +0200 Subject: [PATCH 47/92] =?UTF-8?q?Fjerner=20feltvariabler=20for=20h=C3=B8yd?= =?UTF-8?q?e=20og=20bredde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roborally/game_wrapper/{ => screens}/LoadingScreen.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) rename src/main/java/inf112/fiasko/roborally/game_wrapper/{ => screens}/LoadingScreen.java (90%) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/LoadingScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LoadingScreen.java similarity index 90% rename from src/main/java/inf112/fiasko/roborally/game_wrapper/LoadingScreen.java rename to src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LoadingScreen.java index cbfa93c..d2f36ee 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/LoadingScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LoadingScreen.java @@ -1,11 +1,11 @@ -package inf112.fiasko.roborally.game_wrapper; +package inf112.fiasko.roborally.game_wrapper.screens; import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.Screen; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.utils.viewport.ExtendViewport; import com.badlogic.gdx.utils.viewport.Viewport; +import inf112.fiasko.roborally.game_wrapper.RoboRallyWrapper; public class LoadingScreen extends AbstractScreen { private final RoboRallyWrapper roboRallyWrapper; @@ -14,8 +14,6 @@ public class LoadingScreen extends AbstractScreen { private final Viewport viewport; private long startTime; - private final int applicationWidth = 600; - private final int applicationHeight = 800; public LoadingScreen(final RoboRallyWrapper roboRallyWrapper) { this.roboRallyWrapper = roboRallyWrapper; From 564c2d3373c62288a631b8c3db032c4f12319563 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 14:13:24 +0200 Subject: [PATCH 48/92] Opprydding og forbedring av kodestil --- .../game_wrapper/{ => screens}/LobbyScreen.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) rename src/main/java/inf112/fiasko/roborally/game_wrapper/{ => screens}/LobbyScreen.java (88%) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/LobbyScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LobbyScreen.java similarity index 88% rename from src/main/java/inf112/fiasko/roborally/game_wrapper/LobbyScreen.java rename to src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LobbyScreen.java index 78ed5d2..85a32d1 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/LobbyScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LobbyScreen.java @@ -1,4 +1,4 @@ -package inf112.fiasko.roborally.game_wrapper; +package inf112.fiasko.roborally.game_wrapper.screens; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL20; @@ -9,7 +9,9 @@ import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; -import inf112.fiasko.roborally.networking.GameStartInfo; +import inf112.fiasko.roborally.game_wrapper.RoboRallyWrapper; +import inf112.fiasko.roborally.game_wrapper.SimpleButton; +import inf112.fiasko.roborally.networking.containers.GameStartInfo; import inf112.fiasko.roborally.objects.Player; import inf112.fiasko.roborally.utility.IOUtil; @@ -21,8 +23,7 @@ public class LobbyScreen extends AbstractScreen { private final OrthographicCamera camera; private final Viewport viewport; private final Stage stage; - private final int applicationWidth = 600; - private final int applicationHeight = 800; + public LobbyScreen(final RoboRallyWrapper roboRallyWrapper) { camera = new OrthographicCamera(); viewport = new FitViewport(applicationWidth, applicationHeight, camera); @@ -54,10 +55,10 @@ public class LobbyScreen extends AbstractScreen { camera.update(); roboRallyWrapper.batch.setProjectionMatrix(camera.combined); - roboRallyWrapper.batch.begin(); roboRallyWrapper.font.draw(roboRallyWrapper.batch, "Click the button to start game", - applicationWidth/2f-380/2f,applicationHeight/2f + 100,380, 1, true); + applicationWidth / 2f - 380 / 2f,applicationHeight / 2f + 100,380, 1, + true); roboRallyWrapper.batch.end(); stage.draw(); From 69e06e9f62fc2a3b67298f26e694b3d776b737c2 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 14:14:30 +0200 Subject: [PATCH 49/92] Flytter skjermer til en egen pakke --- .../game_wrapper/{ => screens}/BoardActiveScreen.java | 7 +++---- .../game_wrapper/{ => screens}/CardChoiceScreen.java | 10 ++++++---- .../game_wrapper/{ => screens}/PowerDownScreen.java | 4 +++- .../game_wrapper/{ => screens}/StartMenuScreen.java | 5 +++-- .../game_wrapper/{ => screens}/UsernameScreen.java | 4 ++-- 5 files changed, 17 insertions(+), 13 deletions(-) rename src/main/java/inf112/fiasko/roborally/game_wrapper/{ => screens}/BoardActiveScreen.java (97%) rename src/main/java/inf112/fiasko/roborally/game_wrapper/{ => screens}/CardChoiceScreen.java (97%) rename src/main/java/inf112/fiasko/roborally/game_wrapper/{ => screens}/PowerDownScreen.java (94%) rename src/main/java/inf112/fiasko/roborally/game_wrapper/{ => screens}/StartMenuScreen.java (96%) rename src/main/java/inf112/fiasko/roborally/game_wrapper/{ => screens}/UsernameScreen.java (96%) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/BoardActiveScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/BoardActiveScreen.java similarity index 97% rename from src/main/java/inf112/fiasko/roborally/game_wrapper/BoardActiveScreen.java rename to src/main/java/inf112/fiasko/roborally/game_wrapper/screens/BoardActiveScreen.java index f421529..1eaa871 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/BoardActiveScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/BoardActiveScreen.java @@ -1,9 +1,8 @@ -package inf112.fiasko.roborally.game_wrapper; +package inf112.fiasko.roborally.game_wrapper.screens; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; import com.badlogic.gdx.InputProcessor; -import com.badlogic.gdx.Screen; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.g2d.SpriteBatch; @@ -13,9 +12,9 @@ import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.utils.Disposable; import com.badlogic.gdx.utils.viewport.ExtendViewport; import com.badlogic.gdx.utils.viewport.Viewport; +import inf112.fiasko.roborally.game_wrapper.RoboRallyWrapper; import inf112.fiasko.roborally.objects.IDrawableGame; import inf112.fiasko.roborally.objects.IDrawableObject; -import inf112.fiasko.roborally.objects.RoboRallyGame; import inf112.fiasko.roborally.utility.IOUtil; import inf112.fiasko.roborally.utility.TextureConverterUtil; @@ -38,7 +37,7 @@ public class BoardActiveScreen extends AbstractScreen implements InputProcessor private final int viewPortHeight = 12 * tileDimensions; private final Viewport viewport; - BoardActiveScreen(final RoboRallyWrapper roboRallyWrapper) { + public BoardActiveScreen(final RoboRallyWrapper roboRallyWrapper) { this.roboRallyWrapper = roboRallyWrapper; camera = new OrthographicCamera(); diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/CardChoiceScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/CardChoiceScreen.java similarity index 97% rename from src/main/java/inf112/fiasko/roborally/game_wrapper/CardChoiceScreen.java rename to src/main/java/inf112/fiasko/roborally/game_wrapper/screens/CardChoiceScreen.java index 5522097..106fbfe 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/CardChoiceScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/CardChoiceScreen.java @@ -1,4 +1,4 @@ -package inf112.fiasko.roborally.game_wrapper; +package inf112.fiasko.roborally.game_wrapper.screens; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.InputAdapter; @@ -16,6 +16,8 @@ import com.badlogic.gdx.scenes.scene2d.Touchable; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; +import inf112.fiasko.roborally.game_wrapper.RoboRallyWrapper; +import inf112.fiasko.roborally.game_wrapper.SimpleButton; import inf112.fiasko.roborally.objects.IDeck; import inf112.fiasko.roborally.objects.ProgrammingCard; import inf112.fiasko.roborally.utility.DeckLoaderUtil; @@ -240,9 +242,9 @@ public class CardChoiceScreen extends InputAdapter implements Screen { * A helper class for keeping track of card information and a rectangle */ class CardRectangle { - protected final Rectangle rectangle; - protected boolean selected = false; - protected final ProgrammingCard card; + final Rectangle rectangle; + boolean selected = false; + final ProgrammingCard card; CardRectangle(Rectangle rectangle, ProgrammingCard card) { this.rectangle = rectangle; diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/PowerDownScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/PowerDownScreen.java similarity index 94% rename from src/main/java/inf112/fiasko/roborally/game_wrapper/PowerDownScreen.java rename to src/main/java/inf112/fiasko/roborally/game_wrapper/screens/PowerDownScreen.java index 1a6d1b2..acff006 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/PowerDownScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/PowerDownScreen.java @@ -1,4 +1,4 @@ -package inf112.fiasko.roborally.game_wrapper; +package inf112.fiasko.roborally.game_wrapper.screens; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL20; @@ -9,6 +9,8 @@ import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; +import inf112.fiasko.roborally.game_wrapper.RoboRallyWrapper; +import inf112.fiasko.roborally.game_wrapper.SimpleButton; public class PowerDownScreen extends AbstractScreen { private final RoboRallyWrapper roboRallyWrapper; diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/StartMenuScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java similarity index 96% rename from src/main/java/inf112/fiasko/roborally/game_wrapper/StartMenuScreen.java rename to src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java index abaec7d..1862adf 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/StartMenuScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java @@ -1,7 +1,6 @@ -package inf112.fiasko.roborally.game_wrapper; +package inf112.fiasko.roborally.game_wrapper.screens; import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.Input; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.scenes.scene2d.InputEvent; @@ -10,6 +9,8 @@ import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; +import inf112.fiasko.roborally.game_wrapper.RoboRallyWrapper; +import inf112.fiasko.roborally.game_wrapper.SimpleButton; import inf112.fiasko.roborally.networking.RoboRallyClient; import inf112.fiasko.roborally.networking.RoboRallyServer; diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/UsernameScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java similarity index 96% rename from src/main/java/inf112/fiasko/roborally/game_wrapper/UsernameScreen.java rename to src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java index 8e7ddab..9263b5b 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/UsernameScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java @@ -1,10 +1,9 @@ -package inf112.fiasko.roborally.game_wrapper; +package inf112.fiasko.roborally.game_wrapper.screens; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.scenes.scene2d.InputEvent; -import com.badlogic.gdx.scenes.scene2d.InputListener; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.Skin; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; @@ -12,6 +11,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.TextField; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; +import inf112.fiasko.roborally.game_wrapper.RoboRallyWrapper; public class UsernameScreen extends AbstractScreen { private final RoboRallyWrapper roboRallyWrapper; From f8c9d256c4b4de8ca98e1e51c107cb8b2e83fac6 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 14:14:51 +0200 Subject: [PATCH 50/92] =?UTF-8?q?Fjerner=20un=C3=B8dvendige=20klasser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../game_wrapper/MainMenuScreen.java | 48 ------------------- .../game_wrapper/MyTextInputListener.java | 13 ----- 2 files changed, 61 deletions(-) delete mode 100644 src/main/java/inf112/fiasko/roborally/game_wrapper/MainMenuScreen.java delete mode 100644 src/main/java/inf112/fiasko/roborally/game_wrapper/MyTextInputListener.java diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/MainMenuScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/MainMenuScreen.java deleted file mode 100644 index f85ce1b..0000000 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/MainMenuScreen.java +++ /dev/null @@ -1,48 +0,0 @@ -package inf112.fiasko.roborally.game_wrapper; - -import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.Screen; -import com.badlogic.gdx.graphics.GL20; -import com.badlogic.gdx.graphics.OrthographicCamera; -import com.badlogic.gdx.utils.viewport.ExtendViewport; -import com.badlogic.gdx.utils.viewport.Viewport; - -public class MainMenuScreen extends AbstractScreen { - private final RoboRallyWrapper roboRallyWrapper; - - private final OrthographicCamera camera; - private final Viewport viewport; - - public MainMenuScreen(final RoboRallyWrapper roboRallyWrapper) { - this.roboRallyWrapper = roboRallyWrapper; - camera = new OrthographicCamera(); - camera.setToOrtho(false, 400, 400); - viewport = new ExtendViewport(400, 400, camera); - } - - @Override - public void render(float delta) { - Gdx.gl.glClearColor(0.2f, 1f, 0.2f, 1); - Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); - camera.update(); - roboRallyWrapper.batch.setProjectionMatrix(camera.combined); - - roboRallyWrapper.batch.begin(); - roboRallyWrapper.font.draw(roboRallyWrapper.batch, "Robo Rally", 10, 250, - 380, 1, true); - roboRallyWrapper.font.draw(roboRallyWrapper.batch, "Click anywhere to run the demo", 10, 200, - 380, 1, true); - roboRallyWrapper.batch.end(); - - if (Gdx.input.isTouched()) { - roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getBoardActiveScreen(this.roboRallyWrapper)); - dispose(); - } - } - - @Override - public void resize(int width, int height) { - viewport.update(width, height); - } - -} diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/MyTextInputListener.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/MyTextInputListener.java deleted file mode 100644 index 466841d..0000000 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/MyTextInputListener.java +++ /dev/null @@ -1,13 +0,0 @@ -package inf112.fiasko.roborally.game_wrapper; - -import com.badlogic.gdx.Input; - -public class MyTextInputListener implements Input.TextInputListener { - @Override - public void input (String text) { - } - - @Override - public void canceled () { - } -} From 9fa4ac7b56a900c882098d485f99d6841808626b Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 14:16:00 +0200 Subject: [PATCH 51/92] Fjerner MainMenuScreen fra mulige skjermer --- .../roborally/game_wrapper/ScreenManager.java | 23 ++++--------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java index 0091314..4d058b0 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java @@ -1,15 +1,15 @@ package inf112.fiasko.roborally.game_wrapper; +import inf112.fiasko.roborally.game_wrapper.screens.*; + /** * Keeps track of screen instances */ public class ScreenManager { - private MainMenuScreen mainMenuScreen; private BoardActiveScreen boardActiveScreen; private CardChoiceScreen cardChoiceScreen; private PowerDownScreen powerDownScreen; private LoadingScreen loadingScreen; - private StartMenuScreen startMenuScreen; private UsernameScreen usernameScreen; private IPAddressScreen ipAddressScreen; private LobbyScreen lobbyScreen; @@ -46,11 +46,8 @@ public class ScreenManager { return usernameScreen; } - public synchronized StartMenuScreen getStartMenuScreen(RoboRallyWrapper roboRallyWrapper) { - if (this.startMenuScreen == null) { - this.startMenuScreen = new StartMenuScreen(roboRallyWrapper); - } - return startMenuScreen; + synchronized StartMenuScreen getStartMenuScreen(RoboRallyWrapper roboRallyWrapper) { + return new StartMenuScreen(roboRallyWrapper); } public synchronized LoadingScreen getLoadingScreen(RoboRallyWrapper roboRallyWrapper) { @@ -60,18 +57,6 @@ public class ScreenManager { return loadingScreen; } - /** - * Gets an instance of the main menu screen - * @param roboRallyWrapper The robo rally launcher instance to use - * @return A main menu screen instance - */ - public synchronized MainMenuScreen getMainMenuScreen(RoboRallyWrapper roboRallyWrapper) { - if (this.mainMenuScreen == null) { - this.mainMenuScreen = new MainMenuScreen(roboRallyWrapper); - } - return mainMenuScreen; - } - /** * Gets an instance of the board active screen * @param roboRallyWrapper The robo rally launcher instance to use From 70bcfd466038484cbe7b36581ae20fc8238f360c Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 14:16:42 +0200 Subject: [PATCH 52/92] =?UTF-8?q?Fjerner=20un=C3=B8dvendige=20importeringe?= =?UTF-8?q?r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java index 8fa1e66..7033e9d 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java @@ -6,11 +6,8 @@ import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import inf112.fiasko.roborally.networking.RoboRallyClient; import inf112.fiasko.roborally.networking.RoboRallyServer; -import inf112.fiasko.roborally.networking.SomeResponse; import inf112.fiasko.roborally.objects.IDrawableGame; -import java.io.IOException; - public class RoboRallyWrapper extends Game { public SpriteBatch batch; public BitmapFont font; From 952ff7b9a879a08126122c537caab8fe5fce57d5 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 14:17:01 +0200 Subject: [PATCH 53/92] Fjerner testobjekter for nettverk --- .../inf112/fiasko/roborally/networking/SomeRequest.java | 8 -------- .../inf112/fiasko/roborally/networking/SomeResponse.java | 8 -------- 2 files changed, 16 deletions(-) delete mode 100644 src/main/java/inf112/fiasko/roborally/networking/SomeRequest.java delete mode 100644 src/main/java/inf112/fiasko/roborally/networking/SomeResponse.java diff --git a/src/main/java/inf112/fiasko/roborally/networking/SomeRequest.java b/src/main/java/inf112/fiasko/roborally/networking/SomeRequest.java deleted file mode 100644 index fff7135..0000000 --- a/src/main/java/inf112/fiasko/roborally/networking/SomeRequest.java +++ /dev/null @@ -1,8 +0,0 @@ -package inf112.fiasko.roborally.networking; - -/** - * Represents a request to the server - */ -public class SomeRequest { - public String text; -} \ No newline at end of file diff --git a/src/main/java/inf112/fiasko/roborally/networking/SomeResponse.java b/src/main/java/inf112/fiasko/roborally/networking/SomeResponse.java deleted file mode 100644 index b5ad826..0000000 --- a/src/main/java/inf112/fiasko/roborally/networking/SomeResponse.java +++ /dev/null @@ -1,8 +0,0 @@ -package inf112.fiasko.roborally.networking; - -/** - * Represents a response from a client - */ -public class SomeResponse { - public String text; -} From e67ad0a9394a20fd0c1b15fec83089ed6a16adea Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 14:17:59 +0200 Subject: [PATCH 54/92] Lager en egen pakke for objekter som blir sendt over nettet --- .../roborally/networking/{ => containers}/ErrorResponse.java | 2 +- .../roborally/networking/{ => containers}/GameStartInfo.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/main/java/inf112/fiasko/roborally/networking/{ => containers}/ErrorResponse.java (95%) rename src/main/java/inf112/fiasko/roborally/networking/{ => containers}/GameStartInfo.java (92%) diff --git a/src/main/java/inf112/fiasko/roborally/networking/ErrorResponse.java b/src/main/java/inf112/fiasko/roborally/networking/containers/ErrorResponse.java similarity index 95% rename from src/main/java/inf112/fiasko/roborally/networking/ErrorResponse.java rename to src/main/java/inf112/fiasko/roborally/networking/containers/ErrorResponse.java index 2aff2f6..3bf7358 100644 --- a/src/main/java/inf112/fiasko/roborally/networking/ErrorResponse.java +++ b/src/main/java/inf112/fiasko/roborally/networking/containers/ErrorResponse.java @@ -1,4 +1,4 @@ -package inf112.fiasko.roborally.networking; +package inf112.fiasko.roborally.networking.containers; /** * This class represents a response saying that something went wrong with the request diff --git a/src/main/java/inf112/fiasko/roborally/networking/GameStartInfo.java b/src/main/java/inf112/fiasko/roborally/networking/containers/GameStartInfo.java similarity index 92% rename from src/main/java/inf112/fiasko/roborally/networking/GameStartInfo.java rename to src/main/java/inf112/fiasko/roborally/networking/containers/GameStartInfo.java index 7dbb429..86c0f14 100644 --- a/src/main/java/inf112/fiasko/roborally/networking/GameStartInfo.java +++ b/src/main/java/inf112/fiasko/roborally/networking/containers/GameStartInfo.java @@ -1,4 +1,4 @@ -package inf112.fiasko.roborally.networking; +package inf112.fiasko.roborally.networking.containers; import inf112.fiasko.roborally.objects.Player; From 88102327a07c05c51f6de6cb4b07076001b71820 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 14:19:27 +0200 Subject: [PATCH 55/92] Rydder opp i kode Legger til manglende kommentarer Fjerner en del debug kode Forbedrer variabelnavn Fjerner ubrukt feltvariabel --- .../roborally/networking/RoboRallyClient.java | 55 +++++++++++-------- 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java index e151ab4..24c4059 100644 --- a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java +++ b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java @@ -4,51 +4,62 @@ import com.esotericsoftware.kryonet.Client; import com.esotericsoftware.kryonet.Connection; import com.esotericsoftware.kryonet.Listener; import inf112.fiasko.roborally.game_wrapper.RoboRallyWrapper; +import inf112.fiasko.roborally.networking.containers.ErrorResponse; +import inf112.fiasko.roborally.networking.containers.GameStartInfo; import inf112.fiasko.roborally.objects.RoboRallyGame; import inf112.fiasko.roborally.utility.NetworkUtil; import java.io.IOException; +/** + * This class represents a client capable of connecting to a Robo Rally server + */ public class RoboRallyClient { - Client client; - RoboRallyWrapper wrapper; - public RoboRallyClient(String IPaddresse,RoboRallyWrapper wrapper) throws IOException { + private Client client; + + /** + * Instantiates a new Robo Rally client + * @param ipAddress The ip address of the server to connect to + * @param wrapper The Robo Rally wrapper to be used + * @throws IOException If the server cannot be reached + */ + public RoboRallyClient(String ipAddress, RoboRallyWrapper wrapper) throws IOException { client = new Client(); - this.wrapper=wrapper; client.start(); NetworkUtil.registerClasses(client.getKryo()); - client.connect(5000, IPaddresse, 54555, 54777); - - SomeRequest request = new SomeRequest(); - request.text = "Here is the request"; - client.sendTCP(request); + client.connect(5000, ipAddress, 54555, 54777); client.addListener(new RoboRallyClientListener(wrapper)); } - public void sendElement(Object obj) { - client.sendTCP(obj); + + /** + * Sends something to the server + * @param object The object to send to the server + */ + public void sendElement(Object object) { + client.sendTCP(object); } } +/** + * This listener handles all receiving from the server + */ class RoboRallyClientListener extends Listener { - RoboRallyWrapper wrapper; - public RoboRallyClientListener( RoboRallyWrapper wrapper){ + private RoboRallyWrapper wrapper; + + RoboRallyClientListener(RoboRallyWrapper wrapper) { super(); - this.wrapper=wrapper; + this.wrapper = wrapper; } @Override public void received (Connection connection, Object object) { - if (object instanceof SomeResponse) { - SomeResponse response = (SomeResponse)object; - System.out.println("Client received: " + response.text); - } else if (object instanceof ErrorResponse) { + if (object instanceof ErrorResponse) { ErrorResponse errorResponse = (ErrorResponse) object; System.out.println(errorResponse.getErrorMessage()); - } - else if(object instanceof GameStartInfo){ + } else if (object instanceof GameStartInfo) { GameStartInfo info = (GameStartInfo) object; - wrapper.roboRallyGame = new RoboRallyGame(info.getPlayerlist(),info.getBoardname(), - wrapper.server!=null); + wrapper.roboRallyGame = new RoboRallyGame(info.getPlayerlist(), info.getBoardname(), + wrapper.server != null); } } } From 136235d86ba0e2d3cb314a7430370c42ead9f759 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 15:10:02 +0200 Subject: [PATCH 56/92] =?UTF-8?q?Legger=20til=20manglende=20kommentar=20fo?= =?UTF-8?q?r=20konstrukt=C3=B8r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../game_wrapper/screens/BoardActiveScreen.java | 4 ++++ .../game_wrapper/screens/CardChoiceScreen.java | 11 ++++++++--- .../roborally/game_wrapper/screens/LobbyScreen.java | 11 +++++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/BoardActiveScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/BoardActiveScreen.java index 1eaa871..5115865 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/BoardActiveScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/BoardActiveScreen.java @@ -37,6 +37,10 @@ public class BoardActiveScreen extends AbstractScreen implements InputProcessor private final int viewPortHeight = 12 * tileDimensions; private final Viewport viewport; + /** + * Instantiates a new board active screen + * @param roboRallyWrapper The Robo Rally wrapper which is parent of this screen + */ public BoardActiveScreen(final RoboRallyWrapper roboRallyWrapper) { this.roboRallyWrapper = roboRallyWrapper; diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/CardChoiceScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/CardChoiceScreen.java index 106fbfe..940e913 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/CardChoiceScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/CardChoiceScreen.java @@ -46,8 +46,8 @@ public class CardChoiceScreen extends InputAdapter implements Screen { private final Stage stage; /** - * Initializes a new card choice screen - * @param roboRallyWrapper The robo rally wrapper which is its parent + * Instantiates a new card choice screen + * @param roboRallyWrapper The Robo Rally wrapper which is parent of this screen */ public CardChoiceScreen(final RoboRallyWrapper roboRallyWrapper) { this.roboRallyWrapper = roboRallyWrapper; @@ -243,9 +243,14 @@ public class CardChoiceScreen extends InputAdapter implements Screen { */ class CardRectangle { final Rectangle rectangle; - boolean selected = false; final ProgrammingCard card; + boolean selected = false; + /** + * Instantiates a new card rectangle + * @param rectangle The rectangle of this card rectangle + * @param card The card of this card rectangle + */ CardRectangle(Rectangle rectangle, ProgrammingCard card) { this.rectangle = rectangle; this.card = card; diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LobbyScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LobbyScreen.java index 85a32d1..196b450 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LobbyScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LobbyScreen.java @@ -17,6 +17,9 @@ import inf112.fiasko.roborally.utility.IOUtil; import java.util.List; +/** + * This screen allows the host to wait for players to join + */ public class LobbyScreen extends AbstractScreen { private final RoboRallyWrapper roboRallyWrapper; @@ -24,6 +27,10 @@ public class LobbyScreen extends AbstractScreen { private final Viewport viewport; private final Stage stage; + /** + * Instantiates a new lobby screen + * @param roboRallyWrapper The Robo Rally wrapper which is parent of this screen + */ public LobbyScreen(final RoboRallyWrapper roboRallyWrapper) { camera = new OrthographicCamera(); viewport = new FitViewport(applicationWidth, applicationHeight, camera); @@ -56,6 +63,10 @@ public class LobbyScreen extends AbstractScreen { roboRallyWrapper.batch.setProjectionMatrix(camera.combined); roboRallyWrapper.batch.begin(); + roboRallyWrapper.font.draw(roboRallyWrapper.batch, "Joined players: " + + roboRallyWrapper.server.getPlayerNames().values().toString(), + applicationWidth / 2f - 380 / 2f,applicationHeight / 2f + 350,380, 1, + true); roboRallyWrapper.font.draw(roboRallyWrapper.batch, "Click the button to start game", applicationWidth / 2f - 380 / 2f,applicationHeight / 2f + 100,380, 1, true); From 13255218f073cec7662efb54cf1207cd35ad4a49 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 15:11:07 +0200 Subject: [PATCH 57/92] Endrer variabelnavn og legger til kommentarer --- .../game_wrapper/screens/IPAddressScreen.java | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/IPAddressScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/IPAddressScreen.java index 76c0a3f..61bfac3 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/IPAddressScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/IPAddressScreen.java @@ -29,17 +29,25 @@ public class IPAddressScreen extends AbstractScreen { private final Stage stage; private TextField txtinput; + /** + * Instantiates a new ip address screen + * @param roboRallyWrapper The Robo Rally wrapper which is parent of this screen + */ public IPAddressScreen(final RoboRallyWrapper roboRallyWrapper) { - stage = new Stage(); Skin skin = new Skin(Gdx.files.internal("uiskin.json")); - TextButton loginbutton = new TextButton("click", skin); - loginbutton.setSize(300,60); - loginbutton.setPosition(300,300); - loginbutton.addListener(new ClickListener(){ + TextButton joinButton = new TextButton("Join", skin); + joinButton.setSize(300,60); + joinButton.setPosition(300,300); + joinButton.addListener(new ClickListener() { @Override - public void touchUp(InputEvent e, float x, float y, int point, int button){ + public boolean touchDown(InputEvent e, float x, float y, int point, int button) { + return true; + } + + @Override + public void touchUp(InputEvent e, float x, float y, int point, int button) { try { roboRallyWrapper.client = new RoboRallyClient(txtinput.getText(),roboRallyWrapper); roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getUsernameScreen(roboRallyWrapper)); @@ -50,18 +58,17 @@ public class IPAddressScreen extends AbstractScreen { } } }); - txtinput = new TextField("",skin); + txtinput = new TextField("", skin); txtinput.setPosition(300,250); txtinput.setSize(150,40); stage.addActor(txtinput); - stage.addActor(loginbutton); + stage.addActor(joinButton); camera = new OrthographicCamera(); viewport = new FitViewport(applicationWidth, applicationHeight, camera); this.roboRallyWrapper = roboRallyWrapper; camera.setToOrtho(false, applicationWidth, applicationHeight); Gdx.input.setInputProcessor(stage); - } @@ -74,10 +81,10 @@ public class IPAddressScreen extends AbstractScreen { roboRallyWrapper.batch.begin(); roboRallyWrapper.font.draw(roboRallyWrapper.batch, "Enter IP address and click the button to join a server", - applicationWidth / 2f - 380 / 2f,applicationHeight / 2f + 100,380, 1, true); + applicationWidth / 2f - 380 / 2f,applicationHeight / 2f + 100,380, 1, + true); roboRallyWrapper.batch.end(); stage.draw(); - } @Override From 485d04eb5f8477fe31069b199093626bd63ccdd5 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 15:12:00 +0200 Subject: [PATCH 58/92] Legger til sjekk for unikt spillernavn --- .../fiasko/roborally/networking/RoboRallyServer.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java index 2690406..020b64f 100644 --- a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java +++ b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java @@ -88,7 +88,12 @@ class RoboRallyServerListener extends Listener { public void received (Connection connection, Object object) { if (object instanceof String) { String playerName = (String) object; - playerNames.put(connection, playerName); + if (playerNames.values().contains(playerName)) { + String errorMessage = "The player name send is already taken."; + connection.sendTCP(new ErrorResponse(errorMessage, new IllegalArgumentException(errorMessage))); + } else { + playerNames.put(connection, playerName); + } } } From 9fa8f04ef73c3d2d1048913e2cb236b9980153fb Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 15:12:45 +0200 Subject: [PATCH 59/92] Legger til validering av spillernavn --- .../game_wrapper/screens/UsernameScreen.java | 64 +++++++++++++------ 1 file changed, 44 insertions(+), 20 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java index 9263b5b..e45afdf 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java @@ -13,41 +13,55 @@ import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; import inf112.fiasko.roborally.game_wrapper.RoboRallyWrapper; +/** + * This screen allows a user to choose their player name + */ public class UsernameScreen extends AbstractScreen { private final RoboRallyWrapper roboRallyWrapper; private final OrthographicCamera camera; private final Viewport viewport; private final Stage stage; - private final int applicationWidth = 600; - private final int applicationHeight = 800; - private TextField txtinput; - private TextButton loginbutton; - public UsernameScreen(final RoboRallyWrapper roboRallyWrapper) { + private TextField textInput; + /** + * Instantiates a new username screen + * @param roboRallyWrapper The Robo Rally wrapper which is parent of this screen + */ + public UsernameScreen(final RoboRallyWrapper roboRallyWrapper) { stage = new Stage(); - Skin skin =new Skin(Gdx.files.internal("uiskin.json")); - loginbutton = new TextButton("click",skin); - loginbutton.setSize(300,60); - loginbutton.setPosition(300,300); - loginbutton.addListener(new ClickListener(){ + Skin skin = new Skin(Gdx.files.internal("uiskin.json")); + TextButton confirm = new TextButton("Confirm", skin); + confirm.setSize(300,60); + confirm.setPosition(300,300); + confirm.addListener(new ClickListener() { @Override - public void touchUp(InputEvent e, float x, float y, int point, int button){ - roboRallyWrapper.client.sendElement(txtinput.getText()); + public boolean touchDown(InputEvent e, float x, float y, int point, int button) { + return true; + } + + @Override + public void touchUp(InputEvent e, float x, float y, int point, int button) { + String userName = textInput.getText(); + System.out.println(userName); + System.out.println(validateName(userName)); + if (!validateName(userName)) { + return; + } + roboRallyWrapper.client.sendElement(userName); if (roboRallyWrapper.server == null) { roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getLoadingScreen(roboRallyWrapper)); - } - else{ + } else{ roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getLobbyScreen(roboRallyWrapper)); } } }); - txtinput = new TextField("",skin); - txtinput.setPosition(300,250); - txtinput.setSize(150,40); - stage.addActor(txtinput); - stage.addActor(loginbutton); + textInput = new TextField("",skin); + textInput.setPosition(300,250); + textInput.setSize(150,40); + stage.addActor(textInput); + stage.addActor(confirm); camera = new OrthographicCamera(); viewport = new FitViewport(applicationWidth, applicationHeight, camera); @@ -57,6 +71,15 @@ public class UsernameScreen extends AbstractScreen { } + /** + * Validates the username set by the user + * @param userName The username the user wants + * @return True if the username can be used + */ + private boolean validateName(String userName) { + //TODO: Find a way to ask the server if the name is taken + return !userName.equals(""); + } @Override public void render(float delta) { @@ -67,7 +90,8 @@ public class UsernameScreen extends AbstractScreen { roboRallyWrapper.batch.begin(); roboRallyWrapper.font.draw(roboRallyWrapper.batch, "Click the button to enter username", - applicationWidth/2f-380/2f,applicationHeight/2f + 100,380, 1, true); + applicationWidth / 2f - 380 / 2f,applicationHeight / 2f + 100,380, 1, + true); roboRallyWrapper.batch.end(); stage.draw(); From 0c8b9f47d92373ca022699b984439550c3e4adb0 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 15:13:33 +0200 Subject: [PATCH 60/92] Forbedring av kodekvalitet og flere kommentarer --- .../game_wrapper/screens/StartMenuScreen.java | 42 +++++++++++-------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java index 1862adf..6fbd292 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java @@ -16,25 +16,28 @@ import inf112.fiasko.roborally.networking.RoboRallyServer; import java.io.IOException; +/** + * This screen is the first screen shown to a player + */ public class StartMenuScreen extends AbstractScreen { private final RoboRallyWrapper roboRallyWrapper; private final OrthographicCamera camera; private final Viewport viewport; private final Stage stage; - private final int applicationWidth = 600; - private final int applicationHeight = 800; - private TextButton serverButton; - private TextButton clientButton; - private TextButton quitButton; + + /** + * Instantiates a new start menu screen + * @param roboRallyWrapper The Robo Rally wrapper which is parent of this screen + */ public StartMenuScreen(final RoboRallyWrapper roboRallyWrapper) { camera = new OrthographicCamera(); viewport = new FitViewport(applicationWidth, applicationHeight, camera); stage = new Stage(); - serverButton = new SimpleButton("Create", roboRallyWrapper.font).getButton(); + TextButton serverButton = new SimpleButton("Create", roboRallyWrapper.font).getButton(); stage.addActor(serverButton); - serverButton.setY(applicationHeight/2f); - serverButton.setX(applicationWidth/2f); + serverButton.setY(applicationHeight / 2f); + serverButton.setX(applicationWidth / 2f); this.roboRallyWrapper = roboRallyWrapper; camera.setToOrtho(false, applicationWidth, applicationHeight); Gdx.input.setInputProcessor(stage); @@ -48,36 +51,38 @@ public class StartMenuScreen extends AbstractScreen { roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getUsernameScreen(roboRallyWrapper)); } catch (IOException e) { e.printStackTrace(); + //Hard fail + System.exit(1); } - return true; // Here do stuff + return true; } }); - clientButton = new SimpleButton("Join", roboRallyWrapper.font).getButton(); + TextButton clientButton = new SimpleButton("Join", roboRallyWrapper.font).getButton(); stage.addActor(clientButton); - clientButton.setY(applicationHeight/2f); - clientButton.setX(applicationWidth/2f+serverButton.getWidth()+20); + clientButton.setY(applicationHeight / 2f); + clientButton.setX(applicationWidth / 2f + serverButton.getWidth() + 20); camera.setToOrtho(false, applicationWidth, applicationHeight); Gdx.input.setInputProcessor(stage); clientButton.addListener(new InputListener() { @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getIPAddressScreen(roboRallyWrapper)); - return true;// Here we do stuff + return true; } }); - quitButton = new SimpleButton("Quit", roboRallyWrapper.font).getButton(); + TextButton quitButton = new SimpleButton("Quit", roboRallyWrapper.font).getButton(); stage.addActor(quitButton); - quitButton.setY(applicationHeight/2f); - quitButton.setX(applicationWidth/2f+serverButton.getWidth()+40+clientButton.getWidth()); + quitButton.setY(applicationHeight / 2f); + quitButton.setX(applicationWidth / 2f + serverButton.getWidth() + 40 + clientButton.getWidth()); camera.setToOrtho(false, applicationWidth, applicationHeight); Gdx.input.setInputProcessor(stage); quitButton.addListener(new InputListener() { @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { System.exit(0); - return true;//her we do stuff + return true; } }); } @@ -91,7 +96,8 @@ public class StartMenuScreen extends AbstractScreen { roboRallyWrapper.batch.begin(); roboRallyWrapper.font.draw(roboRallyWrapper.batch, "RoboRally", - applicationWidth/2f-380/2f,applicationHeight/2f +100,380, 1, true); + applicationWidth / 2f - 380 / 2f,applicationHeight / 2f + 100,380, 1, + true); roboRallyWrapper.batch.end(); stage.draw(); } From 9bda321c6fee0fa68070cc090c13653d43df77c2 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 15:14:32 +0200 Subject: [PATCH 61/92] =?UTF-8?q?Legger=20til=20manglende=20kommentarer=20?= =?UTF-8?q?for=20klasse=20og=20konstrukt=C3=B8r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../game_wrapper/screens/LoadingScreen.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LoadingScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LoadingScreen.java index d2f36ee..f3ef170 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LoadingScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LoadingScreen.java @@ -7,6 +7,9 @@ import com.badlogic.gdx.utils.viewport.ExtendViewport; import com.badlogic.gdx.utils.viewport.Viewport; import inf112.fiasko.roborally.game_wrapper.RoboRallyWrapper; +/** + * This screen is used to wait for something + */ public class LoadingScreen extends AbstractScreen { private final RoboRallyWrapper roboRallyWrapper; @@ -15,6 +18,10 @@ public class LoadingScreen extends AbstractScreen { private long startTime; + /** + * Instantiates a new loading screen + * @param roboRallyWrapper The Robo Rally wrapper which is parent of this screen + */ public LoadingScreen(final RoboRallyWrapper roboRallyWrapper) { this.roboRallyWrapper = roboRallyWrapper; camera = new OrthographicCamera(); @@ -33,10 +40,11 @@ public class LoadingScreen extends AbstractScreen { roboRallyWrapper.batch.begin(); roboRallyWrapper.font.draw(roboRallyWrapper.batch, "Loading...", applicationWidth/2f-380/2f, - applicationHeight/2f,380, 1, true); + applicationHeight / 2f,380, 1, true); roboRallyWrapper.batch.end(); long time = System.currentTimeMillis(); - if (time-startTime>5000){ + //TODO: Allow to set any condition and next screen + if (time - startTime > 5000){ roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getBoardActiveScreen(this.roboRallyWrapper)); } } From c4c37ca4dd08214bb17d28b6fb235edb883c2aea Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 15:15:06 +0200 Subject: [PATCH 62/92] Fjerner kryo registrering av debug klasser --- .../java/inf112/fiasko/roborally/utility/NetworkUtil.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java b/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java index 4141c92..2d74663 100644 --- a/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java +++ b/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java @@ -2,10 +2,8 @@ package inf112.fiasko.roborally.utility; import com.esotericsoftware.kryo.Kryo; import inf112.fiasko.roborally.element_properties.RobotID; -import inf112.fiasko.roborally.networking.ErrorResponse; -import inf112.fiasko.roborally.networking.GameStartInfo; -import inf112.fiasko.roborally.networking.SomeRequest; -import inf112.fiasko.roborally.networking.SomeResponse; +import inf112.fiasko.roborally.networking.containers.ErrorResponse; +import inf112.fiasko.roborally.networking.containers.GameStartInfo; import inf112.fiasko.roborally.objects.IDeck; import inf112.fiasko.roborally.objects.Player; import inf112.fiasko.roborally.objects.ProgrammingCard; @@ -19,8 +17,6 @@ public final class NetworkUtil { * @param kryo The kryo object to register the classes to */ public static void registerClasses(Kryo kryo) { - kryo.register(SomeRequest.class); - kryo.register(SomeResponse.class); kryo.register(ErrorResponse.class); kryo.register(IDeck.class); kryo.register(ProgrammingCard.class); From 17d6495e67914607310df94039007a842f7a0e53 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 15:15:34 +0200 Subject: [PATCH 63/92] Forbedrer kodekvalitet i PowerDownScreen --- .../game_wrapper/screens/PowerDownScreen.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/PowerDownScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/PowerDownScreen.java index acff006..10b406d 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/PowerDownScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/PowerDownScreen.java @@ -12,6 +12,9 @@ import com.badlogic.gdx.utils.viewport.Viewport; import inf112.fiasko.roborally.game_wrapper.RoboRallyWrapper; import inf112.fiasko.roborally.game_wrapper.SimpleButton; +/** + * This screen is used for asking players whether they want to power down + */ public class PowerDownScreen extends AbstractScreen { private final RoboRallyWrapper roboRallyWrapper; @@ -19,8 +22,11 @@ public class PowerDownScreen extends AbstractScreen { private final Viewport viewport; private final Stage stage; private long startTime; - private final int applicationWidth = 600; - private final int applicationHeight = 800; + + /** + * Instantiates a new power down screen + * @param roboRallyWrapper The Robo Rally wrapper which is parent of this screen + */ public PowerDownScreen(final RoboRallyWrapper roboRallyWrapper) { camera = new OrthographicCamera(); viewport = new FitViewport(applicationWidth, applicationHeight, camera); @@ -42,7 +48,6 @@ public class PowerDownScreen extends AbstractScreen { }); } - @Override public void render(float delta) { Gdx.gl.glClearColor(0.2f, 1f, 0.2f, 1); @@ -54,9 +59,11 @@ public class PowerDownScreen extends AbstractScreen { roboRallyWrapper.batch.begin(); roboRallyWrapper.font.draw(roboRallyWrapper.batch, "Click the button to enter Power Down next round", - applicationWidth/2f-380/2f,applicationHeight/2f + 100,380, 1, true); + applicationWidth / 2f - 380 / 2f,applicationHeight / 2f + 100,380, 1, + true); roboRallyWrapper.font.draw(roboRallyWrapper.batch, String.valueOf(10 - elapsedTime), - applicationWidth / 2f - 40 / 2f,applicationHeight/2f - 100,40, 1, true); + applicationWidth / 2f - 40 / 2f,applicationHeight / 2f - 100,40, 1, + true); roboRallyWrapper.batch.end(); stage.draw(); From 1c47b627aff63d84f2450e12be56dc03eb1cb773 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 15:16:23 +0200 Subject: [PATCH 64/92] =?UTF-8?q?Legger=20til=20manglende=20mellomrom=20me?= =?UTF-8?q?llom=20paranteser=20og=20kr=C3=B8llparanteser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../element_properties/PositionTest.java | 4 ++-- .../fiasko/roborally/objects/BoardTest.java | 20 +++++++++---------- .../fiasko/roborally/objects/RobotTest.java | 10 +++++----- .../fiasko/roborally/objects/WallTest.java | 10 +++++----- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/test/java/inf112/fiasko/roborally/element_properties/PositionTest.java b/src/test/java/inf112/fiasko/roborally/element_properties/PositionTest.java index 2b3204f..eb1c93b 100644 --- a/src/test/java/inf112/fiasko/roborally/element_properties/PositionTest.java +++ b/src/test/java/inf112/fiasko/roborally/element_properties/PositionTest.java @@ -24,12 +24,12 @@ public class PositionTest { testPosition6 = new Position(3, 3); } @Test - public void testGetXPosition(){ + public void testGetXPosition() { assertEquals(3,testPosition1.getXCoordinate()); } @Test - public void testGetYPosition(){ + public void testGetYPosition() { assertEquals(4,testPosition1.getYCoordinate()); } diff --git a/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java b/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java index 7d4562f..21d6668 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java @@ -139,14 +139,14 @@ public class BoardTest { } @Test - public void setRobotPowerDownStatus(){ + public void setRobotPowerDownStatus() { Robot testrobot = robotListforpowerdown.get(0); assertEquals(false , testrobot.isInPowerDown()); boardforpowerdown.setPowerDown(RobotID.ROBOT_1,true); assertEquals(true , testrobot.isInPowerDown()); } @Test - public void executRobotPowerDown(){ + public void executRobotPowerDown() { Robot testrobot = robotListforpowerdown.get(1); boardforpowerdown.setPowerDown(RobotID.ROBOT_2,true); testrobot.setDamageTaken(4); @@ -155,7 +155,7 @@ public class BoardTest { assertEquals(0,testrobot.getDamageTaken()); } @Test - public void repairRobotOnRepairTile(){ + public void repairRobotOnRepairTile() { Robot testrobot = robotListforpowerdown.get(2); testrobot.setDamageTaken(4); assertEquals(4,testrobot.getDamageTaken()); @@ -164,21 +164,21 @@ public class BoardTest { } @Test - public void robotHitByLaserGetsDamaged(){ + public void robotHitByLaserGetsDamaged() { Robot testRobot = robotListforlaser.get(7); assertEquals(0, testRobot.getDamageTaken()); boardforlaser.fireAllLasers(); assertNotEquals(0,testRobot.getDamageTaken()); } @Test - public void laserBlockedByWallDoesNotDamageRobot(){ + public void laserBlockedByWallDoesNotDamageRobot() { Robot testRobot = robotListforlaser.get(0); assertEquals(0, testRobot.getDamageTaken()); boardforlaser.fireAllLasers(); assertEquals(0,testRobot.getDamageTaken()); } @Test - public void laserBlockedByRobotDoesNotDamageOtherRobot(){ + public void laserBlockedByRobotDoesNotDamageOtherRobot() { Robot testRobot1 = robotListforlaser.get(1); Robot testRobot2 = robotListforlaser.get(2); testRobot2.setFacingDirection(Direction.EAST); @@ -189,14 +189,14 @@ public class BoardTest { assertNotEquals(0,testRobot2.getDamageTaken()); } @Test - public void doubleLaserDamage(){ + public void doubleLaserDamage() { Robot testRobot = robotListforlaser.get(6); assertEquals(0, testRobot.getDamageTaken()); boardforlaser.fireAllLasers(); assertEquals(2,testRobot.getDamageTaken()); } @Test - public void robotGetsHitByTwoLasers(){ + public void robotGetsHitByTwoLasers() { Robot testRobot = robotListforlaser.get(3); assertEquals(0, testRobot.getDamageTaken()); boardforlaser.fireAllLasers(); @@ -397,12 +397,12 @@ public class BoardTest { assertTrue(tileTypeList.containsAll(tileTypeListResult) && tileTypeListResult.containsAll(tileTypeList)); } - public boolean checkIfAllElementsAreOfSpecificWallType(List> elemList, K WallType) { + private boolean checkIfAllElementsAreOfSpecificWallType(List> elemList, K WallType) { Predicate> pred = (element) -> element.getElement().getWallType() == WallType; elemList.removeIf(pred); return 0 == elemList.size(); } - public boolean checkIfAllElementsAreOfSpecificTileType(List> elemList, K TileType) { + private boolean checkIfAllElementsAreOfSpecificTileType(List> elemList, K TileType) { Predicate> pred = (element) -> element.getElement().getTileType() == TileType; elemList.removeIf(pred); return 0 == elemList.size(); diff --git a/src/test/java/inf112/fiasko/roborally/objects/RobotTest.java b/src/test/java/inf112/fiasko/roborally/objects/RobotTest.java index 51db52d..1e0e900 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/RobotTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/RobotTest.java @@ -19,17 +19,17 @@ public class RobotTest { } @Test - public void testRobotGetDamageOnInitializedRobot(){ + public void testRobotGetDamageOnInitializedRobot() { assertEquals(0, testRobot.getDamageTaken()); } @Test - public void testRobotGetPlayerId(){ + public void testRobotGetPlayerId() { assertEquals(RobotID.ROBOT_6, testRobot.getRobotId()); } @Test - public void testRobotGetBackupOnInitializedRobot(){ + public void testRobotGetBackupOnInitializedRobot() { assertEquals(robotPosition, testRobot.getBackupPosition()); } @@ -40,7 +40,7 @@ public class RobotTest { } @Test - public void testRobotGetPositionOnInitializedRobot(){ + public void testRobotGetPositionOnInitializedRobot() { assertEquals(robotPosition, testRobot.getPosition()); } @@ -52,7 +52,7 @@ public class RobotTest { } @Test - public void testRobotIsInPowerDownOnInitializedRobot(){ + public void testRobotIsInPowerDownOnInitializedRobot() { assertEquals(false, testRobot.isInPowerDown()); } diff --git a/src/test/java/inf112/fiasko/roborally/objects/WallTest.java b/src/test/java/inf112/fiasko/roborally/objects/WallTest.java index 89db7c9..dd46de2 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/WallTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/WallTest.java @@ -7,27 +7,27 @@ import org.junit.Test; public class WallTest { @Test - public void testWallGetWallTypeNormal(){ + public void testWallGetWallTypeNormal() { Wall testGetWall = new Wall(WallType.WALL_NORMAL, Direction.NORTH); assertEquals(WallType.WALL_NORMAL, testGetWall.getWallType()); } @Test - public void testWallGetWallTypeCorner(){ + public void testWallGetWallTypeCorner() { Wall testGetWall = new Wall(WallType.WALL_CORNER, Direction.NORTH); assertEquals(WallType.WALL_CORNER, testGetWall.getWallType()); } @Test - public void testWallGetWallTypeLaserSingle(){ + public void testWallGetWallTypeLaserSingle() { Wall testGetWall = new Wall(WallType.WALL_LASER_SINGLE, Direction.NORTH); assertEquals(WallType.WALL_LASER_SINGLE, testGetWall.getWallType()); } @Test - public void testWallGetDirectionNorth(){ + public void testWallGetDirectionNorth() { Wall testGetWall = new Wall(WallType.WALL_CORNER, Direction.NORTH); assertEquals(Direction.NORTH, testGetWall.getDirection()); } @Test - public void testWallGetDirectionEast(){ + public void testWallGetDirectionEast() { Wall testGetWall = new Wall(WallType.WALL_CORNER, Direction.EAST); assertEquals(Direction.EAST, testGetWall.getDirection()); } From 1abaea3e3b54e3681cfa86c8bc859dc60df55207 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 20:08:46 +0200 Subject: [PATCH 65/92] Fikser problemet med at stage ikke tar hensyn til viewport. Closes #61 --- .../screens/BoardActiveScreen.java | 2 +- .../screens/CardChoiceScreen.java | 23 ++++++++----------- .../game_wrapper/screens/IPAddressScreen.java | 6 ++++- .../game_wrapper/screens/LobbyScreen.java | 6 ++++- .../game_wrapper/screens/PowerDownScreen.java | 5 ++-- .../game_wrapper/screens/StartMenuScreen.java | 8 +++++-- .../game_wrapper/screens/UsernameScreen.java | 10 ++++---- 7 files changed, 36 insertions(+), 24 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/BoardActiveScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/BoardActiveScreen.java index 5115865..9d14f43 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/BoardActiveScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/BoardActiveScreen.java @@ -49,12 +49,12 @@ public class BoardActiveScreen extends AbstractScreen implements InputProcessor camera.position.set(viewPortWidth / 2f, viewPortHeight / 2f, 0); viewport = new ExtendViewport(viewPortWidth, viewPortHeight, camera); - Gdx.input.setInputProcessor(this); lastTouch = new Vector2(); } @Override public void show() { + Gdx.input.setInputProcessor(this); resetCamera(); } diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/CardChoiceScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/CardChoiceScreen.java index 940e913..70f7325 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/CardChoiceScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/CardChoiceScreen.java @@ -9,10 +9,7 @@ import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.g2d.GlyphLayout; import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.math.Vector3; -import com.badlogic.gdx.scenes.scene2d.InputEvent; -import com.badlogic.gdx.scenes.scene2d.InputListener; -import com.badlogic.gdx.scenes.scene2d.Stage; -import com.badlogic.gdx.scenes.scene2d.Touchable; +import com.badlogic.gdx.scenes.scene2d.*; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; @@ -44,6 +41,7 @@ public class CardChoiceScreen extends InputAdapter implements Screen { private final List chosenCards; private final int maxCards; private final Stage stage; + private final InputMultiplexer inputMultiplexer; /** * Instantiates a new card choice screen @@ -60,8 +58,7 @@ public class CardChoiceScreen extends InputAdapter implements Screen { shapeRenderer = new ShapeRenderer(); shapeRenderer.setAutoShapeType(true); - InputMultiplexer inputMultiplexer = new InputMultiplexer(); - inputMultiplexer.addProcessor(this); + inputMultiplexer = new InputMultiplexer(); try { generateCards(); @@ -71,25 +68,25 @@ public class CardChoiceScreen extends InputAdapter implements Screen { this.chosenCards = new ArrayList<>(); this.maxCards = 5; stage = new Stage(); - inputMultiplexer.addProcessor(stage); TextButton confirmCards = new SimpleButton("Confirm cards", roboRallyWrapper.font).getButton(); stage.addActor(confirmCards); - confirmCards.setY(viewport.getWorldHeight() + 60); + confirmCards.setY(viewport.getWorldHeight() - confirmCards.getHeight()); confirmCards.setX(15); - confirmCards.setTouchable(Touchable.enabled); + confirmCards.addListener(new InputListener() { @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { - System.out.println(chosenCards.size()); - System.out.println(maxCards); if (chosenCards.size() == maxCards) { System.out.println("Lock cards!"); + return true; } return false; } }); - Gdx.input.setInputProcessor(inputMultiplexer); + stage.setViewport(viewport); + inputMultiplexer.addProcessor(this); + inputMultiplexer.addProcessor(stage); } /** @@ -119,7 +116,7 @@ public class CardChoiceScreen extends InputAdapter implements Screen { @Override public void show() { - //Nothing to do + Gdx.input.setInputProcessor(inputMultiplexer); } @Override diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/IPAddressScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/IPAddressScreen.java index 61bfac3..eda1a76 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/IPAddressScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/IPAddressScreen.java @@ -68,9 +68,13 @@ public class IPAddressScreen extends AbstractScreen { viewport = new FitViewport(applicationWidth, applicationHeight, camera); this.roboRallyWrapper = roboRallyWrapper; camera.setToOrtho(false, applicationWidth, applicationHeight); - Gdx.input.setInputProcessor(stage); + stage.setViewport(viewport); } + @Override + public void show() { + Gdx.input.setInputProcessor(stage); + } @Override public void render(float delta) { diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LobbyScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LobbyScreen.java index 196b450..cead454 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LobbyScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LobbyScreen.java @@ -41,7 +41,6 @@ public class LobbyScreen extends AbstractScreen { startGameButton.setX(applicationWidth / 2f + startGameButton.getWidth() / 4f); this.roboRallyWrapper = roboRallyWrapper; camera.setToOrtho(false, applicationWidth, applicationHeight); - Gdx.input.setInputProcessor(stage); startGameButton.addListener(new InputListener() { @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { @@ -52,8 +51,13 @@ public class LobbyScreen extends AbstractScreen { return true;//her we do stuff } }); + stage.setViewport(viewport); } + @Override + public void show() { + Gdx.input.setInputProcessor(stage); + } @Override public void render(float delta) { diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/PowerDownScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/PowerDownScreen.java index 10b406d..6a4d2a9 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/PowerDownScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/PowerDownScreen.java @@ -31,13 +31,13 @@ public class PowerDownScreen extends AbstractScreen { camera = new OrthographicCamera(); viewport = new FitViewport(applicationWidth, applicationHeight, camera); stage = new Stage(); + stage.setViewport(viewport); TextButton powerDownButton = new SimpleButton("PowerDown", roboRallyWrapper.font).getButton(); stage.addActor(powerDownButton); powerDownButton.setY(applicationHeight / 2f); powerDownButton.setX(applicationWidth / 2f + powerDownButton.getWidth() / 4f); this.roboRallyWrapper = roboRallyWrapper; camera.setToOrtho(false, applicationWidth, applicationHeight); - Gdx.input.setInputProcessor(stage); startTime = System.currentTimeMillis(); powerDownButton.addListener(new InputListener() { @Override @@ -78,7 +78,8 @@ public class PowerDownScreen extends AbstractScreen { } @Override - public void show(){ + public void show() { + Gdx.input.setInputProcessor(stage); startTime = System.currentTimeMillis(); } diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java index 6fbd292..7d8b561 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java @@ -34,13 +34,13 @@ public class StartMenuScreen extends AbstractScreen { camera = new OrthographicCamera(); viewport = new FitViewport(applicationWidth, applicationHeight, camera); stage = new Stage(); + stage.setViewport(viewport); TextButton serverButton = new SimpleButton("Create", roboRallyWrapper.font).getButton(); stage.addActor(serverButton); serverButton.setY(applicationHeight / 2f); serverButton.setX(applicationWidth / 2f); this.roboRallyWrapper = roboRallyWrapper; camera.setToOrtho(false, applicationWidth, applicationHeight); - Gdx.input.setInputProcessor(stage); serverButton.addListener(new InputListener() { @Override @@ -77,7 +77,6 @@ public class StartMenuScreen extends AbstractScreen { quitButton.setY(applicationHeight / 2f); quitButton.setX(applicationWidth / 2f + serverButton.getWidth() + 40 + clientButton.getWidth()); camera.setToOrtho(false, applicationWidth, applicationHeight); - Gdx.input.setInputProcessor(stage); quitButton.addListener(new InputListener() { @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { @@ -87,6 +86,11 @@ public class StartMenuScreen extends AbstractScreen { }); } + @Override + public void show() { + Gdx.input.setInputProcessor(stage); + } + @Override public void render(float delta) { Gdx.gl.glClearColor(0.5f, 0.5f, 0.5f, 0.5f); diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java index e45afdf..15fe992 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java @@ -44,8 +44,6 @@ public class UsernameScreen extends AbstractScreen { @Override public void touchUp(InputEvent e, float x, float y, int point, int button) { String userName = textInput.getText(); - System.out.println(userName); - System.out.println(validateName(userName)); if (!validateName(userName)) { return; } @@ -67,8 +65,7 @@ public class UsernameScreen extends AbstractScreen { viewport = new FitViewport(applicationWidth, applicationHeight, camera); this.roboRallyWrapper = roboRallyWrapper; camera.setToOrtho(false, applicationWidth, applicationHeight); - Gdx.input.setInputProcessor(stage); - + stage.setViewport(viewport); } /** @@ -81,6 +78,11 @@ public class UsernameScreen extends AbstractScreen { return !userName.equals(""); } + @Override + public void show() { + Gdx.input.setInputProcessor(stage); + } + @Override public void render(float delta) { Gdx.gl.glClearColor(0.5f, 0.5f, 0.5f, 0.5f); From 9f5ea820f3dfd279fb2bb499ca76252da5e4e96b Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 20:10:36 +0200 Subject: [PATCH 66/92] =?UTF-8?q?Gj=C3=B8r=20ting=20final=20som=20kan=20v?= =?UTF-8?q?=C3=A6re=20final?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inf112/fiasko/roborally/networking/RoboRallyClient.java | 4 ++-- .../inf112/fiasko/roborally/networking/RoboRallyServer.java | 6 +++--- .../roborally/networking/containers/ErrorResponse.java | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java index 24c4059..a5eb22c 100644 --- a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java +++ b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java @@ -15,7 +15,7 @@ import java.io.IOException; * This class represents a client capable of connecting to a Robo Rally server */ public class RoboRallyClient { - private Client client; + private final Client client; /** * Instantiates a new Robo Rally client @@ -45,7 +45,7 @@ public class RoboRallyClient { * This listener handles all receiving from the server */ class RoboRallyClientListener extends Listener { - private RoboRallyWrapper wrapper; + private final RoboRallyWrapper wrapper; RoboRallyClientListener(RoboRallyWrapper wrapper) { super(); diff --git a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java index 020b64f..8c94ba2 100644 --- a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java +++ b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java @@ -15,7 +15,7 @@ import java.util.Map; * This class represents a Robo Rally Server */ public class RoboRallyServer { - private Server server; + private final Server server; private RoboRallyServerListener listener; public RoboRallyServer() throws IOException { @@ -56,8 +56,8 @@ public class RoboRallyServer { */ class RoboRallyServerListener extends Listener { private Connection host; - private Map clients; - private Map playerNames; + private final Map clients; + private final Map playerNames; /** * Instantiates a new Robo Rally server listener 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 3bf7358..3220ba9 100644 --- a/src/main/java/inf112/fiasko/roborally/networking/containers/ErrorResponse.java +++ b/src/main/java/inf112/fiasko/roborally/networking/containers/ErrorResponse.java @@ -4,7 +4,7 @@ package inf112.fiasko.roborally.networking.containers; * This class represents a response saying that something went wrong with the request */ public class ErrorResponse { - private String errorMessage; + private final String errorMessage; private Exception thrownException; /** From cad7677bc6e8a784d48fcbeb47fa34b44859d5ef Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 21:50:00 +0200 Subject: [PATCH 67/92] Legger til manglende kommentarer for GameStartInfo --- .../networking/containers/GameStartInfo.java | 58 ++++++++++++++----- 1 file changed, 44 insertions(+), 14 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/networking/containers/GameStartInfo.java b/src/main/java/inf112/fiasko/roborally/networking/containers/GameStartInfo.java index 86c0f14..d060020 100644 --- a/src/main/java/inf112/fiasko/roborally/networking/containers/GameStartInfo.java +++ b/src/main/java/inf112/fiasko/roborally/networking/containers/GameStartInfo.java @@ -4,28 +4,58 @@ import inf112.fiasko.roborally.objects.Player; import java.util.List; +/** + * This class contains information about the game board to be used and the game's players + */ public class GameStartInfo { - private String boardname; - private List playerlist; - public GameStartInfo(){} + private String boardName; + private List playerList; - public void setBoardname(String boardname) { - this.boardname = boardname; + /** + * Empty initialization method used by kryo + */ + public GameStartInfo() {} + + /** + * Sets the name of the board to be used + * @param boardName The name of the board to be used, with extension + */ + public void setBoardName(String boardName) { + this.boardName = boardName; } - public void setPlayerlist(List playerlist) { - this.playerlist = playerlist; + /** + * Sets the list of players for the game + * @param playerList List of players for the game + */ + public void setPlayerList(List playerList) { + this.playerList = playerList; } - public GameStartInfo(String boardname, List playerlist){ - this.boardname=boardname; - this.playerlist=playerlist; + /** + * Instantiates a new GameStartInfo object + * @param boardName The name of the board to be used, with extension + * @param playerList List of players for the game + */ + public GameStartInfo(String boardName, List playerList) { + this.boardName = boardName; + this.playerList = playerList; } - public List getPlayerlist(){ - return playerlist; + + /** + * Gets the list of players + * @return A list of players + */ + public List getPlayerList() { + return playerList; } - public String getBoardname(){ - return boardname; + + /** + * Gets the board name + * @return The board name + */ + public String getBoardName() { + return boardName; } } From 4a885f9fc040bf579a9a1dcace2e845ece2545a8 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 22:05:47 +0200 Subject: [PATCH 68/92] =?UTF-8?q?Gj=C3=B8r=20det=20mulig=20=C3=A5=20sjekke?= =?UTF-8?q?=20om=20to=20programmeringskort=20er=20like?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inf112/fiasko/roborally/objects/ProgrammingCard.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/objects/ProgrammingCard.java b/src/main/java/inf112/fiasko/roborally/objects/ProgrammingCard.java index a6d79e0..8418feb 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/ProgrammingCard.java +++ b/src/main/java/inf112/fiasko/roborally/objects/ProgrammingCard.java @@ -41,6 +41,15 @@ public class ProgrammingCard implements Comparable { return this.getPriority() + " " + this.cardAction.toString(); } + @Override + public boolean equals(Object other) { + if (!(other instanceof ProgrammingCard)) { + return false; + } + ProgrammingCard otherCard = (ProgrammingCard) other; + return otherCard.cardAction == this.cardAction && otherCard.cardPriority == this.cardPriority; + } + @Override public int compareTo(ProgrammingCard programmingCard) { return programmingCard.cardPriority - this.cardPriority; From b3fee7494fc44f93e79d92d8de06fb7d9b956355 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 22:16:31 +0200 Subject: [PATCH 69/92] =?UTF-8?q?Fikser=20en=20feil=20i=20oppdatering=20av?= =?UTF-8?q?=20l=C3=A5ste=20kort?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fikser noen formateringsfeil Fikser noen variabelnavn Erstatter runGameLoop med runTurn Endrer navn på metode for å oppdatere låste programmeringskort Fjerner unødvendinge linjer som ikke gjør noe --- .../roborally/objects/RoboRallyGame.java | 80 ++++++++++--------- 1 file changed, 42 insertions(+), 38 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index 02ffa72..843e38e 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -24,15 +24,16 @@ public class RoboRallyGame implements IDrawableGame { private List> cogwheels; private List> conveyorBelts; private List> fastConveyorBelts; - private List playerList; + private final List playerList; private final boolean host; private Deck mainDeck; + /** * Instantiates a new robo rally game * @param debug Whether to start the game in debugging mode */ public RoboRallyGame(List playerList, String boardName, boolean host, boolean debug) { - this.host=host; + this.host = host; this.playerList = playerList; if (debug) { initializeDebugMode(); @@ -45,7 +46,7 @@ public class RoboRallyGame implements IDrawableGame { * Instantiates a new robo rally game */ public RoboRallyGame(List playerList, String boardName,boolean host) { - this.host=host; + this.host = host; this.playerList = playerList; initializeGame(boardName); } @@ -88,6 +89,7 @@ public class RoboRallyGame implements IDrawableGame { long cycleDelay = 600; TimeUnit.MILLISECONDS.sleep(cycleDelay); } + /** * Initializes the game with a debugging board */ @@ -114,14 +116,15 @@ public class RoboRallyGame implements IDrawableGame { private void initializeGame(String boardName) { try { List robots = new ArrayList<>(); - int noe = 1; - for (Player player:playerList) { - Position spawn = new Position(noe,1); - robots.add(new Robot(player.getRobotID(),spawn)); - noe++; + //TODO: Find correct robot spawn positions + int posX = 1; + for (Player player : playerList) { + Position spawn = new Position(posX,1); + robots.add(new Robot(player.getRobotID(), spawn)); + posX++; } - gameBoard = BoardLoaderUtil.loadBoard("boards/"+boardName, robots); + gameBoard = BoardLoaderUtil.loadBoard("boards/" + boardName, robots); generateTileLists(); if (host) { @@ -130,7 +133,7 @@ public class RoboRallyGame implements IDrawableGame { new Thread(() -> { try { - runGameLoop(); + runTurn(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } @@ -160,20 +163,6 @@ public class RoboRallyGame implements IDrawableGame { TileType.CONVEYOR_BELT_SLOW_SIDE_ENTRANCES)); } - /** - * Does whatever the game wants to do - * @throws InterruptedException If interrupted while trying to sleep - */ - private void runGameLoop() throws InterruptedException { - TimeUnit.SECONDS.sleep(3); - runPhase(1); - runPhase(2); - runPhase(3); - runPhase(4); - runPhase(5); - respawnRobots(); - } - /** * Runs all the steps of one turn in the game * @throws InterruptedException If interrupted while trying to sleep @@ -218,7 +207,7 @@ public class RoboRallyGame implements IDrawableGame { // Repair robots on repair tiles repairAllRobotsOnRepairTiles(); if (host) { - updatePlayerLockedProgrammingCards(); + updateLockedProgrammingCardsForAllPlayers(); removeNonLockedProgrammingCardsFromPlayers(); } // TODO: If this player is in power down, ask if it shall continue @@ -229,33 +218,48 @@ public class RoboRallyGame implements IDrawableGame { /** * Locks the players programming cards in relation to the robots damage */ - private void updatePlayerLockedProgrammingCards() { + private void updateLockedProgrammingCardsForAllPlayers() { for (Player player : playerList) { List playerProgram = player.getProgram(); ProgrammingCardDeck playerDeck = player.getPlayerDeck(); ProgrammingCardDeck lockedPlayerDeck = player.getLockedPlayerDeck(); int robotDamage = gameBoard.getRobotDamage(player.getRobotID()); + //The player has no locked cards. All previously locked cards should go into the free deck if (robotDamage <= 4) { lockedPlayerDeck.emptyInto(player.getPlayerDeck()); - player.setLockedPlayerDeck(lockedPlayerDeck); continue; } - for (int i = 1; i <= (robotDamage-4); i++) { - ProgrammingCard card = playerProgram.get(playerProgram.size()-i); - - if (card.compareTo(playerDeck.peekTop()) == 0) { - lockedPlayerDeck.draw(playerDeck); - } else { - playerDeck.draw(playerDeck); - } + //Goes through locked cards and moves them to the locked player deck + for (int i = 1; i <= (robotDamage - 4); i++) { + ProgrammingCard card = playerProgram.get(playerProgram.size() - i); + moveProgrammingCardToLockedDeck(card, playerDeck, lockedPlayerDeck); } - player.setPlayerDeck(playerDeck); - player.setLockedPlayerDeck(lockedPlayerDeck); } } + /** + * Moves a card from the player's deck to the player's locked deck if found + * @param card The card to move to the locked deck + * @param playerDeck The deck containing the player's cards + * @param lockedPlayerDeck The deck containing the player's locked cards + */ + private void moveProgrammingCardToLockedDeck(ProgrammingCard card, ProgrammingCardDeck playerDeck, + ProgrammingCardDeck lockedPlayerDeck) { + for (int i = 0; i < playerDeck.size(); i++) { + if (card.equals(playerDeck.peekTop())) { + //Found the card. Add to the locked deck + lockedPlayerDeck.draw(playerDeck); + break; + } else { + //Move the card to the bottom of the deck + playerDeck.draw(playerDeck); + } + } + + } + /** * Moves non-locked player programming cards from their hand back to the main deck */ @@ -270,7 +274,7 @@ public class RoboRallyGame implements IDrawableGame { /** * Deals correct amount of cards to active players, based on their robots damage */ - public void distributeProgrammingCardsToPlayers() { + private void distributeProgrammingCardsToPlayers() { int robotDamage; ProgrammingCardDeck playerDeck; mainDeck.shuffle(); From cb9841ecf9167457dce7115985afb270baa64d49 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 22:30:51 +0200 Subject: [PATCH 70/92] Legger til manglende kommentarer for metoder krevd av kryo --- .../fiasko/roborally/objects/Player.java | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/Player.java b/src/main/java/inf112/fiasko/roborally/objects/Player.java index 6bac5d8..bd7583c 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/Player.java +++ b/src/main/java/inf112/fiasko/roborally/objects/Player.java @@ -6,9 +6,8 @@ import java.util.ArrayList; import java.util.List; /** - * This Class represents a player + * This class represents a player */ - public class Player { private RobotID robotID; private String name; @@ -26,14 +25,27 @@ public class Player { this.robotID = robotID; this.name = name; } + + /** + * Empty constructor required by kryo + */ public Player(){} - public void setRobotID(RobotID robotID){ - this.robotID=robotID; - } - public void setName(String name){ - this.name=name; + + /** + * Sets the robot id of the robot + * @param robotID The new id of the robot + */ + public void setRobotID(RobotID robotID) { + this.robotID = robotID; } + /** + * Sets the name of the robot + * @param name The new name of the robot + */ + public void setName(String name) { + this.name = name; + } /** * Gives you the RobotID of a player From f6aaf9c08a8bec1ded897bf3cd38b254fa1a6077 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 22:31:41 +0200 Subject: [PATCH 71/92] =?UTF-8?q?Inverterer=20metoden=20for=20=C3=A5=20god?= =?UTF-8?q?kjenne=20et=20brukernavn?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roborally/game_wrapper/screens/UsernameScreen.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java index 15fe992..83f9b1d 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java @@ -44,7 +44,7 @@ public class UsernameScreen extends AbstractScreen { @Override public void touchUp(InputEvent e, float x, float y, int point, int button) { String userName = textInput.getText(); - if (!validateName(userName)) { + if (nameInvalid(userName)) { return; } roboRallyWrapper.client.sendElement(userName); @@ -69,13 +69,13 @@ public class UsernameScreen extends AbstractScreen { } /** - * Validates the username set by the user + * Checks whether the username is invalid * @param userName The username the user wants - * @return True if the username can be used + * @return False if the username can be used */ - private boolean validateName(String userName) { + private boolean nameInvalid(String userName) { //TODO: Find a way to ask the server if the name is taken - return !userName.equals(""); + return userName.equals(""); } @Override From 696cf54aafcafdadfe77d38f366266f4144457e3 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 22:32:34 +0200 Subject: [PATCH 72/92] =?UTF-8?q?Legger=20til=20manglende=20kommentar=20fo?= =?UTF-8?q?r=20RoboRallyClientListener=20konstrukt=C3=B8r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fiasko/roborally/networking/RoboRallyClient.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java index a5eb22c..52dc749 100644 --- a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java +++ b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyClient.java @@ -47,10 +47,15 @@ public class RoboRallyClient { class RoboRallyClientListener extends Listener { private final RoboRallyWrapper wrapper; + /** + * Instantiates a new Robo Rally client listener + * @param wrapper The Robo Rally wrapper to interact with + */ RoboRallyClientListener(RoboRallyWrapper wrapper) { super(); this.wrapper = wrapper; } + @Override public void received (Connection connection, Object object) { if (object instanceof ErrorResponse) { @@ -58,7 +63,7 @@ class RoboRallyClientListener extends Listener { System.out.println(errorResponse.getErrorMessage()); } else if (object instanceof GameStartInfo) { GameStartInfo info = (GameStartInfo) object; - wrapper.roboRallyGame = new RoboRallyGame(info.getPlayerlist(), info.getBoardname(), + wrapper.roboRallyGame = new RoboRallyGame(info.getPlayerList(), info.getBoardName(), wrapper.server != null); } } From 93664473e0e2b6532fe7c8d0ddb905caa90821fb Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 22:33:14 +0200 Subject: [PATCH 73/92] =?UTF-8?q?Legger=20til=20manglende=20kommentarer=20?= =?UTF-8?q?for=20RoboRallyServer=20konstrukt=C3=B8r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inf112/fiasko/roborally/networking/RoboRallyServer.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java index 8c94ba2..ccb5a05 100644 --- a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java +++ b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java @@ -18,6 +18,10 @@ public class RoboRallyServer { private final Server server; private RoboRallyServerListener listener; + /** + * Instantiates a new Robo Rally server + * @throws IOException If the server cannot be started + */ public RoboRallyServer() throws IOException { server = new Server(); server.start(); From 1d2887af281801198dc9b1ac135faf90d73b12b4 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 22:37:44 +0200 Subject: [PATCH 74/92] =?UTF-8?q?Gj=C3=B8r=20en=20del=20kodeforbedringer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Genererer liste av repairtiles en gang for å øke effektivitet Fjerner linjer som ikke gjør noe Forenkler kode der det er mulig Legger til kommentarer inne i kodeblokker for å øke leselighet Forbedrer variabelnavn og metodenavn --- .../roborally/objects/RoboRallyGame.java | 60 +++++++++---------- 1 file changed, 28 insertions(+), 32 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index 843e38e..fb9f556 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -24,6 +24,7 @@ public class RoboRallyGame implements IDrawableGame { private List> cogwheels; private List> conveyorBelts; private List> fastConveyorBelts; + private List> repairTiles; private final List playerList; private final boolean host; private Deck mainDeck; @@ -161,6 +162,8 @@ public class RoboRallyGame implements IDrawableGame { TileType.CONVEYOR_BELT_SLOW_SIDE_ENTRANCE_RIGHT, TileType.CONVEYOR_BELT_SLOW_SIDE_ENTRANCE_LEFT, TileType.CONVEYOR_BELT_SLOW_SIDE_ENTRANCES)); + repairTiles = gameBoard.getPositionsOfTileOnBoard(TileType.FLAG_1, TileType.FLAG_2, TileType.FLAG_3, + TileType.FLAG_4, TileType.WRENCH, TileType.WRENCH_AND_HAMMER); } /** @@ -265,9 +268,7 @@ public class RoboRallyGame implements IDrawableGame { */ private void removeNonLockedProgrammingCardsFromPlayers() { for (Player player : playerList) { - ProgrammingCardDeck playerDeck = player.getPlayerDeck(); - playerDeck.emptyInto(mainDeck); - player.setPlayerDeck(playerDeck); + player.getPlayerDeck().emptyInto(mainDeck); } } @@ -275,23 +276,20 @@ public class RoboRallyGame implements IDrawableGame { * Deals correct amount of cards to active players, based on their robots damage */ private void distributeProgrammingCardsToPlayers() { - int robotDamage; - ProgrammingCardDeck playerDeck; mainDeck.shuffle(); - for (Player player : playerList) { RobotID robot = player.getRobotID(); - playerDeck = player.getPlayerDeck(); - if (gameBoard.getPowerDown(robot)) { + ProgrammingCardDeck playerDeck = player.getPlayerDeck(); + int robotDamage = gameBoard.getRobotDamage(robot); + //Powered down or heavily damaged robots don't get any cards + if (gameBoard.getPowerDown(robot) || robotDamage >= 9) { continue; } - robotDamage = gameBoard.getRobotDamage(robot); - if (robotDamage >= 9) { - continue; + if (!playerDeck.isEmpty()) { + throw new IllegalStateException("Player deck must be empty when dealing new cards!"); } - if (playerDeck.isEmpty()) { - playerDeck.draw(mainDeck,9-robotDamage); - } else throw new IllegalStateException("Player deck must be empty!"); + //Gives the player the correct amount of cards + playerDeck.draw(mainDeck,9 - robotDamage); } } @@ -301,7 +299,7 @@ public class RoboRallyGame implements IDrawableGame { * @throws InterruptedException If interrupted wile trying to sleep */ private void runPhase(int phaseNumber) throws InterruptedException { - runProgramCards(phaseNumber); + runProgrammingCards(phaseNumber); moveAllConveyorBelts(); rotateCogwheels(); @@ -484,7 +482,7 @@ public class RoboRallyGame implements IDrawableGame { * @param phase The number of the phase to run cards for * @throws InterruptedException If it gets interrupted while trying to sleep */ - private void runProgramCards(int phase) throws InterruptedException { + private void runProgrammingCards(int phase) throws InterruptedException { List robotsToDoAction = new ArrayList<>(); List programToBeRun = new ArrayList<>(); List originalPriority = new ArrayList<>(); @@ -508,19 +506,17 @@ public class RoboRallyGame implements IDrawableGame { /** * Respawn all the dead robots with more lives and places them on the game board */ - private void respawnRobots(){ + private void respawnRobots() { gameBoard.respawnRobots(); } /** * repair all robots standing on a repair tile */ - private void repairAllRobotsOnRepairTiles(){ - List> listOfRepareTiles = gameBoard.getPositionsOfTileOnBoard(TileType.FLAG_1, - TileType.FLAG_2, TileType.FLAG_3, TileType.FLAG_4, TileType.WRENCH, TileType.WRENCH_AND_HAMMER); - for (BoardElementContainer repareTile:listOfRepareTiles) { - Position robotOnTilePosition = repareTile.getPosition(); - if (!gameBoard.hasRobotOnPosition(robotOnTilePosition)){ + private void repairAllRobotsOnRepairTiles() { + for (BoardElementContainer repairTile : repairTiles) { + Position robotOnTilePosition = repairTile.getPosition(); + if (!gameBoard.hasRobotOnPosition(robotOnTilePosition)) { continue; } gameBoard.repairRobotOnTile(gameBoard.getRobotOnPosition(robotOnTilePosition)); @@ -528,21 +524,21 @@ public class RoboRallyGame implements IDrawableGame { } /** - * sets the robots powerdown status too the players powerdown next round status and sets the players status to false + * Sets the robot's power down status to the player's "power down next round" status and sets the players status to false */ - private void updateRobotPowerDown(){ - for (Player player:playerList) { - gameBoard.setPowerDown(player.getRobotID(),player.getPowerDownNextRound()); + private void updateRobotPowerDown() { + for (Player player : playerList) { + setRobotPowerDown(player, player.getPowerDownNextRound()); player.setPowerDownNextRound(false); } } /** - * sets the powerdown status of a robots - * @param player the player that owns the robot - * @param powerdownStatus the powerdown status + * Sets the power down status of a robot + * @param player The player that owns the robot + * @param powerDownStatus The new power down status */ - private void setRobotPowerDown(Player player,Boolean powerdownStatus){ - gameBoard.setPowerDown(player.getRobotID(),powerdownStatus); + private void setRobotPowerDown(Player player, Boolean powerDownStatus) { + gameBoard.setPowerDown(player.getRobotID(), powerDownStatus); } } \ No newline at end of file From 76c3a80da334d9112f904a342ee8fda2e85ec78a Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 22:41:05 +0200 Subject: [PATCH 75/92] Legger til manglende kommentarer for ScreenManager --- .../roborally/game_wrapper/ScreenManager.java | 40 +++++++++++++++---- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java index 4d058b0..563a9f1 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java @@ -15,9 +15,9 @@ public class ScreenManager { private LobbyScreen lobbyScreen; /** - * Gets an instance of the main menu screen - * @param roboRallyWrapper The robo rally launcher instance to use - * @return A main menu screen instance + * Gets an instance of the power down screen + * @param roboRallyWrapper The Robo Rally launcher instance to use + * @return A power down screen instance */ public synchronized PowerDownScreen getPowerDownScreen(RoboRallyWrapper roboRallyWrapper) { if (this.powerDownScreen == null) { @@ -25,6 +25,12 @@ public class ScreenManager { } return powerDownScreen; } + + /** + * Gets an instance of the lobby screen + * @param roboRallyWrapper The Robo Rally launcher instance to use + * @return A lobby screen instance + */ public synchronized LobbyScreen getLobbyScreen(RoboRallyWrapper roboRallyWrapper) { if (this.lobbyScreen == null) { this.lobbyScreen = new LobbyScreen(roboRallyWrapper); @@ -32,6 +38,11 @@ public class ScreenManager { return lobbyScreen; } + /** + * Gets an instance of the ip address screen + * @param roboRallyWrapper The Robo Rally launcher instance to use + * @return An ip address screen instance + */ public synchronized IPAddressScreen getIPAddressScreen(RoboRallyWrapper roboRallyWrapper) { if (this.ipAddressScreen == null) { this.ipAddressScreen = new IPAddressScreen(roboRallyWrapper); @@ -39,6 +50,11 @@ public class ScreenManager { return ipAddressScreen; } + /** + * Gets an instance of the username screen + * @param roboRallyWrapper The Robo Rally launcher instance to use + * @return A username screen instance + */ public synchronized UsernameScreen getUsernameScreen(RoboRallyWrapper roboRallyWrapper) { if (this.usernameScreen == null) { this.usernameScreen = new UsernameScreen(roboRallyWrapper); @@ -46,10 +62,20 @@ public class ScreenManager { return usernameScreen; } + /** + * Gets an instance of the start menu screen + * @param roboRallyWrapper The Robo Rally launcher instance to use + * @return A start menu screen instance + */ synchronized StartMenuScreen getStartMenuScreen(RoboRallyWrapper roboRallyWrapper) { return new StartMenuScreen(roboRallyWrapper); } + /** + * Gets an instance of the loading screen + * @param roboRallyWrapper The Robo Rally launcher instance to use + * @return A loading screen instance + */ public synchronized LoadingScreen getLoadingScreen(RoboRallyWrapper roboRallyWrapper) { if (this.loadingScreen == null) { this.loadingScreen = new LoadingScreen(roboRallyWrapper); @@ -59,7 +85,7 @@ public class ScreenManager { /** * Gets an instance of the board active screen - * @param roboRallyWrapper The robo rally launcher instance to use + * @param roboRallyWrapper The Robo Rally launcher instance to use * @return A board active screen instance */ public synchronized BoardActiveScreen getBoardActiveScreen(RoboRallyWrapper roboRallyWrapper) { @@ -70,9 +96,9 @@ public class ScreenManager { } /** - * Gets an instance of the board active screen - * @param roboRallyWrapper The robo rally launcher instance to use - * @return A board active screen instance + * Gets an instance of the card choice screen + * @param roboRallyWrapper The Robo Rally launcher instance to use + * @return A card choice screen instance */ public synchronized CardChoiceScreen getCardChoiceScreen(RoboRallyWrapper roboRallyWrapper) { if (this.cardChoiceScreen == null) { From 41a9647fa229f3c98b323fd93fdccdc05cb125d8 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 22:48:27 +0200 Subject: [PATCH 76/92] Legger til manglende kommentarer --- .../fiasko/roborally/utility/BoardLoaderUtil.java | 2 +- .../java/inf112/fiasko/roborally/utility/IOUtil.java | 10 +++++++++- .../inf112/fiasko/roborally/utility/NetworkUtil.java | 3 +++ .../inf112/fiasko/roborally/utility/ResourceUtil.java | 3 +++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/utility/BoardLoaderUtil.java b/src/main/java/inf112/fiasko/roborally/utility/BoardLoaderUtil.java index af34d36..75f3377 100644 --- a/src/main/java/inf112/fiasko/roborally/utility/BoardLoaderUtil.java +++ b/src/main/java/inf112/fiasko/roborally/utility/BoardLoaderUtil.java @@ -14,7 +14,7 @@ import java.io.*; import java.util.List; /** - * Loads a board + * This class helps loading boards */ public final class BoardLoaderUtil { private BoardLoaderUtil() {} diff --git a/src/main/java/inf112/fiasko/roborally/utility/IOUtil.java b/src/main/java/inf112/fiasko/roborally/utility/IOUtil.java index f17f5d8..013f97f 100644 --- a/src/main/java/inf112/fiasko/roborally/utility/IOUtil.java +++ b/src/main/java/inf112/fiasko/roborally/utility/IOUtil.java @@ -10,10 +10,18 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +/** + * This class helps with tasks which mix primitive classes and classes from external libraries + */ public final class IOUtil { private IOUtil() {} - + /** + * Generates a list of players from a map of player names and a map of robot ids + * @param playerNames A map between connections and player names + * @param robotIDs A map between connections and robot ids + * @return A list of players + */ public static List playerGenerator(Map playerNames, Map robotIDs) { List playerList = new ArrayList<>(); for (Connection connection: playerNames.keySet()) { diff --git a/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java b/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java index 2d74663..8561507 100644 --- a/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java +++ b/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java @@ -10,6 +10,9 @@ import inf112.fiasko.roborally.objects.ProgrammingCard; import java.util.ArrayList; +/** + * This class helps with networking tasks + */ public final class NetworkUtil { /** diff --git a/src/main/java/inf112/fiasko/roborally/utility/ResourceUtil.java b/src/main/java/inf112/fiasko/roborally/utility/ResourceUtil.java index b4b6148..5e5a32c 100644 --- a/src/main/java/inf112/fiasko/roborally/utility/ResourceUtil.java +++ b/src/main/java/inf112/fiasko/roborally/utility/ResourceUtil.java @@ -2,6 +2,9 @@ package inf112.fiasko.roborally.utility; import java.io.InputStream; +/** + * This class helps with tasks related to resource loading + */ public final class ResourceUtil { private ResourceUtil() {} From c163d7d707e6c88c5ae9319f71cda9fee3a89926 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 22:50:03 +0200 Subject: [PATCH 77/92] =?UTF-8?q?Forbedrer=20kodestil=20og=20fjerner=20en?= =?UTF-8?q?=20un=C3=B8dvendig=20metode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fiasko/roborally/game_wrapper/RoboRallyWrapper.java | 5 ----- src/main/java/inf112/fiasko/roborally/objects/Robot.java | 6 ++++-- src/main/java/inf112/fiasko/roborally/objects/Wall.java | 3 +-- .../inf112/fiasko/roborally/objects/DrawableObjectTest.java | 6 ++++-- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java index 7033e9d..1e6d07c 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/RoboRallyWrapper.java @@ -27,9 +27,4 @@ public class RoboRallyWrapper extends Game { public void dispose() { batch.dispose(); } - - @Override - public void render() { - super.render(); //important! - } } diff --git a/src/main/java/inf112/fiasko/roborally/objects/Robot.java b/src/main/java/inf112/fiasko/roborally/objects/Robot.java index 4a71554..16e1fac 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/Robot.java +++ b/src/main/java/inf112/fiasko/roborally/objects/Robot.java @@ -73,7 +73,7 @@ public class Robot { * Gets the robot's power-down status * @return Whether the robot is currently in power-down */ - public Boolean isInPowerDown(){ + public Boolean isInPowerDown() { return inPowerDown; } @@ -144,7 +144,9 @@ public class Robot { * Gets the amount of life a robot has left. * @return amount of life left */ - public int getAmountOfLives() { return this.amountOfLives; } + public int getAmountOfLives() { + return this.amountOfLives; + } /** * Makes a copy of this robot with the same properties as this robot diff --git a/src/main/java/inf112/fiasko/roborally/objects/Wall.java b/src/main/java/inf112/fiasko/roborally/objects/Wall.java index cbe3ab5..190fae0 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/Wall.java +++ b/src/main/java/inf112/fiasko/roborally/objects/Wall.java @@ -7,7 +7,6 @@ import inf112.fiasko.roborally.element_properties.WallType; * This class represents a wall */ public class Wall { - private final WallType wallType; private final Direction direction; @@ -36,7 +35,7 @@ public class Wall { * Gets the direction of the wall * @return The direction of the wall */ - public Direction getDirection(){ + public Direction getDirection() { return direction; } } diff --git a/src/test/java/inf112/fiasko/roborally/objects/DrawableObjectTest.java b/src/test/java/inf112/fiasko/roborally/objects/DrawableObjectTest.java index 7d341c9..0dffede 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/DrawableObjectTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/DrawableObjectTest.java @@ -17,8 +17,10 @@ public class DrawableObjectTest { private static final Texture textureSheet = new Texture(Gdx.files.internal("assets/tiles.png")); private static final Texture robotsTexture = new Texture(Gdx.files.internal("assets/robots.png")); - public static final TextureRegion TEXTURE_MIN_ARG = new TextureRegion(textureSheet, 4*300, 0, 300, 300); - public static final TextureRegion TEXTURE_MAX_ARG = new TextureRegion(robotsTexture, 0, 0, 64, 64); + private static final TextureRegion TEXTURE_MIN_ARG = new TextureRegion(textureSheet, 4 * 300, 0, + 300, 300); + public static final TextureRegion TEXTURE_MAX_ARG = new TextureRegion(robotsTexture, 0, 0, + 64, 64); public static final int X_POSITION_MIN_ARG = 5; public static final int Y_POSITION_MIN_ARG = 8; public static final int X_POSITION_MAX_ARG = 6; From 24b8f4812ba2944cedda03c8a12e86c31caea936 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 23:00:36 +0200 Subject: [PATCH 78/92] Forbedrer importeringer og scoping --- .../fiasko/roborally/game_wrapper/ScreenManager.java | 12 ++++++++++-- .../game_wrapper/screens/AbstractScreen.java | 4 ++-- .../game_wrapper/screens/CardChoiceScreen.java | 10 ++++++---- .../game_wrapper/screens/UsernameScreen.java | 2 +- .../fiasko/roborally/networking/RoboRallyServer.java | 4 ++-- .../java/inf112/fiasko/roborally/utility/IOUtil.java | 9 ++++++++- .../fiasko/roborally/objects/DrawableObjectTest.java | 1 - 7 files changed, 29 insertions(+), 13 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java index 563a9f1..42e29a8 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/ScreenManager.java @@ -1,6 +1,14 @@ package inf112.fiasko.roborally.game_wrapper; -import inf112.fiasko.roborally.game_wrapper.screens.*; + +import inf112.fiasko.roborally.game_wrapper.screens.BoardActiveScreen; +import inf112.fiasko.roborally.game_wrapper.screens.CardChoiceScreen; +import inf112.fiasko.roborally.game_wrapper.screens.LoadingScreen; +import inf112.fiasko.roborally.game_wrapper.screens.PowerDownScreen; +import inf112.fiasko.roborally.game_wrapper.screens.UsernameScreen; +import inf112.fiasko.roborally.game_wrapper.screens.IPAddressScreen; +import inf112.fiasko.roborally.game_wrapper.screens.LobbyScreen; +import inf112.fiasko.roborally.game_wrapper.screens.StartMenuScreen; /** * Keeps track of screen instances @@ -67,7 +75,7 @@ public class ScreenManager { * @param roboRallyWrapper The Robo Rally launcher instance to use * @return A start menu screen instance */ - synchronized StartMenuScreen getStartMenuScreen(RoboRallyWrapper roboRallyWrapper) { + public synchronized StartMenuScreen getStartMenuScreen(RoboRallyWrapper roboRallyWrapper) { return new StartMenuScreen(roboRallyWrapper); } diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/AbstractScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/AbstractScreen.java index b11db14..729fe0a 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/AbstractScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/AbstractScreen.java @@ -6,8 +6,8 @@ import com.badlogic.gdx.Screen; * This class overrides methods of screens which are often unused */ public abstract class AbstractScreen implements Screen { - final int applicationWidth = 600; - final int applicationHeight = 800; + protected final int applicationWidth = 600; + protected final int applicationHeight = 800; @Override public void show() { diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/CardChoiceScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/CardChoiceScreen.java index 70f7325..d8595a3 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/CardChoiceScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/CardChoiceScreen.java @@ -9,7 +9,9 @@ import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.g2d.GlyphLayout; import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.math.Vector3; -import com.badlogic.gdx.scenes.scene2d.*; +import com.badlogic.gdx.scenes.scene2d.Stage; +import com.badlogic.gdx.scenes.scene2d.InputListener; +import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; @@ -239,9 +241,9 @@ public class CardChoiceScreen extends InputAdapter implements Screen { * A helper class for keeping track of card information and a rectangle */ class CardRectangle { - final Rectangle rectangle; - final ProgrammingCard card; - boolean selected = false; + protected final Rectangle rectangle; + protected final ProgrammingCard card; + protected boolean selected = false; /** * Instantiates a new card rectangle diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java index 83f9b1d..faf952a 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java @@ -75,7 +75,7 @@ public class UsernameScreen extends AbstractScreen { */ private boolean nameInvalid(String userName) { //TODO: Find a way to ask the server if the name is taken - return userName.equals(""); + return "".equals(userName); } @Override diff --git a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java index ccb5a05..43323e4 100644 --- a/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java +++ b/src/main/java/inf112/fiasko/roborally/networking/RoboRallyServer.java @@ -76,7 +76,7 @@ class RoboRallyServerListener extends Listener { * Gets a map between connections and their player name * @return A mapping between connections and robot ids */ - Map getPlayerNames() { + public Map getPlayerNames() { return playerNames; } @@ -84,7 +84,7 @@ class RoboRallyServerListener extends Listener { * Gets a map between connections and their robot id * @return A mapping between connections and robot ids */ - Map getRobotID() { + public Map getRobotID() { return clients; } diff --git a/src/main/java/inf112/fiasko/roborally/utility/IOUtil.java b/src/main/java/inf112/fiasko/roborally/utility/IOUtil.java index 013f97f..59c04e2 100644 --- a/src/main/java/inf112/fiasko/roborally/utility/IOUtil.java +++ b/src/main/java/inf112/fiasko/roborally/utility/IOUtil.java @@ -4,7 +4,14 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion; import inf112.fiasko.roborally.element_properties.Direction; import inf112.fiasko.roborally.element_properties.Position; import inf112.fiasko.roborally.element_properties.RobotID; -import inf112.fiasko.roborally.objects.*; +import inf112.fiasko.roborally.objects.Player; +import inf112.fiasko.roborally.objects.IDrawableObject; +import inf112.fiasko.roborally.objects.Tile; +import inf112.fiasko.roborally.objects.IDrawableGame; +import inf112.fiasko.roborally.objects.Wall; +import inf112.fiasko.roborally.objects.Particle; +import inf112.fiasko.roborally.objects.Robot; +import inf112.fiasko.roborally.objects.DrawableObject; import com.esotericsoftware.kryonet.Connection; import java.util.ArrayList; import java.util.List; diff --git a/src/test/java/inf112/fiasko/roborally/objects/DrawableObjectTest.java b/src/test/java/inf112/fiasko/roborally/objects/DrawableObjectTest.java index 0dffede..0bc560a 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/DrawableObjectTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/DrawableObjectTest.java @@ -70,7 +70,6 @@ public class DrawableObjectTest { assertEquals(Y_POSITION_MAX_ARG, drawableObjectMaximumArguments.getYPosition()); } - @Test public void getWidthMinArg() { assertEquals(64, drawableObjectMinimumArguments.getWidth()); From 81e43c65a75827797cfa0237303b8b3f6d54325d Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 7 Apr 2020 23:26:17 +0200 Subject: [PATCH 79/92] Lar libgdx ta seg av avslutting av spillet --- .../roborally/game_wrapper/screens/StartMenuScreen.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java index 7d8b561..b12e02b 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java @@ -47,12 +47,13 @@ public class StartMenuScreen extends AbstractScreen { public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { try { roboRallyWrapper.server = new RoboRallyServer(); - roboRallyWrapper.client = new RoboRallyClient("127.0.0.1",roboRallyWrapper); + roboRallyWrapper.client = new RoboRallyClient("127.0.0.1", roboRallyWrapper); roboRallyWrapper.setScreen(roboRallyWrapper.screenManager.getUsernameScreen(roboRallyWrapper)); } catch (IOException e) { e.printStackTrace(); //Hard fail - System.exit(1); + Gdx.app.error("Server error", "Server could not be started"); + Gdx.app.exit(); } return true; } @@ -80,7 +81,7 @@ public class StartMenuScreen extends AbstractScreen { quitButton.addListener(new InputListener() { @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { - System.exit(0); + Gdx.app.exit(); return true; } }); From 4a32278a547cead5454ddc416abd634ca62c4fc4 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Wed, 8 Apr 2020 02:34:12 +0200 Subject: [PATCH 80/92] centrert knapper og text --- .../roborally/game_wrapper/screens/IPAddressScreen.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/IPAddressScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/IPAddressScreen.java index eda1a76..fbc8269 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/IPAddressScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/IPAddressScreen.java @@ -39,7 +39,7 @@ public class IPAddressScreen extends AbstractScreen { Skin skin = new Skin(Gdx.files.internal("uiskin.json")); TextButton joinButton = new TextButton("Join", skin); joinButton.setSize(300,60); - joinButton.setPosition(300,300); + joinButton.setPosition(applicationWidth/2f -joinButton.getWidth()/2f,300); joinButton.addListener(new ClickListener() { @Override public boolean touchDown(InputEvent e, float x, float y, int point, int button) { @@ -59,7 +59,7 @@ public class IPAddressScreen extends AbstractScreen { } }); txtinput = new TextField("", skin); - txtinput.setPosition(300,250); + txtinput.setPosition(applicationWidth/2f -txtinput.getWidth()/2f,250); txtinput.setSize(150,40); stage.addActor(txtinput); stage.addActor(joinButton); From d173ec4284f5d4a76f0cff71750f2484cdc03c33 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Wed, 8 Apr 2020 02:34:32 +0200 Subject: [PATCH 81/92] fixer knapper --- .../roborally/game_wrapper/screens/StartMenuScreen.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java index b12e02b..a98b7ef 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/StartMenuScreen.java @@ -38,10 +38,8 @@ public class StartMenuScreen extends AbstractScreen { TextButton serverButton = new SimpleButton("Create", roboRallyWrapper.font).getButton(); stage.addActor(serverButton); serverButton.setY(applicationHeight / 2f); - serverButton.setX(applicationWidth / 2f); this.roboRallyWrapper = roboRallyWrapper; camera.setToOrtho(false, applicationWidth, applicationHeight); - serverButton.addListener(new InputListener() { @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { @@ -62,7 +60,6 @@ public class StartMenuScreen extends AbstractScreen { TextButton clientButton = new SimpleButton("Join", roboRallyWrapper.font).getButton(); stage.addActor(clientButton); clientButton.setY(applicationHeight / 2f); - clientButton.setX(applicationWidth / 2f + serverButton.getWidth() + 20); camera.setToOrtho(false, applicationWidth, applicationHeight); Gdx.input.setInputProcessor(stage); clientButton.addListener(new InputListener() { @@ -76,7 +73,6 @@ public class StartMenuScreen extends AbstractScreen { TextButton quitButton = new SimpleButton("Quit", roboRallyWrapper.font).getButton(); stage.addActor(quitButton); quitButton.setY(applicationHeight / 2f); - quitButton.setX(applicationWidth / 2f + serverButton.getWidth() + 40 + clientButton.getWidth()); camera.setToOrtho(false, applicationWidth, applicationHeight); quitButton.addListener(new InputListener() { @Override @@ -85,6 +81,10 @@ public class StartMenuScreen extends AbstractScreen { return true; } }); + 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 From 42275703b05baa9ba85e7598b3791880f2d6602c Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Wed, 8 Apr 2020 02:34:46 +0200 Subject: [PATCH 82/92] fixer username input --- .../fiasko/roborally/game_wrapper/screens/UsernameScreen.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java index faf952a..aa8ca11 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/UsernameScreen.java @@ -34,7 +34,7 @@ public class UsernameScreen extends AbstractScreen { Skin skin = new Skin(Gdx.files.internal("uiskin.json")); TextButton confirm = new TextButton("Confirm", skin); confirm.setSize(300,60); - confirm.setPosition(300,300); + confirm.setPosition(applicationWidth/2f - confirm.getWidth()/2,300); confirm.addListener(new ClickListener() { @Override public boolean touchDown(InputEvent e, float x, float y, int point, int button) { @@ -56,7 +56,7 @@ public class UsernameScreen extends AbstractScreen { } }); textInput = new TextField("",skin); - textInput.setPosition(300,250); + textInput.setPosition(applicationWidth/2f - textInput.getWidth()/2,250); textInput.setSize(150,40); stage.addActor(textInput); stage.addActor(confirm); From 1f50fe67bf4b4eec15aad78bb55d530914b8b6a9 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Wed, 8 Apr 2020 02:35:01 +0200 Subject: [PATCH 83/92] fixet start knapp --- .../fiasko/roborally/game_wrapper/screens/LobbyScreen.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LobbyScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LobbyScreen.java index cead454..b13c8ad 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LobbyScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/LobbyScreen.java @@ -37,8 +37,8 @@ public class LobbyScreen extends AbstractScreen { stage = new Stage(); TextButton startGameButton= new SimpleButton("Start", roboRallyWrapper.font).getButton(); stage.addActor(startGameButton); - startGameButton.setY(applicationHeight / 2f); - startGameButton.setX(applicationWidth / 2f + startGameButton.getWidth() / 4f); + startGameButton.setY(applicationHeight / 2f-50 ); + startGameButton.setX(applicationWidth / 2f - startGameButton.getWidth() / 2f); this.roboRallyWrapper = roboRallyWrapper; camera.setToOrtho(false, applicationWidth, applicationHeight); startGameButton.addListener(new InputListener() { From 6ffe97efabeb24fedf8399190eb70e5abf47fa09 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Wed, 8 Apr 2020 03:13:05 +0200 Subject: [PATCH 84/92] added some classes to kro register --- src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java b/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java index 8561507..eaeda3b 100644 --- a/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java +++ b/src/main/java/inf112/fiasko/roborally/utility/NetworkUtil.java @@ -7,6 +7,7 @@ import inf112.fiasko.roborally.networking.containers.GameStartInfo; import inf112.fiasko.roborally.objects.IDeck; import inf112.fiasko.roborally.objects.Player; import inf112.fiasko.roborally.objects.ProgrammingCard; +import inf112.fiasko.roborally.objects.ProgrammingCardDeck; import java.util.ArrayList; @@ -27,5 +28,6 @@ public final class NetworkUtil { kryo.register(ArrayList.class); kryo.register(Player.class); kryo.register(RobotID.class); + kryo.register(ProgrammingCardDeck.class); } } From 8d31dc3a84d71049f22f715f953a9448815b4150 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Wed, 8 Apr 2020 03:14:39 +0200 Subject: [PATCH 85/92] added no args[] construktor --- .../inf112/fiasko/roborally/objects/ProgrammingCardDeck.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/inf112/fiasko/roborally/objects/ProgrammingCardDeck.java b/src/main/java/inf112/fiasko/roborally/objects/ProgrammingCardDeck.java index 00ef479..5b61039 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/ProgrammingCardDeck.java +++ b/src/main/java/inf112/fiasko/roborally/objects/ProgrammingCardDeck.java @@ -14,4 +14,5 @@ public class ProgrammingCardDeck extends Deck { public ProgrammingCardDeck(List cardList) { super(cardList); } + public ProgrammingCardDeck(){} } From 5424af57c3b4ddcf0d7aeda850f2ee8f98486fda Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Wed, 8 Apr 2020 03:15:20 +0200 Subject: [PATCH 86/92] added a new arraylist to constuktor --- src/main/java/inf112/fiasko/roborally/objects/Deck.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/objects/Deck.java b/src/main/java/inf112/fiasko/roborally/objects/Deck.java index 4d0b8dc..54e96c5 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/Deck.java +++ b/src/main/java/inf112/fiasko/roborally/objects/Deck.java @@ -10,6 +10,9 @@ import java.util.Random; public abstract class Deck implements IDeck { private final List cardList; + public Deck (){ + this.cardList=new ArrayList<>(); + } /** * Initializes the deck with cards * @param cardList list of cards From 1bac54b062638196f9e28e00af525c581e5d2202 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Wed, 8 Apr 2020 03:16:18 +0200 Subject: [PATCH 87/92] added a new arraylist to constuktor --- src/main/java/inf112/fiasko/roborally/objects/Player.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/inf112/fiasko/roborally/objects/Player.java b/src/main/java/inf112/fiasko/roborally/objects/Player.java index bd7583c..1a85127 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/Player.java +++ b/src/main/java/inf112/fiasko/roborally/objects/Player.java @@ -22,6 +22,7 @@ public class Player { * @param name the unique name of the player */ public Player(RobotID robotID, String name) { + this.playerDeck = new ProgrammingCardDeck(new ArrayList<>()); this.robotID = robotID; this.name = name; } From 9f843b8db6ee83eb9734163dadfdbe91730e757c Mon Sep 17 00:00:00 2001 From: torlunjen Date: Thu, 9 Apr 2020 19:56:33 +0200 Subject: [PATCH 88/92] Update Robot.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Legger til felt for sjekk om en robot har besøkt et flagg i løpet av runden eller ikke. Co-Authored-By: gabrielmagnus --- .../inf112/fiasko/roborally/objects/Robot.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/objects/Robot.java b/src/main/java/inf112/fiasko/roborally/objects/Robot.java index 16e1fac..4082beb 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/Robot.java +++ b/src/main/java/inf112/fiasko/roborally/objects/Robot.java @@ -16,6 +16,7 @@ public class Robot { private Position backupPosition; private Position currentPosition; private Direction facingDirection; + private boolean hasTouchedFlagThisTurn = false; /** * Instantiates a new robot @@ -29,6 +30,23 @@ public class Robot { this.facingDirection = Direction.NORTH; } + /** + * True if the robot has touched a flag in the current turn + * @return a boolean + */ + public boolean isHasTouchedFlagThisTurn() { + return hasTouchedFlagThisTurn; + } + + /** + * Sets the boolean value to true if the robot touches a flag during a turn, + * and false at the end of each turn. + * @param hasTouchedFlagThisTurn the boolean value to be set. + */ + public void setHasTouchedFlagThisTurn(boolean hasTouchedFlagThisTurn) { + this.hasTouchedFlagThisTurn = hasTouchedFlagThisTurn; + } + /** * Gets the damage the robot has taken * @return The amount of damage the robot has received From af1daebd151649e9970466c5e40cb69b47547017 Mon Sep 17 00:00:00 2001 From: torlunjen Date: Thu, 9 Apr 2020 19:57:29 +0200 Subject: [PATCH 89/92] Update RoboRallyGame.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Legger til funksjonalitet for at en robot bare kan registrere besøk på ett flagg hver runde. Co-Authored-By: gabrielmagnus --- .../roborally/objects/RoboRallyGame.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index fb9f556..8166c48 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -216,6 +216,16 @@ public class RoboRallyGame implements IDrawableGame { // TODO: If this player is in power down, ask if it shall continue // Respawn dead robots, as long as they have more lives left respawnRobots(); + resetHasTouchedFlagThisTurnForAllRobots(); + } + + /** + * Resets the boolean for if the robot has touched a flag this turn, to set up the next turn. + */ + private void resetHasTouchedFlagThisTurnForAllRobots() { + for (Robot robot : gameBoard.getAliveRobots()) { + robot.setHasTouchedFlagThisTurn(false); + } } /** @@ -462,8 +472,14 @@ public class RoboRallyGame implements IDrawableGame { for (BoardElementContainer flag:listOfFlags) { Position flagPosition = flag.getPosition(); if (gameBoard.hasRobotOnPosition(flagPosition)) { - RobotID robot = gameBoard.getRobotOnPosition(flagPosition); - gameBoard.updateFlagOnRobot(robot, flag.getElement().getTileType()); + RobotID robotID = gameBoard.getRobotOnPosition(flagPosition); + for (Robot robot : gameBoard.getAliveRobots()) { + if (robot.getRobotId() != robotID || robot.isHasTouchedFlagThisTurn()) { + continue; + } + gameBoard.updateFlagOnRobot(robotID, flag.getElement().getTileType()); + robot.setHasTouchedFlagThisTurn(true); + } } } } From a1e3a80a68dc3b8a475136fe24520ad45be82657 Mon Sep 17 00:00:00 2001 From: torlunjen Date: Thu, 9 Apr 2020 20:39:04 +0200 Subject: [PATCH 90/92] Update RoboRallyGame.java Laget victory check og finner vinneren Co-Authored-By: gabrielmagnus --- .../fiasko/roborally/objects/RoboRallyGame.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index 8166c48..b270e33 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -5,6 +5,7 @@ import inf112.fiasko.roborally.element_properties.Direction; import inf112.fiasko.roborally.element_properties.Position; import inf112.fiasko.roborally.element_properties.RobotID; import inf112.fiasko.roborally.element_properties.TileType; +import inf112.fiasko.roborally.game_wrapper.screens.StartMenuScreen; import inf112.fiasko.roborally.utility.BoardLoaderUtil; import inf112.fiasko.roborally.utility.DeckLoaderUtil; @@ -316,6 +317,7 @@ public class RoboRallyGame implements IDrawableGame { fireAllLasers(); checkAllFlags(); + } /** @@ -479,11 +481,24 @@ public class RoboRallyGame implements IDrawableGame { } gameBoard.updateFlagOnRobot(robotID, flag.getElement().getTileType()); robot.setHasTouchedFlagThisTurn(true); + if (victoryCheck(robot.getLastFlagVisited(), listOfFlags.size())) { + Player winningPlayer; + for (Player player : playerList) { + if (player.getRobotID() != robotID) { + continue; + } + winningPlayer = player; + } + //TODO: Make win screen announcing the winning player + } } } } } + private boolean victoryCheck(int lastFlagVisited, int lastFlag) { + return (lastFlagVisited == lastFlag); + } /** * Fires all lasers on the game board */ From af85c1d64e2f5c7fefb0aa5fa98eb4011be6213c Mon Sep 17 00:00:00 2001 From: torlunjen Date: Thu, 9 Apr 2020 20:42:43 +0200 Subject: [PATCH 91/92] Optimized imports Co-Authored-By: gabrielmagnus --- src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index b270e33..42672e7 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -5,7 +5,6 @@ import inf112.fiasko.roborally.element_properties.Direction; import inf112.fiasko.roborally.element_properties.Position; import inf112.fiasko.roborally.element_properties.RobotID; import inf112.fiasko.roborally.element_properties.TileType; -import inf112.fiasko.roborally.game_wrapper.screens.StartMenuScreen; import inf112.fiasko.roborally.utility.BoardLoaderUtil; import inf112.fiasko.roborally.utility.DeckLoaderUtil; From 87124b93c00663111c1d0d5eaf9ba5e756834549 Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Tue, 14 Apr 2020 00:55:04 +0200 Subject: [PATCH 92/92] fixed powerdown button --- .../roborally/game_wrapper/screens/PowerDownScreen.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/PowerDownScreen.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/PowerDownScreen.java index 6a4d2a9..4401324 100644 --- a/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/PowerDownScreen.java +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/screens/PowerDownScreen.java @@ -34,8 +34,8 @@ public class PowerDownScreen extends AbstractScreen { stage.setViewport(viewport); TextButton powerDownButton = new SimpleButton("PowerDown", roboRallyWrapper.font).getButton(); stage.addActor(powerDownButton); - powerDownButton.setY(applicationHeight / 2f); - powerDownButton.setX(applicationWidth / 2f + powerDownButton.getWidth() / 4f); + powerDownButton.setY(applicationHeight / 2f-50); + powerDownButton.setX(applicationWidth / 2f - powerDownButton.getWidth() / 2f); this.roboRallyWrapper = roboRallyWrapper; camera.setToOrtho(false, applicationWidth, applicationHeight); startTime = System.currentTimeMillis();