diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2014-10-08 09:33:36 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2014-10-08 09:33:36 +0200 |
commit | 50512b7bdd11138d7c5d74ad94f4c280c7e36f66 (patch) | |
tree | f5b44a1a7bc25e43fd822f295cf4791e94dac263 /core/src/ch/asynk/tankontank | |
parent | b4d813b03ceda804bb2c4aca092809fa4e06e52c (diff) | |
download | RustAndDust-50512b7bdd11138d7c5d74ad94f4c280c7e36f66.zip RustAndDust-50512b7bdd11138d7c5d74ad94f4c280c7e36f66.tar.gz |
Board: add buildMoveAssists(), possibleMovesFrom()->buildPossibleMovesFrom(), possibleTargetsFrom()->buildPossibleTargetsFrom()
Diffstat (limited to 'core/src/ch/asynk/tankontank')
-rw-r--r-- | core/src/ch/asynk/tankontank/engine/Board.java | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/core/src/ch/asynk/tankontank/engine/Board.java b/core/src/ch/asynk/tankontank/engine/Board.java index 4227f53..3b5ef79 100644 --- a/core/src/ch/asynk/tankontank/engine/Board.java +++ b/core/src/ch/asynk/tankontank/engine/Board.java @@ -313,18 +313,33 @@ public abstract class Board implements Disposable } } - public void possibleMovesFrom(Pawn pawn, GridPoint2 coords, ArrayList<GridPoint2> moves) + public void buildPossibleMovesFrom(Pawn pawn, GridPoint2 coords, ArrayList<GridPoint2> moves) { List<SearchBoard.Node> nodes = searchBoard.possibleMovesFrom(pawn, coords.x, coords.y); nodesToPoints(nodes, moves); } - public void possibleTargetsFrom(Pawn pawn, GridPoint2 coords, ArrayList<GridPoint2> targets) + public void buildPossibleTargetsFrom(Pawn pawn, GridPoint2 coords, ArrayList<GridPoint2> targets) { List<SearchBoard.Node> nodes = searchBoard.possibleTargetsFrom(pawn, coords.x, coords.y); nodesToPoints(nodes, targets); } + public void buildMoveAssists(Pawn pawn, GridPoint2 coords, List<GridPoint2> assists) + { + assists.clear(); + buildNeighboursFor(coords); + for (int i = 0; i < 6; i++) { + GridPoint2 neighbour = neighbours[i]; + Tile t = getTileSafe(neighbour); + if (t != null) { + Pawn p = t.getTopPawn(); + if ((p != null) && (!pawn.isEnemy(p))) + assists.add(neighbour); + } + } + } + public void clearPointSet(Set<GridPoint2> points) { for (GridPoint2 point : points) |