diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2014-11-22 23:37:28 +0100 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2014-11-22 23:37:28 +0100 |
commit | 377d1fe9058798584948b9e1ee17fe636d0ec8f8 (patch) | |
tree | 80d318214eb681612309b96b555cbd7788cb5855 /core/src/ch/asynk/tankontank/game | |
parent | 08d56f3b3f18d6c3863bda91f876daa6e62e415c (diff) | |
download | RustAndDust-377d1fe9058798584948b9e1ee17fe636d0ec8f8.zip RustAndDust-377d1fe9058798584948b9e1ee17fe636d0ec8f8.tar.gz |
Hud,Map: set ugly engagementSummary panel
Diffstat (limited to 'core/src/ch/asynk/tankontank/game')
-rw-r--r-- | core/src/ch/asynk/tankontank/game/Hud.java | 13 | ||||
-rw-r--r-- | core/src/ch/asynk/tankontank/game/Map.java | 31 | ||||
-rw-r--r-- | core/src/ch/asynk/tankontank/game/states/StateEngage.java | 2 |
3 files changed, 29 insertions, 17 deletions
diff --git a/core/src/ch/asynk/tankontank/game/Hud.java b/core/src/ch/asynk/tankontank/game/Hud.java index 49b8a34..dd88f04 100644 --- a/core/src/ch/asynk/tankontank/game/Hud.java +++ b/core/src/ch/asynk/tankontank/game/Hud.java @@ -42,7 +42,8 @@ public class Hud implements Disposable ABORT_TURN, END_TURN, END_DEPLOYMENT, - END_GAME + END_GAME, + NONE } public Hud(final Ctrl ctrl, final TankOnTank game) @@ -187,6 +188,9 @@ public class Hud implements Disposable stats.visible = false; ctrl.endGame(); break; + case NONE: + default: + break; } okCancel.visible = false; ctrl.blockMap = false; @@ -220,6 +224,13 @@ public class Hud implements Disposable okCancel.show("Deployment unit count reached.\nEnd Deployment phase ?", Position.MIDDLE_CENTER); } + public void engagementSummary(String msg) + { + ctrl.blockMap = true; + dialogAction = DialogAction.NONE; + okCancel.show(msg, Position.BOTTOM_CENTER, false); + } + public void victory(Player winner, Player loser) { ctrl.blockMap = true; diff --git a/core/src/ch/asynk/tankontank/game/Map.java b/core/src/ch/asynk/tankontank/game/Map.java index 94ba334..bd36a7f 100644 --- a/core/src/ch/asynk/tankontank/game/Map.java +++ b/core/src/ch/asynk/tankontank/game/Map.java @@ -269,14 +269,16 @@ public abstract class Map extends Board { int d1 = d6(); int d2 = d6(); - int dice = d1 + d2; - - if (dice == 2) { - unit.engagement.calculus = "2D6 -> (1 + 1) automatic failure"; - return false; - } else if (dice == 12) { - unit.engagement.calculus = "2D6 -> (6 + 6) automatic success"; - return true; + int die = d1 + d2; + + String msg; + boolean success = false; + if (die == 2) { + msg = "Die : 1 + 1 => Automatic failure"; + success = false; + } else if (die == 12) { + msg = "Die : 6 + 6 => Automatic success"; + success = true; } else { int distance = 0; @@ -309,12 +311,15 @@ public abstract class Map extends Board else if (distance > 1) wdf = 1; } + int s1 = (die + cnt + flk); + int s2 = (def + tdf + wdf); + success = (s1 >= s2); - unit.engagement.calculus = "2D6(" + d1 + " + " + d2 + ") + " + cnt + " + " + flk + " >= " + def + " + " + tdf + " + " + wdf; - if (night) - unit.engagement.calculus += " + " + wdf; - return ((dice + cnt + flk) >= (def + tdf + wdf)); + msg = String.format("die : %d + %d\nunits : +%d\nflank: +%d\n = %d\ndefense: %d\nterrain: +%d\nweather: +%d\n = %d\n%s", + d1, d2, cnt, flk, s1, def, tdf, wdf, s2, (success ? "target destroyed" : "target missed")); } + ctrl.hud.engagementSummary(msg); + return success; } private void setFightAnimation(final Unit target, boolean success) @@ -353,8 +358,6 @@ public abstract class Map extends Board success = resolveFight(unit, target); } - TankOnTank.debug(unit + " engagements " + target + " : " + unit.engagement.calculus + " " + success); - breakUnits.clear(); for (Unit u : activatedUnits) { u.engage(); diff --git a/core/src/ch/asynk/tankontank/game/states/StateEngage.java b/core/src/ch/asynk/tankontank/game/states/StateEngage.java index f20bb9f..778ab03 100644 --- a/core/src/ch/asynk/tankontank/game/states/StateEngage.java +++ b/core/src/ch/asynk/tankontank/game/states/StateEngage.java @@ -56,14 +56,12 @@ public class StateEngage extends StateCommon StateType nextState = StateType.DONE; if (map.engageUnit(selectedUnit, activeUnit)) { ctrl.player.wonEngagementCount += 1; - ctrl.hud.notify(selectedUnit.engagement.calculus + " : " + activeUnit + " is destroyed"); ctrl.opponent.casualty(activeUnit); if (map.breakUnits.size() > 0) { nextState = StateType.BREAK; } } else { ctrl.player.lostEngagementCount += 1; - ctrl.hud.notify(selectedUnit.engagement.calculus + " : failure"); } activeUnit.showTarget(); |