From 79561b976aa7fc4d85a795a5895abf95c19224ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Fri, 17 Oct 2014 16:41:47 +0200 Subject: Ctrl: use Player player,opponent and swap them on turn end --- core/src/ch/asynk/tankontank/game/Ctrl.java | 37 ++++++++-------------- core/src/ch/asynk/tankontank/game/Hud.java | 10 +++--- .../asynk/tankontank/game/states/StateAttack.java | 10 +++--- .../asynk/tankontank/game/states/StateCommon.java | 2 +- .../asynk/tankontank/game/states/StatePromote.java | 2 +- .../asynk/tankontank/game/states/StateSelect.java | 6 ++-- 6 files changed, 29 insertions(+), 38 deletions(-) diff --git a/core/src/ch/asynk/tankontank/game/Ctrl.java b/core/src/ch/asynk/tankontank/game/Ctrl.java index ca2ca64..480dfae 100644 --- a/core/src/ch/asynk/tankontank/game/Ctrl.java +++ b/core/src/ch/asynk/tankontank/game/Ctrl.java @@ -18,8 +18,8 @@ public class Ctrl implements Disposable public Map map; public Hud hud; public Config cfg; - private int player; - private Player players[] = new Player[2]; + public Player player; + public Player opponent; private State selectState; private State pathState; @@ -38,11 +38,10 @@ public class Ctrl implements Disposable this.cfg = game.config; game.ctrl = this; - this.players[0] = game.factory.getPlayer(Army.GE); - this.players[1] = game.factory.getPlayer(Army.US); + this.player = game.factory.getPlayer(Army.GE); + this.opponent = game.factory.getPlayer(Army.US); this.map = game.factory.getMap(Factory.MapType.MAP_A); - game.factory.fakeSetup(map, players[0], players[1]); - player = (new java.util.Random()).nextInt(2); + game.factory.fakeSetup(map, player, opponent); this.selectState = new StateSelect(this, map); this.pathState = new StateMove(); @@ -55,7 +54,7 @@ public class Ctrl implements Disposable this.hud = new Hud(this, game); - player().turnStart(); + player.turnStart(); } @Override @@ -65,16 +64,6 @@ public class Ctrl implements Disposable map.dispose(); } - public Player player() - { - return this.players[player]; - } - - public Player opponent() - { - return this.players[((player + 1) % 2)]; - } - public boolean mayProcessTouch() { return (state != animationState); @@ -102,18 +91,20 @@ public class Ctrl implements Disposable private void nextPlayer() { - player().turnEnd(); - player = ((player + 1) % 2); - player().turnStart(); - hud.notify(player().getName() + "'s turn"); + player.turnEnd(); + Player tmp = player; + player = opponent; + opponent = tmp; + player.turnStart(); + hud.notify(player.getName() + "'s turn"); } private void checkTurnEnd() { if (map.activatedPawnsCount() > 0) { - player().burnDownOneAp(); + player.burnDownOneAp(); } - if (player().apExhausted()) + 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 ef95a22..4a9e0f9 100644 --- a/core/src/ch/asynk/tankontank/game/Hud.java +++ b/core/src/ch/asynk/tankontank/game/Hud.java @@ -55,8 +55,8 @@ public class Hud implements Disposable bg = 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)); + ctrl.player.setTopLeft(OFFSET, (Gdx.graphics.getHeight() - OFFSET)); + ctrl.opponent.setTopLeft(OFFSET, (Gdx.graphics.getHeight() - OFFSET)); } @Override @@ -79,7 +79,7 @@ public class Hud implements Disposable public void draw(Batch batch) { - ctrl.player().draw(batch); + ctrl.player.draw(batch); bg.draw(batch); if (moveBtn.visible) moveBtn.getImage().draw(batch); if (rotateBtn.visible) rotateBtn.getImage().draw(batch); @@ -137,7 +137,7 @@ public class Hud implements Disposable public boolean touchDown(float x, float y) { - if (ctrl.player().contains(x,y)) return true; + if (ctrl.player.contains(x,y)) return true; if (!bg.contains(x,y)) return false; btn = null; @@ -166,7 +166,7 @@ public class Hud implements Disposable if (btn != null) btn.setOn(); - if (ctrl.player().contains(x,y)) { + if (ctrl.player.contains(x,y)) { ctrl.endPlayerTurn(); return true; } diff --git a/core/src/ch/asynk/tankontank/game/states/StateAttack.java b/core/src/ch/asynk/tankontank/game/states/StateAttack.java index ab37da9..9937913 100644 --- a/core/src/ch/asynk/tankontank/game/states/StateAttack.java +++ b/core/src/ch/asynk/tankontank/game/states/StateAttack.java @@ -19,7 +19,7 @@ public class StateAttack extends StateCommon // use selectedHex and selectedPawn from.set(selectedHex); map.showPossibleTargets(false); - map.buildPossibleTargets(selectedPawn, from, ctrl.opponent().unitIterator()); + map.buildPossibleTargets(selectedPawn, from, ctrl.opponent.unitIterator()); map.showPossibleTargets(true); if (to.x != -1) { // quick fire -> replay touchUp @@ -54,7 +54,7 @@ public class StateAttack extends StateCommon to.set(upHex); activePawn = map.getTopPawnAt(to); map.showTarget(to, true); - map.buildAttackAssists(selectedPawn, activePawn, to, ctrl.player().unitIterator()); + map.buildAttackAssists(selectedPawn, activePawn, to, ctrl.player.unitIterator()); map.showAttackAssists(true); ctrl.hud.show(false, false, false, true, true, ctrl.cfg.canCancel); } @@ -79,11 +79,11 @@ public class StateAttack extends StateCommon @Override public void done() { - int d1 = ctrl.player().d6(); - int d2 = ctrl.player().d6(); + int d1 = ctrl.player.d6(); + int d2 = ctrl.player.d6(); System.err.print(" attack (" + from.x + ";" + from.y + ") -> (" + to.x + ";" + to.y + ") : 2D6 -> (" + d1 + " + " + d2 + ")"); if (map.attackPawn(selectedPawn, activePawn, from, to, d1 + d2)) - ctrl.player().casualty(activePawn); + ctrl.player.casualty(activePawn); ctrl.setState(StateType.ANIMATION); super.done(); diff --git a/core/src/ch/asynk/tankontank/game/states/StateCommon.java b/core/src/ch/asynk/tankontank/game/states/StateCommon.java index 416dfaf..e729a84 100644 --- a/core/src/ch/asynk/tankontank/game/states/StateCommon.java +++ b/core/src/ch/asynk/tankontank/game/states/StateCommon.java @@ -110,7 +110,7 @@ public abstract class StateCommon implements State selectedPawn = map.getTopPawnAt(selectedHex); map.selectHex(selectedHex, true); if (selectedPawn != null) - isEnemy = ctrl.player().isEnemy(selectedPawn); + isEnemy = ctrl.player.isEnemy(selectedPawn); else isEnemy = false; System.err.println(" select (" + selectedHex.x + ";" + selectedHex.y + ") " + selectedPawn + (isEnemy ? " enemy " : " friend ")); diff --git a/core/src/ch/asynk/tankontank/game/states/StatePromote.java b/core/src/ch/asynk/tankontank/game/states/StatePromote.java index b481eee..f998fba 100644 --- a/core/src/ch/asynk/tankontank/game/states/StatePromote.java +++ b/core/src/ch/asynk/tankontank/game/states/StatePromote.java @@ -9,7 +9,7 @@ public class StatePromote extends StateCommon public void enter(boolean flag) { ctrl.hud.hide(); - Pawn p = ctrl.player().promote(selectedPawn); + Pawn p = ctrl.player.promote(selectedPawn); if (p != null) { map.promote(selectedPawn, p); } diff --git a/core/src/ch/asynk/tankontank/game/states/StateSelect.java b/core/src/ch/asynk/tankontank/game/states/StateSelect.java index 7a9e3dd..7990666 100644 --- a/core/src/ch/asynk/tankontank/game/states/StateSelect.java +++ b/core/src/ch/asynk/tankontank/game/states/StateSelect.java @@ -55,13 +55,13 @@ public class StateSelect extends StateCommon int moves = map.buildPossibleMoves(selectedPawn, selectedHex); int targets = 0; if (isEnemy) - targets = map.buildPossibleTargets(selectedPawn, selectedHex, ctrl.player().unitIterator()); + targets = map.buildPossibleTargets(selectedPawn, selectedHex, ctrl.player.unitIterator()); else - targets = map.buildPossibleTargets(selectedPawn, selectedHex, ctrl.opponent().unitIterator()); + targets = map.buildPossibleTargets(selectedPawn, selectedHex, ctrl.opponent.unitIterator()); int assists = map.buildMoveAssists(selectedPawn, selectedHex); showPossibleTargetsMovesAssists(selectedPawn); ctrl.hud.show( - ctrl.player().canPromote(selectedPawn), + ctrl.player.canPromote(selectedPawn), selectedPawn.canMove(), (selectedPawn.canMove() && (moves > 0)), (selectedPawn.canAttack() && (targets > 0)), -- cgit v1.1-2-g2b99