diff options
Diffstat (limited to 'core/src/ch/asynk/rustanddust/game/Map.java')
-rw-r--r-- | core/src/ch/asynk/rustanddust/game/Map.java | 37 |
1 files changed, 15 insertions, 22 deletions
diff --git a/core/src/ch/asynk/rustanddust/game/Map.java b/core/src/ch/asynk/rustanddust/game/Map.java index f55b8fd..6a0bb03 100644 --- a/core/src/ch/asynk/rustanddust/game/Map.java +++ b/core/src/ch/asynk/rustanddust/game/Map.java @@ -24,33 +24,17 @@ public abstract class Map extends Map5Marshal meteorology = new Meteorology(); } - public void clearAll() + public void clear() { clear(false); } + public void clear(boolean orders) { + if (orders) { + RustAndDust.debug(" Map", String.format("Clearder Orders : %d", ordersSize())); + ordersClear(); + } clearMoves(); clearUnits(); } - public void actionDone() - { - incActionId(); - game.ctrl.actionDoneCb(); - } - - public void turnDone() - { - RustAndDust.debug("TurnDone", String.format(" Processed Orders : %d", ordersSize())); - game.ctrl.turnDoneCb(); - ordersClear(); - } - - @Override - protected int engagementCost(Engagement e) - { - if ((activatedUnits.size() == 1) && e.attacker.isA(Unit.UnitType.AT_GUN) && e.defender.isHardTarget()) - return 0; - return 1; - } - @Override protected void resolveEngagement(Engagement e) { @@ -116,6 +100,15 @@ public abstract class Map extends Map5Marshal e.d4 = 0; } + activableUnits.clear(); + if (success) { + for (Unit unit : activatedUnits) { + if (unit.canBreak()) + activableUnits.add(unit); + } + } + + e.cost = (((cnt == 1) && e.attacker.isA(Unit.UnitType.AT_GUN) && e.defender.isHardTarget()) ? 0 : 1); e.set(cnt, flk, def, tdf, wdf); e.success = success; } |