summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/tankontank/game
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2014-11-21 17:08:10 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2014-11-21 17:08:10 +0100
commit1985315e60a7c9d83541daa47e602057d10d41e3 (patch)
tree07224c220e3cf57fafc727a461941ca1db1d6560 /core/src/ch/asynk/tankontank/game
parente2f5e85b111d36a8b5616cf9d014b95ce31f2166 (diff)
downloadRustAndDust-1985315e60a7c9d83541daa47e602057d10d41e3.zip
RustAndDust-1985315e60a7c9d83541daa47e602057d10d41e3.tar.gz
Map,Board,Pawn: plug in objectives management
Diffstat (limited to 'core/src/ch/asynk/tankontank/game')
-rw-r--r--core/src/ch/asynk/tankontank/game/Map.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/core/src/ch/asynk/tankontank/game/Map.java b/core/src/ch/asynk/tankontank/game/Map.java
index bd04a70..dbf029e 100644
--- a/core/src/ch/asynk/tankontank/game/Map.java
+++ b/core/src/ch/asynk/tankontank/game/Map.java
@@ -192,6 +192,7 @@ public abstract class Map extends Board
public void actionDone()
{
+ objectives.forget();
}
public boolean enterBoard(Unit unit, Hex to, int allowedMoves)
@@ -206,19 +207,22 @@ public abstract class Map extends Board
{
unit.enterBoard(to, entry);
setPawnOnto(unit, to, entry);
+ objectives.claim(to, unit.getArmy());
return true;
}
public void leaveBoard(Unit unit)
{
- removePawn(unit);
+ Hex hex = unit.getHex();
+ if (removePawn(unit) == 0)
+ objectives.unclaim(hex);
activatedUnits.add(unit);
}
public int moveUnit(Unit unit, Orientation o)
{
possiblePaths.orientation = o;
- movePawn(unit, possiblePaths, notifyDoneAnimation(unit));
+ movePawn(unit, possiblePaths, notifyDoneAnimation(unit), objectives);
return startMove(unit);
}
@@ -230,6 +234,7 @@ public abstract class Map extends Board
revertLastPawnMove(unit, notifyDoneAnimation(unit));
}
activatedUnits.clear();
+ objectives.revert();
}
private int startMove(Unit unit)