summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/tankontank/game/Unit.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/ch/asynk/tankontank/game/Unit.java')
-rw-r--r--core/src/ch/asynk/tankontank/game/Unit.java18
1 files changed, 14 insertions, 4 deletions
diff --git a/core/src/ch/asynk/tankontank/game/Unit.java b/core/src/ch/asynk/tankontank/game/Unit.java
index 12cac1f..87ba3cd 100644
--- a/core/src/ch/asynk/tankontank/game/Unit.java
+++ b/core/src/ch/asynk/tankontank/game/Unit.java
@@ -285,6 +285,11 @@ public class Unit extends HeadedPawn
return (isEnemy(other) && canEngage());
}
+ public boolean canHQMove()
+ {
+ return (isHq() && ((move == null) || (!move.isEntry())));
+ }
+
public void setMoved()
{
hasMoved = true;
@@ -294,13 +299,18 @@ public class Unit extends HeadedPawn
@Override
public void move()
{
- TankOnTank.debug(movement.toString());
- if (movement.cost > mpLeft) TankOnTank.debug("ERROR: Movement point exceeded: " + movement.cost + "/" + mpLeft + " please report");
+ int cost = move.cost;
+
+ if (move.roadMarch && (cost > mpLeft))
+ cost -= getRoadMarchBonus();
+
+ if (cost > mpLeft)
+ TankOnTank.debug("ERROR: Movement point exceeded: " + cost + "/" + mpLeft + " please report");
- if (movement.isComplete())
+ if (move.isComplete())
setMoved();
- mpLeft -= movement.cost;
+ mpLeft -= cost;
}
@Override