merge Character tile into master #7

Merged
SemvdH merged 10 commits from character-tile into master 2020-05-27 21:15:51 +00:00
5 changed files with 33 additions and 25 deletions
Showing only changes of commit cc4297d86d - Show all commits

View File

@@ -10,12 +10,8 @@ import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.g2d.TextureRegion;
import netwerkprog.game.client.game.characters.Agent;
import netwerkprog.game.client.game.characters.Hacker; import netwerkprog.game.client.game.characters.Hacker;
import netwerkprog.game.client.game.characters.SelectedCharacter;
import netwerkprog.game.client.game.characters.abilities.BodySwap; import netwerkprog.game.client.game.characters.abilities.BodySwap;
import netwerkprog.game.client.game.characters.abilities.Implant;
import netwerkprog.game.client.game.map.GameTile;
import netwerkprog.game.client.game.map.Map; import netwerkprog.game.client.game.map.Map;
import netwerkprog.game.client.game.map.MapRenderer; import netwerkprog.game.client.game.map.MapRenderer;
import netwerkprog.game.client.game.map.GameInputProcessor; import netwerkprog.game.client.game.map.GameInputProcessor;
@@ -98,11 +94,14 @@ public class MainGame extends ApplicationAdapter {
private void initCharacters() { private void initCharacters() {
Texture texture = new Texture(Gdx.files.internal("core/assets/characters.png")); Texture texture = new Texture(Gdx.files.internal("core/assets/characters.png"));
TextureRegion[][] characters = TextureRegion.split(texture, 32, 32); TextureRegion[][] characters = TextureRegion.split(texture, 32, 32);
this.testCharacter = new Hacker(characters[1][0], new BodySwap("test")); this.testCharacter = new Hacker("harry",characters[1][0], new BodySwap("test"));
this.tree.insert(testCharacter); Character character2 = new Hacker("test2",characters[2][0], new BodySwap("test"));
this.tree.insert(new Agent(characters[2][0], new Implant("test"))); // this.tree.insert(testCharacter);
// this.tree.insert(character2);
// this.tree.insert(new Agent(characters[2][0], new Implant("test")));
this.setSelectedCharacter(testCharacter); this.setSelectedCharacter(testCharacter);
mapRenderer.getGameTiles()[1][1].setCharacter(testCharacter); mapRenderer.getGameTiles()[0][1].visit(testCharacter);
mapRenderer.getGameTiles()[0][2].visit(character2);
} }

View File

@@ -6,7 +6,7 @@ import netwerkprog.game.util.game.Character;
import netwerkprog.game.util.game.Faction; import netwerkprog.game.util.game.Faction;
public class Hacker extends Character { public class Hacker extends Character {
public Hacker(TextureRegion textureRegion, Ability... abilities) { public Hacker(String name, TextureRegion textureRegion, Ability... abilities) {
super("Hacker", Faction.HACKER, textureRegion, abilities); super(name, Faction.HACKER, textureRegion, abilities);
} }
} }

View File

@@ -127,21 +127,24 @@ public class GameInputProcessor implements InputProcessor {
for (int col = 0; col < mainGame.mapRenderer.getGameTiles()[0].length; col++) { for (int col = 0; col < mainGame.mapRenderer.getGameTiles()[0].length; col++) {
GameTile gameTile = mainGame.mapRenderer.getGameTiles()[row][col]; GameTile gameTile = mainGame.mapRenderer.getGameTiles()[row][col];
if (gameTile.contains(touchPoint.x, touchPoint.y)) { if (gameTile.contains(touchPoint.x, touchPoint.y)) {
System.out.println(gameTile + " row: " + row + ", col: " + col); if (button == Input.Buttons.LEFT) {
// System.out.println(gameTile + " row: " + row + ", col: " + col);
if (mainGame.hasCharacterSelected() && !gameTile.containsCharacter()) { if (mainGame.hasCharacterSelected() && !gameTile.containsCharacter()) {
System.out.println(mainGame.getSelectedCharacter()); // System.out.println(mainGame.getSelectedCharacter());
removeCharacterFromTile(mainGame.getSelectedCharacter()); removeCharacterFromTile(mainGame.getSelectedCharacter());
gameTile.setCharacter(mainGame.getSelectedCharacter()); gameTile.visit(mainGame.getSelectedCharacter());
} }
if (!mainGame.hasCharacterSelected() && gameTile.containsCharacter()) { if (!mainGame.hasCharacterSelected() && gameTile.containsCharacter()) {
mainGame.setSelectedCharacter(gameTile.getCharacter()); mainGame.setSelectedCharacter(gameTile.getCharacter());
} }
if (gameTile.containsCharacter() && !mainGame.getSelectedCharacter().equals(gameTile.getCharacter())) {
mainGame.setSelectedCharacter(gameTile.getCharacter());
}
return true; return true;
} }
} }
} }
}
return false; return false;
} }
@@ -151,9 +154,7 @@ public class GameInputProcessor implements InputProcessor {
for (int col = 0; col < mainGame.mapRenderer.getGameTiles()[0].length; col++) { for (int col = 0; col < mainGame.mapRenderer.getGameTiles()[0].length; col++) {
GameTile gameTile = mainGame.mapRenderer.getGameTiles()[row][col]; GameTile gameTile = mainGame.mapRenderer.getGameTiles()[row][col];
if (gameTile.containsCharacter() && gameTile.getCharacter().equals(character)) { if (gameTile.containsCharacter() && gameTile.getCharacter().equals(character)) {
gameTile.setCharacter(null); gameTile.removeCharacter();
System.out.println("set character of gametile " + gameTile + " to null");
System.out.println("tile " + mainGame.mapRenderer.getGameTiles()[1][1] + " now has character " + mainGame.mapRenderer.getGameTiles()[1][1].getCharacter());
break rowLoop; break rowLoop;
} }
} }

View File

@@ -33,7 +33,7 @@ public class GameTile extends Rectangle {
* @param character the character to visit this tile * @param character the character to visit this tile
* @return false if this tile already had a character on it. * @return false if this tile already had a character on it.
*/ */
public boolean setCharacter(Character character) { public boolean visit(Character character) {
if (this.character != null) return false; if (this.character != null) return false;
this.character = character; this.character = character;
return true; return true;

View File

@@ -71,4 +71,12 @@ public abstract class Character implements Comparable<Character> {
public int compareTo(Character o) { public int compareTo(Character o) {
return this.name.compareTo(o.name); return this.name.compareTo(o.name);
} }
@Override
public String toString() {
return "Character{" +
"name='" + name + '\'' +
", faction=" + faction +
'}';
}
} }