diff options
Diffstat (limited to 'core/src/ch')
| -rw-r--r-- | core/src/ch/asynk/tankontank/game/Ctrl.java | 6 | ||||
| -rw-r--r-- | core/src/ch/asynk/tankontank/game/Hud.java | 125 | ||||
| -rw-r--r-- | core/src/ch/asynk/tankontank/game/states/StateEntry.java | 4 | 
3 files changed, 25 insertions, 110 deletions
| diff --git a/core/src/ch/asynk/tankontank/game/Ctrl.java b/core/src/ch/asynk/tankontank/game/Ctrl.java index 5595b85..98a5ca2 100644 --- a/core/src/ch/asynk/tankontank/game/Ctrl.java +++ b/core/src/ch/asynk/tankontank/game/Ctrl.java @@ -69,7 +69,7 @@ public class Ctrl implements Disposable          this.blockMap = false;          player.turnStart(); -        hud.update(); +        hud.playerInfo.update(player, battle.getHudPosition(player));      }      @Override @@ -114,7 +114,7 @@ public class Ctrl implements Disposable          player = opponent;          opponent = tmp;          player.turnStart(); -        hud.update(); +        hud.playerInfo.update(player, battle.getHudPosition(player));          hud.notify(player.getName() + "'s turn");      } @@ -122,7 +122,7 @@ public class Ctrl implements Disposable      {          if (map.activatedPawns.size() > 0) {              player.burnDownOneAp(); -            hud.update(); +            hud.playerInfo.update(player, battle.getHudPosition(player));          }          if (player.apExhausted())              nextPlayer(); diff --git a/core/src/ch/asynk/tankontank/game/Hud.java b/core/src/ch/asynk/tankontank/game/Hud.java index b93c8b5..d6911fd 100644 --- a/core/src/ch/asynk/tankontank/game/Hud.java +++ b/core/src/ch/asynk/tankontank/game/Hud.java @@ -1,53 +1,36 @@  package ch.asynk.tankontank.game; -import com.badlogic.gdx.Gdx; -  import com.badlogic.gdx.utils.Disposable;  import com.badlogic.gdx.graphics.g2d.Batch;  import com.badlogic.gdx.graphics.g2d.TextureAtlas;  import com.badlogic.gdx.graphics.g2d.BitmapFont;  import com.badlogic.gdx.graphics.glutils.ShapeRenderer; -import com.badlogic.gdx.math.Vector2; -import com.badlogic.gdx.math.Rectangle; - -import ch.asynk.tankontank.engine.gfx.Image;  import ch.asynk.tankontank.game.State.StateType; +import ch.asynk.tankontank.game.hud.Position;  import ch.asynk.tankontank.game.hud.Msg; +import ch.asynk.tankontank.game.hud.PlayerInfo;  import ch.asynk.tankontank.game.hud.ActionButtons; -import ch.asynk.tankontank.game.hud.LabelImage; -import ch.asynk.tankontank.game.hud.UnitDock;  import ch.asynk.tankontank.game.hud.OkCancel;  import ch.asynk.tankontank.game.hud.Statistics; -import ch.asynk.tankontank.game.hud.Position;  import ch.asynk.tankontank.TankOnTank;  public class Hud implements Disposable  {      public static final float OFFSET = 10f; -    public static final float PADDING = 5f;      private final TankOnTank game;      private final Ctrl ctrl; -    private Msg msg; -      private Object hit; +    private BitmapFont font; -    private Image flag; -    private Image usFlag; -    private Image geFlag; -    private LabelImage turns; -    private LabelImage aps; -    private LabelImage reinforcement; -    private UnitDock unitDock; - +    public PlayerInfo playerInfo;      public ActionButtons actionButtons; -    private BitmapFont font; - +    private Msg msg;      private Statistics stats;      private OkCancel okCancel;      private DialogAction dialogAction; @@ -66,46 +49,20 @@ public class Hud implements Disposable          font = game.skin.getFont("default-font");          TextureAtlas atlas = game.factory.hudAtlas; +        playerInfo = new PlayerInfo(ctrl, font, atlas, 5f);          actionButtons = new ActionButtons(ctrl, atlas.findRegion("disabled"), atlas, 5f);          actionButtons.hide(); - -        usFlag = new Image(atlas.findRegion("us-flag")); -        geFlag = new Image(atlas.findRegion("ge-flag")); -        turns = new LabelImage(atlas.findRegion("turns"), font, 5f); -        aps = new LabelImage(atlas.findRegion("aps"), font, 5f); -        reinforcement = new LabelImage(atlas.findRegion("reinforcement"), font, 5f); -        unitDock = new UnitDock(ctrl, atlas.findRegion("disabled"), atlas.findRegion("reinforcement-selected"), 10f); -          msg = new Msg(font, atlas.findRegion("disabled"), 10f);          okCancel = new OkCancel(font, atlas.findRegion("disabled"), atlas, 10f);          stats = new Statistics(font, atlas.findRegion("disabled"), atlas, 10f); - -        float x = OFFSET; -        float y = (Gdx.graphics.getHeight() - OFFSET); -        usFlag.setPosition(x, (y - usFlag.getHeight())); -        geFlag.setPosition(x, (y - geFlag.getHeight())); -        turns.setPosition((usFlag.getX() + usFlag.getWidth() + 10), usFlag.getY()); -        aps.setPosition((turns.getX() + turns.getWidth() + 10), turns.getY()); -        aps.setLabelPosition(Position.TOP_RIGHT); -        reinforcement.setPosition(x, usFlag.getY() - reinforcement.getHeight() - 0); -        reinforcement.setLabelPosition(Position.TOP_LEFT); -        unitDock.setPosition(Position.TOP_LEFT, reinforcement.getY() - 5);      }      @Override      public void dispose()      {          font.dispose(); - +        playerInfo.dispose();          actionButtons.dispose(); - -        usFlag.dispose(); -        geFlag.dispose(); -        turns.dispose(); -        aps.dispose(); -        reinforcement.dispose(); -        unitDock.dispose(); -          msg.dispose();          okCancel.dispose();          stats.dispose(); @@ -114,49 +71,31 @@ public class Hud implements Disposable      public void changeState(StateType from, StateType to)      {          if (to != StateType.ENTRY); -            unitDock.hide(); +            playerInfo.hideUnitDock();          if ((to == StateType.SELECT) || (to == StateType.ENTRY)) -            reinforcement.blocked = false; +            playerInfo.blockReinforcement(false);          else -            reinforcement.blocked = true; +            playerInfo.blockReinforcement(true);      }      public void update()      { -        unitDock.hide(); -        turns.write("" + ctrl.player.getTurn()); -        aps.write("" + ctrl.player.getAp()); -        int r = ctrl.player.getReinforcement().size(); -        if (r == 0) { -            reinforcement.visible = false; -        } else { -            reinforcement.visible = true; -            reinforcement.write("" + r); -        } - -        if (ctrl.player.getFaction() == Army.GE) -            flag = geFlag; -        else -            flag = usFlag; +        Position position = ctrl.battle.getHudPosition(ctrl.player); +        playerInfo.update(ctrl.player, position); +        actionButtons.setPosition(position.down());      }      public void animate(float delta)      {          msg.animate(delta); -        unitDock.animate(delta); +        playerInfo.animate(delta);      }      public void draw(Batch batch)      { -        flag.draw(batch); -        turns.draw(batch); -        aps.draw(batch); -        reinforcement.draw(batch); -        unitDock.draw(batch); - +        playerInfo.draw(batch);          actionButtons.draw(batch); -          msg.draw(batch);          okCancel.draw(batch);          stats.draw(batch); @@ -164,24 +103,13 @@ public class Hud implements Disposable      public void drawDebug(ShapeRenderer debugShapes)      { -        flag.drawDebug(debugShapes); -        turns.drawDebug(debugShapes); -        aps.drawDebug(debugShapes); -        reinforcement.drawDebug(debugShapes); -        unitDock.drawDebug(debugShapes); - +        playerInfo.drawDebug(debugShapes);          actionButtons.drawDebug(debugShapes); -          msg.drawDebug(debugShapes);          okCancel.drawDebug(debugShapes);          stats.drawDebug(debugShapes);      } -    public Unit getDockUnit() -    { -        return (Unit) unitDock.selectedPawn; -    } -      public void pushNotify(String s)      {          notify(s, 1, Position.MIDDLE_CENTER, true); @@ -198,23 +126,14 @@ public class Hud implements Disposable          else msg.write(s, 1, position);      } -    public void hideUnitDock() -    { -        unitDock.hide(); -    } -      public boolean touchDown(float x, float y)      {          hit = null;          if (actionButtons.touchDown(x, y))              hit = actionButtons; -        else if (turns.hit(x,y)) -            hit = turns; -        else if (unitDock.hit(x, y)) -            hit = unitDock; -        else if (reinforcement.hit(x, y)) -            hit = reinforcement; +        if (playerInfo.touchDown(x, y)) +            hit = playerInfo;          else if (okCancel.hit(x, y))              hit = okCancel;          else if (stats.hit(x, y)) @@ -232,12 +151,8 @@ public class Hud implements Disposable          if (hit == actionButtons)              actionButtons.touchUp(x, y); -        else if ((hit == turns) && turns.hit(x, y)) -            askEndTurn(); -        else if ((hit == reinforcement) && reinforcement.hit(x, y)) -            unitDock.toggle(); -        else if ((hit == unitDock) && unitDock.hit(x, y)) -            ctrl.setState(StateType.ENTRY); +        else if (hit == playerInfo) +            playerInfo.touchUp(x, y);          else if ((hit == okCancel) && okCancel.hit(x, y))              closeDialog();          else if ((hit == stats) && stats.hit(x, y)) diff --git a/core/src/ch/asynk/tankontank/game/states/StateEntry.java b/core/src/ch/asynk/tankontank/game/states/StateEntry.java index d166a69..21dc3f5 100644 --- a/core/src/ch/asynk/tankontank/game/states/StateEntry.java +++ b/core/src/ch/asynk/tankontank/game/states/StateEntry.java @@ -17,7 +17,7 @@ public class StateEntry extends StateCommon      @Override      public void enter(boolean fromSelect)      { -        activeUnit = ctrl.hud.getDockUnit(); +        activeUnit = ctrl.hud.playerInfo.getDockUnit();          entryPoint = ctrl.battle.getEntryPoint(activeUnit);          entryPoint.enable(Hex.AREA, true);          ctrl.hud.actionButtons.show(((ctrl.cfg.canCancel) ? Buttons.ABORT.b : 0)); @@ -30,7 +30,7 @@ public class StateEntry extends StateCommon      public void leave(StateType nextState)      {          entryPoint.enable(Hex.AREA, false); -        ctrl.hud.hideUnitDock(); +        ctrl.hud.playerInfo.hideUnitDock();      }      @Override | 
