diff --git a/core/src/netwerkprog/game/client/MainGame.java b/core/src/netwerkprog/game/client/MainGame.java index 5702bf6..43cd3f4 100644 --- a/core/src/netwerkprog/game/client/MainGame.java +++ b/core/src/netwerkprog/game/client/MainGame.java @@ -17,6 +17,7 @@ import netwerkprog.game.client.game.GAMESTATE; import netwerkprog.game.client.game.characters.Hacker; import netwerkprog.game.client.game.characters.Team; import netwerkprog.game.client.game.characters.abilities.BodySwap; +import netwerkprog.game.client.game.map.GameTile; import netwerkprog.game.client.game.map.Map; import netwerkprog.game.client.game.map.MapRenderer; import netwerkprog.game.client.game.map.GameInputProcessor; @@ -25,6 +26,8 @@ import netwerkprog.game.util.game.GameCharacter; import netwerkprog.game.util.graphics.FrameRate; import netwerkprog.game.util.graphics.TextRenderer; +import java.awt.*; + public class MainGame extends ApplicationAdapter { SpriteBatch batch; float screenWidth; @@ -113,11 +116,11 @@ public class MainGame extends ApplicationAdapter { TextureRegion[][] characters = TextureRegion.split(texture, 32, 32); this.testCharacter = new Hacker("harryyyyyyyyyy", characters[1][0], new BodySwap("test")); GameCharacter character2 = new Hacker("test2", characters[2][0], new BodySwap("test")); - this.setSelectedCharacter(testCharacter); mapRenderer.getGameTiles()[1][1].visit(testCharacter); mapRenderer.getGameTiles()[1][2].visit(character2); this.team = new Team(); this.team.addMember(this.testCharacter, character2); + this.setSelectedCharacter(testCharacter); } @@ -156,7 +159,7 @@ public class MainGame extends ApplicationAdapter { frameRate.render(); renderText(); } else if (this.gamestate == GAMESTATE.SELECTING_FACTION) { - renderString("FACTION SELECT\nPress 1 for mega corporation, press 2 for hackers",Gdx.graphics.getWidth()/2f,Gdx.graphics.getHeight()/2f); + renderString("FACTION SELECT\nPress 1 for mega corporation, press 2 for hackers", Gdx.graphics.getWidth() / 2f, Gdx.graphics.getHeight() / 2f); } } @@ -176,7 +179,7 @@ public class MainGame extends ApplicationAdapter { private void renderString(String text, float x, float y) { layout.setText(font, text); - textRenderer.render(text, x - layout.width/2f, x - layout.height/2f); + textRenderer.render(text, x - layout.width / 2f, x - layout.height / 2f); } /** @@ -227,7 +230,9 @@ public class MainGame extends ApplicationAdapter { public void setSelectedCharacter(GameCharacter character) { this.selectedCharacter = character; - System.out.println("selected character set to : " + character); + GameTile characterTile = mapRenderer.getTile(character); + Point pos = mapRenderer.getPos(characterTile); + mapRenderer.setSurroundedTilesOfCurrentCharacter(pos.x, pos.y); } public GAMESTATE getGamestate() { diff --git a/core/src/netwerkprog/game/client/game/map/GameInputProcessor.java b/core/src/netwerkprog/game/client/game/map/GameInputProcessor.java index 58954d6..d86a0e7 100644 --- a/core/src/netwerkprog/game/client/game/map/GameInputProcessor.java +++ b/core/src/netwerkprog/game/client/game/map/GameInputProcessor.java @@ -149,7 +149,7 @@ public class GameInputProcessor implements InputProcessor { // System.out.println(gameTile + " row: " + row + ", col: " + col); if (mainGame.hasCharacterSelected() && !gameTile.containsCharacter()) { // System.out.println(mainGame.getSelectedCharacter()); - if (gameTile.getSymbol() != '#') { + if (gameTile.getSymbol() != '#' && mainGame.mapRenderer.getSurroundedTilesOfCurrentCharacter().contains(gameTile)) { removeCharacterFromTile(mainGame.getSelectedCharacter()); gameTile.visit(mainGame.getSelectedCharacter()); mainGame.mapRenderer.setSurroundedTilesOfCurrentCharacter(col,row); diff --git a/core/src/netwerkprog/game/client/game/map/MapRenderer.java b/core/src/netwerkprog/game/client/game/map/MapRenderer.java index 0d818b9..9c84a8e 100644 --- a/core/src/netwerkprog/game/client/game/map/MapRenderer.java +++ b/core/src/netwerkprog/game/client/game/map/MapRenderer.java @@ -11,6 +11,7 @@ import netwerkprog.game.util.game.GameCharacter; import netwerkprog.game.util.graphics.Renderable; import com.badlogic.gdx.graphics.g2d.TextureRegion; +import java.awt.*; import java.util.ArrayList; import java.util.List; @@ -152,19 +153,28 @@ public class MapRenderer implements Renderable { return res; } + public GameTile getTile(GameCharacter character) { + for (GameTile[] tiles : this.gameTiles) { + for (GameTile tile : tiles) { + if (tile.containsCharacter()) + if (tile.getCharacter().equals(character)) { + return tile; + } + } + } + return null; + } - public int getPos(GameTile tile, String choice) { + + public Point getPos(GameTile tile) { for (int row = 0; row < this.gameTiles.length; row++) { for (int col = 0; col < this.gameTiles[0].length; col++) { if (gameTiles[row][col].equals(tile)) { - if (choice.toLowerCase().equals("row")) - return row; - else if (choice.toLowerCase().equals("col")) - return col; + return new Point(col, row); } } } - return -1; + return new Point(-1, -1); } @Override