From 93f26e987f40b32749c716f447259f446c0b4816 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Mon, 13 Oct 2014 17:05:16 +0200 Subject: Pawn: add isFlankAttack() --- core/src/ch/asynk/tankontank/engine/Pawn.java | 7 ++++++- core/src/ch/asynk/tankontank/engine/SearchBoard.java | 2 +- core/src/ch/asynk/tankontank/game/Map.java | 19 ++++++++----------- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/core/src/ch/asynk/tankontank/engine/Pawn.java b/core/src/ch/asynk/tankontank/engine/Pawn.java index 8c31578..aa6e666 100644 --- a/core/src/ch/asynk/tankontank/engine/Pawn.java +++ b/core/src/ch/asynk/tankontank/engine/Pawn.java @@ -27,7 +27,7 @@ public abstract class Pawn implements Drawable, Disposable int distance; Pawn target; boolean isClear; - boolean isFlankAttack; + boolean isFlank; } private static final float MOVE_TIME = 0.4f; @@ -84,6 +84,11 @@ public abstract class Pawn implements Drawable, Disposable image.dispose(); } + public boolean isFlankAttack() + { + return (attack.isClear && attack.isFlank); + } + public Vector3 getPosition() { return position; diff --git a/core/src/ch/asynk/tankontank/engine/SearchBoard.java b/core/src/ch/asynk/tankontank/engine/SearchBoard.java index c39cb0d..3fe77a3 100644 --- a/core/src/ch/asynk/tankontank/engine/SearchBoard.java +++ b/core/src/ch/asynk/tankontank/engine/SearchBoard.java @@ -365,7 +365,7 @@ public class SearchBoard } pawn.attack.isClear = true; - pawn.attack.isFlankAttack = isFlankAttack(target.getFlankSides(), los); + pawn.attack.isFlank = isFlankAttack(target.getFlankSides(), los); return true; } diff --git a/core/src/ch/asynk/tankontank/game/Map.java b/core/src/ch/asynk/tankontank/game/Map.java index 7f9e7ae..2519ab0 100644 --- a/core/src/ch/asynk/tankontank/game/Map.java +++ b/core/src/ch/asynk/tankontank/game/Map.java @@ -183,33 +183,30 @@ public abstract class Map extends Board public int buildPossibleMoves(Pawn pawn, GridPoint2 hex) { - buildPossibleMovesFrom(pawn, hex, possibleMoves); - return possibleMoves.size(); + return buildPossibleMovesFrom(pawn, hex, possibleMoves); } public int buildPossibleTargets(Pawn pawn, GridPoint2 hex) { - buildPossibleTargetsFrom(pawn, hex, possibleTargets); - return possibleTargets.size(); + return buildPossibleTargetsFrom(pawn, hex, possibleTargets); } public int buildMoveAssists(Pawn pawn, GridPoint2 hex) { - if (pawn.isHq()) { - buildMoveAssists(pawn, hex, moveAssists); - } else { + if (!pawn.isHq()) { moveAssists.clear(); + return 0; } - return moveAssists.size(); + return buildMoveAssists(pawn, hex, moveAssists); } - public int buildAttackAssists(Pawn pawn, GridPoint2 hex, Iterator units) + public int buildAttack(Pawn pawn, Pawn target, GridPoint2 hex, Iterator units) { - buildAttackAssists(pawn, hex, units, attackAssists); + int s = buildAttack(pawn, target, hex, units, attackAssists); activatedPawns.add(pawn); for (GridPoint2 p : attackAssists) activablePawns.add(getTopPawnAt(p)); - return attackAssists.size(); + return s; } public boolean toggleAttackAssist(Pawn pawn) -- cgit v1.1-2-g2b99