diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2014-10-23 21:25:39 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2014-10-23 21:25:39 +0200 |
commit | 6cb55bb250d60e7c85bb0936f9eb3dfd5311a1bc (patch) | |
tree | 3b3ad70c4b7f476347d042a4e48a035df849cd9a /core/src/ch/asynk/tankontank/game | |
parent | 81808d5d40c00d969f5526ffee1317021e651b9a (diff) | |
download | RustAndDust-6cb55bb250d60e7c85bb0936f9eb3dfd5311a1bc.zip RustAndDust-6cb55bb250d60e7c85bb0936f9eb3dfd5311a1bc.tar.gz |
Map,Board: use TileList and HexList for moves and attacks
Diffstat (limited to 'core/src/ch/asynk/tankontank/game')
-rw-r--r-- | core/src/ch/asynk/tankontank/game/Map.java | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/core/src/ch/asynk/tankontank/game/Map.java b/core/src/ch/asynk/tankontank/game/Map.java index e6ce882..94b66ca 100644 --- a/core/src/ch/asynk/tankontank/game/Map.java +++ b/core/src/ch/asynk/tankontank/game/Map.java @@ -25,11 +25,11 @@ public abstract class Map extends Board private final Ctrl ctrl; private final ArrayList<Vector3> finalPath = new ArrayList<Vector3>(10); - private final ArrayList<GridPoint2> possibleMoves = new ArrayList<GridPoint2>(40); - private final ArrayList<GridPoint2> possibleTargets = new ArrayList<GridPoint2>(10); + private final HexList possibleMoves; + private final HexList possibleTargets; + private final HexList moveAssists; + private final HexList attackAssists; private final HashSet<GridPoint2> possiblePaths = new HashSet<GridPoint2>(10); - private final ArrayList<GridPoint2> moveAssists = new ArrayList<GridPoint2>(6); - private final ArrayList<GridPoint2> attackAssists = new ArrayList<GridPoint2>(6); private final ArrayList<Pawn> activablePawns = new ArrayList<Pawn>(7); private final ArrayList<Pawn> activatedPawns = new ArrayList<Pawn>(7); @@ -46,6 +46,10 @@ public abstract class Map extends Board this.explosion = new SpriteAnimation(game.manager.get("data/explosion.png", Texture.class), 10, 4, 40); this.explosions = new SpriteAnimation(game.manager.get("data/explosions.png", Texture.class), 16, 8, 15); setup(); + possibleMoves = new HexList(this, 40); + possibleTargets = new HexList(this, 10); + moveAssists = new HexList(this, 6); + attackAssists = new HexList(this, 6); } @Override @@ -57,13 +61,13 @@ public abstract class Map extends Board public void clearAll() { - clearPointVector(moveAssists);; - clearPointVector(attackAssists); + possibleMoves.clear(); + possibleTargets.clear(); + moveAssists.clear(); + attackAssists.clear(); activablePawns.clear(); activatedPawns.clear(); clearPointSet(possiblePaths); - clearPointVector(possibleMoves); - clearPointVector(possibleTargets); clearCoordinateVector(finalPath); } @@ -74,7 +78,7 @@ public abstract class Map extends Board public void clearPossibleTargets() { - clearPointVector(possibleTargets); + possibleTargets.clear(); } public void clearActivablePawns() @@ -99,7 +103,9 @@ public abstract class Map extends Board public GridPoint2 getFirstMoveAssist() { - return moveAssists.get(0); + // FIXME + Hex h = (Hex) moveAssists.get(0); + return new GridPoint2(h.getCol(), h.getRow()); } public int activablePawnsCount() @@ -119,17 +125,17 @@ public abstract class Map extends Board public boolean isInPossibleMoves(GridPoint2 hex) { - return possibleMoves.contains(hex); + return possibleMoves.contains(getHex(hex.x, hex.y)); } public boolean isInPossibleMoveAssists(GridPoint2 hex) { - return moveAssists.contains(hex); + return moveAssists.contains(getHex(hex.x, hex.y)); } public boolean isInPossibleAttackAssists(GridPoint2 hex) { - return attackAssists.contains(hex); + return attackAssists.contains(getHex(hex.x, hex.y)); } public boolean isInPossiblePaths(GridPoint2 hex) @@ -139,7 +145,7 @@ public abstract class Map extends Board public boolean isInPossibleTargets(GridPoint2 hex) { - return possibleTargets.contains(hex); + return possibleTargets.contains(getHex(hex.x, hex.y)); } public void selectHex(GridPoint2 hex, boolean enable) @@ -159,28 +165,24 @@ public abstract class Map extends Board public void showPossibleMoves(boolean enable) { - for(GridPoint2 hex : possibleMoves) - enableOverlayOn(hex, Hex.MOVE1, enable); + possibleMoves.enable(Hex.MOVE1, enable); } public void showMoveAssists(boolean enable) { - for(GridPoint2 hex : moveAssists) - enableOverlayOn(hex, Hex.ASSIST, enable); + moveAssists.enable(Hex.ASSIST, enable); } public void showAttackAssists(boolean enable) { - for(GridPoint2 hex : attackAssists) { - enableOverlayOn(hex, Hex.ASSIST, enable); - enableOverlayOn(hex, Hex.TARGET, false); - } + attackAssists.enable(Hex.ASSIST, enable); + // TODO why the above ??? + attackAssists.enable(Hex.TARGET, false); } public void showPossibleTargets(boolean enable) { - for(GridPoint2 hex : possibleTargets) - enableOverlayOn(hex, Hex.TARGET, enable); + possibleTargets.enable(Hex.TARGET, enable); } public void showPossiblePaths(boolean enable, boolean keepFinal) @@ -241,7 +243,7 @@ public abstract class Map extends Board public int buildMoveAssists(Pawn pawn, GridPoint2 hex) { if (!pawn.isHq()) { - clearPointVector(moveAssists); + moveAssists.clear(); return 0; } return buildMoveAssists(pawn, hex, moveAssists); @@ -251,8 +253,7 @@ public abstract class Map extends Board { int s = buildAttackAssists(pawn, target, hex, units, attackAssists); activatedPawns.add(pawn); - for (GridPoint2 p : attackAssists) - activablePawns.add(getTopPawnAt(p)); + attackAssists.getPawns(activablePawns); return s; } @@ -278,8 +279,7 @@ public abstract class Map extends Board buildPossibleMoves(pawn, hex); buildMoveAssists(pawn, hex); activablePawns.add(pawn); - for (GridPoint2 p : moveAssists) - activablePawns.add(getTopPawnAt(p)); + moveAssists.getPawns(activablePawns); showPossibleMoves(true); showMoveAssists(true); } @@ -390,7 +390,7 @@ public abstract class Map extends Board } private int finishMove(Pawn pawn, GridPoint2 from) { - moveAssists.remove(from); + moveAssists.remove(getHex(from.x, from.y)); activablePawns.remove(pawn); activatedPawns.add(pawn); return activablePawns.size(); |