summaryrefslogtreecommitdiffstats
path: root/core/test/ch/asynk/rustanddust/Helpers.java
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2015-08-08 17:35:29 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2015-08-08 17:35:29 +0200
commit9a2bec1e5bbd7095f8de1c7c1357c6faeecbb454 (patch)
treed7568830019b78357ecc7be36318c5376537d9b3 /core/test/ch/asynk/rustanddust/Helpers.java
parent4d97565d96d973c067df4fe207e6a89cc733171a (diff)
downloadRustAndDust-9a2bec1e5bbd7095f8de1c7c1357c6faeecbb454.zip
RustAndDust-9a2bec1e5bbd7095f8de1c7c1357c6faeecbb454.tar.gz
rename tankontank directories into rustanddust
Diffstat (limited to 'core/test/ch/asynk/rustanddust/Helpers.java')
-rw-r--r--core/test/ch/asynk/rustanddust/Helpers.java144
1 files changed, 144 insertions, 0 deletions
diff --git a/core/test/ch/asynk/rustanddust/Helpers.java b/core/test/ch/asynk/rustanddust/Helpers.java
new file mode 100644
index 0000000..818f1a0
--- /dev/null
+++ b/core/test/ch/asynk/rustanddust/Helpers.java
@@ -0,0 +1,144 @@
+package ch.asynk.rustanddust;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.HashSet;
+
+import ch.asynk.rustanddust.engine.Pawn;
+import ch.asynk.rustanddust.engine.Tile;
+import ch.asynk.rustanddust.engine.Board;
+import ch.asynk.rustanddust.engine.Orientation;
+import ch.asynk.rustanddust.engine.SearchBoard;
+import ch.asynk.rustanddust.engine.PathBuilder;
+
+public class Helpers
+{
+ public static class FakePawn extends Pawn
+ {
+ private int mvt;
+ public FakePawn (int mvt)
+ {
+ this.mvt = mvt;
+ }
+
+ @Override public int getMovementPoints() { return mvt; }
+ @Override public int getRoadMarchBonus() { return 1; }
+ @Override public int getAngleOfAttack() { return 0; }
+ @Override public int getFlankSides() { return 0; }
+ @Override public int getDefense(Tile tile) { return 8; }
+ @Override public int getEngagementRangeFrom(Tile tile) { return 3; }
+
+ @Override public boolean isA(PawnId id) { return true; }
+ @Override public boolean isA(PawnType type) { return true; }
+ @Override public boolean isHq() { return true; }
+ @Override public boolean isHqOf(Pawn other) { return true; }
+ @Override public boolean isUnit() { return true; }
+ @Override public boolean isHardTarget() { return true; }
+ @Override public boolean isEnemy(Pawn other) { return true; }
+
+ @Override public boolean canMove() { return true; }
+ @Override public boolean canRotate() { return true; }
+ @Override public boolean canEngage() { return true; }
+ @Override public boolean canEngage(Pawn other) { return true; }
+ @Override public boolean canAssistEngagementWithoutLos() { return true; }
+
+ @Override public void move() { }
+ @Override public void engage() { }
+
+ @Override public void reset() { }
+ @Override public void revertLastMove() { }
+ }
+
+ public static class FakeTile extends Tile
+ {
+ public boolean offMap;
+
+ public FakeTile(int col, int row)
+ {
+ super(col, row);
+ offMap = false;
+ }
+
+ public FakeTile(int col, int row, boolean offMap)
+ {
+ super(col, row);
+ this.offMap = offMap;
+ }
+
+ @Override public boolean isOffMap()
+ {
+ return offMap;
+ }
+ @Override public int exitCost() { return 1; }
+ @Override public int costFrom(Pawn pawn, Orientation side) { return 1; }
+ @Override public int defense() { return 0; }
+
+ @Override public boolean isA(TileTerrain terrain) { return true; }
+ @Override public boolean road(Orientation side) { return false; }
+ @Override public boolean atLeastOneMove(Pawn pawn) { return true; }
+ @Override public boolean blockLineOfSightFrom(Tile from) { return false; }
+ }
+
+ public static class FakeSearchBoard extends SearchBoard
+ {
+ public FakeSearchBoard(Board b, int cols, int rows)
+ {
+ super(b, cols, rows);
+ }
+
+ public int distance(int col0, int row0, int col1, int row1)
+ {
+ return distance(getNode(col0, row0), getNode(col1, row1));
+ }
+ }
+
+ public static class FakeBoard extends Board
+ {
+ public FakePawn pawn;
+ public FakeTile fakeTiles[];
+ public PathBuilder pathBuilder;
+
+ public FakeBoard(int cols, int rows, int mvt)
+ {
+ super(cols, rows);
+ fakeTiles = new FakeTile[(cols + 2) * (rows + 2)];
+
+ int idx = 0;
+ for (int i = -1; i < (rows + 1); i++) {
+ for ( int j = -1; j < (cols + 1); j ++) {
+ boolean offmap = ((j < 0) || (i < 0) || (j >= cols) || (i >= rows));
+ fakeTiles[idx] = new FakeTile((j + ((i + 1) / 2)), i, offmap);
+ idx += 1;
+ }
+ }
+
+ fakeTiles[ 36 - 2].offMap = true;
+ fakeTiles[ 60 - 2].offMap = true;
+ fakeTiles[ 84 - 2].offMap = true;
+ fakeTiles[108 - 2].offMap = true;
+
+ pawn = new FakePawn(mvt);
+ pathBuilder = new PathBuilder(this, 10, 20, 5, 10);
+ }
+
+ @Override
+ public Tile getTile(int col, int row)
+ {
+ int i = getTileOffset(col, row);
+ if (i < 0)
+ return null;
+ return fakeTiles[i];
+ }
+
+ public int buildPathBuilder(int x0, int y0, int x1, int y1)
+ {
+ pathBuilder.init(pawn, getTile(x0, y0));
+ return pathBuilder.build(getTile(x1, y1));
+ }
+
+ public int togglePoint(int x, int y)
+ {
+ return pathBuilder.toggleCtrlTile(getTile(x, y));
+ }
+ }
+}