From 27ddaf24edbc47498416b61d216a0f93d2de0e0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Mon, 13 Oct 2014 00:30:20 +0200 Subject: Board: add buildAttackAssists(Pawn, GridPoint2, Iterator, ArrayList) --- core/src/ch/asynk/tankontank/engine/Board.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/core/src/ch/asynk/tankontank/engine/Board.java b/core/src/ch/asynk/tankontank/engine/Board.java index 7493059..8142fab 100644 --- a/core/src/ch/asynk/tankontank/engine/Board.java +++ b/core/src/ch/asynk/tankontank/engine/Board.java @@ -343,6 +343,26 @@ public abstract class Board implements Disposable } } + protected void buildAttackAssists(Pawn pawn, GridPoint2 hex, Iterator units, ArrayList assists) + { + clearPointVector(assists); + + GridPoint2 from = null; + while (units.hasNext()) { + Pawn p = units.next(); + if ((p == pawn) || !p.canAttack()) continue; + if (from == null) + from = gridPoint2Pool.obtain(); + getHexAt(p.getPosition(), from); + if (searchBoard.canAttack(p, from.x, from.y, hex.x, hex.y)) { + assists.add(from); + from = null; + } + } + + if (from != null) gridPoint2Pool.free(from); + } + protected void clearPointSet(Set points) { for (GridPoint2 point : points) -- cgit v1.1-2-g2b99