summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/tankontank/game
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/ch/asynk/tankontank/game')
-rw-r--r--core/src/ch/asynk/tankontank/game/Hex.java31
1 files changed, 29 insertions, 2 deletions
diff --git a/core/src/ch/asynk/tankontank/game/Hex.java b/core/src/ch/asynk/tankontank/game/Hex.java
index 404f763..6666e9a 100644
--- a/core/src/ch/asynk/tankontank/game/Hex.java
+++ b/core/src/ch/asynk/tankontank/game/Hex.java
@@ -2,6 +2,7 @@ package ch.asynk.tankontank.game;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
+import ch.asynk.tankontank.engine.Pawn;
import ch.asynk.tankontank.engine.Tile;
import ch.asynk.tankontank.engine.Board;
@@ -43,9 +44,31 @@ public class Hex extends Tile
Hex.atlas = atlas;
}
- public int costFrom(Board.Orientation side)
+ @Override
+ public boolean atLeastOneMove(Pawn pawn)
+ {
+ if (occupied() || (terrain == Terrain.BLOCKED) || (terrain == Terrain.OFFMAP))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int roadMarchBonus(Pawn pawn)
+ {
+ return 1;
+ }
+
+ @Override
+ public boolean road(Board.Orientation side)
{
- if (side.s == (roads & side.s)) return 1;
+ return (side.s == (roads & side.s));
+ }
+
+ @Override
+ public int costFrom(Pawn pawn, Board.Orientation side, boolean road)
+ {
+ if (occupied()) return Integer.MAX_VALUE;
+ if (road) return 1;
int c = 0;
switch(terrain) {
@@ -57,6 +80,10 @@ public class Hex extends Tile
case TOWN:
c = 2;
break;
+ case OFFMAP:
+ case BLOCKED:
+ c = Integer.MAX_VALUE;
+ break;
}
return c;