summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/tankontank
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2014-11-05 12:13:57 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2014-11-05 12:13:57 +0100
commit3fdaaa05538525e828067e0eb4b91e7758ba023c (patch)
treefd99a160502a3f981a14de6db4cb050efd095731 /core/src/ch/asynk/tankontank
parentfbed4659a16b7e28ab960e28f11d11b841ed1d86 (diff)
downloadRustAndDust-3fdaaa05538525e828067e0eb4b91e7758ba023c.zip
RustAndDust-3fdaaa05538525e828067e0eb4b91e7758ba023c.tar.gz
PossiblePaths: first call init(Pawn, Tile from) then build(Tile to)
Diffstat (limited to 'core/src/ch/asynk/tankontank')
-rw-r--r--core/src/ch/asynk/tankontank/engine/PossiblePaths.java15
-rw-r--r--core/src/ch/asynk/tankontank/game/Map.java5
-rw-r--r--core/src/ch/asynk/tankontank/game/states/StateBreak.java3
-rw-r--r--core/src/ch/asynk/tankontank/game/states/StateMove.java12
4 files changed, 15 insertions, 20 deletions
diff --git a/core/src/ch/asynk/tankontank/engine/PossiblePaths.java b/core/src/ch/asynk/tankontank/engine/PossiblePaths.java
index bcda72b..7654e90 100644
--- a/core/src/ch/asynk/tankontank/engine/PossiblePaths.java
+++ b/core/src/ch/asynk/tankontank/engine/PossiblePaths.java
@@ -35,19 +35,15 @@ public class PossiblePaths implements Iterable<Vector3>
this.orientation = Orientation.KEEP;
}
- public int init(Pawn pawn, Tile from, Tile to)
+ public void init(Pawn pawn, Tile from)
{
- clear();
this.pawn = pawn;
this.from = from;
- this.to = to;
-
- return build();
}
- public int init(Pawn pawn, Tile to)
+ public void init(Pawn pawn)
{
- return init(pawn, pawn.getTile(), to);
+ init(pawn, pawn.getTile());
}
public void clear()
@@ -60,7 +56,6 @@ public class PossiblePaths implements Iterable<Vector3>
this.filteredPaths.clear();
this.tiles.clear();
this.to = null;
- this.pawn = null;
this.orientation = Orientation.KEEP;
}
@@ -82,8 +77,10 @@ public class PossiblePaths implements Iterable<Vector3>
board.enableOverlayOn(tile, i, enable);
}
- private int build()
+ public int build(Tile to)
{
+ clear();
+ this.to = to;
// from and to are not part of the path
if (board.distance(from, to) == 1) {
ArrayList<Tile> temp = new ArrayList<Tile>(0);
diff --git a/core/src/ch/asynk/tankontank/game/Map.java b/core/src/ch/asynk/tankontank/game/Map.java
index 64d3329..6e6d959 100644
--- a/core/src/ch/asynk/tankontank/game/Map.java
+++ b/core/src/ch/asynk/tankontank/game/Map.java
@@ -105,11 +105,6 @@ public abstract class Map extends Board
return collectPossibleMoves(pawn, possibleMoves);
}
- public int collectPossiblePaths(Pawn pawn, Hex to)
- {
- return possiblePaths.init(pawn, to);
- }
-
public int togglePossiblePathHex(Hex hex)
{
return possiblePaths.toggleCtrlTile(hex);
diff --git a/core/src/ch/asynk/tankontank/game/states/StateBreak.java b/core/src/ch/asynk/tankontank/game/states/StateBreak.java
index 820ad97..1a40f08 100644
--- a/core/src/ch/asynk/tankontank/game/states/StateBreak.java
+++ b/core/src/ch/asynk/tankontank/game/states/StateBreak.java
@@ -76,7 +76,8 @@ public class StateBreak extends StateCommon
if (done || (activeUnit == null)) return;
done = true;
- if (map.collectPossiblePaths(activeUnit, to) == 1) {
+ map.possiblePaths.init(activeUnit);
+ if (map.possiblePaths.build(to) == 1) {
map.possiblePaths.orientation = o;
map.movePawn(activeUnit, o);
ctrl.setAnimationCount(1);
diff --git a/core/src/ch/asynk/tankontank/game/states/StateMove.java b/core/src/ch/asynk/tankontank/game/states/StateMove.java
index e279564..cbacef5 100644
--- a/core/src/ch/asynk/tankontank/game/states/StateMove.java
+++ b/core/src/ch/asynk/tankontank/game/states/StateMove.java
@@ -11,12 +11,12 @@ public class StateMove extends StateCommon
boolean moreThanOne = ((map.moveablePawns.size() + map.activatedPawns.size()) > 1);
ctrl.hud.show(false, true, true, false, moreThanOne, ctrl.cfg.canCancel);
ctrl.hud.moveBtn.setOn();
- map.possiblePaths.clear();
if (fromSelect) {
// use selectedHex and selectedUnit
activeUnit = selectedUnit;
activeUnit.showMoveable();
+ map.possiblePaths.init(activeUnit);
map.collectAndShowMovesAndAssits(activeUnit);
if (to != null) {
// quick move -> replay touchUp
@@ -40,6 +40,7 @@ public class StateMove extends StateCommon
activeUnit.hideMoveable();
map.hidePossibleMoves();
map.unselectHex(activeUnit.getHex());
+ map.possiblePaths.clear();
if (to != null) {
map.hideFinalPath(to);
}
@@ -66,7 +67,7 @@ public class StateMove extends StateCommon
if(unit != activeUnit)
changeUnit(unit);
} else if ((s == 0) && map.possibleMoves.contains(upHex)) {
- s = collectPaths();
+ s = collectPaths(upHex);
} else if (map.possiblePaths.contains(upHex)) {
s = togglePoint(downHex, s);
}
@@ -106,6 +107,7 @@ public class StateMove extends StateCommon
map.unselectHex(activeUnit.getHex());
activeUnit = unit;
Hex hex = activeUnit.getHex();
+ map.possiblePaths.init(activeUnit, hex);
map.selectHex(hex);
activeUnit.showMoveable();
map.hidePossibleMoves();
@@ -113,10 +115,10 @@ public class StateMove extends StateCommon
map.showPossibleMoves();
}
- private int collectPaths()
+ private int collectPaths(Hex hex)
{
- to = upHex;
- int s = map.collectPossiblePaths(activeUnit, to);
+ to = hex;
+ int s = map.possiblePaths.build(to);
map.showMove(to);
map.hidePossibleMoves();
map.showPossiblePaths();