summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/tankontank/game/Hud.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/ch/asynk/tankontank/game/Hud.java')
-rw-r--r--core/src/ch/asynk/tankontank/game/Hud.java73
1 files changed, 57 insertions, 16 deletions
diff --git a/core/src/ch/asynk/tankontank/game/Hud.java b/core/src/ch/asynk/tankontank/game/Hud.java
index 6155cac..c8ab144 100644
--- a/core/src/ch/asynk/tankontank/game/Hud.java
+++ b/core/src/ch/asynk/tankontank/game/Hud.java
@@ -19,13 +19,16 @@ import ch.asynk.tankontank.TankOnTank;
public class Hud implements Disposable
{
- private static final float OFFSET = 15f;
+ private static final float OFFSET =10f;
private static final float PADDING = 5f;
private final TankOnTank game;
private final Ctrl ctrl;
- private Bg bg;
+ private Bg actionsBg;
+ private Msg msg;
+
+ private Button btn;
public Button moveBtn;
public Button rotateBtn;
public Button promoteBtn;
@@ -33,8 +36,12 @@ public class Hud implements Disposable
public Button checkBtn;
public Button cancelBtn;
- private Button btn;
- private Msg msg;
+ private Image flag;
+ private Image usFlag;
+ private Image geFlag;
+ private Msg status;
+ private Image reinforcement;
+
private Vector2 corner;
@@ -53,11 +60,30 @@ public class Hud implements Disposable
checkBtn = new Button(atlas, "btn-check");
cancelBtn = new Button(atlas, "btn-cancel");
- bg = new Bg(atlas.findRegion("disabled"));
+ actionsBg = new Bg(atlas.findRegion("disabled"));
msg = new Msg(game.skin.getFont("default-font"), atlas.findRegion("disabled"));
- ctrl.player.setTopLeft(OFFSET, (Gdx.graphics.getHeight() - OFFSET));
- ctrl.opponent.setTopLeft(OFFSET, (Gdx.graphics.getHeight() - OFFSET));
+ usFlag = new Image(atlas.findRegion("us-flag"));
+ geFlag = new Image(atlas.findRegion("ge-flag"));
+ status = new Msg(game.skin.getFont("default-font"), atlas.findRegion("disabled"));
+ reinforcement= new Image(atlas.findRegion("reinforcement"));
+
+ float x = OFFSET;
+ float y = (Gdx.graphics.getHeight() - OFFSET);
+ usFlag.setPosition(x, (y - usFlag.getHeight()));
+ geFlag.setPosition(x, (y - geFlag.getHeight()));
+ status.setTopLeft((x + usFlag.getWidth() + 10), y, 10);
+ reinforcement.setPosition(x, usFlag.getY() - reinforcement.getHeight() - 0);
+ }
+
+ public void update()
+ {
+ status.write(ctrl.player.getStatus(), 0);
+ if (ctrl.player.getFaction() == Army.GE)
+ flag = geFlag;
+ else
+ flag = usFlag;
+ // TODO update reinforcement status
}
@Override
@@ -69,8 +95,13 @@ public class Hud implements Disposable
attackBtn.dispose();
checkBtn.dispose();
cancelBtn.dispose();
- bg.dispose();
+ actionsBg.dispose();
msg.dispose();
+
+ usFlag.dispose();
+ geFlag.dispose();
+ status.dispose();
+ reinforcement.dispose();
}
public void animate(float delta)
@@ -80,8 +111,11 @@ public class Hud implements Disposable
public void draw(Batch batch)
{
- ctrl.player.draw(batch);
- bg.draw(batch);
+ flag.draw(batch);
+ status.draw(batch);
+ reinforcement.draw(batch);
+
+ actionsBg.draw(batch);
if (moveBtn.visible) moveBtn.getImage().draw(batch);
if (rotateBtn.visible) rotateBtn.getImage().draw(batch);
if (promoteBtn.visible) promoteBtn.getImage().draw(batch);
@@ -133,7 +167,7 @@ public class Hud implements Disposable
if (check) y = setButton(checkBtn, x, y);
else checkBtn.hide();
- bg.set((x - PADDING), (corner.y - PADDING), (checkBtn.getWidth() + (2 * PADDING)), (y - corner.y));
+ actionsBg.set((x - PADDING), (corner.y - PADDING), (checkBtn.getWidth() + (2 * PADDING)), (y - corner.y));
}
public void hide()
@@ -144,13 +178,14 @@ public class Hud implements Disposable
attackBtn.hide();
checkBtn.hide();
cancelBtn.hide();
- bg.set(0, 0, 0, 0);
+ actionsBg.set(0, 0, 0, 0);
}
public boolean touchDown(float x, float y)
{
- if (ctrl.player.contains(x,y)) return true;
- if (!bg.contains(x,y)) return false;
+ if (flag.contains(x,y)) return true;
+ if (reinforcement.contains(x,y)) return true;
+ if (!actionsBg.contains(x,y)) return false;
btn = null;
@@ -178,11 +213,17 @@ public class Hud implements Disposable
if (btn != null)
btn.setOn();
- if (ctrl.player.contains(x,y)) {
+ if (flag.contains(x,y)) {
ctrl.endPlayerTurn();
return true;
}
- if (!bg.contains(x,y)) return false;
+
+ if (reinforcement.contains(x,y)) {
+ System.err.println("TODO reinforcement");
+ return true;
+ }
+
+ if (!actionsBg.contains(x,y)) return false;
if (btn == moveBtn)
ctrl.setState(State.StateType.MOVE);