From 087c3a7193c8477ae98af9fca6420f22ea20dcd2 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Tue, 2 Jun 2020 23:35:28 +0200 Subject: [PATCH] added team class that uses a tree --- .../src/netwerkprog/game/client/MainGame.java | 10 ++-- .../game/client/game/characters/Team.java | 53 +++++++++++++++++++ 2 files changed, 56 insertions(+), 7 deletions(-) create mode 100644 core/src/netwerkprog/game/client/game/characters/Team.java diff --git a/core/src/netwerkprog/game/client/MainGame.java b/core/src/netwerkprog/game/client/MainGame.java index 1102297..468c313 100644 --- a/core/src/netwerkprog/game/client/MainGame.java +++ b/core/src/netwerkprog/game/client/MainGame.java @@ -11,13 +11,13 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; 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.Map; import netwerkprog.game.client.game.map.MapRenderer; import netwerkprog.game.client.game.map.GameInputProcessor; import netwerkprog.game.util.game.GameCharacter; import netwerkprog.game.util.graphics.FrameRate; -import netwerkprog.game.util.tree.BST; public class MainGame extends ApplicationAdapter { SpriteBatch batch; @@ -28,11 +28,11 @@ public class MainGame extends ApplicationAdapter { private OrthographicCamera camera; private GameInputProcessor gameInputProcessor; private GameCharacter selectedCharacter; + private Team team; private Map map; public MapRenderer mapRenderer; - private BST tree; public GameCharacter testCharacter; private static MainGame INSTANCE; @@ -80,7 +80,6 @@ public class MainGame extends ApplicationAdapter { camera.viewportWidth = screenWidth / 2; camera.viewportHeight = screenHeight / 2; camera.update(); - this.tree = new BST<>(); initCharacters(); // this.tree.insert(new Hacker(,new BodySwap())); @@ -99,6 +98,7 @@ public class MainGame extends ApplicationAdapter { this.setSelectedCharacter(testCharacter); mapRenderer.getGameTiles()[1][1].visit(testCharacter); mapRenderer.getGameTiles()[1][2].visit(character2); + this.team = new Team(); } @@ -180,10 +180,6 @@ public class MainGame extends ApplicationAdapter { return map.getWidth(); } - public BST getTree() { - return tree; - } - public void setSelectedCharacter(GameCharacter character) { this.selectedCharacter = character; System.out.println("selected character set to : " + character); diff --git a/core/src/netwerkprog/game/client/game/characters/Team.java b/core/src/netwerkprog/game/client/game/characters/Team.java new file mode 100644 index 0000000..fc811ba --- /dev/null +++ b/core/src/netwerkprog/game/client/game/characters/Team.java @@ -0,0 +1,53 @@ +package netwerkprog.game.client.game.characters; + +import netwerkprog.game.util.game.GameCharacter; +import netwerkprog.game.util.tree.BST; + +import java.util.ArrayList; +import java.util.Iterator; + +public class Team { + private BST members; + + public Team() { + this.members = new BST<>(); + } + + public Team(BST characters) { + this.members = characters; + } + + public void addMember(GameCharacter gameCharacter) { + if (this.members.getSize() != 6) + this.members.insert(gameCharacter); + } + + public BST getMembers() { + return this.members; + } + + public void setMembers(BST members) { + this.members = members; + } + + public GameCharacter get(GameCharacter character) { + for (GameCharacter cur : this.members) { + if (cur.equals(character)) { + return cur; + } + } + return null; + } + + public GameCharacter get(int position) { + if (position >= this.members.getSize()) { + throw new IndexOutOfBoundsException("position out of range"); + } + int i = 0; + for (GameCharacter cur : this.members) { + if (i == position) return cur; + i++; + } + return null; + } +}