diff --git a/core/src/netwerkprog/game/client/MainGame.java b/core/src/netwerkprog/game/client/MainGame.java index faf465c..f595fdf 100644 --- a/core/src/netwerkprog/game/client/MainGame.java +++ b/core/src/netwerkprog/game/client/MainGame.java @@ -219,6 +219,7 @@ public class MainGame extends Game implements ClientCallback { } else if (this.team.isDead()) { text += "Too bad! You lost!"; } + text += "\nPress ESC to exit the game"; renderString(text, Gdx.graphics.getWidth() / 2f, Gdx.graphics.getHeight() / 2f); } @@ -317,6 +318,12 @@ public class MainGame extends Game implements ClientCallback { return map.getWidth(); } + public void exit() { + client.disconnect(); + dispose(); + Gdx.app.exit(); + } + public void setSelectedCharacter(GameCharacter character) { if (!character.isDead()) { this.selectedCharacter = character; diff --git a/core/src/netwerkprog/game/client/game/characters/Team.java b/core/src/netwerkprog/game/client/game/characters/Team.java index 436fca7..1f556a6 100644 --- a/core/src/netwerkprog/game/client/game/characters/Team.java +++ b/core/src/netwerkprog/game/client/game/characters/Team.java @@ -10,29 +10,54 @@ public class Team { this.members = new BST<>(); } + /** + * create a new team with the given characters + * @param characters the characters + */ public Team(BST characters) { this.members = characters; } + /** + * add new member + * @param gameCharacter the member to add + */ public void addMember(GameCharacter gameCharacter) { if (this.members.getSize() != 6) this.members.insert(gameCharacter); } + /** + * get members + * @return the members + */ public BST getMembers() { return this.members; } + /** + * set members + * @param members the members to set + */ public void setMembers(BST members) { this.members = members; } + /** + * add members + * @param characters the members to add + */ public void addMember(GameCharacter... characters) { for (GameCharacter gameCharacter : characters) { 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) { for (GameCharacter cur : this.members) { if (cur.equals(character)) { @@ -42,6 +67,11 @@ public class Team { 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) { for (GameCharacter cur : this.members) { if (cur.getName().equals(username)) { @@ -51,6 +81,11 @@ public class Team { 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) { if (position >= this.members.getSize()) { throw new IndexOutOfBoundsException("position out of range"); @@ -63,12 +98,20 @@ public class Team { return null; } + /** + * update all characters + * @param deltaTime the time between the last frame + */ public void update(double deltaTime) { for (GameCharacter character : this.members) { character.update(deltaTime); } } + /** + * check if all players are dead + * @return true if all players are dead + */ public boolean isDead() { int dead = 0; for (GameCharacter character : this.members) { diff --git a/core/src/netwerkprog/game/client/game/map/GameInputProcessor.java b/core/src/netwerkprog/game/client/game/map/GameInputProcessor.java index f8d0838..88692a1 100644 --- a/core/src/netwerkprog/game/client/game/map/GameInputProcessor.java +++ b/core/src/netwerkprog/game/client/game/map/GameInputProcessor.java @@ -128,6 +128,10 @@ public class GameInputProcessor implements InputProcessor { mainGame.chooseHacker(); } + } else if (mainGame.getGamestate() == GAMESTATE.ENDED) { + if (keycode == Input.Keys.ESCAPE) { + mainGame.exit(); + } } return false; } diff --git a/core/src/netwerkprog/game/util/tree/AbstractTree.java b/core/src/netwerkprog/game/util/tree/AbstractTree.java index 7c7c9ee..282340b 100644 --- a/core/src/netwerkprog/game/util/tree/AbstractTree.java +++ b/core/src/netwerkprog/game/util/tree/AbstractTree.java @@ -5,8 +5,8 @@ public abstract class AbstractTree implements Tree { public void inorder() { } - @Override /* Postorder traversal from the root */ - public void postorder() { + @Override /* Post order traversal from the root */ + public void postOrder() { } @Override /* Preorder traversal from the root */ diff --git a/core/src/netwerkprog/game/util/tree/BST.java b/core/src/netwerkprog/game/util/tree/BST.java index 45f1bb0..0711e31 100644 --- a/core/src/netwerkprog/game/util/tree/BST.java +++ b/core/src/netwerkprog/game/util/tree/BST.java @@ -141,7 +141,7 @@ public class BST> extends AbstractTree { * Post order traversal from the root */ @Override - public void postorder() { + public void postOrder() { postorder(root); } diff --git a/core/src/netwerkprog/game/util/tree/Tree.java b/core/src/netwerkprog/game/util/tree/Tree.java index 1e8c9ad..0018038 100644 --- a/core/src/netwerkprog/game/util/tree/Tree.java +++ b/core/src/netwerkprog/game/util/tree/Tree.java @@ -16,7 +16,7 @@ public interface Tree extends Iterable { public void inorder(); /** Postorder traversal from the root */ - public void postorder(); + public void postOrder(); /** Preorder traversal from the root */ public void preorder();