From 787bb94d6d7467010a515413c03a66b98d9395b5 Mon Sep 17 00:00:00 2001 From: drdev Date: Mon, 7 Jul 2014 04:16:15 +0000 Subject: [PATCH] Fix so quest stats updated --- .../screens/home/quest/VSubmenuDuels.java | 2 +- .../src/forge/menu/FDropDownMenu.java | 4 +- .../src/forge/menu/FMenuItem.java | 33 ++++++- .../screens/quest/QuestChallengesScreen.java | 6 ++ .../forge/screens/quest/QuestDuelsScreen.java | 59 ++++++++++++ .../src/forge/screens/quest/QuestMenu.java | 91 +++++++++---------- .../forge/screens/quest/QuestStatsScreen.java | 18 ++-- .../screens/quest/QuestTournamentsScreen.java | 6 ++ .../src/main/java/forge/quest/QuestUtil.java | 4 +- 9 files changed, 166 insertions(+), 57 deletions(-) diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java index 7ead79b11d4..2e47446ea81 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java @@ -59,7 +59,7 @@ public enum VSubmenuDuels implements IVSubmenu, IVQuestStats { .fontSize(15).build(); private final LblHeader lblTitle = new LblHeader("Quest Mode: Duels"); - private final JLabel lblInfo = new FLabel.Builder().text("Select your next duel.") + private final FLabel lblInfo = new FLabel.Builder().text("Select your next duel.") .fontStyle(Font.BOLD).fontSize(16) .fontAlign(SwingConstants.LEFT).build(); diff --git a/forge-gui-mobile/src/forge/menu/FDropDownMenu.java b/forge-gui-mobile/src/forge/menu/FDropDownMenu.java index 7f24b14047e..a100a3882ae 100644 --- a/forge-gui-mobile/src/forge/menu/FDropDownMenu.java +++ b/forge-gui-mobile/src/forge/menu/FDropDownMenu.java @@ -58,7 +58,9 @@ public abstract class FDropDownMenu extends FDropDown { } public void addItem(FMenuItem item) { - items.add(add(item)); + if (item.isVisible()) { + items.add(add(item)); + } } @Override diff --git a/forge-gui-mobile/src/forge/menu/FMenuItem.java b/forge-gui-mobile/src/forge/menu/FMenuItem.java index 343eadbb35b..c0b917b2e52 100644 --- a/forge-gui-mobile/src/forge/menu/FMenuItem.java +++ b/forge-gui-mobile/src/forge/menu/FMenuItem.java @@ -5,17 +5,20 @@ import com.badlogic.gdx.utils.Timer; import com.badlogic.gdx.utils.Timer.Task; import forge.Graphics; +import forge.UiCommand; import forge.assets.FImage; import forge.assets.FSkinColor; import forge.assets.FSkinFont; import forge.assets.FSkinColor.Colors; +import forge.assets.FSkinProp; +import forge.interfaces.IButton; import forge.toolbox.FDisplayObject; import forge.toolbox.FEvent; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventType; import forge.util.Utils; -public class FMenuItem extends FDisplayObject { +public class FMenuItem extends FDisplayObject implements IButton { public static final float HEIGHT = Utils.AVG_FINGER_HEIGHT * 0.8f; protected static final float DIVOT_WIDTH = HEIGHT / 6; protected static final float GAP_X = HEIGHT * 0.1f; @@ -121,4 +124,32 @@ public class FMenuItem extends FDisplayObject { //draw separator line g.drawLine(1, SEPARATOR_COLOR, 0, h, w, h); } + + @Override + public String getText() { + return text; + } + @Override + public void setText(String text0) { + } + @Override + public boolean isSelected() { + return false; + } + @Override + public void setSelected(boolean b0) { + } + @Override + public boolean requestFocusInWindow() { + return false; + } + @Override + public void setCommand(UiCommand command0) { + } + @Override + public void setTextColor(FSkinProp color) { + } + @Override + public void setTextColor(int r, int g, int b) { + } } diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestChallengesScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestChallengesScreen.java index da5b646c791..8d86c368898 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestChallengesScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestChallengesScreen.java @@ -1,5 +1,6 @@ package forge.screens.quest; +import forge.quest.QuestUtil; import forge.screens.LaunchScreen; public class QuestChallengesScreen extends LaunchScreen { @@ -7,6 +8,11 @@ public class QuestChallengesScreen extends LaunchScreen { super("Quest Duels", QuestMenu.getMenu()); } + @Override + public void onActivate() { + QuestUtil.updateQuestView(QuestMenu.getMenu()); + } + @Override protected void doLayoutAboveBtnStart(float startY, float width, float height) { // TODO Auto-generated method stub diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java index b21cb63f73e..a5fc2912a42 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java @@ -1,12 +1,43 @@ package forge.screens.quest; +import forge.assets.FSkinFont; +import forge.interfaces.IButton; +import forge.interfaces.ICheckBox; +import forge.interfaces.IComboBox; +import forge.quest.QuestUtil; import forge.screens.LaunchScreen; +import forge.toolbox.FCheckBox; +import forge.toolbox.FComboBox; +import forge.toolbox.FLabel; public class QuestDuelsScreen extends LaunchScreen { + private final FComboBox cbxPet = add(new FComboBox()); + private final FCheckBox cbCharm = add(new FCheckBox("Use Charm of Vigor")); + private final FCheckBox cbPlant = add(new FCheckBox("Summon Plant")); + private final FLabel lblZep = add(new FLabel.Builder().text("Launch Zeppelin").font(FSkinFont.get(14)).build()); + + private final FLabel lblInfo = add(new FLabel.Builder().text("Select your next duel.") + .font(FSkinFont.get(16)).build()); + + private final FLabel lblCurrentDeck = add(new FLabel.Builder() + .text("Current deck hasn't been set yet.") + .font(FSkinFont.get(12)).build()); + + private final FLabel lblNextChallengeInWins = add(new FLabel.Builder() + .text("Next challenge in wins hasn't been set yet.") + .font(FSkinFont.get(12)).build()); + + private final FLabel btnRandomOpponent = add(new FLabel.ButtonBuilder().text("Random Duel").font(FSkinFont.get(16)).build()); + public QuestDuelsScreen() { super("Quest Duels", QuestMenu.getMenu()); } + @Override + public void onActivate() { + QuestUtil.updateQuestView(QuestMenu.getMenu()); + } + @Override protected void doLayoutAboveBtnStart(float startY, float width, float height) { // TODO Auto-generated method stub @@ -18,4 +49,32 @@ public class QuestDuelsScreen extends LaunchScreen { // TODO Auto-generated method stub return false; } + + public IButton getBtnRandomOpponent() { + return btnRandomOpponent; + } + + public IButton getLblNextChallengeInWins() { + return lblNextChallengeInWins; + } + + public IButton getLblCurrentDeck() { + return lblCurrentDeck; + } + + public IComboBox getCbxPet() { + return cbxPet; + } + + public ICheckBox getCbPlant() { + return cbPlant; + } + + public ICheckBox getCbCharm() { + return cbCharm; + } + + public IButton getLblZep() { + return lblZep; + } } diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java b/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java index be8f2beee9c..7623d066abe 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java @@ -21,13 +21,36 @@ import forge.toolbox.FEvent.FEventHandler; public class QuestMenu extends FPopupMenu implements IVQuestStats { private static final QuestMenu questMenu = new QuestMenu(); private static final QuestBazaarScreen bazaarScreen = new QuestBazaarScreen(); - private static QuestChallengesScreen challengesScreen = new QuestChallengesScreen(); - private static QuestDecksScreen decksScreen = new QuestDecksScreen(); - private static QuestDuelsScreen duelsScreen = new QuestDuelsScreen(); - private static QuestPrefsScreen prefsScreen = new QuestPrefsScreen(); - private static QuestSpellShopScreen spellShopScreen = new QuestSpellShopScreen(); - private static QuestStatsScreen statsScreen = new QuestStatsScreen(); - private static QuestTournamentsScreen tournamentsScreen = new QuestTournamentsScreen(); + private static final QuestChallengesScreen challengesScreen = new QuestChallengesScreen(); + private static final QuestDecksScreen decksScreen = new QuestDecksScreen(); + private static final QuestDuelsScreen duelsScreen = new QuestDuelsScreen(); + private static final QuestPrefsScreen prefsScreen = new QuestPrefsScreen(); + private static final QuestSpellShopScreen spellShopScreen = new QuestSpellShopScreen(); + private static final QuestStatsScreen statsScreen = new QuestStatsScreen(); + private static final QuestTournamentsScreen tournamentsScreen = new QuestTournamentsScreen(); + + private static final FMenuItem unlockSetsItem = new FMenuItem("Unlock Sets", FSkinImage.QUEST_MAP, new FEventHandler() { + @Override + public void handleEvent(FEvent e) { + } + }); + private static final FMenuItem travelItem = new FMenuItem("Travel", FSkinImage.QUEST_MAP, new FEventHandler() { + @Override + public void handleEvent(FEvent e) { + } + }); + private static final FMenuItem spellShopItem = new FMenuItem("Spell Shop", FSkinImage.QUEST_BOOK, new FEventHandler() { + @Override + public void handleEvent(FEvent e) { + Forge.openScreen(spellShopScreen); + } + }); + private static final FMenuItem bazaarItem = new FMenuItem("Bazaar", FSkinImage.QUEST_BOTTLES, new FEventHandler() { + @Override + public void handleEvent(FEvent e) { + Forge.openScreen(bazaarScreen); + } + }); public static QuestMenu getMenu() { return questMenu; @@ -76,23 +99,10 @@ public class QuestMenu extends FPopupMenu implements IVQuestStats { Forge.openScreen(tournamentsScreen); } })); - addItem(new FMenuItem("Travel", FSkinImage.QUEST_MAP, new FEventHandler() { - @Override - public void handleEvent(FEvent e) { - } - })); - addItem(new FMenuItem("Spell Shop", FSkinImage.QUEST_BOOK, new FEventHandler() { - @Override - public void handleEvent(FEvent e) { - Forge.openScreen(spellShopScreen); - } - })); - addItem(new FMenuItem("Bazaar", FSkinImage.QUEST_BOTTLES, new FEventHandler() { - @Override - public void handleEvent(FEvent e) { - Forge.openScreen(bazaarScreen); - } - })); + addItem(unlockSetsItem); + addItem(travelItem); + addItem(spellShopItem); + addItem(bazaarItem); addItem(new FMenuItem("Statistics", FSkinImage.MULTI, new FEventHandler() { @Override public void handleEvent(FEvent e) { @@ -127,32 +137,27 @@ public class QuestMenu extends FPopupMenu implements IVQuestStats { @Override public IButton getBtnRandomOpponent() { - // TODO Auto-generated method stub - return null; + return duelsScreen.getBtnRandomOpponent(); } @Override public IButton getBtnBazaar() { - // TODO Auto-generated method stub - return null; + return bazaarItem; } @Override public IButton getBtnSpellShop() { - // TODO Auto-generated method stub - return null; + return spellShopItem; } @Override public IButton getBtnUnlock() { - // TODO Auto-generated method stub - return null; + return unlockSetsItem; } @Override public IButton getBtnTravel() { - // TODO Auto-generated method stub - return null; + return travelItem; } @Override @@ -182,14 +187,12 @@ public class QuestMenu extends FPopupMenu implements IVQuestStats { @Override public IButton getLblNextChallengeInWins() { - // TODO Auto-generated method stub - return null; + return duelsScreen.getLblNextChallengeInWins(); } @Override public IButton getLblCurrentDeck() { - // TODO Auto-generated method stub - return null; + return duelsScreen.getLblCurrentDeck(); } @Override @@ -199,26 +202,22 @@ public class QuestMenu extends FPopupMenu implements IVQuestStats { @Override public IComboBox getCbxPet() { - // TODO Auto-generated method stub - return null; + return duelsScreen.getCbxPet(); } @Override public ICheckBox getCbPlant() { - // TODO Auto-generated method stub - return null; + return duelsScreen.getCbPlant(); } @Override public ICheckBox getCbCharm() { - // TODO Auto-generated method stub - return null; + return duelsScreen.getCbCharm(); } @Override public IButton getLblZep() { - // TODO Auto-generated method stub - return null; + return duelsScreen.getLblZep(); } @Override diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestStatsScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestStatsScreen.java index b4e93465f57..89d6ed977ca 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestStatsScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestStatsScreen.java @@ -2,6 +2,7 @@ package forge.screens.quest; import forge.assets.FSkinFont; import forge.assets.FSkinImage; +import forge.quest.QuestUtil; import forge.screens.FScreen; import forge.toolbox.FDisplayObject; import forge.toolbox.FLabel; @@ -27,22 +28,22 @@ public class QuestStatsScreen extends FScreen { }); private final FLabel lblWins = scroller.add(new FLabel.Builder() .icon(FSkinImage.QUEST_PLUS) - .font(FSkinFont.get(15)).build()); + .font(FSkinFont.get(16)).iconScaleFactor(1).build()); private final FLabel lblLosses = scroller.add(new FLabel.Builder() .icon(FSkinImage.QUEST_MINUS) - .font(FSkinFont.get(15)).build()); + .font(FSkinFont.get(16)).iconScaleFactor(1).build()); private final FLabel lblCredits = scroller.add(new FLabel.Builder() .icon(FSkinImage.QUEST_COINSTACK) - .font(FSkinFont.get(15)).build()); + .font(FSkinFont.get(16)).iconScaleFactor(1).build()); private final FLabel lblWinStreak = scroller.add(new FLabel.Builder() .icon(FSkinImage.QUEST_PLUSPLUS) - .font(FSkinFont.get(15)).build()); + .font(FSkinFont.get(16)).iconScaleFactor(1).build()); private final FLabel lblLife = scroller.add(new FLabel.Builder() .icon(FSkinImage.QUEST_LIFE) - .font(FSkinFont.get(15)).build()); + .font(FSkinFont.get(16)).iconScaleFactor(1).build()); private final FLabel lblWorld = scroller.add(new FLabel.Builder() .icon(FSkinImage.QUEST_MAP) - .font(FSkinFont.get(15)).build()); + .font(FSkinFont.get(16)).iconScaleFactor(1).build()); public FLabel getLblWins() { return lblWins; @@ -67,6 +68,11 @@ public class QuestStatsScreen extends FScreen { super("Quest Statistics", QuestMenu.getMenu()); } + @Override + public void onActivate() { + QuestUtil.updateQuestView(QuestMenu.getMenu()); + } + @Override protected void doLayout(float startY, float width, float height) { scroller.setBounds(0, startY, width, height - startY); diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java index fd3fc5b35e2..69beb8635b0 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java @@ -1,5 +1,6 @@ package forge.screens.quest; +import forge.quest.QuestUtil; import forge.screens.LaunchScreen; public class QuestTournamentsScreen extends LaunchScreen { @@ -7,6 +8,11 @@ public class QuestTournamentsScreen extends LaunchScreen { super("Quest Duels", QuestMenu.getMenu()); } + @Override + public void onActivate() { + QuestUtil.updateQuestView(QuestMenu.getMenu()); + } + @Override protected void doLayoutAboveBtnStart(float startY, float width, float height) { // TODO Auto-generated method stub diff --git a/forge-gui/src/main/java/forge/quest/QuestUtil.java b/forge-gui/src/main/java/forge/quest/QuestUtil.java index 89b963a4f75..f67feb47962 100644 --- a/forge-gui/src/main/java/forge/quest/QuestUtil.java +++ b/forge-gui/src/main/java/forge/quest/QuestUtil.java @@ -400,8 +400,8 @@ public class QuestUtil { view0.getLblNextChallengeInWins().setText(str); view0.getLblWinStreak().setText( - "Win streak: " + qA.getWinStreakCurrent() - + "
  (Best: " + qA.getWinStreakBest() + ")"); + "Win streak: " + qA.getWinStreakCurrent() + + " (Best: " + qA.getWinStreakBest() + ")"); // Current deck message final IButton lblCurrentDeck = view0.getLblCurrentDeck();