refactored character to game character

This commit is contained in:
Sem van der Hoeven
2020-05-27 23:11:26 +02:00
parent 427062308e
commit 8b2853beeb
7 changed files with 18 additions and 130 deletions

View File

@@ -15,7 +15,7 @@ import netwerkprog.game.client.game.characters.abilities.BodySwap;
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;
import netwerkprog.game.util.game.Character; import netwerkprog.game.util.game.GameCharacter;
import netwerkprog.game.util.graphics.FrameRate; import netwerkprog.game.util.graphics.FrameRate;
import netwerkprog.game.util.tree.BST; import netwerkprog.game.util.tree.BST;
@@ -27,13 +27,13 @@ public class MainGame extends ApplicationAdapter {
private Thread client; private Thread client;
private OrthographicCamera camera; private OrthographicCamera camera;
private GameInputProcessor gameInputProcessor; private GameInputProcessor gameInputProcessor;
private Character selectedCharacter; private GameCharacter selectedCharacter;
private Map map; private Map map;
public MapRenderer mapRenderer; public MapRenderer mapRenderer;
private BST<Character> tree; private BST<GameCharacter> tree;
public Character testCharacter; public GameCharacter testCharacter;
private static MainGame INSTANCE; private static MainGame INSTANCE;
@@ -95,7 +95,7 @@ public class MainGame extends ApplicationAdapter {
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("harry",characters[1][0], new BodySwap("test")); this.testCharacter = new Hacker("harry",characters[1][0], new BodySwap("test"));
Character character2 = new Hacker("test2",characters[2][0], new BodySwap("test")); GameCharacter character2 = new Hacker("test2",characters[2][0], new BodySwap("test"));
// this.tree.insert(testCharacter); // this.tree.insert(testCharacter);
// this.tree.insert(character2); // this.tree.insert(character2);
// this.tree.insert(new Agent(characters[2][0], new Implant("test"))); // this.tree.insert(new Agent(characters[2][0], new Implant("test")));
@@ -183,16 +183,16 @@ public class MainGame extends ApplicationAdapter {
return map.getWidth(); return map.getWidth();
} }
public BST<Character> getTree() { public BST<GameCharacter> getTree() {
return tree; return tree;
} }
public void setSelectedCharacter(Character character) { public void setSelectedCharacter(GameCharacter character) {
this.selectedCharacter = character; this.selectedCharacter = character;
System.out.println("selected character set to : " + character); System.out.println("selected character set to : " + character);
} }
public Character getSelectedCharacter() { public GameCharacter getSelectedCharacter() {
return selectedCharacter; return selectedCharacter;
} }

View File

@@ -2,10 +2,10 @@ package netwerkprog.game.client.game.characters;
import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.g2d.TextureRegion;
import netwerkprog.game.util.game.Ability; import netwerkprog.game.util.game.Ability;
import netwerkprog.game.util.game.Character;
import netwerkprog.game.util.game.Faction; import netwerkprog.game.util.game.Faction;
import netwerkprog.game.util.game.GameCharacter;
public class Agent extends Character { public class Agent extends GameCharacter {
public Agent(TextureRegion textureRegion, Ability... abilities) { public Agent(TextureRegion textureRegion, Ability... abilities) {
super("Agent", Faction.MEGACORPORATION, textureRegion, abilities); super("Agent", Faction.MEGACORPORATION, textureRegion, abilities);
} }

View File

@@ -2,10 +2,10 @@ package netwerkprog.game.client.game.characters;
import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.g2d.TextureRegion;
import netwerkprog.game.util.game.Ability; import netwerkprog.game.util.game.Ability;
import netwerkprog.game.util.game.Character;
import netwerkprog.game.util.game.Faction; import netwerkprog.game.util.game.Faction;
import netwerkprog.game.util.game.GameCharacter;
public class Hacker extends Character { public class Hacker extends GameCharacter {
public Hacker(String name, TextureRegion textureRegion, Ability... abilities) { public Hacker(String name, TextureRegion textureRegion, Ability... abilities) {
super(name, Faction.HACKER, textureRegion, abilities); super(name, Faction.HACKER, textureRegion, abilities);
} }

View File

@@ -1,30 +0,0 @@
package netwerkprog.game.client.game.characters;
import netwerkprog.game.client.game.map.GameTile;
import netwerkprog.game.util.game.Character;
public class SelectedCharacter {
private Character character;
private GameTile currentTile;
public SelectedCharacter(Character character, GameTile tile) {
this.character = character;
this.currentTile =tile;
}
public Character getCharacter() {
return character;
}
public void setCharacter(Character character) {
this.character = character;
}
public GameTile getCurrentTile() {
return currentTile;
}
public void setCurrentTile(GameTile currentTile) {
this.currentTile = currentTile;
}
}

View File

@@ -8,7 +8,7 @@ import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.math.Vector3;
import com.badlogic.gdx.utils.TimeUtils; import com.badlogic.gdx.utils.TimeUtils;
import netwerkprog.game.client.MainGame; import netwerkprog.game.client.MainGame;
import netwerkprog.game.util.game.Character; import netwerkprog.game.util.game.GameCharacter;
import java.util.ArrayList; import java.util.ArrayList;
@@ -148,7 +148,7 @@ public class GameInputProcessor implements InputProcessor {
return false; return false;
} }
private void removeCharacterFromTile(Character character) { private void removeCharacterFromTile(GameCharacter character) {
rowLoop: rowLoop:
for (int row = 0; row < mainGame.mapRenderer.getGameTiles().length; row++) { for (int row = 0; row < mainGame.mapRenderer.getGameTiles().length; row++) {
for (int col = 0; col < mainGame.mapRenderer.getGameTiles()[0].length; col++) { for (int col = 0; col < mainGame.mapRenderer.getGameTiles()[0].length; col++) {

View File

@@ -2,14 +2,14 @@ package netwerkprog.game.client.game.map;
import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Rectangle;
import netwerkprog.game.util.game.Character; import netwerkprog.game.util.game.GameCharacter;
import java.util.Objects; import java.util.Objects;
public class GameTile extends Rectangle { public class GameTile extends Rectangle {
private TextureRegion textureRegion; private TextureRegion textureRegion;
private char symbol; private char symbol;
private Character character; private GameCharacter character;
public GameTile(TextureRegion textureRegion, int xPos, int yPos, char symbol) { public GameTile(TextureRegion textureRegion, int xPos, int yPos, char symbol) {
this.textureRegion = textureRegion; this.textureRegion = textureRegion;
@@ -20,7 +20,7 @@ public class GameTile extends Rectangle {
super.height = textureRegion.getRegionHeight(); super.height = textureRegion.getRegionHeight();
} }
public Character getCharacter() { public GameCharacter getCharacter() {
return character; return character;
} }
@@ -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 visit(Character character) { public boolean visit(GameCharacter 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

@@ -1,82 +0,0 @@
package netwerkprog.game.util.game;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Objects;
public abstract class Character implements Comparable<Character> {
protected String name;
protected Faction faction;
protected HashSet<Ability> abilities;
protected boolean override;
protected TextureRegion textureRegion;
protected SpriteBatch batch;
public Character(String name, Faction faction, TextureRegion textureRegion, Ability... abilities) {
this.name = name;
this.faction = faction;
this.abilities = new HashSet<>(Arrays.asList(abilities));
this.override = false;
this.textureRegion = textureRegion;
batch = new SpriteBatch();
}
public void addAbilities(Ability ability) {
this.abilities.add(ability);
}
public void removeAbility(Ability ability) {
this.abilities.remove(ability);
}
public void changeControl() {
this.override = !this.override;
}
public TextureRegion getTextureRegion() {
return textureRegion;
}
public void setTextureRegion(TextureRegion textureRegion) {
this.textureRegion = textureRegion;
}
public void render(float x, float y) {
batch.begin();
batch.draw(this.textureRegion, x, y);
batch.end();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null) return false;
if (!(o instanceof Character)) return false;
Character character = (Character) o;
return override == character.override &&
Objects.equals(name, character.name) &&
faction == character.faction &&
Objects.equals(abilities, character.abilities);
}
@Override
public int hashCode() {
return Objects.hash(name, faction, abilities, override);
}
@Override
public int compareTo(Character o) {
return this.name.compareTo(o.name);
}
@Override
public String toString() {
return "Character{" +
"name='" + name + '\'' +
", faction=" + faction +
'}';
}
}