summaryrefslogtreecommitdiffstats
path: root/core/src/ch
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/ch')
-rw-r--r--core/src/ch/asynk/rustanddust/menu/NewGameMenu.java84
1 files changed, 22 insertions, 62 deletions
diff --git a/core/src/ch/asynk/rustanddust/menu/NewGameMenu.java b/core/src/ch/asynk/rustanddust/menu/NewGameMenu.java
index cdf24b1..4ce9f69 100644
--- a/core/src/ch/asynk/rustanddust/menu/NewGameMenu.java
+++ b/core/src/ch/asynk/rustanddust/menu/NewGameMenu.java
@@ -17,27 +17,20 @@ public class NewGameMenu extends Patch implements MenuCtrl.Panel
private final RustAndDust game;
private Label title;
- private Label gameMode;
- private Label gameModeValue;
- private float gameModeWidth;
private int battleIdx;
+ private float battleWidth;
private Label battle;
private Label battleValue;
private Label objectives;
private ObjectivesPanel objectivesPanel;
protected Bg okBtn;
protected Bg cancelBtn;
- private boolean notImplemented;
public NewGameMenu(RustAndDust game)
{
super(game.bgPatch);
this.game = game;
this.title = new Label(game.font);
- this.title.write("- New Game");
- this.gameMode = new Label(game.font);
- this.gameMode.write("Game mode : ");
- this.gameModeValue = new Label(game.font);
this.okBtn = new Bg(game.getUiRegion(game.UI_OK));
this.cancelBtn = new Bg(game.getUiRegion(game.UI_CANCEL));
this.battle = new Label(game.font);
@@ -47,57 +40,45 @@ public class NewGameMenu extends Patch implements MenuCtrl.Panel
this.objectives.write("Battle Objectives");
this.objectivesPanel = new ObjectivesPanel(game);
- if (game.config.battle == null) {
- battleIdx = 0;
+ this.battleIdx = 0;
+ this.battleWidth = 0f;
+ if (game.config.battle == null)
game.config.battle = game.factory.battles[0];
- } else {
- for (int i = 0; i < game.factory.battles.length; i++) {
- if (game.config.battle == game.factory.battles[i]) {
- battleIdx = i;
- break;
- }
- }
+ for (int i = 0; i < game.factory.battles.length; i++) {
+ battleValue.write(game.config.battle.getName());
+ if (battleWidth < battleValue.getWidth())
+ battleWidth = battleValue.getWidth();
+ if (game.config.battle == game.factory.battles[i])
+ battleIdx = i;
}
battleValue.write(game.config.battle.getName());
float w = 0;
- for (int i = game.config.gameMode.i; ;) {
- gameModeValue.write(game.config.gameMode.s);
- if (w < gameModeValue.getWidth())
- w = gameModeValue.getWidth();
- game.config.gameMode = game.config.gameMode.next();
- if (i == game.config.gameMode.i) break;
- }
- this.gameModeValue.write(game.config.gameMode.s);
- this.gameModeWidth = w + 10 + gameMode.getWidth();
}
@Override
public MenuCtrl.MenuType postAnswer(boolean ok)
{
- if (ok && !notImplemented) return MenuCtrl.MenuType.BEGIN;
+ if (ok) return MenuCtrl.MenuType.RESUME;
return MenuCtrl.MenuType.NONE;
}
@Override
public String getAsk()
{
- if (notImplemented)
- return String.format("'%s' Game Mode not implemented yet.", game.config.gameMode.s);
- else
- return String.format("Resume '%s' ?", game.config.battle.toString());
+ return String.format("Resume '%s' ?", game.config.battle.toString());
}
@Override
public void computePosition()
{
float h = (title.getHeight() + TITLE_PADDING + (2 * PADDING));
- h += (gameMode.getHeight() + VSPACING);
h += (battle.getHeight());
h += (objectives.getHeight());
- float w = gameModeWidth + (2 * PADDING);
-
+ float w = battleWidth + battle.getWidth() + 10 + (2 * PADDING);
+ if (w < (title.getWidth() + (2 * PADDING)))
+ w = title.getWidth() + (2 * PADDING);
float x = position.getX(w);
float y = position.getY(h);
setPosition(x, y, w, h);
@@ -114,9 +95,6 @@ public class NewGameMenu extends Patch implements MenuCtrl.Panel
battle.setPosition(x, y);
battleValue.setPosition((x + battle.getWidth() + 10), y);
y += dy;
- gameMode.setPosition(x, y);
- gameModeValue.setPosition((x + gameMode.getWidth() + 10), y);
- y += dy;
y += (TITLE_PADDING - VSPACING);
title.setPosition(x, y);
@@ -143,9 +121,6 @@ public class NewGameMenu extends Patch implements MenuCtrl.Panel
} else if (cancelBtn.hit(x, y)) {
game.playType();
return MenuCtrl.MenuType.MAIN;
- } else if (gameMode.hit(x, y) || gameModeValue.hit(x, y)) {
- game.playType();
- cycleGameMode();
} else if (battle.hit(x, y) || battleValue.hit(x, y)) {
game.playType();
cycleBattle();
@@ -160,29 +135,13 @@ public class NewGameMenu extends Patch implements MenuCtrl.Panel
private MenuCtrl.MenuType tryLaunch()
{
- if (!game.config.gameModeImplemented()) {
- notImplemented = true;
- return MenuCtrl.MenuType.OK;
- }
-
game.config.gameId = game.db.getGameId(game.backend.getOpponentId(), game.config.battle.getId(), game.config.gameMode.i);
- if (game.config.gameId != game.db.NO_RECORD) {
- notImplemented = false;
+ if (game.config.gameId != game.db.NO_RECORD)
return MenuCtrl.MenuType.OKKO;
- }
return MenuCtrl.MenuType.BEGIN;
}
- private void cycleGameMode()
- {
- game.config.gameMode = game.config.gameMode.next();
- float fx = gameModeValue.getX();
- float fy = gameModeValue.getY();
- gameModeValue.write(game.config.gameMode.s);
- gameModeValue.setPosition(fx, fy);
- }
-
private void cycleBattle()
{
battleIdx += 1;
@@ -196,15 +155,18 @@ public class NewGameMenu extends Patch implements MenuCtrl.Panel
}
@Override
- public MenuCtrl.MenuType prepare() { return MenuCtrl.MenuType.NEW_GAME; }
+ public MenuCtrl.MenuType prepare()
+ {
+ this.title.write(String.format("- New '%s' Game : ", game.config.gameMode.s));
+ computePosition();
+ return MenuCtrl.MenuType.NEW_GAME;
+ }
@Override
public void dispose()
{
super.dispose();
title.dispose();
- gameMode.dispose();
- gameModeValue.dispose();
objectives.dispose();
objectivesPanel.dispose();
battle.dispose();
@@ -221,8 +183,6 @@ public class NewGameMenu extends Patch implements MenuCtrl.Panel
if (!visible) return;
super.draw(batch);
title.draw(batch);
- gameMode.draw(batch);
- gameModeValue.draw(batch);
objectives.draw(batch);
battle.draw(batch);
battleValue.draw(batch);