This commit is contained in:
MickWerf
2020-06-07 17:25:57 +02:00
6 changed files with 58 additions and 4 deletions

View File

@@ -219,6 +219,7 @@ public class MainGame extends Game implements ClientCallback {
} else if (this.team.isDead()) { } else if (this.team.isDead()) {
text += "Too bad! You lost!"; text += "Too bad! You lost!";
} }
text += "\nPress ESC to exit the game";
renderString(text, Gdx.graphics.getWidth() / 2f, Gdx.graphics.getHeight() / 2f); renderString(text, Gdx.graphics.getWidth() / 2f, Gdx.graphics.getHeight() / 2f);
} }
@@ -317,6 +318,12 @@ public class MainGame extends Game implements ClientCallback {
return map.getWidth(); return map.getWidth();
} }
public void exit() {
client.disconnect();
dispose();
Gdx.app.exit();
}
public void setSelectedCharacter(GameCharacter character) { public void setSelectedCharacter(GameCharacter character) {
if (!character.isDead()) { if (!character.isDead()) {
this.selectedCharacter = character; this.selectedCharacter = character;

View File

@@ -10,29 +10,54 @@ public class Team {
this.members = new BST<>(); this.members = new BST<>();
} }
/**
* create a new team with the given characters
* @param characters the characters
*/
public Team(BST<GameCharacter> characters) { public Team(BST<GameCharacter> characters) {
this.members = characters; this.members = characters;
} }
/**
* add new member
* @param gameCharacter the member to add
*/
public void addMember(GameCharacter gameCharacter) { public void addMember(GameCharacter gameCharacter) {
if (this.members.getSize() != 6) if (this.members.getSize() != 6)
this.members.insert(gameCharacter); this.members.insert(gameCharacter);
} }
/**
* get members
* @return the members
*/
public BST<GameCharacter> getMembers() { public BST<GameCharacter> getMembers() {
return this.members; return this.members;
} }
/**
* set members
* @param members the members to set
*/
public void setMembers(BST<GameCharacter> members) { public void setMembers(BST<GameCharacter> members) {
this.members = members; this.members = members;
} }
/**
* add members
* @param characters the members to add
*/
public void addMember(GameCharacter... characters) { public void addMember(GameCharacter... characters) {
for (GameCharacter gameCharacter : characters) { for (GameCharacter gameCharacter : characters) {
this.members.insert(gameCharacter); this.members.insert(gameCharacter);
} }
} }
/**
* get the specific character
* @param character the character to get
* @return the character, null if it doesnt exist
*/
public GameCharacter get(GameCharacter character) { public GameCharacter get(GameCharacter character) {
for (GameCharacter cur : this.members) { for (GameCharacter cur : this.members) {
if (cur.equals(character)) { if (cur.equals(character)) {
@@ -42,6 +67,11 @@ public class Team {
return null; return null;
} }
/**
* get the character with the specified username
* @param username the username of the character
* @return the character, null if it doesnt exist
*/
public GameCharacter get(String username) { public GameCharacter get(String username) {
for (GameCharacter cur : this.members) { for (GameCharacter cur : this.members) {
if (cur.getName().equals(username)) { if (cur.getName().equals(username)) {
@@ -51,6 +81,11 @@ public class Team {
return null; return null;
} }
/**
* get the character at the specified position
* @param position the position of the character
* @return the character, null if it can't be found
*/
public GameCharacter get(int position) { public GameCharacter get(int position) {
if (position >= this.members.getSize()) { if (position >= this.members.getSize()) {
throw new IndexOutOfBoundsException("position out of range"); throw new IndexOutOfBoundsException("position out of range");
@@ -63,12 +98,20 @@ public class Team {
return null; return null;
} }
/**
* update all characters
* @param deltaTime the time between the last frame
*/
public void update(double deltaTime) { public void update(double deltaTime) {
for (GameCharacter character : this.members) { for (GameCharacter character : this.members) {
character.update(deltaTime); character.update(deltaTime);
} }
} }
/**
* check if all players are dead
* @return true if all players are dead
*/
public boolean isDead() { public boolean isDead() {
int dead = 0; int dead = 0;
for (GameCharacter character : this.members) { for (GameCharacter character : this.members) {

View File

@@ -128,6 +128,10 @@ public class GameInputProcessor implements InputProcessor {
mainGame.chooseHacker(); mainGame.chooseHacker();
} }
} else if (mainGame.getGamestate() == GAMESTATE.ENDED) {
if (keycode == Input.Keys.ESCAPE) {
mainGame.exit();
}
} }
return false; return false;
} }

View File

@@ -6,7 +6,7 @@ public abstract class AbstractTree<E> implements Tree<E> {
} }
@Override /* Post order traversal from the root */ @Override /* Post order traversal from the root */
public void postorder() { public void postOrder() {
} }
@Override /* Preorder traversal from the root */ @Override /* Preorder traversal from the root */

View File

@@ -141,7 +141,7 @@ public class BST<E extends Comparable<E>> extends AbstractTree<E> {
* Post order traversal from the root * Post order traversal from the root
*/ */
@Override @Override
public void postorder() { public void postOrder() {
postorder(root); postorder(root);
} }

View File

@@ -16,7 +16,7 @@ public interface Tree<E> extends Iterable<E> {
public void inorder(); public void inorder();
/** Postorder traversal from the root */ /** Postorder traversal from the root */
public void postorder(); public void postOrder();
/** Preorder traversal from the root */ /** Preorder traversal from the root */
public void preorder(); public void preorder();